<?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>197157</bug_id>
          
          <creation_ts>2019-04-22 04:43:35 -0700</creation_ts>
          <short_desc>[Build][GStreamer] Update to 1.16.0</short_desc>
          <delta_ts>2019-04-24 05:19:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>agomez</cc>
    
    <cc>calvaris</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>lforschler</cc>
    
    <cc>ltilve</cc>
    
    <cc>tsaunier</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1529220</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-22 04:43:35 -0700</bug_when>
    <thetext>Patch started.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529602</commentid>
    <comment_count>1</comment_count>
      <attachid>368035</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-23 08:45:09 -0700</bug_when>
    <thetext>Created attachment 368035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529630</commentid>
    <comment_count>2</comment_count>
      <attachid>368035</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2019-04-23 09:39:21 -0700</bug_when>
    <thetext>Comment on attachment 368035
Patch

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

Nice cleanup!

Informal r+
Looks good to me :-)

&gt; Tools/flatpak/files/httpd-autogen.sh:3
&gt; +autoreconf --install

ooc, Why is that better/needed?

&gt; Tools/flatpak/org.webkit.CommonModules.yaml:199
&gt; +      sha256: 80bb685abfcdda7c9b6c9c5caf1d8dbb927858050d7377c2b8f3488c7e8a9b7f

We could use the meson port to build faster and use what has been tested? https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529672</commentid>
    <comment_count>3</comment_count>
      <attachid>368035</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-23 11:44:33 -0700</bug_when>
    <thetext>Comment on attachment 368035
Patch

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

&gt;&gt; Tools/flatpak/files/httpd-autogen.sh:3
&gt;&gt; +autoreconf --install
&gt; 
&gt; ooc, Why is that better/needed?

It is needed for the 3.32 Sdk, which, it seems, has an updated autofools suite which complained here with the autoreconf call. I can find the error again if needed.

&gt;&gt; Tools/flatpak/org.webkit.CommonModules.yaml:199
&gt;&gt; +      sha256: 80bb685abfcdda7c9b6c9c5caf1d8dbb927858050d7377c2b8f3488c7e8a9b7f
&gt; 
&gt; We could use the meson port to build faster and use what has been tested? https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg

I didn&apos;t know about this one, I can add it yeah :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529673</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-23 11:46:32 -0700</bug_when>
    <thetext>EWS failed:

Dependency libavfilter found: NO (tried pkgconfig)
Looking for a fallback subproject for the dependency libavfilter
Couldn&apos;t use fallback subproject in subprojects/FFmpeg for the dependency libavfilter 
Reason: Subproject directory &apos;subprojects/FFmpeg&apos; does not exist and cannot be downloaded:
No FFmpeg.wrap found for &apos;subprojects/FFmpeg&apos;

meson.build:18:0: ERROR:  Dependency &quot;libavfilter&quot; not found, tried pkgconfig

Should we use the FFMpeg Meson port in jhbuild too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529682</commentid>
    <comment_count>5</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2019-04-23 12:14:09 -0700</bug_when>
    <thetext>&gt; Should we use the FFMpeg Meson port in jhbuild too?

Could be yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529930</commentid>
    <comment_count>6</comment_count>
      <attachid>368035</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-24 02:12:03 -0700</bug_when>
    <thetext>Comment on attachment 368035
Patch

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

&gt;&gt;&gt; Tools/flatpak/files/httpd-autogen.sh:3
&gt;&gt;&gt; +autoreconf --install
&gt;&gt; 
&gt;&gt; ooc, Why is that better/needed?
&gt; 
&gt; It is needed for the 3.32 Sdk, which, it seems, has an updated autofools suite which complained here with the autoreconf call. I can find the error again if needed.

========================================================================
Building module httpd in /home/phil/WebKit/WebKitBuild/FlatpakCache/build/httpd-9
========================================================================
Note: checking out &apos;2.4.37&apos;.

You are in &apos;detached HEAD&apos; state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b &lt;new-branch-name&gt;

HEAD is now at 39902c8 Tag HEAD of 2.4.x as 2.4.37
Applying patch httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch
patching file configure.in
aclocal: warning: autoconf input should be named &apos;configure.ac&apos;, not &apos;configure.in&apos;
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
configure: error: cannot run /bin/sh build/config.sub
Error: module httpd: Child process exited with code 127
Traceback (most recent call last):
  File &quot;/home/phil/WebKit/Tools/Scripts/webkit-flatpak&quot;, line 28, in &lt;module&gt;
    sys.exit(WebkitFlatpak.load_from_args().run())
  File &quot;/home/phil/WebKit/Tools/flatpak/flatpakutils.py&quot;, line 844, in run
    return self.setup_dev_env()
  File &quot;/home/phil/WebKit/Tools/flatpak/flatpakutils.py&quot;, line 889, in setup_dev_env
    subprocess.check_call(builder_args)
  File &quot;/usr/lib/python2.7/subprocess.py&quot;, line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command &apos;[&apos;flatpak-builder&apos;, &apos;--disable-rofiles-fuse&apos;, &apos;--state-dir&apos;, &apos;/home/phil/WebKit/WebKitBuild/FlatpakCache&apos;, &apos;--ccache&apos;, &apos;/home/phil/WebKit/WebKitBuild/WPE/FlatpakTreeRelease&apos;, &apos;--force-clean&apos;, &apos;/home/phil/WebKit/WebKitBuild/FlatpakCache/org.webkit.WPE-generated.json&apos;, &apos;--build-only&apos;, &apos;--stop-at=org.webkit.WPE&apos;]&apos; returned non-zero exit status 1

&gt;&gt;&gt; Tools/flatpak/org.webkit.CommonModules.yaml:199
&gt;&gt;&gt; +      sha256: 80bb685abfcdda7c9b6c9c5caf1d8dbb927858050d7377c2b8f3488c7e8a9b7f
&gt;&gt; 
&gt;&gt; We could use the meson port to build faster and use what has been tested? https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg
&gt; 
&gt; I didn&apos;t know about this one, I can add it yeah :)

Not possible yet, https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/issues/7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529931</commentid>
    <comment_count>7</comment_count>
      <attachid>368114</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-24 02:13:56 -0700</bug_when>
    <thetext>Created attachment 368114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529946</commentid>
    <comment_count>8</comment_count>
      <attachid>368114</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-04-24 03:55:37 -0700</bug_when>
    <thetext>Comment on attachment 368114
Patch

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

&gt; Tools/gstreamer/jhbuild.modules:112
&gt; +   &lt;/meson&gt;

It looks there is an extra space at the beginning of this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529954</commentid>
    <comment_count>9</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2019-04-24 05:08:50 -0700</bug_when>
    <thetext>&gt; Not possible yet, https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/issues/7

Oops, whatever :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529958</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-04-24 05:18:33 -0700</bug_when>
    <thetext>Committed r244585: &lt;https://trac.webkit.org/changeset/244585&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529959</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-24 05:19:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/50164710&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368035</attachid>
            <date>2019-04-23 08:45:09 -0700</date>
            <delta_ts>2019-04-24 02:13:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197157-20190423164507.patch</filename>
            <type>text/plain</type>
            <size>139593</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmJhNjdhMzY2M2JiYTFmNTBlNTc3YmJhNjk5ZmJhOTZi
MjE3YWVjMS4uNTRlMzdiY2VkN2NmYjM4Nzg1ZGJlNDk2NDU3YjcxMDRhYTE5Njc0OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDE5LTA0LTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbQnVpbGRdW0dTdHJlYW1lcl0gVXBkYXRlIHRvIDEuMTYuMAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVwc3RyZWFtZWQgcGF0
Y2hlcyB3ZXJlIHJlbW92ZWQgYW5kIGEgbmV3IG9uZSB3YXMgYWRkZWQgZm9yIGEKKyAgICAgICAg
cmVncmVzc2lvbiBkZXRlY3RlZCBpbiB0aGUgc2NhbGV0ZW1wbyBHU3RyZWFtZXIgZWxlbWVudC4g
VGhlIEdOT01FCisgICAgICAgIEZsYXRwYWsgd2FzIG1pZ3JhdGVkIHRvIDMuMzIgYW5kIEkgc3dp
dGNoZWQgYSBmZXcgbW9kdWxlcyB0byBNZXNvbgorICAgICAgICBvbiB0aGUgd2F5LCBhcyBpdCBp
cyB0aGUgcHJlZmVycmVkIGJ1aWxkIHN5c3RlbSBub3cgaW4gR1N0cmVhbWVyCisgICAgICAgIDEu
MTYuCisKKyAgICAgICAgKiBmbGF0cGFrL2ZpbGVzL2h0dHBkLWF1dG9nZW4uc2g6CisgICAgICAg
ICogZmxhdHBhay9mbGF0cGFrdXRpbHMucHk6CisgICAgICAgIChGbGF0cGFrUGFja2FnZS5pbnN0
YWxsKToKKyAgICAgICAgKFdlYmtpdEZsYXRwYWsucnVuX2luX3NhbmRib3gpOgorICAgICAgICAq
IGZsYXRwYWsvb3JnLndlYmtpdC5Db21tb25Nb2R1bGVzLnlhbWw6CisgICAgICAgICogZmxhdHBh
ay9vcmcud2Via2l0LldlYktpdC55YW1sOgorICAgICAgICAqIGdzdHJlYW1lci9qaGJ1aWxkLm1v
ZHVsZXM6CisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEt
YW9tZW5jLUFkZC1zdXBwb3J0LWZvci0xMC0xMmJpdC1kZWNvZGluZy5wYXRjaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1hb21lbmMt
SGFuZGxlLTgtYml0X2RlcHRoLWltYWdlcy13aXRoLUFPTV9JTUdfRk1UX0hJLnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAzLWZk
a2FhY2VuYy1SZW1vdmUtTU9ERV8yXzEucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDQtZmRrYWFjZGVjLVVzZS1XQVYtY2hhbm5l
bC1tYXBwaW5nLWluc3RlYWQtb2YtaW50ZXJsZWF2ZS1zZXR0aW5nLnBhdGNoOiBSZW1vdmVkLgor
ICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDA1LW1zc2RlbXV4
LWZpeC1wcm90ZWN0aW9uLWRhdGEtZG91YmxlLWZyZWUucGF0Y2g6IFJlbW92ZWQuCisgICAgICAg
ICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3Qt
U1RSRUFNX0NPTExFQ1RJT04tb24tRVZFTlRfU1RSRUFNX0NPTEwucGF0Y2g6IFJlbW92ZWQuCisg
ICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgt
RGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYwOC03MDgtQ2xvc2VkLUNhcHRpb24ucGF0Y2g6IFJlbW92
ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0
ZGVtdXgtRG8tbm90LXJ1bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2g6
IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDAyLXF0ZGVtdXgtRG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5wYXRjaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRk
ZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRk
ZW11eC1DbGFyaWZ5LWZpZWxkLW5hbWUtYWJvdXQtc3RyZWFtLWVuY3J5cHRpb24tcy5wYXRjaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAw
MDMtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5w
YXRjaDogUmVtb3ZlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDQtcXRkZW11eC1BZGQtaW5pdGlhbC1zdXBwb3J0LWZvci1BVjEtZGVtdXhpbmcucGF0
Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC0wMDA1LXF0ZGVtdXgtRXh0cmFjdC1BVjEtY29kZWNfZGF0YS1hbmQtcHV0LWl0LWluLXRoZS1j
YXAucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtZ29vZC0wMDA2LXF0ZGVtdXgtUmVjb2duaXplLW1vcmUtQVYxLWF0b21zLnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1t
YXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNo
OiBSZW1vdmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5n
LnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtMDAxMy1Bdm9pZC13YXJuaW5nLXdoZW4tcmVwb3J0aW5nLWFib3V0LWRlY3J5cHRvcnMu
cGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDE0LXB1bHNlLU1hcmstZGVmYXVsdC1kZXZpY2VzLWFzLWRlZmF1bHQucGF0Y2g6IFJl
bW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1zY2Fs
ZXRlbXBvLUFkdmVydGlzZS1pbnRlcmxlYXZlZC1sYXlvdXQtaW4tY2Fwcy10ZW1wLnBhdGNoOiBB
ZGRlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0
aW9uLUFkZC1hLW5ldy1kZWZpbml0aW9uLWZvci11bnNwZWNpZmllZC1zeXN0LnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAyLXByb3RlY3Rp
b24tRml4LXRoZS1zdHJpbmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0Y2g6IFJlbW92
ZWQuCisKIDIwMTktMDQtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb25dIFdlYktpdCBoYW5ncyB3aGVuIGdvaW5n
IGJhY2sgdG8gYSBmb3JtIHN1Ym1pc3Npb24ncyBwYWdlIGR1ZSB0byBQcm9jZXNzLVN3YXAtT24t
TmF2aWdhdGlvbiBvbiBpT1MgMTIuMiBhbmQgaGlnaGVyCmRpZmYgLS1naXQgYS9Ub29scy9mbGF0
cGFrL2ZpbGVzL2h0dHBkLWF1dG9nZW4uc2ggYi9Ub29scy9mbGF0cGFrL2ZpbGVzL2h0dHBkLWF1
dG9nZW4uc2gKaW5kZXggNmEwYTQ3M2E4MjUzMmNhOWM5NWNkNDJkMGM2ZjdmZDQzNzhiMTg5OC4u
MWMwYzQ4MzA1MWZiZGY4NjA0Yjk0NGE2MzUxMWM0ZTEyMWVhZWY0ZCAxMDA3NTUKLS0tIGEvVG9v
bHMvZmxhdHBhay9maWxlcy9odHRwZC1hdXRvZ2VuLnNoCisrKyBiL1Rvb2xzL2ZsYXRwYWsvZmls
ZXMvaHR0cGQtYXV0b2dlbi5zaApAQCAtMSArMSwyIEBACi1hdXRvcmVjb25mClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorYXV0b21ha2UgLS1hZGQtbWlzc2luZworYXV0b3JlY29uZiAtLWlu
c3RhbGwKZGlmZiAtLWdpdCBhL1Rvb2xzL2ZsYXRwYWsvZmxhdHBha3V0aWxzLnB5IGIvVG9vbHMv
ZmxhdHBhay9mbGF0cGFrdXRpbHMucHkKaW5kZXggMmUxYmY5ODRjYzUyNmM5NGFkZWU1N2E5ODBi
ZjRhZDBlMjk1ODJmNy4uOTkyNDk1ODU5Y2M4MGZlOTdlZDVlZjI2YmQ1NGJhYzZiODc1MTEzYyAx
MDA2NDQKLS0tIGEvVG9vbHMvZmxhdHBhay9mbGF0cGFrdXRpbHMucHkKKysrIGIvVG9vbHMvZmxh
dHBhay9mbGF0cGFrdXRpbHMucHkKQEAgLTQ3NCw3ICs0NzQsNyBAQCBjbGFzcyBGbGF0cGFrUGFj
a2FnZShGbGF0cGFrT2JqZWN0KToKICAgICAgICAgY29tbWVudCA9ICJJbnN0YWxsaW5nIGZyb20g
IiArIHNlbGYucmVwby5uYW1lICsgIiAiICsgc2VsZi5uYW1lICsgIiAiICsgc2VsZi5hcmNoICsg
IiAiICsgc2VsZi5icmFuY2gKICAgICAgICAgc2VsZi5mbGF0cGFrKCphcmdzLCBzaG93X291dHB1
dD1UcnVlLCBjb21tZW50PWNvbW1lbnQpCiAgICAgICAgIGlmIHNlbGYuaGFzaDoKLSAgICAgICAg
ICAgIGFyZ3MgPSBbInVwZGF0ZSIsICItLWNvbW1pdCIsIHNlbGYuaGFzaF0KKyAgICAgICAgICAg
IGFyZ3MgPSBbInVwZGF0ZSIsICItLWNvbW1pdCIsIHNlbGYuaGFzaCwgc2VsZi5uYW1lXQogICAg
ICAgICAgICAgY29tbWVudCA9ICJVcGRhdGluZyB0byAlcyIgJSBzZWxmLmhhc2gKICAgICAgICAg
ICAgIHNlbGYuZmxhdHBhaygqYXJncywgc2hvd19vdXRwdXQ9VHJ1ZSwgY29tbWVudD1jb21tZW50
KQogCkBAIC03NjgsNiArNzY4LDcgQEAgY2xhc3MgV2Via2l0RmxhdHBhazoKICAgICAgICAgICAg
ICAgICAiSmF2YVNjcmlwdENvcmVVc2VKSVQiLAogICAgICAgICAgICAgICAgICJNYWxsb2MiLAog
ICAgICAgICAgICAgICAgICJXQVlMQU5EX0RJU1BMQVkiLAorICAgICAgICAgICAgICAgICJXQVlM
QU5EX1NPQ0tFVCIsCiAgICAgICAgICAgICAgICAgIkRJU1BMQVkiLAogICAgICAgICAgICAgICAg
ICJMQU5HIiwKICAgICAgICAgICAgICAgICAiTlVNQkVSX09GX1BST0NFU1NPUlMiLApkaWZmIC0t
Z2l0IGEvVG9vbHMvZmxhdHBhay9vcmcud2Via2l0LkNvbW1vbk1vZHVsZXMueWFtbCBiL1Rvb2xz
L2ZsYXRwYWsvb3JnLndlYmtpdC5Db21tb25Nb2R1bGVzLnlhbWwKaW5kZXggODRhMzU0OTZiNzhh
ZWMyNTAzYmIxZTE3MzdkMDBkNDk4ZWQ4ZGZiMy4uZDFjOTkxYjllNmIwZjkyY2NhMmU2ZDU4NDFh
NzQ1YjE4NTY5M2I5NiAxMDA2NDQKLS0tIGEvVG9vbHMvZmxhdHBhay9vcmcud2Via2l0LkNvbW1v
bk1vZHVsZXMueWFtbAorKysgYi9Ub29scy9mbGF0cGFrL29yZy53ZWJraXQuQ29tbW9uTW9kdWxl
cy55YW1sCkBAIC0xMzMsNTcgKzEzMywzNiBAQAogICBzb3VyY2VzOgogICAgIC0gdHlwZTogZ2l0
CiAgICAgICB1cmw6IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0
cmVhbWVyLmdpdAotICAgICAgYnJhbmNoOiAxLjE0LjQKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAg
ICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLUFk
ZC1hLW5ldy1kZWZpbml0aW9uLWZvci11bnNwZWNpZmllZC1zeXN0LnBhdGNoCi0gICAgLSB0eXBl
OiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDIt
cHJvdGVjdGlvbi1GaXgtdGhlLXN0cmluZy10by1kZWZpbmUtdW5zcGVjaWZpZWQtc3lzdC5wYXRj
aAorICAgICAgYnJhbmNoOiAxLjE2LjAKICAgY29uZmlnLW9wdHM6Ci0gICAgLSAtRGRpc2FibGVf
Z3RrZG9jPXRydWUKKyAgICAtIC1EZ3RrX2RvYz1kaXNhYmxlZAorICAgIC0gLURpbnRyb3NwZWN0
aW9uPWRpc2FibGVkCisgICAgLSAtRGV4YW1wbGVzPWRpc2FibGVkCisgICAgLSAtRHRlc3RzPWRp
c2FibGVkCiAtIG5hbWU6IGdzdC1wbHVnaW5zLWJhc2UKICAgYnVpbGRzeXN0ZW06IG1lc29uCiAg
IHNvdXJjZXM6CiAgICAgLSB0eXBlOiBnaXQKICAgICAgIHVybDogaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYXNlLmdpdAotICAgICAgYnJhbmNo
OiAxLjE0LjQKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1iYXNlLTAwMDEtcGFyc2ViaW4tUG9zdC1TVFJFQU1fQ09MTEVDVElP
Ti1vbi1FVkVOVF9TVFJFQU1fQ09MTC5wYXRjaAorICAgICAgYnJhbmNoOiAxLjE2LjAKICAgY29u
ZmlnLW9wdHM6Ci0gICAgLSAtRGRpc2FibGVfZ3RrZG9jPXRydWUKKyAgICAtIC1EZ3RrX2RvYz1k
aXNhYmxlZAorICAgIC0gLURpbnRyb3NwZWN0aW9uPWRpc2FibGVkCisgICAgLSAtRGV4YW1wbGVz
PWRpc2FibGVkCisgICAgLSAtRHRlc3RzPWRpc2FibGVkCiAtIG5hbWU6IGdzdC1wbHVnaW5zLWdv
b2QKICAgYnVpbGRzeXN0ZW06IG1lc29uCiAgIHNvdXJjZXM6CiAgICAgLSB0eXBlOiBnaXQKICAg
ICAgIHVybDogaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1
Z2lucy1nb29kLmdpdAotICAgICAgYnJhbmNoOiAxLjE0LjQKLSAgICAtIHR5cGU6IHBhdGNoCi0g
ICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRk
ZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaAotICAgIC0g
dHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtMDAwMy1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1p
bmZvLWluLnBhdGNoCi0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVy
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRG8tbm90LXJ1bi10aGUtcHJl
ZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAg
ICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRkZW11
eC1Eby1ub3QtdW5yZWYtYS1OVUxMLXN0cmVhbV90YWdzLnBhdGNoCi0gICAgLSB0eXBlOiBwYXRj
aAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAz
LXF0ZGVtdXgtQ2xhcmlmeS1maWVsZC1uYW1lLWFib3V0LXN0cmVhbS1lbmNyeXB0aW9uLXMucGF0
Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLTAwMDEtcXRkZW11eC1EZXRlY3QtYW5kLWV4cG9zZS1DRUEtNjA4LTcw
OC1DbG9zZWQtQ2FwdGlvbi5wYXRjaAorICAgICAgYnJhbmNoOiAxLjE2LjAKICAgICAtIHR5cGU6
IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMDQtcXRkZW11eC1BZGQtaW5pdGlhbC1zdXBwb3J0LWZvci1BVjEtZGVtdXhpbmcucGF0Y2gK
LSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLTAwMDUtcXRkZW11eC1FeHRyYWN0LUFWMS1jb2RlY19kYXRhLWFuZC1wdXQt
aXQtaW4tdGhlLWNhcC5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dz
dHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LVJlY29nbml6ZS1t
b3JlLUFWMS1hdG9tcy5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dz
dHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdl
Yk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoCi0gICAgLSB0eXBlOiBwYXRj
aAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDEy
LW1hdHJvc2tkZW11eC1kby1ub3QtdXNlLU1hcEluZm8uZGF0YS1hZnRlci11bm1hcHBpbmcucGF0
Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLTAwMTMtQXZvaWQtd2FybmluZy13aGVuLXJlcG9ydGluZy1hYm91dC1k
ZWNyeXB0b3JzLnBhdGNoCi0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDE0LXB1bHNlLU1hcmstZGVmYXVsdC1kZXZp
Y2VzLWFzLWRlZmF1bHQucGF0Y2gKKyAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRjaGVzL2dz
dC1wbHVnaW5zLWdvb2Qtc2NhbGV0ZW1wby1BZHZlcnRpc2UtaW50ZXJsZWF2ZWQtbGF5b3V0LWlu
LWNhcHMtdGVtcC5wYXRjaAogICBjb25maWctb3B0czoKLSAgICAtIC1EZGlzYWJsZV9ndGtkb2M9
dHJ1ZQorICAgIC0gLURndGtfZG9jPWRpc2FibGVkCisgICAgLSAtRGludHJvc3BlY3Rpb249ZGlz
YWJsZWQKKyAgICAtIC1EZXhhbXBsZXM9ZGlzYWJsZWQKKyAgICAtIC1EZ3RrMz1kaXNhYmxlZAog
LSBuYW1lOiB4MjY0CiAgIGNvbmZpZy1vcHRzOgogICAgIC0gIi0tZW5hYmxlLXNoYXJlZCIKQEAg
LTIwMCwyNiArMTc5LDI0IEBACiAgIHNvdXJjZXM6CiAgICAgLSB0eXBlOiBnaXQKICAgICAgIHVy
bDogaHR0cHM6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdC1wbHVn
aW5zLXVnbHkKLSAgICAgIGJyYW5jaDogMS4xNC40CisgICAgICBicmFuY2g6IDEuMTYuMAogICBj
b25maWctb3B0czoKLSAgICAtIC1EZGlzYWJsZV9ndGtkb2M9dHJ1ZQorICAgIC0gLURndGtfZG9j
PWRpc2FibGVkCiAtIG5hbWU6IGdzdC1wbHVnaW5zLWJhZAogICBidWlsZHN5c3RlbTogbWVzb24K
ICAgc291cmNlczoKICAgICAtIHR5cGU6IGdpdAogICAgICAgdXJsOiBodHRwczovL2dpdGxhYi5m
cmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC5naXQKLSAgICAgIGJyYW5j
aDogMS4xNC40Ci0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtYW9tZW5jLUFkZC1zdXBwb3J0LWZvci0xMC0xMmJp
dC1kZWNvZGluZy5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJl
YW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWFvbWVuYy1IYW5kbGUtOC1iaXRfZGVw
dGgtaW1hZ2VzLXdpdGgtQU9NX0lNR19GTVRfSEkucGF0Y2gKKyAgICAgIGJyYW5jaDogMS4xNi4w
CiAgIGNvbmZpZy1vcHRzOgotICAgIC0gLURkaXNhYmxlX2d0a2RvYz10cnVlCisgICAgLSAtRGd0
a19kb2M9ZGlzYWJsZWQKKyAgICAtIC1EaW50cm9zcGVjdGlvbj1kaXNhYmxlZAorICAgIC0gLURl
eGFtcGxlcz1kaXNhYmxlZAogLSBuYW1lOiBmZm1wZWcKICAgc291cmNlczoKICAgICAtIHR5cGU6
IGFyY2hpdmUKLSAgICAgIHVybDogaHR0cHM6Ly9mZm1wZWcub3JnL3JlbGVhc2VzL2ZmbXBlZy0z
LjQuNS50YXIuZ3oKLSAgICAgIHNoYTI1NjogMThmODBjYzljYTMyMjEzNGVkNDBkMjVkNzQ4OWFm
OTU0ZmE1MTliNGU3ZTYyODliNzA4NGYxYjBhMWNkZjQ3MgorICAgICAgdXJsOiBodHRwczovL2Zm
bXBlZy5vcmcvcmVsZWFzZXMvZmZtcGVnLTQuMC40LnRhci5negorICAgICAgc2hhMjU2OiA4MGJi
Njg1YWJmY2RkYTdjOWI2YzljNWNhZjFkOGRiYjkyNzg1ODA1MGQ3Mzc3YzJiOGYzNDg4YzdlOGE5
YjdmCiAgIGNvbmZpZy1vcHRzOgogICAgIC0gLS1lbmFibGUtc3RhdGljCiAgICAgLSAtLWVuYWJs
ZS1waWMKQEAgLTI2NCwxNiArMjQxLDE2IEBACiAgIGJ1aWxkZGlyOiB0cnVlCiAgIHNvdXJjZXM6
CiAgICAgLSB0eXBlOiBhcmNoaXZlCi0gICAgICB1cmw6IGh0dHBzOi8vZ3N0cmVhbWVyLmZyZWVk
ZXNrdG9wLm9yZy9zcmMvZ3N0LWxpYmF2L2dzdC1saWJhdi0xLjE0LjQudGFyLnh6Ci0gICAgICBz
aGEyNTY6IGRmZDc4NTkxOTAxZGY3ODUzZWFiN2U1NmE4NmMzNGExYjAzNjM1ZGEwZDNkNTZiODlh
YTU3N2YxODk3ODY1ZGEKKyAgICAgIHVybDogaHR0cHM6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Au
b3JnL3NyYy9nc3QtbGliYXYvZ3N0LWxpYmF2LTEuMTYuMC50YXIueHoKKyAgICAgIHNoYTI1Njog
ZGZhYzExOTA0M2E5Y2ZkY2FjZDdhY2RlNzdmNjc0YWIxNzJjZjI1MzdiNTgxMmJlNTJmNDllOWNk
ZGM1M2Q5YQogICBjb25maWctb3B0czoKLSAgICAtIC1EZGlzYWJsZV9ndGtkb2M9dHJ1ZQorICAg
IC0gLURndGtfZG9jPWRpc2FibGVkCiAKIC0gbmFtZTogbGliZ2NyeXB0ICMgU3BlZWR1cCBsaWJn
Y3J5cHQKICAgc291cmNlczoKICAgICAtIHR5cGU6IGdpdAogICAgICAgdXJsOiBodHRwczovL2Rl
di5nbnVwZy5vcmcvc291cmNlL2xpYmdjcnlwdC5naXQKLSAgICAgIGJyYW5jaDogbGliZ2NyeXB0
LTEuNy42CisgICAgICBicmFuY2g6IGxpYmdjcnlwdC0xLjguNAogICAgIC0gdHlwZTogcGF0Y2gK
ICAgICAgIHBhdGg6IHBhdGNoZXMvbGliZ2NyeXB0LTAwMDEtVXNlLXBrZy1jb25maWctdG8tZGV0
ZWN0LWdwZy1lcnJvci5wYXRjaAogICAgIC0gdHlwZTogcGF0Y2gKQEAgLTM0NCw0ICszMjEsNCBA
QAogICAtIHR5cGU6IGFyY2hpdmUKICAgICB1cmw6IGh0dHA6Ly9naXRodWIuY29tL3VjbG91dmFp
bi9vcGVuanBlZy9hcmNoaXZlL3YyLjMuMC50YXIuZ3oKICAgICBzaGEyNTY6IDNkYzc4N2MxYmI2
MDIzYmE4NDZjMmEwZDliMWY2ZTE3OWYxY2QyNTUxNzJiZGU5ZWI3NWIwMWYxZTZjN2Q3MWEKLSAg
YnVpbGRzeXN0ZW06IGNtYWtlLW5pbmphClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICBi
dWlsZHN5c3RlbTogY21ha2UtbmluamEKZGlmZiAtLWdpdCBhL1Rvb2xzL2ZsYXRwYWsvb3JnLndl
YmtpdC5XZWJLaXQueWFtbCBiL1Rvb2xzL2ZsYXRwYWsvb3JnLndlYmtpdC5XZWJLaXQueWFtbApp
bmRleCAxNjdlNDNiYzY3MDJhOGJmMjI0YmFkZDBkZmNlNWY4MTBmYTk3NDcwLi5iNmQ2MTI2NjBk
OGEyMDQ1ZGEzMTJmZGIwOTFiNzhlNThhODA3ZTY5IDEwMDY0NAotLS0gYS9Ub29scy9mbGF0cGFr
L29yZy53ZWJraXQuV2ViS2l0LnlhbWwKKysrIGIvVG9vbHMvZmxhdHBhay9vcmcud2Via2l0Lldl
YktpdC55YW1sCkBAIC0xLDkgKzEsOSBAQAogYXBwLWlkOiAlKFBPUlROQU1FKXMKIHJ1bnRpbWU6
IG9yZy5nbm9tZS5QbGF0Zm9ybQotcnVudGltZS12ZXJzaW9uOiAiMy4yOCIKK3J1bnRpbWUtdmVy
c2lvbjogIjMuMzIiCiAjIENvbnRyb2wgdGhlIGV4YWN0IHZlcnNpb24gb2YgdGhlIFNkay9SdW50
aW1lIHRoYXQgaXMgYmVpbmcgdXNlZC4KLXNkay1oYXNoOiAzMWFmMGMxMGY4ZTQyMTUxMjIwYTcy
OGI1MmRmMGE1YzM3ZWE4ZTRiMDMzODI1ZjQwYzMwZTQ0ZDExY2IzMWQxCi1ydW50aW1lLWhhc2g6
IDZkMWQwZWJiZDcyNDA0YzYxZDEwOTMwN2ViMjI0MDU0MmI3YWQ4MjYwOGJjNjQyOGJiYTZmM2Vl
YmNmYzhiZjMKK3Nkay1oYXNoOiBiM2I5YjFkMWIxOWVhMmJiNzIwMTk0MjhjYTc1YzdhNzg0NTVl
OTg2YTBmOTFkZGRmNmEyOWM5Mjk5MGNjNWE3CitydW50aW1lLWhhc2g6IDdjOWQ1NTkyZDgwNWQw
YjdjMjEyMTkwZmQ4MTE4ZTRjNzhjYjhlZDhmODFlNjg3ODU4OTcyNjcwZGFjY2ZmNzYKIHNkazog
b3JnLmdub21lLlNkawogY29tbWFuZDogJShDT01NQU5EKXMKIGZpbmlzaC1hcmdzOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2dzdHJlYW1lci9q
aGJ1aWxkLm1vZHVsZXMKaW5kZXggOTZjZmYzMTM0N2JlYTBkZDQ2MTlhNjZlZWZlMWM2YWYwMjM5
MTZiMS4uNjJjYTFlMjIxNmJlN2FmZjU1NTdmNGJjMjU1MTU2OTgwNTY5YWZkMiAxMDA2NDQKLS0t
IGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9nc3RyZWFtZXIv
amhidWlsZC5tb2R1bGVzCkBAIC0yNCwxMSArMjQsMTEgQEAKICAgPHJlcG9zaXRvcnkgdHlwZT0i
Z2l0IiBuYW1lPSJhb21lZGlhLmdvb2dsZXNvdXJjZS5jb20iCiAgICAgICBocmVmPSJodHRwczov
L2FvbWVkaWEuZ29vZ2xlc291cmNlLmNvbS8iLz4KIAotICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KLSAg
ICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMC40
LjI4IgorICA8bWVzb24gaWQ9Im9yYyIgbWVzb25hcmdzPSItRGd0a19kb2M9ZGlzYWJsZWQiPgor
ICAgIDxicmFuY2ggbW9kdWxlPSJvcmMvb3JjLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIw
LjQuMjkiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJz
aGEyNTY6YmZjZDdjNjU2M2IwNTY3MjM4NmM0ZWVkZmM0YzBkNGEwYTEyYjRiNDc3NWI3NGVjNmRl
Yjg4ZmMyYmNkODNjZSIvPgotICA8L2F1dG90b29scz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1
Njo0Zjg5MDFmOTE0NGI1ZWMxN2RmZmRiMzM1NDhiNWY0YzdmODA0OWIwZDEwMjNiZTM0NjJjZGQ2
NGVjNWEzYWIyIi8+CisgIDwvbWVzb24+CiAKICAgPGF1dG90b29scyBpZD0ib3BlbmgyNjQiIHN1
cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIgYXV0b2dlbi1zaD0icHNldWRvLWNvbmZpZ3Vy
ZSI+CiAgICAgPGJyYW5jaCBtb2R1bGU9ImNpc2NvL29wZW5oMjY0L2FyY2hpdmUvdiR7dmVyc2lv
bn0udGFyLmd6IiB2ZXJzaW9uPSIxLjUuMCIKQEAgLTQ3LDkxICs0Nyw2OCBAQAogICAgICAgICAg
ICAgcmV2aXNpb249Im1hc3RlciIgdGFnPSJjZGIwODNlODRhNzFkNmQzMTE2M2E0ZjY0ZjE4ZGMx
MzI4ZmQ3ODJjIiAvPgogICA8L2NtYWtlPgogCi0gIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MgLS1k
aXNhYmxlLWludHJvc3BlY3Rpb24gLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS10ZXN0cyI+
CisgIDxtZXNvbiBpZD0iZ3N0cmVhbWVyIiBtZXNvbmFyZ3M9Ii1EZ3RrX2RvYz1kaXNhYmxlZCAt
RGludHJvc3BlY3Rpb249ZGlzYWJsZWQgLURleGFtcGxlcz1kaXNhYmxlZCAtRHRlc3RzPWRpc2Fi
bGVkIj4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJvcmMiLz4KICAg
ICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIGhhc2g9InNoYTI1NjpmOTRmNjY5NmM1ZjA1
YTNiM2E5MTgzZTM5YzVmNWMwYjc3OWY3NWEwNGMwZWZhNDk3ZTc5MjBhZmE5ODVmZmM3IiBtb2R1
bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1l
ciIgdmVyc2lvbj0iMS4xNC40Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItMDAwMS1w
cm90ZWN0aW9uLUFkZC1hLW5ldy1kZWZpbml0aW9uLWZvci11bnNwZWNpZmllZC1zeXN0LnBhdGNo
IiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMDVhM2RhMzQ3YjNiOGRiYWY0NzA3OTNkYzNm
OWViYjIzZTZmYzY3ZiAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItMDAwMi1wcm90
ZWN0aW9uLUZpeC10aGUtc3RyaW5nLXRvLWRlZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoIiBz
dHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgYjg5YjE4MDJkZjQ0ODI5YTBjMDM0ZGI1ODA3YmM4
OTNhZDNjNzc3NCAtLT4KKyAgICA8YnJhbmNoIGhhc2g9InNoYTI1NjowZThlMmY3MTE4YmU0Mzdj
YmE4NzkzNTM5NzBjZjgzYzJhY2NlZDgyNWVjYjkyNzViYTA1ZDkxODZlZjA3YzAwIiBtb2R1bGU9
ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIg
dmVyc2lvbj0iMS4xNi4wIj4KICAgICA8L2JyYW5jaD4KLSAgPC9hdXRvdG9vbHM+CisgIDwvbWVz
b24+CiAKLSAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFzZSIKLSAgICAgICAgICAgICBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiCi0gICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJs
ZS1leGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiI+Cisg
IDxtZXNvbiBpZD0iZ3N0LXBsdWdpbnMtYmFzZSIgbWVzb25hcmdzPSItRGd0a19kb2M9ZGlzYWJs
ZWQgLURpbnRyb3NwZWN0aW9uPWRpc2FibGVkIC1EZXhhbXBsZXM9ZGlzYWJsZWQiPgogICAgIDxp
ZiBjb25kaXRpb24tc2V0PSJ3cGUiPgotICAgICAgPGF1dG9nZW5hcmdzIHZhbHVlPSItLWRpc2Fi
bGUtcGFuZ28iLz4KKyAgICAgIDxhdXRvZ2VuYXJncyB2YWx1ZT0iLURwYW5nbz1kaXNhYmxlZCIv
PgogICAgIDwvaWY+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0
cmVhbWVyIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6
Y2E2MTM5NDkwZTQ4ODYzZTc3MDZkODcwZmY0ZThhYzlmNDE3YjU2ZjNiOWU0YjNjZTQ5MGMxM2Iw
OWE3NzQ2MSIgbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJz
aW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIgdmVyc2lvbj0iMS4xNC40IiA+Ci0gICAgICA8
cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3QtU1RSRUFNX0NP
TExFQ1RJT04tb24tRVZFTlRfU1RSRUFNX0NPTEwucGF0Y2giIHN0cmlwPSIxIi8+IDwhLS0gTWVy
Z2VkIGFzIDg5ZDBlOWNjOTJhODZhYTAyMjdlZTg3NDA2NzM3YjZkMzE2NzBhZWEgLS0+CisgICAg
PGJyYW5jaCBoYXNoPSJzaGEyNTY6NDA5M2FhN2I1MWUyOGZiMjRkZmQ2MDM4OTNmZWFkOGQxYjc3
ODJmMDg4YjA1ZWQwZjIyYTIxZWYxNzZmYjVhZSIgbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dz
dC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIgdmVyc2lv
bj0iMS4xNi4wIiA+CiAgICAgPC9icmFuY2g+Ci0gIDwvYXV0b3Rvb2xzPgorICA8L21lc29uPgog
Ci0gIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3Vy
ZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyAtLWRp
c2FibGUtaW50cm9zcGVjdGlvbiI+CisgIDxtZXNvbiBpZD0iZ3N0LXBsdWdpbnMtZ29vZCIgbWVz
b25hcmdzPSItRGd0a19kb2M9ZGlzYWJsZWQgLURpbnRyb3NwZWN0aW9uPWRpc2FibGVkIC1EZXhh
bXBsZXM9ZGlzYWJsZWQgLURndGszPWRpc2FibGVkIj4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9
ImxpYnZweCIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgogCi0gICAgPGJyYW5jaCBoYXNoPSJzaGEy
NTY6NWY4YjU1MzI2MGNiMGFhYzU2ODkwMDUzZDg1MTFkYjE1MjhkNTNjYWUxMGYwMjg3Y2ZjZTJj
YjJhY2M3MDk3OSIgbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2
ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIgdmVyc2lvbj0iMS4xNC40Ij4KLSAgICAg
IDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDItcXRkZW11eC1hZGQtY29udGV4dC1m
b3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2Vk
IGFzIGVlNGI0NWRhMjRjYjc0NjViNDE2YzIzMDU5N2Y4ZWZjN2IyYzQ1Y2IgLS0+Ci0gICAgICA8
cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZl
cnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1l
cmdlZCBhcyA4NDQ0MjNmZjk5ZTI4MWZjODMxMzAzYjkyODYxZWQ0M2NlNWMxNTE4IC0tPgotICAg
ICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4LURvLW5vdC1ydW4t
dGhlLXByZWZlcnJlZC1kZWNyeXB0b3ItY29udGV4dC1xLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEt
LSBNZXJnZWQgYXMgM2UwNjM3MDNiM2E1MWI4YWFhN2Y3NWYzNmM0NjYwYzU4M2E2MGU5MyAtLT4K
LSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDItcXRkZW11eC1Eby1ub3Qt
dW5yZWYtYS1OVUxMLXN0cmVhbV90YWdzLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQg
YXMgNDNhNTQwYjFjZDlmMTYyZDNkYWU1ZDUwZTM2NzAzZGZhZjU1OGEzZSAtLT4KLSAgICAgIDxw
YXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRkZW11eC1DbGFyaWZ5LWZpZWxkLW5h
bWUtYWJvdXQtc3RyZWFtLWVuY3J5cHRpb24tcy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVy
Z2VkIGFzIDBmYmRlMmEwNzkyOGJhNzliN2E0ZGRiNDU4NWY2YjFkZTM2YTc0YmIgLS0+Ci0gICAg
ICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRGV0ZWN0LWFuZC1l
eHBvc2UtQ0VBLTYwOC03MDgtQ2xvc2VkLUNhcHRpb24ucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0t
IE1lcmdlZCBhcyAyODY5ZWRlZWEyOWEwMjIwMDdhOTlkYjJkZjQxYjVhN2UxYTMwMjVjICh0byBi
ZSBzaGlwcGVkIGluIDEuMTYpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdv
b2QtMDAwNC1xdGRlbXV4LUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLUFWMS1kZW11eGluZy5wYXRj
aCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIGI2ZThjNjMyM2UwMTI0OWJiM2FjNGYxMjFj
M2FkYzNlYThkOTI0YmYgKHRvIGJlIHNoaXBwZWQgaW4gMS4xNikgLS0+Ci0gICAgICA8cGF0Y2gg
ZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXF0ZGVtdXgtRXh0cmFjdC1BVjEtY29kZWNfZGF0
YS1hbmQtcHV0LWl0LWluLXRoZS1jYXAucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBh
cyA0M2VlNDA1NWMzZDAzYTlmOTlhY2RmM2MwNWY0NWUxNTQ4OTllZGVmICh0byBiZSBzaGlwcGVk
IGluIDEuMTYpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwNi1x
dGRlbXV4LVJlY29nbml6ZS1tb3JlLUFWMS1hdG9tcy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0g
TWVyZ2VkIGFzIGUwN2NlOWFmYjRlZGIyZWE4OTg3NjNjN2VhMTFmMGFmMjcwNDEwNGUgKHRvIGJl
IHNoaXBwZWQgaW4gMS4xNikgLS0+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29v
ZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWlu
LW0ucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyAwNDMyODI2OTUwZDRkODBmZTJi
NTBmZmQzNzU3ZGMwODE1NWRlOWUzIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5z
LWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5t
YXBwaW5nLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgZGVmYWUzNTAzNTg2NjBl
NTU3Yzc0ZTQxYTRmZThhOGJiMzI3ZTljOCAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1
Z2lucy1nb29kLTAwMTMtQXZvaWQtd2FybmluZy13aGVuLXJlcG9ydGluZy1hYm91dC1kZWNyeXB0
b3JzLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgNTY2NjkyMDVlYjJkMDg4NzU5
NjU3NGVhYmI3ODA2YjMxYzViYTVjZiAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lu
cy1nb29kLTAwMTQtcHVsc2UtTWFyay1kZWZhdWx0LWRldmljZXMtYXMtZGVmYXVsdC5wYXRjaCIg
c3RyaXA9IjEiIC8+CisgICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6NjU0YWRlZjMzMzgwZDYwNDEx
MmY3MDJjMjkyNzU3NGNmYzI4NWUzMTMwN2I3OWU1ODQxMTM4NTg4MzhiYjBmZCIgbW9kdWxlPSJn
c3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89
ImdzdHJlYW1lciIgdmVyc2lvbj0iMS4xNi4wIj4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1
Z2lucy1nb29kLXNjYWxldGVtcG8tQWR2ZXJ0aXNlLWludGVybGVhdmVkLWxheW91dC1pbi1jYXBz
LXRlbXAucGF0Y2giIHN0cmlwPSIxIi8+IDwhLS0gTWVyZ2VkIHVwc3RyZWFtLCBzaG91bGQgYmUg
c2hpcHBlZCBpbiAxLjE2LjEgLS0+CiAgICAgPC9icmFuY2g+Ci0gIDwvYXV0b3Rvb2xzPgorICA8
L21lc29uPgogCi0gIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhZCIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGst
ZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIC0tZGlzYWJsZS1ndGszIj4KKyAgPG1lc29uIGlk
PSJnc3QtcGx1Z2lucy1iYWQiIG1lc29uYXJncz0iLURndGtfZG9jPWRpc2FibGVkIC1EaW50cm9z
cGVjdGlvbj1kaXNhYmxlZCAtRGV4YW1wbGVzPWRpc2FibGVkIj4KICAgICA8ZGVwZW5kZW5jaWVz
PgogICAgICAgPGRlcCBwYWNrYWdlPSJncmFwaGVuZSIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJn
c3QtcGx1Z2lucy1iYXNlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9wZW5oMjY0Ii8+CiAgICAg
ICA8ZGVwIHBhY2thZ2U9ImFvbSIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2gg
aGFzaD0ic2hhMjU2OjkxMGI0ZTBlMmU4OTdlOGI2ZDA2NzY3YWYxNzc5ZDcwMDU3YzMwOWY2NzI5
MmY0ODVmZjk4OGQwODdhYTBkZTUiIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5z
LWJhZC0ke3ZlcnNpb259LnRhci54eiIgcmVwbz0iZ3N0cmVhbWVyIiB2ZXJzaW9uPSIxLjE0LjQi
PgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWFvbWVuYy1BZGQtc3Vw
cG9ydC1mb3ItMTAtMTJiaXQtZGVjb2RpbmcucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdl
ZCBhcyAxZDk2ZDllODQyZGQ3MTg4MmY1NGRkZmZiZjZjMWNjZWNkYjAzZmNkICh0byBiZSBzaGlw
cGVkIGluIDEuMTYpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAy
LWFvbWVuYy1IYW5kbGUtOC1iaXRfZGVwdGgtaW1hZ2VzLXdpdGgtQU9NX0lNR19GTVRfSEkucGF0
Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyAxMGEzN2UwYzM1MjhhNzIxMDg0NDQxYzM3
YWYzN2JhZWYwOTA4ZGRjICh0byBiZSBzaGlwcGVkIGluIDEuMTYpIC0tPgotICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAzLWZka2FhY2VuYy1SZW1vdmUtTU9ERV8yXzEucGF0
Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyBmNGZkYjk3NzBjNzYxMTNmMzg1MTUyNDVm
ZWNjNWYxMWIzYWNlMjBkICh0byBiZSBzaGlwcGVkIGluIDEuMTQuNSkgLS0+Ci0gICAgICA8cGF0
Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtYmFkLTAwMDQtZmRrYWFjZGVjLVVzZS1XQVYtY2hhbm5lbC1t
YXBwaW5nLWluc3RlYWQtb2YtaW50ZXJsZWF2ZS1zZXR0aW5nLnBhdGNoIiBzdHJpcD0iMSIgLz4g
PCEtLSBNZXJnZWQgYXMgMTlkMzRmNmI1ZTE2MzNkNWVjNGJiMjgzMmM1ODQ3MGYwYzgyOWNhYiAo
dG8gYmUgc2hpcHBlZCBpbiAxLjE0LjUpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVn
aW5zLWJhZC0wMDA1LW1zc2RlbXV4LWZpeC1wcm90ZWN0aW9uLWRhdGEtZG91YmxlLWZyZWUucGF0
Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyA3YzEzNmJiYjVlZTM0ZGZjMWEwYjAwM2Y1
ZGIzNTFmMTk4NjEwNmEwICh0byBiZSBzaGlwcGVkIGluIDEuMTQuNSkgLS0+CisgICAgPGJyYW5j
aCBoYXNoPSJzaGEyNTY6MjIxMzlkZTM1NjI2YWRhNjA5MGJkZmEzNDIzYjI3YjdmYzE1YTAxOTgz
MzFkMjVjOTVlNmIxMmNiMTA3MmIwNSIgbW9kdWxlPSJnc3QtcGx1Z2lucy1iYWQvZ3N0LXBsdWdp
bnMtYmFkLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTYu
MCI+CiAgICAgPC9icmFuY2g+Ci0gIDwvYXV0b3Rvb2xzPgorICA8L21lc29uPgogCi0gIDxhdXRv
dG9vbHMgaWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0i
LS13aXRoLWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1n
dGstZG9jIj4KKyAgPG1lc29uIGlkPSJnc3QtbGliYXYiIG1lc29uYXJncz0iLURndGtfZG9jPWRp
c2FibGVkIj4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1
Z2lucy1iYXNlIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBoYXNoPSJzaGEy
NTY6ZGZkNzg1OTE5MDFkZjc4NTNlYWI3ZTU2YTg2YzM0YTFiMDM2MzVkYTBkM2Q1NmI4OWFhNTc3
ZjE4OTc4NjVkYSIgbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6
IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTQuNCIgLz4KLSAgPC9hdXRvdG9vbHM+Cisg
ICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6ZGZhYzExOTA0M2E5Y2ZkY2FjZDdhY2RlNzdmNjc0YWIx
NzJjZjI1MzdiNTgxMmJlNTJmNDllOWNkZGM1M2Q5YSIgbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxp
YmF2LSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTYuMCIg
Lz4KKyAgPC9tZXNvbj4KIAotICA8YXV0b3Rvb2xzIGlkPSJnc3RyZWFtZXItdmFhcGkiIGF1dG9n
ZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2Fi
bGUtZ3RrLWRvYyI+Ci0gICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6Y2UxOGRiZmU5NjFjNmE4ZDMx
MjcwMjMxNjg2MDc1NTg2YmY3YTdkZjYyYjc3OGM4ZTdmNWVjMTQ4MjUxZDBhMyIgbW9kdWxlPSJn
c3RyZWFtZXItdmFhcGkvZ3N0cmVhbWVyLXZhYXBpLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJn
c3RyZWFtZXIiIHZlcnNpb249IjEuMTQuNCIgLz4KKyAgPG1lc29uIGlkPSJnc3RyZWFtZXItdmFh
cGkiIG1lc29uYXJncz0iLURndGtfZG9jPWRpc2FibGVkIC1EZXhhbXBsZXM9ZGlzYWJsZWQiPgor
ICAgIDxicmFuY2ggaGFzaD0ic2hhMjU2OjRlN2ZjZTYyNmVlMDU5MGRjYTc0YjVhODM0MWQyNWJh
Yzc2MzA3OTQ1MTMxYTk3MGI0MTRmYzU4OTVmNTE3MWYiIG1vZHVsZT0iZ3N0cmVhbWVyLXZhYXBp
L2dzdHJlYW1lci12YWFwaS0ke3ZlcnNpb259LnRhci54eiIgcmVwbz0iZ3N0cmVhbWVyIiB2ZXJz
aW9uPSIxLjE2LjAiIC8+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0i
Z3N0cmVhbWVyIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KICAg
ICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFkIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9
ImxpYnZhIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICA8L2F1dG90b29scz4KLQotICAgPGF1
dG90b29scyBpZD0ibGlidmEiIGF1dG9nZW5hcmdzPSItLWVuYWJsZS12YS1tZXNzYWdpbmc9bm8i
PgotICAgICA8YnJhbmNoIG1vZHVsZT0iaW50ZWwvbGlidmEvcmVsZWFzZXMvZG93bmxvYWQvJHt2
ZXJzaW9ufS9saWJ2YS0ke3ZlcnNpb259LnRhci5iejIiIHZlcnNpb249IjIuMS4wIgotICAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjpmM2ZhOTUzYTExZDMyMTBjM2E0ZWU3OTAzMWFiZGJlMDg2M2Q1
Y2UxM2Q5YjNmOTNmMzE1ZjFlZWM2MGE0YjBmIgotICAgICAgICAgICAgY2hlY2tvdXRkaXI9Imxp
YnZhLSR7dmVyc2lvbn0iIHJlcG89ImdpdGh1Yi10YXJiYWxsIi8+Ci0gICA8L2F1dG90b29scz4K
KyAgIDwvbWVzb24+CiAKKyAgPGF1dG90b29scyBpZD0ibGlidmEiIGF1dG9nZW5hcmdzPSItLWVu
YWJsZS12YS1tZXNzYWdpbmc9bm8iPgorICAgIDxicmFuY2ggbW9kdWxlPSJpbnRlbC9saWJ2YS9y
ZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259L2xpYnZhLSR7dmVyc2lvbn0udGFyLmJ6MiIgdmVy
c2lvbj0iMi40LjAiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OTkyNjMwNTZjMjE1OTNhMjZm
MmVjZTgxMmFlZTZmZTYwMTQyYjQ5ZTZjZDQ2Y2IzM2M4ZGRkZjE4ZmMxOTM5MSIKKyAgICAgICAg
ICAgY2hlY2tvdXRkaXI9ImxpYnZhLSR7dmVyc2lvbn0iIHJlcG89ImdpdGh1Yi10YXJiYWxsIi8+
CisgIDwvYXV0b3Rvb2xzPgogCiA8L21vZHVsZXNldD4KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJl
YW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWFvbWVuYy1BZGQtc3VwcG9ydC1mb3It
MTAtMTJiaXQtZGVjb2RpbmcucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1iYWQtMDAwMS1hb21lbmMtQWRkLXN1cHBvcnQtZm9yLTEwLTEyYml0LWRlY29kaW5nLnBh
dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjdhMjI1YjAyMzRmMTRlNjUzNDI5
OWM5NjFjMWE1NDI3NzA5NzBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWFv
bWVuYy1BZGQtc3VwcG9ydC1mb3ItMTAtMTJiaXQtZGVjb2RpbmcucGF0Y2gKKysrIC9kZXYvbnVs
bApAQCAtMSwxNjUgKzAsMCBAQAotRnJvbSAxZDk2ZDllODQyZGQ3MTg4MmY1NGRkZmZiZjZjMWNj
ZWNkYjAzZmNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2Vhbi1EZXIgPHNlYW5A
c2lvYnVkLmNvbT4KLURhdGU6IFdlZCwgMjcgSnVuIDIwMTggMDk6NDQ6MDAgKzAwMDAKLVN1Ympl
Y3Q6IFtQQVRDSF0gYW9tZW5jOiBBZGQgc3VwcG9ydCBmb3IgMTAvMTJiaXQgZGVjb2RpbmcKLQot
aHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTY3NAotLS0tCi0g
ZXh0L2FvbS9nc3RhdjFkZWMuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxl
dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2V4dC9hb20vZ3N0YXYxZGVjLmMgYi9leHQvYW9tL2dz
dGF2MWRlYy5jCi1pbmRleCBkMzMxMThlNjQuLjIzYjE4ZjQ0YyAxMDA2NDQKLS0tLSBhL2V4dC9h
b20vZ3N0YXYxZGVjLmMKLSsrKyBiL2V4dC9hb20vZ3N0YXYxZGVjLmMKLUBAIC01MiwxNSArNTIs
MjYgQEAgc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIGdzdF9hdjFfZGVjX3NyY19wYWRfdGVt
cGxhdGUgPQotIEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFICgic3JjIiwKLSAgICAgR1NUX1BBRF9T
UkMsCi0gICAgIEdTVF9QQURfQUxXQVlTLAotLSAgICBHU1RfU1RBVElDX0NBUFMgKCJ2aWRlby94
LXJhdywgIgotLSAgICAgICAgImZvcm1hdCA9IChzdHJpbmcpIFwiSTQyMFwiLCAiCi0tICAgICAg
ICAiZnJhbWVyYXRlID0gKGZyYWN0aW9uKSBbMCwgTUFYXSwgIgotLSAgICAgICAgIndpZHRoID0g
KGludCkgWyA0LCBNQVggXSwgIiAiaGVpZ2h0ID0gKGludCkgWyA0LCBNQVggXSIpCi0rICAgIEdT
VF9TVEFUSUNfQ0FQUyAoR1NUX1ZJREVPX0NBUFNfTUFLRSAoInsgSTQyMCwgWVYxMiwgWTQyQiwg
WTQ0NCIKLSsjaWYgR19CWVRFX09SREVSID09IEdfTElUVExFX0VORElBTgotKyAgICAgICAgICAg
ICIsIEk0MjBfMTBMRSwgSTQyMF8xMkxFLCBJNDIyXzEwTEUsIEk0MjJfMTJMRSwgWTQ0NF8xMExF
LCBZNDQ0XzEyTEUiCi0rI2Vsc2UKLSsgICAgICAgICAgICAiLCBJNDIwXzEwQkUsIEk0MjBfMTJC
RSwgSTQyMl8xMEJFLCBJNDIyXzEyQkUsIFk0NDRfMTBCRSwgWTQ0NF8xMkJFIgotKyNlbmRpZgot
KyAgICAgICAgICAgICIgfSIpKQotICAgICApOwotIAotIEdTVF9ERUJVR19DQVRFR09SWV9TVEFU
SUMgKGF2MV9kZWNfZGVidWcpOwotICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGF2MV9kZWNfZGVi
dWcKLSAKLSsjZGVmaW5lIEdTVF9WSURFT19GT1JNQVRfV0lUSF9FTkRJQU4oZm10LGVuZGlhbikg
R1NUX1ZJREVPX0ZPUk1BVF8jI2ZtdCMjZW5kaWFuCi0rCi0rI2lmIEdfQllURV9PUkRFUiA9PSBH
X0xJVFRMRV9FTkRJQU4KLSsjZGVmaW5lIEFPTV9GTVRfVE9fR1NUKGZtdCkgR1NUX1ZJREVPX0ZP
Uk1BVF9XSVRIX0VORElBTihmbXQsTEUpCi0rI2Vsc2UKLSsjZGVmaW5lIEFPTV9GTVRfVE9fR1NU
KGZtdCkgR1NUX1ZJREVPX0ZPUk1BVF9XSVRIX0VORElBTihmbXQsQkUpCi0rI2VuZGlmCi0rCi0g
c3RhdGljIHZvaWQgZ3N0X2F2MV9kZWNfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBn
dWludCBwcm9wX2lkLAotICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBz
cGVjKTsKLSBzdGF0aWMgdm9pZCBnc3RfYXYxX2RlY19nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBv
YmplY3QsIGd1aW50IHByb3BfaWQsCi1AQCAtNzksNiArOTAsOCBAQCBzdGF0aWMgdm9pZCBnc3Rf
YXYxX2RlY19pbWFnZV90b19idWZmZXIgKEdzdEFWMURlYyAqIGRlYywKLSAgICAgY29uc3QgYW9t
X2ltYWdlX3QgKiBpbWcsIEdzdEJ1ZmZlciAqIGJ1ZmZlcik7Ci0gc3RhdGljIEdzdEZsb3dSZXR1
cm4gZ3N0X2F2MV9kZWNfb3Blbl9jb2RlYyAoR3N0QVYxRGVjICogYXYxZGVjLAotICAgICBHc3RW
aWRlb0NvZGVjRnJhbWUgKiBmcmFtZSk7Ci0rc3RhdGljIGdib29sZWFuIGdzdF9hdjFfZGVjX2dl
dF92YWxpZF9mb3JtYXQgKEdzdEFWMURlYyAqIGRlYywKLSsgICAgY29uc3QgYW9tX2ltYWdlX3Qg
KiBpbWcsIEdzdFZpZGVvRm9ybWF0ICogZm10KTsKLSAKLSAjZGVmaW5lIGdzdF9hdjFfZGVjX3Bh
cmVudF9jbGFzcyBwYXJlbnRfY2xhc3MKLSBHX0RFRklORV9UWVBFIChHc3RBVjFEZWMsIGdzdF9h
djFfZGVjLCBHU1RfVFlQRV9WSURFT19ERUNPREVSKTsKLUBAIC0zMDksNiArMzIyLDgxIEBAIGdz
dF9hdjFfZGVjX2ltYWdlX3RvX2J1ZmZlciAoR3N0QVYxRGVjICogZGVjLCBjb25zdCBhb21faW1h
Z2VfdCAqIGltZywKLSAgIGdzdF92aWRlb19mcmFtZV91bm1hcCAoJmZyYW1lKTsKLSB9Ci0gCi0r
Z2Jvb2xlYW4KLStnc3RfYXYxX2RlY19nZXRfdmFsaWRfZm9ybWF0IChHc3RBVjFEZWMgKiBkZWMs
IGNvbnN0IGFvbV9pbWFnZV90ICogaW1nLAotKyAgICBHc3RWaWRlb0Zvcm1hdCAqIGZtdCkKLSt7
Ci0rICBzd2l0Y2ggKGltZy0+Zm10KSB7Ci0rICAgIGNhc2UgQU9NX0lNR19GTVRfSTQyMDoKLSsg
ICAgY2FzZSBBT01fSU1HX0ZNVF9JNDIwMTY6Ci0rICAgICAgaWYgKGltZy0+Yml0X2RlcHRoID09
IDgpIHsKLSsgICAgICAgICpmbXQgPSBpbWctPm1vbm9jaHJvbWUgPyBHU1RfVklERU9fRk9STUFU
X0dSQVk4IDogR1NUX1ZJREVPX0ZPUk1BVF9JNDIwOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0r
ICAgICAgfSBlbHNlIGlmIChpbWctPmJpdF9kZXB0aCA9PSAxMCkgewotKyAgICAgICAgKmZtdCA9
IEFPTV9GTVRfVE9fR1NUIChJNDIwXzEwKTsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICAg
IH0gZWxzZSBpZiAoaW1nLT5iaXRfZGVwdGggPT0gMTIpIHsKLSsgICAgICAgICpmbXQgPSBBT01f
Rk1UX1RPX0dTVCAoSTQyMF8xMik7Ci0rICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICB9Ci0r
Ci0rICAgICAgR1NUX0ZJWE1FX09CSkVDVCAoZGVjLAotKyAgICAgICAgICAiUGxlYXNlIGFkZCBh
IDQ6MjowIHBsYW5hciAldSBiaXQgZGVwdGggZnJhbWUgZm9ybWF0IiwKLSsgICAgICAgICAgaW1n
LT5iaXRfZGVwdGgpOwotKyAgICAgIEdTVF9FTEVNRU5UX1dBUk5JTkcgKGRlYywgU1RSRUFNLCBO
T1RfSU1QTEVNRU5URUQsIChOVUxMKSwKLSsgICAgICAgICAgKCJVbnN1cHBvcnRlZCBmcmFtZSBm
b3JtYXQgLSA0OjI6MCBwbGFuYXIgJXUgYml0IGRlcHRoIiwKLSsgICAgICAgICAgICAgIGltZy0+
Yml0X2RlcHRoKSk7Ci0rICAgICAgcmV0dXJuIEZBTFNFOwotKwotKyAgICBjYXNlIEFPTV9JTUdf
Rk1UX0k0MjI6Ci0rICAgIGNhc2UgQU9NX0lNR19GTVRfSTQyMjE2OgotKyAgICAgIGlmIChpbWct
PmJpdF9kZXB0aCA9PSA4KSB7Ci0rICAgICAgICAqZm10ID0gR1NUX1ZJREVPX0ZPUk1BVF9ZNDJC
OwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgICAgfSBlbHNlIGlmIChpbWctPmJpdF9kZXB0
aCA9PSAxMCkgewotKyAgICAgICAgKmZtdCA9IEFPTV9GTVRfVE9fR1NUIChJNDIyXzEwKTsKLSsg
ICAgICAgIHJldHVybiBUUlVFOwotKyAgICAgIH0gZWxzZSBpZiAoaW1nLT5iaXRfZGVwdGggPT0g
MTIpIHsKLSsgICAgICAgICpmbXQgPSBBT01fRk1UX1RPX0dTVCAoSTQyMl8xMik7Ci0rICAgICAg
ICByZXR1cm4gVFJVRTsKLSsgICAgICB9Ci0rICAgICAgR1NUX0ZJWE1FX09CSkVDVCAoZGVjLAot
KyAgICAgICAgICAiUGxlYXNlIGFkZCBhIDQ6MjoyIHBsYW5hciAldSBiaXQgZGVwdGggZnJhbWUg
Zm9ybWF0IiwKLSsgICAgICAgICAgaW1nLT5iaXRfZGVwdGgpOwotKyAgICAgIEdTVF9FTEVNRU5U
X1dBUk5JTkcgKGRlYywgU1RSRUFNLCBOT1RfSU1QTEVNRU5URUQsIChOVUxMKSwKLSsgICAgICAg
ICAgKCJVbnN1cHBvcnRlZCBmcmFtZSBmb3JtYXQgLSA0OjI6MiBwbGFuYXIgJXUgYml0IGRlcHRo
IiwKLSsgICAgICAgICAgICAgIGltZy0+Yml0X2RlcHRoKSk7Ci0rICAgICAgcmV0dXJuIEZBTFNF
OwotKwotKyAgICBjYXNlIEFPTV9JTUdfRk1UX0k0NDQ6Ci0rICAgIGNhc2UgQU9NX0lNR19GTVRf
STQ0NDE2OgotKyAgICAgIGlmIChpbWctPmJpdF9kZXB0aCA9PSA4KSB7Ci0rICAgICAgICAqZm10
ID0gR1NUX1ZJREVPX0ZPUk1BVF9ZNDQ0OwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgICAg
fSBlbHNlIGlmIChpbWctPmJpdF9kZXB0aCA9PSAxMCkgewotKyAgICAgICAgKmZtdCA9IEFPTV9G
TVRfVE9fR1NUIChZNDQ0XzEwKTsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICAgIH0gZWxz
ZSBpZiAoaW1nLT5iaXRfZGVwdGggPT0gMTIpIHsKLSsgICAgICAgICpmbXQgPSBBT01fRk1UX1RP
X0dTVCAoWTQ0NF8xMik7Ci0rICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICB9Ci0rICAgICAg
R1NUX0ZJWE1FX09CSkVDVCAoZGVjLAotKyAgICAgICAgICAiUGxlYXNlIGFkZCBhIDQ6NDo0IHBs
YW5hciAldSBiaXQgZGVwdGggZnJhbWUgZm9ybWF0IiwKLSsgICAgICAgICAgaW1nLT5iaXRfZGVw
dGgpOwotKyAgICAgIEdTVF9FTEVNRU5UX1dBUk5JTkcgKGRlYywgU1RSRUFNLCBOT1RfSU1QTEVN
RU5URUQsIChOVUxMKSwKLSsgICAgICAgICAgKCJVbnN1cHBvcnRlZCBmcmFtZSBmb3JtYXQgLSA0
OjQ6NCBwbGFuYXIgJXUgYml0IGRlcHRoIiwKLSsgICAgICAgICAgICAgIGltZy0+Yml0X2RlcHRo
KSk7Ci0rICAgICAgcmV0dXJuIEZBTFNFOwotKwotKyAgICBjYXNlIEFPTV9JTUdfRk1UX1lWMTI6
Ci0rICAgICAgKmZtdCA9IEdTVF9WSURFT19GT1JNQVRfWVYxMjsKLSsgICAgICByZXR1cm4gVFJV
RTsKLSsKLSsgICAgZGVmYXVsdDoKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rICB9Ci0rfQotKwot
IHN0YXRpYyBHc3RGbG93UmV0dXJuCi0gZ3N0X2F2MV9kZWNfaGFuZGxlX2ZyYW1lIChHc3RWaWRl
b0RlY29kZXIgKiBkZWMsIEdzdFZpZGVvQ29kZWNGcmFtZSAqIGZyYW1lKQotIHsKLUBAIC0zMTgs
NiArNDA2LDcgQEAgZ3N0X2F2MV9kZWNfaGFuZGxlX2ZyYW1lIChHc3RWaWRlb0RlY29kZXIgKiBk
ZWMsIEdzdFZpZGVvQ29kZWNGcmFtZSAqIGZyYW1lKQotICAgYW9tX2NvZGVjX2Vycl90IHN0YXR1
czsKLSAgIGFvbV9pbWFnZV90ICppbWc7Ci0gICBhb21fY29kZWNfaXRlcl90IGl0ZXIgPSBOVUxM
OwotKyAgR3N0VmlkZW9Gb3JtYXQgZm10OwotIAotICAgaWYgKCFhdjFkZWMtPmRlY29kZXJfaW5p
dGVkKSB7Ci0gICAgIHJldCA9IGdzdF9hdjFfZGVjX29wZW5fY29kZWMgKGF2MWRlYywgZnJhbWUp
OwotQEAgLTM0OSw3ICs0MzgsMTYgQEAgZ3N0X2F2MV9kZWNfaGFuZGxlX2ZyYW1lIChHc3RWaWRl
b0RlY29kZXIgKiBkZWMsIEdzdFZpZGVvQ29kZWNGcmFtZSAqIGZyYW1lKQotIAotICAgaW1nID0g
YW9tX2NvZGVjX2dldF9mcmFtZSAoJmF2MWRlYy0+ZGVjb2RlciwgJml0ZXIpOwotICAgaWYgKGlt
ZykgewotLSAgICBnc3RfYXYxX2RlY19oYW5kbGVfcmVzb2x1dGlvbl9jaGFuZ2UgKGF2MWRlYywg
aW1nLCBHU1RfVklERU9fRk9STUFUX0k0MjApOwotKyAgICBpZiAoZ3N0X2F2MV9kZWNfZ2V0X3Zh
bGlkX2Zvcm1hdCAoYXYxZGVjLCBpbWcsICZmbXQpID09IEZBTFNFKSB7Ci0rICAgICAgYW9tX2lt
Z19mcmVlIChpbWcpOwotKyAgICAgIEdTVF9FTEVNRU5UX0VSUk9SIChkZWMsIExJQlJBUlksIEVO
Q09ERSwKLSsgICAgICAgICAgKCJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lIiksICgiVW5zdXBwb3J0
ZWQgY29sb3IgZm9ybWF0ICVkIiwKLSsgICAgICAgICAgICAgIGltZy0+Zm10KSk7Ci0rICAgICAg
Z3N0X3ZpZGVvX2NvZGVjX2ZyYW1lX3VucmVmIChmcmFtZSk7Ci0rICAgICAgcmV0dXJuIEdTVF9G
TE9XX0VSUk9SOwotKyAgICB9Ci0rCi0rICAgIGdzdF9hdjFfZGVjX2hhbmRsZV9yZXNvbHV0aW9u
X2NoYW5nZSAoYXYxZGVjLCBpbWcsIGZtdCk7Ci0gCi0gICAgIHJldCA9IGdzdF92aWRlb19kZWNv
ZGVyX2FsbG9jYXRlX291dHB1dF9mcmFtZSAoZGVjLCBmcmFtZSk7Ci0gICAgIGlmIChyZXQgPT0g
R1NUX0ZMT1dfT0spIHsKLS0tIAotMi4xOC4wCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWFvbWVuYy1IYW5kbGUtOC1iaXRfZGVwdGgt
aW1hZ2VzLXdpdGgtQU9NX0lNR19GTVRfSEkucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1hb21lbmMtSGFuZGxlLTgtYml0X2RlcHRoLWltYWdlcy13
aXRoLUFPTV9JTUdfRk1UX0hJLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MmJmNjYxODg2ZTNhNTc1OGI4YTllODMxNWY3NjQ3OGU4NTc3YmM4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dz
dC1wbHVnaW5zLWJhZC0wMDAyLWFvbWVuYy1IYW5kbGUtOC1iaXRfZGVwdGgtaW1hZ2VzLXdpdGgt
QU9NX0lNR19GTVRfSEkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9t
IDEwYTM3ZTBjMzUyOGE3MjEwODQ0NDFjMzdhZjM3YmFlZjA5MDhkZGMgTW9uIFNlcCAxNyAwMDow
MDowMCAyMDAxCi1Gcm9tOiBTZWFuLURlciA8c2VhbkBzaW9idWQuY29tPgotRGF0ZTogV2VkLCAy
NyBKdW4gMjAxOCAwOTo0ODowMCArMDAwMAotU3ViamVjdDogW1BBVENIXSBhb21lbmM6IEhhbmRs
ZSA4IGJpdF9kZXB0aCBpbWFnZXMgd2l0aAotIEFPTV9JTUdfRk1UX0hJR0hCSVRERVBUSCBlbmFi
bGVkCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE2NzQK
LS0tLQotIGV4dC9hb20vZ3N0YXYxZGVjLmMgfCAyMCArKysrKysrKysrKysrKysrLS0tLQotIDEg
ZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t
Z2l0IGEvZXh0L2FvbS9nc3RhdjFkZWMuYyBiL2V4dC9hb20vZ3N0YXYxZGVjLmMKLWluZGV4IDIz
YjE4ZjQ0Yy4uNmUwYTliZDVkIDEwMDY0NAotLS0tIGEvZXh0L2FvbS9nc3RhdjFkZWMuYwotKysr
IGIvZXh0L2FvbS9nc3RhdjFkZWMuYwotQEAgLTI4NSw3ICsyODUsNyBAQCBzdGF0aWMgdm9pZAot
IGdzdF9hdjFfZGVjX2ltYWdlX3RvX2J1ZmZlciAoR3N0QVYxRGVjICogZGVjLCBjb25zdCBhb21f
aW1hZ2VfdCAqIGltZywKLSAgICAgR3N0QnVmZmVyICogYnVmZmVyKQotIHsKLS0gIGludCBkZXN0
c3RyaWRlLCBzcmNzdHJpZGUsIGhlaWdodCwgd2lkdGgsIGxpbmUsIGNvbXA7Ci0rICBpbnQgZGVz
dHN0cmlkZSwgc3Jjc3RyaWRlLCBoZWlnaHQsIHdpZHRoLCBsaW5lLCBjb21wLCB5OwotICAgZ3Vp
bnQ4ICpkZXN0LCAqc3JjOwotICAgR3N0VmlkZW9GcmFtZSBmcmFtZTsKLSAgIEdzdFZpZGVvSW5m
byAqaW5mbyA9ICZkZWMtPm91dHB1dF9zdGF0ZS0+aW5mbzsKLUBAIC0yOTgsMTMgKzI5OCwyNSBA
QCBnc3RfYXYxX2RlY19pbWFnZV90b19idWZmZXIgKEdzdEFWMURlYyAqIGRlYywgY29uc3QgYW9t
X2ltYWdlX3QgKiBpbWcsCi0gICBmb3IgKGNvbXAgPSAwOyBjb21wIDwgMzsgY29tcCsrKSB7Ci0g
ICAgIGRlc3QgPSBHU1RfVklERU9fRlJBTUVfQ09NUF9EQVRBICgmZnJhbWUsIGNvbXApOwotICAg
ICBzcmMgPSBpbWctPnBsYW5lc1tjb21wXTsKLS0gICAgd2lkdGggPSBHU1RfVklERU9fRlJBTUVf
Q09NUF9XSURUSCAoJmZyYW1lLCBjb21wKQotLSAgICAgICAgKiBHU1RfVklERU9fRlJBTUVfQ09N
UF9QU1RSSURFICgmZnJhbWUsIGNvbXApOwotKyAgICB3aWR0aCA9Ci0rICAgICAgICBHU1RfVklE
RU9fRlJBTUVfQ09NUF9XSURUSCAoJmZyYW1lLAotKyAgICAgICAgY29tcCkgKiBHU1RfVklERU9f
RlJBTUVfQ09NUF9QU1RSSURFICgmZnJhbWUsIGNvbXApOwotICAgICBoZWlnaHQgPSBHU1RfVklE
RU9fRlJBTUVfQ09NUF9IRUlHSFQgKCZmcmFtZSwgY29tcCk7Ci0gICAgIGRlc3RzdHJpZGUgPSBH
U1RfVklERU9fRlJBTUVfQ09NUF9TVFJJREUgKCZmcmFtZSwgY29tcCk7Ci0gICAgIHNyY3N0cmlk
ZSA9IGltZy0+c3RyaWRlW2NvbXBdOwotIAotLSAgICBpZiAoc3Jjc3RyaWRlID09IGRlc3RzdHJp
ZGUpIHsKLSsgICAgaWYgKChpbWctPmZtdCAmIEFPTV9JTUdfRk1UX0hJR0hCSVRERVBUSCkgJiYg
aW1nLT5iaXRfZGVwdGggPT0gOCkgewotKyAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKGRlYywKLSsg
ICAgICAgICAgIkhJR0hCSVRERVBUSCBpbWFnZSB3aXRoIDggYml0X2RlcHRoLiBDb21wICVkOiAl
ZCAhPSAlZCwgY29weWluZyAiCi0rICAgICAgICAgICJsaW5lIGJ5IGxpbmUuIiwgY29tcCwgc3Jj
c3RyaWRlLCBkZXN0c3RyaWRlKTsKLSsgICAgICBmb3IgKGxpbmUgPSAwOyBsaW5lIDwgaGVpZ2h0
OyBsaW5lKyspIHsKLSsgICAgICAgIGZvciAoeSA9IDA7IHkgPCB3aWR0aDsgeSsrKSB7Ci0rICAg
ICAgICAgIGRlc3RbeV0gPSBzcmNbeSAqIDJdOwotKyAgICAgICAgfQotKyAgICAgICAgZGVzdCAr
PSBkZXN0c3RyaWRlOwotKyAgICAgICAgc3JjICs9IHNyY3N0cmlkZTsKLSsgICAgICB9Ci0rICAg
IH0gZWxzZSBpZiAoc3Jjc3RyaWRlID09IGRlc3RzdHJpZGUpIHsKLSAgICAgICBHU1RfVFJBQ0Vf
T0JKRUNUIChkZWMsICJTdHJpZGUgbWF0Y2hlcy4gQ29tcCAlZDogJWQsIGNvcHlpbmcgZnVsbCBw
bGFuZSIsCi0gICAgICAgICAgIGNvbXAsIHNyY3N0cmlkZSk7Ci0gICAgICAgbWVtY3B5IChkZXN0
LCBzcmMsIHNyY3N0cmlkZSAqIGhlaWdodCk7Ci0tLSAKLTIuMTguMAotCmRpZmYgLS1naXQgYS9U
b29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMy1mZGthYWNlbmMtUmVt
b3ZlLU1PREVfMl8xLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
YmFkLTAwMDMtZmRrYWFjZW5jLVJlbW92ZS1NT0RFXzJfMS5wYXRjaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMWVhMDhmOWFiYmEyYmM4ZWMyMDQ3OTg0OThlM2JkMzRlZDVlYWM2Ny4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMy1mZGthYWNlbmMtUmVtb3ZlLU1PREVf
Ml8xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSBmNGZkYjk3NzBj
NzYxMTNmMzg1MTUyNDVmZWNjNWYxMWIzYWNlMjBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot
RnJvbTogIkphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykiIDxqYW4uc3RlZmZlbnNAZ21h
aWwuY29tPgotRGF0ZTogVHVlLCA0IERlYyAyMDE4IDE3OjU0OjQyICswMTAwCi1TdWJqZWN0OiBb
UEFUQ0hdIGZka2FhY2VuYzogUmVtb3ZlIE1PREVfMl8xCi0KLVRoaXMgaXMgbm90IGEgc3RhbmRh
cmQgbW9kZSBhbmQgbm8gbG9uZ2VyIHN1cHBvcnRlZCBieSBmZGstYWFjIDIuMC4wLgotCi1Gb3Ig
aHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQv
aXNzdWVzLzgyNQotLS0tCi0gZXh0L2Zka2FhYy9nc3RmZGthYWNlbmMuYyB8IDQgLS0tLQotIDEg
ZmlsZSBjaGFuZ2VkLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L2Zka2FhYy9n
c3RmZGthYWNlbmMuYyBiL2V4dC9mZGthYWMvZ3N0ZmRrYWFjZW5jLmMKLWluZGV4IGFkMmJjYjQ5
Mi4uODQxMGU2ODRjIDEwMDY0NAotLS0tIGEvZXh0L2Zka2FhYy9nc3RmZGthYWNlbmMuYwotKysr
IGIvZXh0L2Zka2FhYy9nc3RmZGthYWNlbmMuYwotQEAgLTcxLDEwICs3MSw2IEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QKLSAgIEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0ZST05UX0NFTlRFUiwK
LSAgICAgICAgICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRfTEVGVCwKLSAgICAg
ICAgICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRfUklHSFR9fSwgewotLSAgICAz
LCBNT0RFXzJfMSwgewotLSAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRfTEVGVCwK
LS0gICAgICAgICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRfUklHSFQsCi0tICAg
ICAgICAgIEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0xGRTF9fSwgewotICAgICA0LCBNT0RF
XzFfMl8xLCB7Ci0gICBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9OVF9DRU5URVIsCi0g
ICAgICAgICAgIEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0ZST05UX0xFRlQsCi0tLSAKLTIu
MTguMQotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwNC1mZGthYWNkZWMtVXNlLVdBVi1jaGFubmVsLW1hcHBpbmctaW5zdGVhZC1vZi1pbnRl
cmxlYXZlLXNldHRpbmcucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1iYWQtMDAwNC1mZGthYWNkZWMtVXNlLVdBVi1jaGFubmVsLW1hcHBpbmctaW5zdGVhZC1vZi1p
bnRlcmxlYXZlLXNldHRpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFk
ODIwYWYzYjkwNjRjOWUwMTcyMmFjZDI0NWEwMTcxMDE4ZDQzZjAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtYmFkLTAwMDQtZmRrYWFjZGVjLVVzZS1XQVYtY2hhbm5lbC1tYXBwaW5nLWluc3Rl
YWQtb2YtaW50ZXJsZWF2ZS1zZXR0aW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAs
MCBAQAotRnJvbSAxOWQzNGY2YjVlMTYzM2Q1ZWM0YmIyODMyYzU4NDcwZjBjODI5Y2FiIE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIkphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRp
ZykiIDxqYW4uc3RlZmZlbnNAZ21haWwuY29tPgotRGF0ZTogV2VkLCA1IERlYyAyMDE4IDEwOjEw
OjM5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZka2FhY2RlYzogVXNlIFdBViBjaGFubmVsIG1h
cHBpbmcgaW5zdGVhZCBvZiBpbnRlcmxlYXZlCi0gc2V0dGluZwotCi1UaGUgbGF0dGVyIGlzIGdv
aW5nIGF3YXkgaW4gbGliZmRrLWFhYyAyLjAuMC4gSW5zdGVhZCwgTVBFRy1zdHlsZSBvdXRwdXQK
LWlzIGFsd2F5cyBub24taW50ZXJsZWF2ZWQgYW5kIFdBVi1zdHlsZSBvdXRwdXQgaXMgYWx3YXlz
IGludGVybGVhdmVkLgotRWFybGllciBsaWJmZGstYWFjIGFsc28gZGVmYXVsdHMgaW50ZXJsZWF2
aW5nIGFjY29yZGluZ2x5LgotCi1TaW5jZSBvdXIgcmVvcmRlcmluZyBsb29rcyBhdCB0aGUgYXNz
b2NpYXRlZCBQQ0UgaW5kaWNlcyBpbnN0ZWFkIG9mIHRoZQotYWN0dWFsIGNoYW5uZWwgb3JkZXIs
IHdlJ3JlIGFnbm9zdGljIHRvIHRoZSBtYXBwaW5nLgotCi1Gb3IgaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQvaXNzdWVzLzgyNQotLS0tCi0g
ZXh0L2Zka2FhYy9nc3RmZGthYWNkZWMuYyB8IDEyICsrKystLS0tLS0tLQotIDEgZmlsZSBjaGFu
Z2VkLCA0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQv
ZmRrYWFjL2dzdGZka2FhY2RlYy5jIGIvZXh0L2Zka2FhYy9nc3RmZGthYWNkZWMuYwotaW5kZXgg
YzI3MTgzNzUyLi5mNTEzNmIzMzQgMTAwNjQ0Ci0tLS0gYS9leHQvZmRrYWFjL2dzdGZka2FhY2Rl
Yy5jCi0rKysgYi9leHQvZmRrYWFjL2dzdGZka2FhY2RlYy5jCi1AQCAtMTUxLDE3ICsxNTEsMTMg
QEAgZ3N0X2Zka2FhY2RlY19zZXRfZm9ybWF0IChHc3RBdWRpb0RlY29kZXIgKiBkZWMsIEdzdENh
cHMgKiBjYXBzKQotICAgICBnc3RfYnVmZmVyX3VucmVmIChjb2RlY19kYXRhKTsKLSAgIH0KLSAK
LSsgIC8qIENob29zZSBXQVYgY2hhbm5lbCBtYXBwaW5nIHRvIGdldCBpbnRlcmxlYXZpbmcgZXZl
biB3aXRoIGxpYmZkay1hYWMgMi4wLjAKLSsgICAqIFRoZSBwQ2hhbm5lbEluZGljZXMgcmV0YWlu
IHRoZSBpbmRpY2VzIGZyb20gdGhlIHN0YW5kYXJkIE1QRUcgbWFwcGluZyBzbwotKyAgICogd2Un
cmUgYWdub3N0aWMgdG8gdGhlIGFjdHVhbCBvcmRlci4gKi8KLSAgIGlmICgoZXJyID0KLSAgICAg
ICAgICAgYWFjRGVjb2Rlcl9TZXRQYXJhbSAoc2VsZi0+ZGVjLCBBQUNfUENNX09VVFBVVF9DSEFO
TkVMX01BUFBJTkcsCi0tICAgICAgICAgICAgICAwKSkgIT0gQUFDX0RFQ19PSykgewotLSAgICBH
U1RfRVJST1JfT0JKRUNUIChzZWxmLCAiRmFpbGVkIHRvIHNldCBvdXRwdXQgY2hhbm5lbCBtYXBw
aW5nOiAlZCIsIGVycik7Ci0tICAgIHJldHVybiBGQUxTRTsKLS0gIH0KLS0KLS0gIGlmICgoZXJy
ID0KLS0gICAgICAgICAgYWFjRGVjb2Rlcl9TZXRQYXJhbSAoc2VsZi0+ZGVjLCBBQUNfUENNX09V
VFBVVF9JTlRFUkxFQVZFRCwKLSAgICAgICAgICAgICAgIDEpKSAhPSBBQUNfREVDX09LKSB7Ci0t
ICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHNlbGYsICJGYWlsZWQgdG8gc2V0IGludGVybGVhdmVkIG91
dHB1dDogJWQiLCBlcnIpOwotKyAgICBHU1RfRVJST1JfT0JKRUNUIChzZWxmLCAiRmFpbGVkIHRv
IHNldCBvdXRwdXQgY2hhbm5lbCBtYXBwaW5nOiAlZCIsIGVycik7Ci0gICAgIHJldHVybiBGQUxT
RTsKLSAgIH0KLSAKLS0tIAotMi4xOC4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9w
YXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDA1LW1zc2RlbXV4LWZpeC1wcm90ZWN0aW9uLWRhdGEt
ZG91YmxlLWZyZWUucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwNS1tc3NkZW11eC1maXgtcHJvdGVjdGlvbi1kYXRhLWRvdWJsZS1mcmVlLnBhdGNoCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjM2MDM1YmRhNjNlOTMwZjlkYWViOTEyYTQ1
MzIyNjBiYTRlZjlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDA1LW1zc2RlbXV4
LWZpeC1wcm90ZWN0aW9uLWRhdGEtZG91YmxlLWZyZWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt
MSwyNyArMCwwIEBACi1Gcm9tIDdjMTM2YmJiNWVlMzRkZmMxYTBiMDAzZjVkYjM1MWYxOTg2MTA2
YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZh
ciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KLURhdGU6IE1vbiwgMTggTWFyIDIwMTkgMTU6MjM6MDcg
KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gbXNzZGVtdXg6IGZpeCBwcm90ZWN0aW9uIGRhdGEgZG91
YmxlIGZyZWUKLQotRm9yIG5vdCBiZWluZyBkdXBsaWNhdGVkIGhlcmUgaXQgd2FzIGJlaW5nIGZy
ZWVkIHdoZW4gdGhlIG1hbmlmZXN0IHdhcwotYmVpbmcgZGVzdHJveWVkIGFuZCBhIHNlY29uZCB0
aW1lIHdoZW4gdGhlIGJ1ZmZlciB3YXMgYmVpbmcgZGVzdHJveWVkLgotLS0tCi0gZXh0L3Ntb290
aHN0cmVhbWluZy9nc3Rtc3NkZW11eC5jIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy
dGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L3Ntb290aHN0cmVhbWlu
Zy9nc3Rtc3NkZW11eC5jIGIvZXh0L3Ntb290aHN0cmVhbWluZy9nc3Rtc3NkZW11eC5jCi1pbmRl
eCA4NWYwZWM4OWEuLmJjZWE4Y2EwNyAxMDA2NDQKLS0tLSBhL2V4dC9zbW9vdGhzdHJlYW1pbmcv
Z3N0bXNzZGVtdXguYwotKysrIGIvZXh0L3Ntb290aHN0cmVhbWluZy9nc3Rtc3NkZW11eC5jCi1A
QCAtNDg5LDcgKzQ4OSw3IEBAIGdzdF9tc3NfZGVtdXhfc2V0dXBfc3RyZWFtcyAoR3N0QWRhcHRp
dmVEZW11eCAqIGRlbXV4KQotIAotICAgICBpZiAocHJvdGVjdGVkKSB7Ci0gICAgICAgR3N0QnVm
ZmVyICpwcm90ZWN0aW9uX2J1ZmZlciA9Ci0tICAgICAgICAgIGdzdF9idWZmZXJfbmV3X3dyYXBw
ZWQgKChncG9pbnRlcikgcHJvdGVjdGlvbl9kYXRhLAotKyAgICAgICAgICBnc3RfYnVmZmVyX25l
d193cmFwcGVkIChnX3N0cmR1cCAocHJvdGVjdGlvbl9kYXRhKSwKLSAgICAgICAgICAgc3RybGVu
IChwcm90ZWN0aW9uX2RhdGEpKTsKLSAgICAgICBHc3RFdmVudCAqZXZlbnQgPQotICAgICAgICAg
ICBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24gKHByb3RlY3Rpb25fc3lzdGVtX2lkLCBwcm90ZWN0
aW9uX2J1ZmZlciwKLS0tIAotMi4yMC4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9w
YXRjaGVzL2dzdC1wbHVnaW5zLWJhc2UtMDAwMS1wYXJzZWJpbi1Qb3N0LVNUUkVBTV9DT0xMRUNU
SU9OLW9uLUVWRU5UX1NUUkVBTV9DT0xMLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3QtU1RSRUFNX0NPTExFQ1RJT04tb24t
RVZFTlRfU1RSRUFNX0NPTEwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4
MGJjMmRiNDY0NTRhYTk3MjkzYWZlZDc0NTlmZjM4NWRiN2I2OTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3QtU1RSRUFNX0NPTExFQ1RJT04tb24tRVZF
TlRfU1RSRUFNX0NPTEwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Gcm9t
IDg5ZDBlOWNjOTJhODZhYTAyMjdlZTg3NDA2NzM3YjZkMzE2NzBhZWEgTW9uIFNlcCAxNyAwMDow
MDowMCAyMDAxCi1Gcm9tOiBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBpZ2FsaWEuY29tPgot
RGF0ZTogV2VkLCAxOCBBcHIgMjAxOCAxNjowNjowNyAtMDMwMAotU3ViamVjdDogW1BBVENIXSBw
YXJzZWJpbjogUG9zdCBTVFJFQU1fQ09MTEVDVElPTiBvbiBFVkVOVF9TVFJFQU1fQ09MTEVDVElP
TgotCi1PdGhlcndpc2UgZGVjb2RlYmluIHdvbid0IGdldCBub3RpZmllZCBhYm91dCBTVFJFQU1f
Q09MTEVDVElPTiBjb21taW5nCi1mcm9tIHRoZSBzb3VyY2VzIGFuZCB0aHVzIHdpbGwgbmV2ZXIg
Z2V0IGluZm9ybW9yZWQgYWJvdXQgaXQuIFdpdGhvdXQKLWJlaW5nIGluZm9ybWVkIGFib3V0IHRo
ZSBzdHJlYW0gY29sbGVjdGlvbiBkZWNvZGViaW4gd29uJ3QgYmUgYWJsZSB0bwotc2VsZWN0IGFu
eSBzdHJlYW1zLiBJdCBlbmRzIHVwIG5vdCBjcmVhdGluZyBhbnkgb3V0cHV0IGZvciB0aGUgc3Ry
ZWFtcwotZGVmaW5lZCBmcm9tIG91dHNpZGUgcGFyc2VyYmluLgotCi1odHRwczovL2J1Z3ppbGxh
Lmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk1MzY0Ci0tLS0KLSBnc3QvcGxheWJhY2svZ3N0
cGFyc2ViaW4uYyB8IDMgKysrCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQotCi1k
aWZmIC0tZ2l0IGEvZ3N0L3BsYXliYWNrL2dzdHBhcnNlYmluLmMgYi9nc3QvcGxheWJhY2svZ3N0
cGFyc2ViaW4uYwotaW5kZXggNGM1YmZjMTlkLi5mOTY2MmViNDkgMTAwNjQ0Ci0tLS0gYS9nc3Qv
cGxheWJhY2svZ3N0cGFyc2ViaW4uYwotKysrIGIvZ3N0L3BsYXliYWNrL2dzdHBhcnNlYmluLmMK
LUBAIC00MDQ2LDYgKzQwNDYsOSBAQCBnc3RfcGFyc2VfcGFkX2V2ZW50IChHc3RQYWQgKiBwYWQs
IEdzdFBhZFByb2JlSW5mbyAqIGluZm8sIGdwb2ludGVyIHVzZXJfZGF0YSkKLSAgICAgICBHc3RT
dHJlYW1Db2xsZWN0aW9uICpjb2xsZWN0aW9uID0gTlVMTDsKLSAgICAgICBnc3RfZXZlbnRfcGFy
c2Vfc3RyZWFtX2NvbGxlY3Rpb24gKGV2ZW50LCAmY29sbGVjdGlvbik7Ci0gICAgICAgZ3N0X3Bh
cnNlX3BhZF91cGRhdGVfc3RyZWFtX2NvbGxlY3Rpb24gKHBhcnNlcGFkLCBjb2xsZWN0aW9uKTsK
LSsgICAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UgKEdTVF9FTEVNRU5UIChwYXJzZXBhZC0+
cGFyc2ViaW4pLAotKyAgICAgICAgICBnc3RfbWVzc2FnZV9uZXdfc3RyZWFtX2NvbGxlY3Rpb24g
KEdTVF9PQkpFQ1QgKHBhcnNlcGFkLT5wYXJzZWJpbiksCi0rICAgICAgICAgICAgICBjb2xsZWN0
aW9uKSk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgY2FzZSBHU1RfRVZFTlRfRU9TOnsK
LS0tIAotMi4xNy4wCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4LURldGVjdC1hbmQtZXhwb3NlLUNFQS02MDgtNzA4LUNs
b3NlZC1DYXB0aW9uLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDAxLXF0ZGVtdXgtRGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYwOC03MDgtQ2xvc2VkLUNh
cHRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ODZkMTA4MmMwZTA0
MWVmZTFmZjA1YWFlZTM5NjU2YTRkNGZiYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC0wMDAxLXF0ZGVtdXgtRGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYwOC03MDgtQ2xvc2VkLUNhcHRp
b24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzQgKzAsMCBAQAotRnJvbSAyODY5ZWRlZWEy
OWEwMjIwMDdhOTlkYjJkZjQxYjVhN2UxYTMwMjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot
RnJvbTogRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KLURhdGU6IFdlZCwg
MzEgSmFuIDIwMTggMTU6MTA6MDMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gcXRkZW11eDogRGV0
ZWN0IGFuZCBleHBvc2UgQ0VBIDYwOC83MDggQ2xvc2VkIENhcHRpb24gdHJhY2tzCi0KLWh0dHBz
Oi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY2NDMKLS0tLQotIGdzdC9p
c29tcDQvZm91cmNjLmggICAgICAgIHwgICA2ICsrCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmMgICAg
ICAgfCAxNTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQotIGdzdC9pc29t
cDQvcXRkZW11eF90eXBlcy5jIHwgICAxICsKLSAzIGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRp
b25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9mb3VyY2Mu
aCBiL2dzdC9pc29tcDQvZm91cmNjLmgKLWluZGV4IGJlNWM3YzA0ZS4uNmY0NjdmZmJiIDEwMDY0
NAotLS0tIGEvZ3N0L2lzb21wNC9mb3VyY2MuaAotKysrIGIvZ3N0L2lzb21wNC9mb3VyY2MuaAot
QEAgLTk1LDYgKzk1LDEyIEBAIEdfQkVHSU5fREVDTFMKLSAjZGVmaW5lIEZPVVJDQ19hdmMxICAg
ICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCd2JywnYycsJzEnKQotICNkZWZpbmUgRk9VUkNDX2F2YzMg
ICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3YnLCdjJywnMycpCi0gI2RlZmluZSBGT1VSQ0NfYXZj
QyAgICAgR1NUX01BS0VfRk9VUkNDKCdhJywndicsJ2MnLCdDJykKLSsjZGVmaW5lIEZPVVJDQ19j
NjA4ICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCc2JywnMCcsJzgnKQotKyNkZWZpbmUgRk9VUkND
X2M3MDggICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJzcnLCcwJywnOCcpCi0rI2RlZmluZSBGT1VS
Q0NfY2NkcCAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnYycsJ2QnLCdwJykKLSsjZGVmaW5lIEZP
VVJDQ19jZGF0ICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCdkJywnYScsJ3QnKQotKyNkZWZpbmUg
Rk9VUkNDX2NkdDIgICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJ2QnLCd0JywnMicpCi0rI2RlZmlu
ZSBGT1VSQ0NfY2xjcCAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnbCcsJ2MnLCdwJykKLSAjZGVm
aW5lIEZPVVJDQ19jbGlwICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCdsJywnaScsJ3AnKQotICNk
ZWZpbmUgRk9VUkNDX2Ntb3YgICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJ20nLCdvJywndicpCi0g
I2RlZmluZSBGT1VSQ0NfY212ZCAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnbScsJ3YnLCdkJykK
LWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
Ci1pbmRleCA3OWVmNWY1NWIuLmY3MzJlOTJiMyAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTUzNzAsNiArNTM3MCwxMjAg
QEAgZ3N0X3F0ZGVtdXhfYWxpZ25fYnVmZmVyIChHc3RRVERlbXV4ICogZGVtdXgsCi0gICByZXR1
cm4gYnVmZmVyOwotIH0KLSAKLStzdGF0aWMgZ3VpbnQ4ICoKLStjb252ZXJ0X3RvX2NjZGF0YSAo
Y29uc3QgZ3VpbnQ4ICogY2NwYWlyLCBndWludDggY2NwYWlyX3NpemUsIGd1aW50IGZpZWxkLAot
KyAgICBnc2l6ZSAqIHJlcykKLSt7Ci0rICBndWludDggKnN0b3JhZ2U7Ci0rICBnc2l6ZSBpOwot
KwotKyAgLyogV2UgYXJlIGNvbnZlcnRpbmcgZnJvbSBwYWlycyB0byB0cmlwbGV0cyAqLwotKyAg
KnJlcyA9IGNjcGFpcl9zaXplIC8gMiAqIDM7Ci0rICBzdG9yYWdlID0gZ19tYWxsb2MgKCpyZXMp
OwotKyAgZm9yIChpID0gMDsgaSAqIDIgPCBjY3BhaXJfc2l6ZTsgaSArPSAxKSB7Ci0rICAgIGlm
IChmaWVsZCA9PSAxKQotKyAgICAgIHN0b3JhZ2VbaSAqIDNdID0gMHhmYzsKLSsgICAgZWxzZQot
KyAgICAgIHN0b3JhZ2VbaSAqIDNdID0gMHhmZDsKLSsgICAgc3RvcmFnZVtpICogMyArIDFdID0g
Y2NwYWlyW2kgKiAyXTsKLSsgICAgc3RvcmFnZVtpICogMyArIDJdID0gY2NwYWlyW2kgKiAyICsg
MV07Ci0rICB9Ci0rCi0rICByZXR1cm4gc3RvcmFnZTsKLSt9Ci0rCi0rc3RhdGljIGd1aW50OCAq
Ci0rZXh0cmFjdF9jY19mcm9tX2RhdGEgKFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0sIGNvbnN0IGd1
aW50OCAqIGRhdGEsIGdzaXplIHNpemUsCi0rICAgIGdzaXplICogY2NsZW4pCi0rewotKyAgZ3Vp
bnQ4ICpyZXMgPSBOVUxMOwotKyAgZ3VpbnQzMiBhdG9tX2xlbmd0aCwgZm91cmNjOwotKyAgUXRE
ZW11eFN0cmVhbVN0c2RFbnRyeSAqc3RzZF9lbnRyeTsKLSsKLSsgIEdTVF9NRU1EVU1QICgiY2Fw
dGlvbiBhdG9tIiwgZGF0YSwgc2l6ZSk7Ci0rCi0rICAvKiBUaGVyZSBtaWdodCBiZSBtdWx0aXBs
ZSBhdG9tcyAqLwotKwotKyAgKmNjbGVuID0gMDsKLSsgIGlmIChzaXplIDwgOCkKLSsgICAgZ290
byBpbnZhbGlkX2NkYXQ7Ci0rICBhdG9tX2xlbmd0aCA9IFFUX1VJTlQzMiAoZGF0YSk7Ci0rICBm
b3VyY2MgPSBRVF9GT1VSQ0MgKGRhdGEgKyA0KTsKLSsgIGlmIChHX1VOTElLRUxZIChhdG9tX2xl
bmd0aCA+IHNpemUgfHwgYXRvbV9sZW5ndGggPT0gOCkpCi0rICAgIGdvdG8gaW52YWxpZF9jZGF0
OwotKwotKyAgR1NUX0RFQlVHX09CSkVDVCAoc3RyZWFtLT5wYWQsICJoZXJlIik7Ci0rCi0rICAv
KiBDaGVjayBpZiB3ZSBoYXZlIHNvbWV0aGlnIGNvbXBhdGlibGUgKi8KLSsgIHN0c2RfZW50cnkg
PSBDVVJfU1RSRUFNIChzdHJlYW0pOwotKyAgc3dpdGNoIChzdHNkX2VudHJ5LT5mb3VyY2MpIHsK
LSsgICAgY2FzZSBGT1VSQ0NfYzYwODp7Ci0rICAgICAgZ3VpbnQ4ICpjZGF0ID0gTlVMTCwgKmNk
dDIgPSBOVUxMOwotKyAgICAgIGdzaXplIGNkYXRfc2l6ZSA9IDAsIGNkdDJfc2l6ZSA9IDA7Ci0r
ICAgICAgLyogU2hvdWxkIGJlIGNkYXQgb3IgY2R0MiAqLwotKyAgICAgIGlmIChmb3VyY2MgIT0g
Rk9VUkNDX2NkYXQgJiYgZm91cmNjICE9IEZPVVJDQ19jZHQyKSB7Ci0rICAgICAgICBHU1RfV0FS
TklOR19PQkpFQ1QgKHN0cmVhbS0+cGFkLAotKyAgICAgICAgICAgICJVbmtub3duIGRhdGEgYXRv
bSAoJSIgR1NUX0ZPVVJDQ19GT1JNQVQgIikgZm9yIENFQTYwOCIsCi0rICAgICAgICAgICAgR1NU
X0ZPVVJDQ19BUkdTIChmb3VyY2MpKTsKLSsgICAgICAgIGdvdG8gaW52YWxpZF9jZGF0OwotKyAg
ICAgIH0KLSsgICAgICAvKiBDb252ZXJ0IHRvIGNjX2RhdGEgdHJpcGxldCAqLwotKyAgICAgIGlm
IChmb3VyY2MgPT0gRk9VUkNDX2NkYXQpCi0rICAgICAgICBjZGF0ID0gY29udmVydF90b19jY2Rh
dGEgKGRhdGEgKyA4LCBhdG9tX2xlbmd0aCAtIDgsIDEsICZjZGF0X3NpemUpOwotKyAgICAgIGVs
c2UKLSsgICAgICAgIGNkdDIgPSBjb252ZXJ0X3RvX2NjZGF0YSAoZGF0YSArIDgsIGF0b21fbGVu
Z3RoIC0gOCwgMiwgJmNkdDJfc2l6ZSk7Ci0rICAgICAgR1NUX0RFQlVHX09CSkVDVCAoc3RyZWFt
LT5wYWQsICJzaXplOiUiIEdfR1NJWkVfRk9STUFUICIgYXRvbV9sZW5ndGg6JXUiLAotKyAgICAg
ICAgICBzaXplLCBhdG9tX2xlbmd0aCk7Ci0rICAgICAgLyogQ2hlY2sgZm9yIGFub3RoZXIgYXRv
bSA/ICovCi0rICAgICAgaWYgKHNpemUgPiBhdG9tX2xlbmd0aCArIDgpIHsKLSsgICAgICAgIGd1
aW50MzIgbmV3X2F0b21fbGVuZ3RoID0gUVRfVUlOVDMyIChkYXRhICsgYXRvbV9sZW5ndGgpOwot
KyAgICAgICAgaWYgKHNpemUgPD0gYXRvbV9sZW5ndGggKyBuZXdfYXRvbV9sZW5ndGgpIHsKLSsg
ICAgICAgICAgZm91cmNjID0gUVRfRk9VUkNDIChkYXRhICsgYXRvbV9sZW5ndGggKyA0KTsKLSsg
ICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfY2RhdCkKLSsgICAgICAgICAgICBjZGF0ID0K
LSsgICAgICAgICAgICAgICAgY29udmVydF90b19jY2RhdGEgKGRhdGEgKyBhdG9tX2xlbmd0aCAr
IDgsIG5ld19hdG9tX2xlbmd0aCAtIDgsCi0rICAgICAgICAgICAgICAgIDEsICZjZGF0X3NpemUp
OwotKyAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgY2R0MiA9Ci0rICAgICAgICAgICAgICAg
IGNvbnZlcnRfdG9fY2NkYXRhIChkYXRhICsgYXRvbV9sZW5ndGggKyA4LCBuZXdfYXRvbV9sZW5n
dGggLSA4LAotKyAgICAgICAgICAgICAgICAyLCAmY2R0Ml9zaXplKTsKLSsgICAgICAgIH0KLSsg
ICAgICB9Ci0rICAgICAgKmNjbGVuID0gY2RhdF9zaXplICsgY2R0Ml9zaXplOwotKyAgICAgIHJl
cyA9IGdfbWFsbG9jICgqY2NsZW4pOwotKyAgICAgIGlmIChjZGF0X3NpemUpCi0rICAgICAgICBt
ZW1jcHkgKHJlcywgY2RhdCwgY2RhdF9zaXplKTsKLSsgICAgICBpZiAoY2R0Ml9zaXplKQotKyAg
ICAgICAgbWVtY3B5IChyZXMgKyBjZGF0X3NpemUsIGNkdDIsIGNkdDJfc2l6ZSk7Ci0rICAgICAg
Z19mcmVlIChjZGF0KTsKLSsgICAgICBnX2ZyZWUgKGNkdDIpOwotKyAgICB9Ci0rICAgICAgYnJl
YWs7Ci0rICAgIGNhc2UgRk9VUkNDX2M3MDg6Ci0rICAgICAgaWYgKGZvdXJjYyAhPSBGT1VSQ0Nf
Y2NkcCkgewotKyAgICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChzdHJlYW0tPnBhZCwKLSsgICAg
ICAgICAgICAiVW5rbm93biBkYXRhIGF0b20gKCUiIEdTVF9GT1VSQ0NfRk9STUFUICIpIGZvciBD
RUE3MDgiLAotKyAgICAgICAgICAgIEdTVF9GT1VSQ0NfQVJHUyAoZm91cmNjKSk7Ci0rICAgICAg
ICBnb3RvIGludmFsaWRfY2RhdDsKLSsgICAgICB9Ci0rICAgICAgKmNjbGVuID0gYXRvbV9sZW5n
dGggLSA4OwotKyAgICAgIHJlcyA9IGdfbWVtZHVwIChkYXRhICsgOCwgKmNjbGVuKTsKLSsgICAg
ICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsgICAgICAvKiBLZWVwIHRoaXMgaGVyZSBpbiBjYXNl
IG90aGVyIGNsb3NlZCBjYXB0aW9uIGZvcm1hdHMgYXJlIGFkZGVkICovCi0rICAgICAgZ19hc3Nl
cnRfbm90X3JlYWNoZWQgKCk7Ci0rICAgICAgYnJlYWs7Ci0rICB9Ci0rCi0rICBHU1RfTUVNRFVN
UCAoIk91dHB1dCIsIHJlcywgKmNjbGVuKTsKLSsgIHJldHVybiByZXM7Ci0rCi0rICAvKiBFcnJv
cnMgKi8KLStpbnZhbGlkX2NkYXQ6Ci0rICBHU1RfV0FSTklORyAoIltjZGF0XSBhdG9tIGlzIHRv
byBzbWFsbCBvciBpbnZhbGlkIik7Ci0rICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0gLyogdGhlIGlu
cHV0IGJ1ZmZlciBtZXRhZGF0YSBtdXN0IGJlIHdyaXRhYmxlLAotICAqIGJ1dCB0aW1lL2R1cmF0
aW9uIGV0YyBub3QgeWV0IHNldCBhbmQgbmVlZCBub3QgYmUgcHJlc2VydmVkICovCi0gc3RhdGlj
IEdzdEJ1ZmZlciAqCi1AQCAtNTM5MCw3ICs1NTA0LDcgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19i
dWZmZXIgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBRdERlbXV4U3RyZWFtICogc3RyZWFtLAotIAot
ICAgaWYgKEdfVU5MSUtFTFkgKHN0cmVhbS0+c3VidHlwZSAhPSBGT1VSQ0NfdGV4dAotICAgICAg
ICAgICAmJiBzdHJlYW0tPnN1YnR5cGUgIT0gRk9VUkNDX3NidGwgJiYKLS0gICAgICAgICAgc3Ry
ZWFtLT5zdWJ0eXBlICE9IEZPVVJDQ19zdWJwKSkgewotKyAgICAgICAgICBzdHJlYW0tPnN1YnR5
cGUgIT0gRk9VUkNDX3N1YnAgJiYgc3RyZWFtLT5zdWJ0eXBlICE9IEZPVVJDQ19jbGNwKSkgewot
ICAgICByZXR1cm4gYnVmOwotICAgfQotIAotQEAgLTU0MDgsNiArNTUyMiwyMyBAQCBnc3RfcXRk
ZW11eF9wcm9jZXNzX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJlYW0g
KiBzdHJlYW0sCi0gICAgIHJldHVybiBidWY7Ci0gICB9Ci0gCi0rICBpZiAoc3RyZWFtLT5zdWJ0
eXBlID09IEZPVVJDQ19jbGNwKSB7Ci0rICAgIGd1aW50OCAqY2M7Ci0rICAgIGdzaXplIGNjbGVu
ID0gMDsKLSsgICAgLyogRm9yIGNsb3NlZCBjYXB0aW9uLCB3ZSBuZWVkIHRvIGV4dHJhY3QgdGhl
IGluZm9ybWF0aW9uIGZyb20gdGhlCi0rICAgICAqIFtjZGF0XSxbY2R0Ml0gb3IgW2NjZHBdIGF0
b20gKi8KLSsgICAgY2MgPSBleHRyYWN0X2NjX2Zyb21fZGF0YSAoc3RyZWFtLCBtYXAuZGF0YSwg
bWFwLnNpemUsICZjY2xlbik7Ci0rICAgIGdzdF9idWZmZXJfdW5tYXAgKGJ1ZiwgJm1hcCk7Ci0r
ICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7Ci0rICAgIGlmIChjYykgewotKyAgICAgIGJ1ZiA9
IF9nc3RfYnVmZmVyX25ld193cmFwcGVkIChjYywgY2NsZW4sIGdfZnJlZSk7Ci0rICAgIH0gZWxz
ZSB7Ci0rICAgICAgLyogQ29udmVyc2lvbiBmYWlsZWQgb3IgdGhlcmUncyBub3RoaW5nICovCi0r
ICAgICAgYnVmID0gTlVMTDsKLSsgICAgfQotKyAgICByZXR1cm4gYnVmOwotKyAgfQotKwotICAg
bnNpemUgPSBHU1RfUkVBRF9VSU5UMTZfQkUgKG1hcC5kYXRhKTsKLSAgIG5zaXplID0gTUlOIChu
c2l6ZSwgbWFwLnNpemUgLSAyKTsKLSAKLUBAIC0xMTU1Nyw3ICsxMTY4OCw4IEBAIHF0ZGVtdXhf
cGFyc2VfdHJhayAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdOb2RlICogdHJhaykKLSAgICAgICB9
Ci0gICAgICAgZW50cnktPnNhbXBsZWQgPSBUUlVFOwotICAgICB9IGVsc2UgaWYgKHN0cmVhbS0+
c3VidHlwZSA9PSBGT1VSQ0Nfc3VicCB8fCBzdHJlYW0tPnN1YnR5cGUgPT0gRk9VUkNDX3RleHQK
LS0gICAgICAgIHx8IHN0cmVhbS0+c3VidHlwZSA9PSBGT1VSQ0Nfc2J0bCB8fCBzdHJlYW0tPnN1
YnR5cGUgPT0gRk9VUkNDX3N1YnQpIHsKLSsgICAgICAgIHx8IHN0cmVhbS0+c3VidHlwZSA9PSBG
T1VSQ0Nfc2J0bCB8fCBzdHJlYW0tPnN1YnR5cGUgPT0gRk9VUkNDX3N1YnQKLSsgICAgICAgIHx8
IHN0cmVhbS0+c3VidHlwZSA9PSBGT1VSQ0NfY2xjcCkgewotIAotICAgICAgIGVudHJ5LT5zYW1w
bGVkID0gVFJVRTsKLSAgICAgICBlbnRyeS0+c3BhcnNlID0gVFJVRTsKLUBAIC0xNDU0OCw2ICsx
NDY4MCwyMSBAQCBxdGRlbXV4X3N1Yl9jYXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11
eFN0cmVhbSAqIHN0cmVhbSwKLSAgICAgICBfY29kZWMgKCJYTUwgc3VidGl0bGVzIik7Ci0gICAg
ICAgY2FwcyA9IGdzdF9jYXBzX25ld19lbXB0eV9zaW1wbGUgKCJhcHBsaWNhdGlvbi90dG1sK3ht
bCIpOwotICAgICAgIGJyZWFrOwotKyAgICBjYXNlIEZPVVJDQ19jNjA4OgotKyAgICAgIF9jb2Rl
YyAoIkNFQSA2MDggQ2xvc2VkIENhcHRpb24iKTsKLSsgICAgICBjYXBzID0KLSsgICAgICAgICAg
Z3N0X2NhcHNfbmV3X3NpbXBsZSAoImNsb3NlZGNhcHRpb24veC1jZWEtNjA4IiwgImZvcm1hdCIs
Ci0rICAgICAgICAgIEdfVFlQRV9TVFJJTkcsICJjY19kYXRhIiwgTlVMTCk7Ci0rICAgICAgc3Ry
ZWFtLT5uZWVkX3Byb2Nlc3MgPSBUUlVFOwotKyAgICAgIGJyZWFrOwotKyAgICBjYXNlIEZPVVJD
Q19jNzA4OgotKyAgICAgIF9jb2RlYyAoIkNFQSA3MDggQ2xvc2VkIENhcHRpb24iKTsKLSsgICAg
ICBjYXBzID0KLSsgICAgICAgICAgZ3N0X2NhcHNfbmV3X3NpbXBsZSAoImNsb3NlZGNhcHRpb24v
eC1jZWEtNzA4IiwgImZvcm1hdCIsCi0rICAgICAgICAgIEdfVFlQRV9TVFJJTkcsICJjZHAiLCBO
VUxMKTsKLSsgICAgICBzdHJlYW0tPm5lZWRfcHJvY2VzcyA9IFRSVUU7Ci0rICAgICAgYnJlYWs7
Ci0rCi0gICAgIGRlZmF1bHQ6Ci0gICAgIHsKLSAgICAgICBjYXBzID0gX2dldF91bmtub3duX2Nv
ZGVjX25hbWUgKCJ0ZXh0IiwgZm91cmNjKTsKLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVt
dXhfdHlwZXMuYyBiL2dzdC9pc29tcDQvcXRkZW11eF90eXBlcy5jCi1pbmRleCA4OGRiOGMyY2Uu
LjFkNTg0MDM5NCAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eF90eXBlcy5jCi0rKysg
Yi9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYwotQEAgLTIxMyw2ICsyMTMsNyBAQCBzdGF0aWMg
Y29uc3QgUXROb2RlVHlwZSBxdF9ub2RlX3R5cGVzW10gPSB7Ci0gICB7Rk9VUkNDX3Bzc2gsICJw
cm90ZWN0aW9uIHN5c3RlbSBzcGVjaWZpYyBoZWFkZXIiLCAwfSwKLSAgIHtGT1VSQ0NfdGVuYywg
InRyYWNrIGVuY3J5cHRpb24iLCAwfSwKLSAgIHtGT1VSQ0Nfc3RwcCwgIlhNTCBzdWJ0aXRsZSBz
YW1wbGUgZW50cnkiLCAwfSwKLSsgIHtGT1VSQ0NfY2xjcCwgIkNsb3NlZCBDYXB0aW9uIiwgMH0s
Ci0gICB7MCwgInVua25vd24iLCAwLH0sCi0gfTsKLSAKLS0tIAotMi4xOC4wCi0KZGlmZiAtLWdp
dCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4
LURvLW5vdC1ydW4tdGhlLXByZWZlcnJlZC1kZWNyeXB0b3ItY29udGV4dC1xLnBhdGNoIGIvVG9v
bHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRG8tbm90
LXJ1bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBiN2FiOTc3NTc1ZmJhNWE3MDBiODI3ZDY3ODUzMzhmZWY0MjRk
ZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRG8tbm90LXJ1
bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2gKKysrIC9kZXYvbnVsbApA
QCAtMSwzMyArMCwwIEBACi1Gcm9tIDNlMDYzNzAzYjNhNTFiOGFhYTdmNzVmMzZjNDY2MGM1ODNh
NjBlOTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGliYXVsdCBTYXVuaWVyIDx0
c2F1bmllckBpZ2FsaWEuY29tPgotRGF0ZTogRnJpLCAyNSBNYXkgMjAxOCAxMDoxNzoyOSArMDIw
MAotU3ViamVjdDogW1BBVENIIDEvM10gcXRkZW11eDogRG8gbm90IHJ1biB0aGUgcHJlZmVycmVk
IGRlY3J5cHRvciBjb250ZXh0IHF1ZXJ5Ci0gaWYgbm8gZGVjcnlwdG9yIGF2YWxhaWJsZQotCi1V
bHRpbWF0ZWx5IHRoaXMgYXZvaWRzIGEgc2VnZmF1bHQgYXMgdGhlIGNvZGUgZXhwZWN0IGEgbm9u
IE5VTEwgYXJyYXkKLWhlcmUuCi0tLS0KLSBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDcgKysrKysr
KwotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9p
c29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IDNlOGNlNzg2MC4u
ZWM0YThhZGZkIDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9p
c29tcDQvcXRkZW11eC5jCi1AQCAtODA1Niw2ICs4MDU2LDEzIEBAIGdzdF9xdGRlbXV4X3JlcXVl
c3RfcHJvdGVjdGlvbl9jb250ZXh0IChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgIGdfcHRyX2Fy
cmF5X2FkZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKLSAgIGZpbHRl
cmVkX3N5c19pZHMgPSBnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVf
ZGVjcnlwdG9ycyAoCi0gICAgICAgKGNvbnN0IGdjaGFyICoqKSBxdGRlbXV4LT5wcm90ZWN0aW9u
X3N5c3RlbV9pZHMtPnBkYXRhKTsKLSsKLSsgIGlmICghZmlsdGVyZWRfc3lzX2lkcykgewotKyAg
ICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsCi0rICAgICAgICAiTm8gYXZhbGFpYmxlIGRlY3J5
cHRvciwgbm90IHdvcnRoIGFza2luZyB0aGUgdXNlciB0byBjaG9vc2UuIik7Ci0rICAgIHJldHVy
bjsKLSsgIH0KLSsKLSAgIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJvdGVj
dGlvbl9zeXN0ZW1faWRzLAotICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+
bGVuIC0gMSk7Ci0gICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAiZGV0ZWN0ZWQgJXUgcHJv
dGVjdGlvbiBzeXN0ZW1zLCB3ZSBoYXZlICIKLS0tIAotMi4xNy4wCi0KZGlmZiAtLWdpdCBhL1Rv
b2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMi1xdGRlbXV4LURvLW5v
dC11bnJlZi1hLU5VTEwtc3RyZWFtX3RhZ3MucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRkZW11eC1Eby1ub3QtdW5yZWYtYS1OVUxMLXN0cmVh
bV90YWdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTRkMTJhMmYyMzRi
NjMxY2M1NzdlMGE4MzI0OTAxY2Q1YzU2NTA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtMDAwMi1xdGRlbXV4LURvLW5vdC11bnJlZi1hLU5VTEwtc3RyZWFtX3RhZ3MucGF0Y2gKKysr
IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIDQzYTU0MGIxY2Q5ZjE2MmQzZGFlNWQ1
MGUzNjcwM2RmYWY1NThhM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGliYXVs
dCBTYXVuaWVyIDx0c2F1bmllckBpZ2FsaWEuY29tPgotRGF0ZTogRnJpLCAyNSBNYXkgMjAxOCAx
MDo0OToyMSArMDIwMAotU3ViamVjdDogW1BBVENIIDIvM10gcXRkZW11eDogRG8gbm90IHVucmVm
IGEgTlVMTCBzdHJlYW1fdGFncwotCi1zdHJlYW0tPnN0cmVhbV90YWdzIGlzIHJlc2V0IHRvIE5V
TEwgb25jZSB3ZSBleHBvc2UgdGhlIHN0cmVhbSBhbmQKLXRoZXNlIGhhdmUgYmVlbiBjb25zdW1l
ZCwgd2UgbmVlZCB0byBjaGVjayB0aGF0IHdoZW4gY2xlYW5pbmcgdXAKLXRoZSBzdHJlYW0uCi0t
LS0KLSBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDQgKysrLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGlu
c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IGVjNGE4YWRmZC4uNDExNmY0YzY5
IDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRk
ZW11eC5jCi1AQCAtMjYwMCw3ICsyNjAwLDkgQEAgZ3N0X3F0ZGVtdXhfc3RyZWFtX2NsZWFyIChR
dERlbXV4U3RyZWFtICogc3RyZWFtKQotICAgICBlbnRyeS0+c3BhcnNlID0gRkFMU0U7Ci0gICB9
Ci0gCi0tICBnc3RfdGFnX2xpc3RfdW5yZWYgKHN0cmVhbS0+c3RyZWFtX3RhZ3MpOwotKyAgaWYg
KHN0cmVhbS0+c3RyZWFtX3RhZ3MpCi0rICAgIGdzdF90YWdfbGlzdF91bnJlZiAoc3RyZWFtLT5z
dHJlYW1fdGFncyk7Ci0rCi0gICBzdHJlYW0tPnN0cmVhbV90YWdzID0gZ3N0X3RhZ19saXN0X25l
d19lbXB0eSAoKTsKLSAgIGdzdF90YWdfbGlzdF9zZXRfc2NvcGUgKHN0cmVhbS0+c3RyZWFtX3Rh
Z3MsIEdTVF9UQUdfU0NPUEVfU1RSRUFNKTsKLSAgIGdfZnJlZSAoc3RyZWFtLT5yZWRpcmVjdF91
cmkpOwotLS0gCi0yLjE3LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtZ29vZC0wMDAyLXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVk
LXByb3RlY3Rpb24ucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDItcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5w
YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI2NWFiNGYzOTM2NjEzOTQ0Nzhh
ZDliMmVjMTFhNzM5NTFjMGQzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDIt
cXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaAorKysg
L2Rldi9udWxsCkBAIC0xLDMzMCArMCwwIEBACi1Gcm9tIDBiYTYyYmE0ODA1ZTJjZGJlZDE3ZmE5
OTM0NzYyZDY4NWJlNDJmZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBYYWJpZXIg
Um9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KLURhdGU6IFdlZCwgMjEgSnVu
IDIwMTcgMTc6NTk6MjEgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzddIHF0ZGVtdXg6IGFkZCBj
b250ZXh0IGZvciBhIHByZWZlcnJlZCBwcm90ZWN0aW9uCi0KLXF0ZGVtdXggc2VsZWN0ZWQgdGhl
IGZpcnN0IHN5c3RlbSBjb3JyZXNwb25kaW5nIHRvIGEgd29ya2luZyBHU3RyZWFtZXIKLWRlY3J5
cHRvci4gV2l0aCB0aGlzIGNoYW5nZSwgYmVmb3JlIHNlbGVjdGluZyB0aGF0IGRlY3J5cHRvciwg
cXRkZW11eAotd2lsbCBjaGVjayBpZiBpdCBoYXMgY29udGV4dCAoYSBwcmVmZXJyZWQgZGVjcnlw
dG9yIGlkKSBhbmQgaWYgbm90LCBpdAotd2lsbCByZXF1ZXN0IGl0LgotCi1UaGUgcmVxdWVzdCBp
bmNsdWRlcyB0cmFjay1pZCwgYXZhaWxhYmxlIGtleSBzeXN0ZW0gaWRzIGZvciB0aGUKLWF2YWls
YWJsZSBkZWNyeXB0b3JzIGFuZCBldmVuIHRoZSBldmVudHMgc28gdGhhdCB0aGUgaW5pdCBkYXRh
IGlzCi1hY2Nlc3NpYmxlLgotCi1bZW9jYW5oYUBpZ2FsaWEuY29tOiBzZWxlY3QgdGhlIHByZWZl
cnJlZCBwcm90ZWN0aW9uIHN5c3RlbSBldmVuIGlmIG5vdCBhdmFpbGFibGVdCi0KLVRlc3QgIjQu
IENsZWFyS2V5VmlkZW8iIGluIFlvdVR1YmUgbGVhbmJhY2sgRU1FIGNvbmZvcm1hbmNlIHRlc3Rz
IDIwMTYgZm9yCi1ILjI2NFsxXSB1c2VzIGEgbWVkaWEgZmlsZVsyXSB3aXRoIGNlbmMgZW5jcnlw
dGlvbiB3aGljaCBlbWJlZHMgJ3Bzc2gnIGJveGVzCi13aXRoIHRoZSBpbml0IGRhdGEgZm9yIHRo
ZSBQbGF5cmVhZHkgYW5kIFdpZGV2aW5lIGVuY3J5cHRpb24gc3lzdGVtcywgYnV0IG5vdAotZm9y
IHRoZSBDbGVhcktleSBlbmNyeXB0aW9uIHN5c3RlbSAoYXMgZGVmaW5lZCBieSB0aGUgRU1FdjAu
MWIgc3BlY1szXSBhbmQgd2l0aAotdGhlIGVuY3J5cHRpb24gc3lzdGVtIGlkIGRlZmluZWQgaW4g
WzRdKS4KLQotSW5zdGVhZCwgdGhlIENsZWFyS2V5IGVuY3J5cHRpb24gc3lzdGVtIGlzIG1hbnVh
bGx5IHNlbGVjdGVkIGJ5IHRoZSB3ZWIgcGFnZQotY29kZSAoZXZlbiBpZiBub3Qgb3JpZ2luYWxs
eSBkZXRlY3RlZCBieSBxdGRlbXV4KSBhbmQgdGhlIHByb3BlciBkZWNyeXB0aW9uIGtleQotaXMg
ZGlzcGF0Y2hlZCB0byB0aGUgZGVjcnlwdG9yLCB3aGljaCBjYW4gdGhlbiBkZWNyeXB0IHRoZSB2
aWRlbyBzdWNjZXNzZnVsbHkuCi0KLVsxXSBodHRwOi8veXQtZGFzaC1tc2UtdGVzdC5jb21tb25k
YXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS91bml0LXRlc3RzLzIwMTYuaHRtbD90ZXN0X3R5cGU9
ZW5jcnlwdGVkbWVkaWEtdGVzdCZ3ZWJtPWZhbHNlCi1bMl0gaHR0cDovL3l0LWRhc2gtbXNlLXRl
c3QuY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdW5pdC10ZXN0cy9tZWRpYS9jYXJf
Y2VuYy0yMDEyMDgyNy04Ni5tcDQKLVszXSBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVk
aWEvcmF3LWZpbGUvZW1lLXYwLjFiL2VuY3J5cHRlZC1tZWRpYS9lbmNyeXB0ZWQtbWVkaWEuaHRt
bCNzaW1wbGUtZGVjcnlwdGlvbi1jbGVhci1rZXkKLVs0XSBodHRwczovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTI0MDI3I2MyCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25v
bWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAxMDcKLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5j
IHwgMjAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KLSBnc3Qv
aXNvbXA0L3F0ZGVtdXguaCB8ICAgMSArCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9u
cygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5j
IGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IDcwNWJkZjdjYS4uZGEyMjQ2M2Y4IDEwMDY0
NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
Ci1AQCAtNTExLDYgKzUxMSw4IEBAIHN0YXRpYyBHc3RJbmRleCAqZ3N0X3F0ZGVtdXhfZ2V0X2lu
ZGV4IChHc3RFbGVtZW50ICogZWxlbWVudCk7Ci0gI2VuZGlmCi0gc3RhdGljIEdzdFN0YXRlQ2hh
bmdlUmV0dXJuIGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQs
Ci0gICAgIEdzdFN0YXRlQ2hhbmdlIHRyYW5zaXRpb24pOwotK3N0YXRpYyB2b2lkIGdzdF9xdGRl
bXV4X3NldF9jb250ZXh0IChHc3RFbGVtZW50ICogZWxlbWVudCwKLSsgICAgR3N0Q29udGV4dCAq
IGNvbnRleHQpOwotIHN0YXRpYyBnYm9vbGVhbiBxdGRlbXV4X3NpbmtfYWN0aXZhdGUgKEdzdFBh
ZCAqIHNpbmtwYWQsIEdzdE9iamVjdCAqIHBhcmVudCk7Ci0gc3RhdGljIGdib29sZWFuIHF0ZGVt
dXhfc2lua19hY3RpdmF0ZV9tb2RlIChHc3RQYWQgKiBzaW5rcGFkLAotICAgICBHc3RPYmplY3Qg
KiBwYXJlbnQsIEdzdFBhZE1vZGUgbW9kZSwgZ2Jvb2xlYW4gYWN0aXZlKTsKLUBAIC02MDAsNiAr
NjAyLDcgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3Mp
Ci0gICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0
X3F0ZGVtdXhfc2V0X2luZGV4KTsKLSAgIGdzdGVsZW1lbnRfY2xhc3MtPmdldF9pbmRleCA9IEdT
VF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9nZXRfaW5kZXgpOwotICNlbmRpZgotKyAgZ3N0
ZWxlbWVudF9jbGFzcy0+c2V0X2NvbnRleHQgPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVt
dXhfc2V0X2NvbnRleHQpOwotIAotICAgZ3N0X3RhZ19yZWdpc3Rlcl9tdXNpY2JyYWluel90YWdz
ICgpOwotIAotQEAgLTY1OCw2ICs2NjEsNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4
ICogcXRkZW11eCkKLSAgIHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOwotICAg
cXRkZW11eC0+Y2VuY19hdXhfc2FtcGxlX2NvdW50ID0gMDsKLSAgIHF0ZGVtdXgtPnByb3RlY3Rp
b25fc3lzdGVtX2lkcyA9IE5VTEw7Ci0rICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQgPSBOVUxMOwotICAgZ19xdWV1ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9l
dmVudF9xdWV1ZSk7Ci0gICBnc3Rfc2VnbWVudF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NU
X0ZPUk1BVF9USU1FKTsKLSAgIHF0ZGVtdXgtPnRhZ19saXN0ID0gZ3N0X3RhZ19saXN0X25ld19l
bXB0eSAoKTsKLUBAIC0yMTIxLDYgKzIxMjUsMTAgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFU
RGVtdXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJkKQotICAgICAgIGdfcHRyX2FycmF5X2ZyZWUg
KHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywgVFJVRSk7Ci0gICAgICAgcXRkZW11eC0+
cHJvdGVjdGlvbl9zeXN0ZW1faWRzID0gTlVMTDsKLSAgICAgfQotKyAgICBpZiAocXRkZW11eC0+
cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKSB7Ci0rICAgICAgZ19mcmVlIChxdGRlbXV4
LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOwotKyAgICAgIHF0ZGVtdXgtPnByZWZl
cnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCA9IE5VTEw7Ci0rICAgIH0KLSAgIH0gZWxzZSBpZiAo
cXRkZW11eC0+bXNzX21vZGUpIHsKLSAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVt
dXgtPmZsb3djb21iaW5lcik7Ci0gICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVh
bXM7IG4rKykKLUBAIC0yNjA2LDYgKzI2MTQsMjggQEAgZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRl
IChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKLSAgIHJl
dHVybiByZXN1bHQ7Ci0gfQotIAotK3N0YXRpYyB2b2lkCi0rZ3N0X3F0ZGVtdXhfc2V0X2NvbnRl
eHQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBHc3RDb250ZXh0ICogY29udGV4dCkKLSt7Ci0rICBH
c3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKGVsZW1lbnQpOwotKwotKyAgZ19yZXR1
cm5faWZfZmFpbCAoR1NUX0lTX0NPTlRFWFQgKGNvbnRleHQpKTsKLSsKLSsgIGlmIChnc3RfY29u
dGV4dF9oYXNfY29udGV4dF90eXBlIChjb250ZXh0LAotKyAgICAgICAgICAiZHJtLXByZWZlcnJl
ZC1kZWNyeXB0aW9uLXN5c3RlbS1pZCIpKSB7Ci0rICAgIGNvbnN0IEdzdFN0cnVjdHVyZSAqczsK
LSsKLSsgICAgcyA9IGdzdF9jb250ZXh0X2dldF9zdHJ1Y3R1cmUgKGNvbnRleHQpOwotKyAgICBn
X2ZyZWUgKHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCk7Ci0rICAgIHF0
ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCA9Ci0rICAgICAgICBnX3N0cmR1
cCAoZ3N0X3N0cnVjdHVyZV9nZXRfc3RyaW5nIChzLCAiZGVjcnlwdGlvbi1zeXN0ZW0taWQiKSk7
Ci0rICAgIEdTVF9ERUJVR19PQkpFQ1QgKGVsZW1lbnQsICJzZXQgcHJlZmVycmVkIGRlY3J5cHRp
b24gc3lzdGVtIHRvICVzIiwKLSsgICAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9u
X3N5c3RlbV9pZCk7Ci0rICB9Ci0rCi0rICBHU1RfRUxFTUVOVF9DTEFTUyAocGFyZW50X2NsYXNz
KS0+c2V0X2NvbnRleHQgKGVsZW1lbnQsIGNvbnRleHQpOwotK30KLSsKLSBzdGF0aWMgdm9pZAot
IHF0ZGVtdXhfcGFyc2VfZnR5cCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGNvbnN0IGd1aW50OCAq
IGJ1ZmZlciwgZ2ludCBsZW5ndGgpCi0gewotQEAgLTM4NDcsNiArMzg3Nyw4IEBAIHF0ZGVtdXhf
cGFyc2VfcHNzaCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdOb2RlICogbm9kZSkKLSAgIGV2ZW50
ID0gZ3N0X2V2ZW50X25ld19wcm90ZWN0aW9uIChzeXNpZF9zdHJpbmcsIHBzc2gsCi0gICAgICAg
KHBhcmVudF9ib3hfdHlwZSA9PSBGT1VSQ0NfbW9vdikgPyAiaXNvYm1mZi9tb292IiA6ICJpc29i
bWZmL21vb2YiKTsKLSAgIGZvciAoaSA9IDA7IGkgPCBxdGRlbXV4LT5uX3N0cmVhbXM7ICsraSkg
ewotKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LAotKyAgICAgICAgImFkZGluZyBwcm90
ZWN0aW9uIGV2ZW50IGZvciBzdHJlYW0gJWQgYW5kIHN5c3RlbSAlcyIsIGksIHN5c2lkX3N0cmlu
Zyk7Ci0gICAgIGdfcXVldWVfcHVzaF90YWlsICgmcXRkZW11eC0+c3RyZWFtc1tpXS0+cHJvdGVj
dGlvbl9zY2hlbWVfZXZlbnRfcXVldWUsCi0gICAgICAgICBnc3RfZXZlbnRfcmVmIChldmVudCkp
OwotICAgfQotQEAgLTU1NjMsNiArNTU5NSw4IEBAIGdzdF9xdGRlbXV4X2RlY29yYXRlX2FuZF9w
dXNoX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgIEdzdEV2ZW50ICpldmVudDsK
LSAKLSAgICAgd2hpbGUgKChldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJlYW0tPnByb3Rl
Y3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlKSkpIHsKLSsgICAgICBHU1RfVFJBQ0VfT0JKRUNUIChz
dHJlYW0tPnBhZCwgInB1c2hpbmcgcHJvdGVjdGlvbiBldmVudDogJSIKLSsgICAgICAgICAgR1NU
X1BUUl9GT1JNQVQsIGV2ZW50KTsKLSAgICAgICBnc3RfcGFkX3B1c2hfZXZlbnQgKHN0cmVhbS0+
cGFkLCBldmVudCk7Ci0gICAgIH0KLSAKLUBAIC03NzU2LDEyICs3NzkwLDE0MiBAQCBxdGRlbXV4
X2RvX2FsbG9jYXRpb24gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBRdERlbXV4U3RyZWFtICogc3Ry
ZWFtKQotICNlbmRpZgotIH0KLSAKLStzdGF0aWMgZ2Jvb2xlYW4KLStwYWRfcXVlcnkgKGNvbnN0
IEdWYWx1ZSAqIGl0ZW0sIEdWYWx1ZSAqIHZhbHVlLCBncG9pbnRlciB1c2VyX2RhdGEpCi0rewot
KyAgR3N0UGFkICpwYWQgPSBnX3ZhbHVlX2dldF9vYmplY3QgKGl0ZW0pOwotKyAgR3N0UXVlcnkg
KnF1ZXJ5ID0gdXNlcl9kYXRhOwotKyAgZ2Jvb2xlYW4gcmVzOwotKwotKyAgcmVzID0gZ3N0X3Bh
ZF9wZWVyX3F1ZXJ5IChwYWQsIHF1ZXJ5KTsKLSsKLSsgIGlmIChyZXMpIHsKLSsgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbiAodmFsdWUsIFRSVUUpOwotKyAgICByZXR1cm4gRkFMU0U7Ci0rICB9Ci0r
Ci0rICBHU1RfSU5GT19PQkpFQ1QgKHBhZCwgInBhZCBwZWVyIHF1ZXJ5IGZhaWxlZCIpOwotKyAg
cmV0dXJuIFRSVUU7Ci0rfQotKwotK3N0YXRpYyBnYm9vbGVhbgotK2dzdF9xdGRlbXV4X3J1bl9x
dWVyeSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdFF1ZXJ5ICogcXVlcnksCi0rICAgIEdzdFBh
ZERpcmVjdGlvbiBkaXJlY3Rpb24pCi0rewotKyAgR3N0SXRlcmF0b3IgKml0OwotKyAgR3N0SXRl
cmF0b3JGb2xkRnVuY3Rpb24gZnVuYyA9IHBhZF9xdWVyeTsKLSsgIEdWYWx1ZSByZXMgPSB7IDAs
IH07Ci0rCi0rICBnX3ZhbHVlX2luaXQgKCZyZXMsIEdfVFlQRV9CT09MRUFOKTsKLSsgIGdfdmFs
dWVfc2V0X2Jvb2xlYW4gKCZyZXMsIEZBTFNFKTsKLSsKLSsgIC8qIEFzayBuZWlnaGJvciAqLwot
KyAgaWYgKGRpcmVjdGlvbiA9PSBHU1RfUEFEX1NSQykKLSsgICAgaXQgPSBnc3RfZWxlbWVudF9p
dGVyYXRlX3NyY19wYWRzIChlbGVtZW50KTsKLSsgIGVsc2UKLSsgICAgaXQgPSBnc3RfZWxlbWVu
dF9pdGVyYXRlX3NpbmtfcGFkcyAoZWxlbWVudCk7Ci0rCi0rICB3aGlsZSAoZ3N0X2l0ZXJhdG9y
X2ZvbGQgKGl0LCBmdW5jLCAmcmVzLCBxdWVyeSkgPT0gR1NUX0lURVJBVE9SX1JFU1lOQykKLSsg
ICAgZ3N0X2l0ZXJhdG9yX3Jlc3luYyAoaXQpOwotKwotKyAgZ3N0X2l0ZXJhdG9yX2ZyZWUgKGl0
KTsKLSsKLSsgIHJldHVybiBnX3ZhbHVlX2dldF9ib29sZWFuICgmcmVzKTsKLSt9Ci0rCi0rc3Rh
dGljIHZvaWQKLStnc3RfcXRkZW11eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dCAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgsCi0rICAgIFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0pCi0rewotKyAgR3N0
UXVlcnkgKnF1ZXJ5OwotKyAgR3N0Q29udGV4dCAqY3R4dDsKLSsgIEdzdEVsZW1lbnQgKmVsZW1l
bnQgPSBHU1RfRUxFTUVOVCAocXRkZW11eCk7Ci0rICBHc3RTdHJ1Y3R1cmUgKnN0OwotKyAgZ2No
YXIgKipmaWx0ZXJlZF9zeXNfaWRzOwotKyAgR1ZhbHVlIGV2ZW50X2xpc3QgPSBHX1ZBTFVFX0lO
SVQ7Ci0rICBHTGlzdCAqd2FsazsKLSsKLSsgIC8qIDEuIENoZWNrIGlmIHdlIGFscmVhZHkgaGF2
ZSB0aGUgY29udGV4dC4gKi8KLSsgIGlmIChxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQgIT0gTlVMTCkgewotKyAgICBHU1RfTE9HX09CSkVDVCAoZWxlbWVudCwKLSsgICAg
ICAgICJhbHJlYWR5IGhhdmUgdGhlIHByb3RlY3Rpb24gY29udGV4dCwgbm8gbmVlZCB0byByZXF1
ZXN0IGl0IGFnYWluIik7Ci0rICAgIHJldHVybjsKLSsgIH0KLSsKLSsgIGdfcHRyX2FycmF5X2Fk
ZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKLSsgIGZpbHRlcmVkX3N5
c19pZHMgPSBnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlw
dG9ycyAoCi0rICAgICAgKGNvbnN0IGdjaGFyICoqKSBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3Rl
bV9pZHMtPnBkYXRhKTsKLSsgIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJv
dGVjdGlvbl9zeXN0ZW1faWRzLAotKyAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lk
cy0+bGVuIC0gMSk7Ci0rICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAiZGV0ZWN0ZWQgJXUg
cHJvdGVjdGlvbiBzeXN0ZW1zLCB3ZSBoYXZlICIKLSsgICAgICAiZGVjcnlwdG9ycyBmb3IgJXUg
b2YgdGhlbSwgcnVubmluZyBjb250ZXh0IHJlcXVlc3QiLAotKyAgICAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcy0+bGVuLCBnX3N0cnZfbGVuZ3RoIChmaWx0ZXJlZF9zeXNfaWRzKSk7
Ci0rCi0rICBpZiAoc3RyZWFtLT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZS5sZW5ndGgp
IHsKLSsgICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgInVzaW5nIHN0cmVhbSBldmVudCBx
dWV1ZSwgbGVuZ3RoICV1IiwKLSsgICAgICAgIHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZl
bnRfcXVldWUubGVuZ3RoKTsKLSsgICAgd2FsayA9IHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVf
ZXZlbnRfcXVldWUudGFpbDsKLSsgIH0gZWxzZSB7Ci0rICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0
ZGVtdXgsICJ1c2luZyBkZW11eGVyIGV2ZW50IHF1ZXVlLCBsZW5ndGggJXUiLAotKyAgICAgICAg
cXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZS5sZW5ndGgpOwotKyAgICB3YWxrID0gcXRk
ZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZS50YWlsOwotKyAgfQotKwotKyAgZ192YWx1ZV9p
bml0ICgmZXZlbnRfbGlzdCwgR1NUX1RZUEVfTElTVCk7Ci0rICBmb3IgKDsgd2Fsazsgd2FsayA9
IGdfbGlzdF9wcmV2aW91cyAod2FsaykpIHsKLSsgICAgR1ZhbHVlICpldmVudF92YWx1ZSA9IGdf
bmV3MCAoR1ZhbHVlLCAxKTsKLSsgICAgZ192YWx1ZV9pbml0IChldmVudF92YWx1ZSwgR1NUX1RZ
UEVfRVZFTlQpOwotKyAgICBnX3ZhbHVlX3NldF9ib3hlZCAoZXZlbnRfdmFsdWUsIHdhbGstPmRh
dGEpOwotKyAgICBnc3RfdmFsdWVfbGlzdF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUgKCZldmVudF9s
aXN0LCBldmVudF92YWx1ZSk7Ci0rICB9Ci0rCi0rICAvKiAgMmEpIFF1ZXJ5IGRvd25zdHJlYW0g
d2l0aCBHU1RfUVVFUllfQ09OVEVYVCBmb3IgdGhlIGNvbnRleHQgYW5kCi0rICAgKiAgICAgIGNo
ZWNrIGlmIGRvd25zdHJlYW0gYWxyZWFkeSBoYXMgYSBjb250ZXh0IG9mIHRoZSBzcGVjaWZpYyB0
eXBlCi0rICAgKiAgMmIpIFF1ZXJ5IHVwc3RyZWFtIGFzIGFib3ZlLgotKyAgICovCi0rICBxdWVy
eSA9IGdzdF9xdWVyeV9uZXdfY29udGV4dCAoImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0
ZW0taWQiKTsKLSsgIHN0ID0gZ3N0X3F1ZXJ5X3dyaXRhYmxlX3N0cnVjdHVyZSAocXVlcnkpOwot
KyAgZ3N0X3N0cnVjdHVyZV9zZXQgKHN0LCAidHJhY2staWQiLCBHX1RZUEVfVUlOVCwgc3RyZWFt
LT50cmFja19pZCwKLSsgICAgICAic3RyZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIsIEdfVFlQRV9T
VFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKLSsgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbHVl
IChzdCwgInN0cmVhbS1lbmNyeXB0aW9uLWV2ZW50cyIsICZldmVudF9saXN0KTsKLSsgIGlmIChn
c3RfcXRkZW11eF9ydW5fcXVlcnkgKGVsZW1lbnQsIHF1ZXJ5LCBHU1RfUEFEX1NSQykpIHsKLSsg
ICAgZ3N0X3F1ZXJ5X3BhcnNlX2NvbnRleHQgKHF1ZXJ5LCAmY3R4dCk7Ci0rICAgIEdTVF9JTkZP
X09CSkVDVCAoZWxlbWVudCwgImZvdW5kIGNvbnRleHQgKCVwKSBpbiBkb3duc3RyZWFtIHF1ZXJ5
IiwgY3R4dCk7Ci0rICAgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IChlbGVtZW50LCBjdHh0KTsK
LSsgIH0gZWxzZSBpZiAoZ3N0X3F0ZGVtdXhfcnVuX3F1ZXJ5IChlbGVtZW50LCBxdWVyeSwgR1NU
X1BBRF9TSU5LKSkgewotKyAgICBnc3RfcXVlcnlfcGFyc2VfY29udGV4dCAocXVlcnksICZjdHh0
KTsKLSsgICAgR1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAiZm91bmQgY29udGV4dCAoJXApIGlu
IHVwc3RyZWFtIHF1ZXJ5IiwgY3R4dCk7Ci0rICAgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IChl
bGVtZW50LCBjdHh0KTsKLSsgIH0gZWxzZSB7Ci0rICAgIC8qIDMpIFBvc3QgYSBHU1RfTUVTU0FH
RV9ORUVEX0NPTlRFWFQgbWVzc2FnZSBvbiB0aGUgYnVzIHdpdGgKLSsgICAgICogICAgdGhlIHJl
cXVpcmVkIGNvbnRleHQgdHlwZSBhbmQgYWZ0ZXJ3YXJkcyBjaGVjayBpZiBhCi0rICAgICAqICAg
IHVzYWJsZSBjb250ZXh0IHdhcyBzZXQgbm93IGFzIGluIDEpLiBUaGUgbWVzc2FnZSBjb3VsZAot
KyAgICAgKiAgICBiZSBoYW5kbGVkIGJ5IHRoZSBwYXJlbnQgYmlucyBvZiB0aGUgZWxlbWVudCBh
bmQgdGhlCi0rICAgICAqICAgIGFwcGxpY2F0aW9uLgotKyAgICAgKi8KLSsgICAgR3N0TWVzc2Fn
ZSAqbXNnOwotKwotKyAgICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsICJwb3N0aW5nIG5lZWQg
Y29udGV4dCBtZXNzYWdlIik7Ci0rICAgIG1zZyA9IGdzdF9tZXNzYWdlX25ld19uZWVkX2NvbnRl
eHQgKEdTVF9PQkpFQ1RfQ0FTVCAoZWxlbWVudCksCi0rICAgICAgICAiZHJtLXByZWZlcnJlZC1k
ZWNyeXB0aW9uLXN5c3RlbS1pZCIpOwotKyAgICBzdCA9IChHc3RTdHJ1Y3R1cmUgKikgZ3N0X21l
c3NhZ2VfZ2V0X3N0cnVjdHVyZSAobXNnKTsKLSsgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHN0LCAi
dHJhY2staWQiLCBHX1RZUEVfVUlOVCwgc3RyZWFtLT50cmFja19pZCwKLSsgICAgICAgICJzdHJl
YW0tZW5jcnlwdGlvbi1zeXN0ZW1zIiwgR19UWVBFX1NUUlYsIGZpbHRlcmVkX3N5c19pZHMsIE5V
TEwpOwotKyAgICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJzdHJlYW0tZW5jcnlwdGlv
bi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7Ci0rICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSAo
ZWxlbWVudCwgbXNnKTsKLSsgIH0KLSsKLSsgIGdfc3RyZnJlZXYgKGZpbHRlcmVkX3N5c19pZHMp
OwotKyAgZ192YWx1ZV91bnNldCAoJmV2ZW50X2xpc3QpOwotKyAgZ3N0X3F1ZXJ5X3VucmVmIChx
dWVyeSk7Ci0rfQotKwotIHN0YXRpYyBnYm9vbGVhbgotIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9w
cm90ZWN0ZWRfY2FwcyAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgIFF0RGVtdXhTdHJlYW0g
KiBzdHJlYW0pCi0gewotICAgR3N0U3RydWN0dXJlICpzOwotLSAgY29uc3QgZ2NoYXIgKnNlbGVj
dGVkX3N5c3RlbTsKLSsgIGNvbnN0IGdjaGFyICpzZWxlY3RlZF9zeXN0ZW0gPSBOVUxMOwotIAot
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHF0ZGVtdXggIT0gTlVMTCwgRkFMU0UpOwotICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cmVhbSAhPSBOVUxMLCBGQUxTRSk7Ci1AQCAtNzc3NywxNyAr
Nzk0MSw0MSBAQCBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVkX2NhcHMgKEdzdFFURGVt
dXggKiBxdGRlbXV4LAotICAgICAgICAgImNlbmMgcHJvdGVjdGlvbiBzeXN0ZW0gaW5mb3JtYXRp
b24gaGFzIGJlZW4gZm91bmQiKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQotLSAgZ19wdHJf
YXJyYXlfYWRkIChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOwotLSAgc2Vs
ZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoKGNvbnN0IGdjaGFy
ICoqKQotLSAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+cGRhdGEpOwotLSAg
Z19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMs
Ci0tICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAxKTsKLSsKLSsg
IGdzdF9xdGRlbXV4X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0IChxdGRlbXV4LCBzdHJlYW0p
OwotKyAgaWYgKHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCAhPSBOVUxM
KSB7Ci0rICAgIGNvbnN0IGdjaGFyICpwcmVmZXJyZWRfc3lzdGVtX2FycmF5W10gPQotKyAgICAg
ICAgeyBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQsIE5VTEwgfTsKLSsK
LSsgICAgc2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAocHJl
ZmVycmVkX3N5c3RlbV9hcnJheSk7Ci0rCi0rICAgIGlmIChzZWxlY3RlZF9zeXN0ZW0pIHsKLSsg
ICAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAic2VsZWN0ZWQgcHJlZmVycmVkIHN5c3Rl
bSAlcyIsCi0rICAgICAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9p
ZCk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChxdGRlbXV4LCAi
Y291bGQgbm90IHNlbGVjdCBwcmVmZXJyZWQgc3lzdGVtICVzICIKLSsgICAgICAgICAgImJlY2F1
c2UgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIGRlY3J5cHRvciIsCi0rICAgICAgICAgIHF0ZGVtdXgt
PnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCk7Ci0rICAgIH0KLSsgIH0KLSsKLSsgIGlm
ICghc2VsZWN0ZWRfc3lzdGVtKSB7Ci0rICAgIGdfcHRyX2FycmF5X2FkZCAocXRkZW11eC0+cHJv
dGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKLSsgICAgc2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3By
b3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoKGNvbnN0IGdjaGFyICoqKQotKyAgICAgICAgcXRkZW11
eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5wZGF0YSk7Ci0rICAgIGdfcHRyX2FycmF5X3JlbW92
ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLAotKyAgICAgICAgcXRkZW11
eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAxKTsKLSsgIH0KLSsKLSAgIGlmICghc2Vs
ZWN0ZWRfc3lzdGVtKSB7Ci0gICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJzdHJlYW0g
aXMgcHJvdGVjdGVkLCBidXQgbm8gIgotICAgICAgICAgInN1aXRhYmxlIGRlY3J5cHRvciBlbGVt
ZW50IGhhcyBiZWVuIGZvdW5kIik7Ci0gICAgIHJldHVybiBGQUxTRTsKLSAgIH0KLSAKLSsgIEdT
VF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJzZWxlY3RlZCBwcm90ZWN0aW9uIHN5c3RlbSBpcyAl
cyIsCi0rICAgICAgc2VsZWN0ZWRfc3lzdGVtKTsKLSsKLSAgIHMgPSBnc3RfY2Fwc19nZXRfc3Ry
dWN0dXJlIChDVVJfU1RSRUFNIChzdHJlYW0pLT5jYXBzLCAwKTsKLSAgIGlmICghZ3N0X3N0cnVj
dHVyZV9oYXNfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtY2VuYyIpKSB7Ci0gICAgIGdzdF9zdHJ1
Y3R1cmVfc2V0IChzLAotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lz
b21wNC9xdGRlbXV4LmgKLWluZGV4IGFkNGRhM2VmMi4uMDc5MzcyMzU2IDEwMDY0NAotLS0tIGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmgKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1AQCAtMTUx
LDYgKzE1MSw3IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7Ci0gICBndWludDY0IGNlbmNfYXV4X2lu
Zm9fb2Zmc2V0OwotICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3NpemVzOwotICAgZ3VpbnQzMiBj
ZW5jX2F1eF9zYW1wbGVfY291bnQ7Ci0rICBnY2hhciAqcHJlZmVycmVkX3Byb3RlY3Rpb25fc3lz
dGVtX2lkOwotIAotIAotICAgLyoKLS0tIAotMi4xNy4wCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dz
dHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1xdGRlbXV4LUNsYXJpZnktZmll
bGQtbmFtZS1hYm91dC1zdHJlYW0tZW5jcnlwdGlvbi1zLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVy
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtQ2xhcmlmeS1maWVsZC1uYW1l
LWFib3V0LXN0cmVhbS1lbmNyeXB0aW9uLXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNkZDZiZWMzZjYwNjY4OWRjNjk3NzcyNDQwOTY4OTFkMTI4ZGQzNTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtQ2xhcmlmeS1maWVsZC1uYW1lLWFi
b3V0LXN0cmVhbS1lbmNyeXB0aW9uLXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCww
IEBACi1Gcm9tIDBmYmRlMmEwNzkyOGJhNzliN2E0ZGRiNDU4NWY2YjFkZTM2YTc0YmIgTW9uIFNl
cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBpZ2Fs
aWEuY29tPgotRGF0ZTogRnJpLCAyNSBNYXkgMjAxOCAxMjoyODowNCArMDIwMAotU3ViamVjdDog
W1BBVENIXSBxdGRlbXV4OiBDbGFyaWZ5IGZpZWxkIG5hbWUgYWJvdXQgc3RyZWFtLWVuY3J5cHRp
b24tc3lzdGVtCi0KLVRoaXMgZmllbGQgaXMgYWN0dWFsbHkgb25seSBpbmZvcm1hdG9yeSBhbmQg
dGhlIHVzZXIgY2FuIHBvdGVudGlhbGx5Ci1jaG9vc2Ugc29tZXRoaW5nIGVsc2UuIEVNRSB0ZXN0
cyBpbiBXZWJLaXQgdGVzdHN1aXRlIGFjdHVhbGx5IGRvZXNuJ3QKLXRha2UgaXQgaW50byBhbmQg
Zm9yY2UgYW5vdGhlciBlbmNyeXB0aW9uIHN5c3RlbSB0byBiZSB1c2VkLCBhbmQgZXhwZWN0cwot
dG8gYmUgZ2l2ZW4gdGhlIG9jY2FzaW9uIHRvIGRvIHNvLgotCi1UaGlzIGJhc2ljYWxseSBhbHNv
IHJldmVydHMgM2UwNjM3MDNiM2E1MWI4YWFhN2Y3NWYzNmM0NjYwYzU4M2E2MGU5My4KLS0tLQot
IGdzdC9pc29tcDQvcXRkZW11eC5jIHwgMTMgKysrKystLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2Vk
LCA1IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCBiZDNhMDBjY2YuLjUx
NTY4NzM1MyAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguYwotQEAgLTgwOTYsMTIgKzgwOTYsNiBAQCBnc3RfcXRkZW11eF9yZXF1ZXN0
X3Byb3RlY3Rpb25fY29udGV4dCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICBmaWx0ZXJlZF9z
eXNfaWRzID0gZ3N0X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5
cHRvcnMgKAotICAgICAgIChjb25zdCBnY2hhciAqKikgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0
ZW1faWRzLT5wZGF0YSk7Ci0gCi0tICBpZiAoIWZpbHRlcmVkX3N5c19pZHMpIHsKLS0gICAgR1NU
X0lORk9fT0JKRUNUIChlbGVtZW50LAotLSAgICAgICAgIk5vIGF2YWxhaWJsZSBkZWNyeXB0b3Is
IG5vdCB3b3J0aCBhc2tpbmcgdGhlIHVzZXIgdG8gY2hvb3NlLiIpOwotLSAgICByZXR1cm47Ci0t
ICB9Ci0tCi0gICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcywKLSAgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAt
IDEpOwotICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgImRldGVjdGVkICV1IHByb3RlY3Rp
b24gc3lzdGVtcywgd2UgaGF2ZSAiCi1AQCAtODEzMyw3ICs4MTI3LDggQEAgZ3N0X3F0ZGVtdXhf
cmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAotICAgcXVl
cnkgPSBnc3RfcXVlcnlfbmV3X2NvbnRleHQgKCJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lz
dGVtLWlkIik7Ci0gICBzdCA9IGdzdF9xdWVyeV93cml0YWJsZV9zdHJ1Y3R1cmUgKHF1ZXJ5KTsK
LSAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBFX1VJTlQsIHN0cmVh
bS0+dHJhY2tfaWQsCi0tICAgICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVf
U1RSViwgZmlsdGVyZWRfc3lzX2lkcywgTlVMTCk7Ci0rICAgICAgImF2YWlsYWJsZS1zdHJlYW0t
ZW5jcnlwdGlvbi1zeXN0ZW1zIiwgR19UWVBFX1NUUlYsIGZpbHRlcmVkX3N5c19pZHMsCi0rICAg
ICAgTlVMTCk7Ci0gICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJzdHJlYW0tZW5jcnlw
dGlvbi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7Ci0gICBpZiAoZ3N0X3F0ZGVtdXhfcnVuX3F1ZXJ5
IChlbGVtZW50LCBxdWVyeSwgR1NUX1BBRF9TUkMpKSB7Ci0gICAgIGdzdF9xdWVyeV9wYXJzZV9j
b250ZXh0IChxdWVyeSwgJmN0eHQpOwotQEAgLTgxNTcsNyArODE1Miw5IEBAIGdzdF9xdGRlbXV4
X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0IChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAg
ICAgICJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIik7Ci0gICAgIHN0ID0gKEdz
dFN0cnVjdHVyZSAqKSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlIChtc2cpOwotICAgICBnc3Rf
c3RydWN0dXJlX3NldCAoc3QsICJ0cmFjay1pZCIsIEdfVFlQRV9VSU5ULCBzdHJlYW0tPnRyYWNr
X2lkLAotLSAgICAgICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwg
ZmlsdGVyZWRfc3lzX2lkcywgTlVMTCk7Ci0rICAgICAgICAiYXZhaWxhYmxlLXN0cmVhbS1lbmNy
eXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwgZmlsdGVyZWRfc3lzX2lkcywKLSsgICAgICAg
IE5VTEwpOwotKwotICAgICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJzdHJlYW0tZW5j
cnlwdGlvbi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7Ci0gICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVz
c2FnZSAoZWxlbWVudCwgbXNnKTsKLSAgIH0KLS0tIAotMi4xNy4wCi0KZGlmZiAtLWdpdCBhL1Rv
b2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1xdGRlbXV4LWFsc28t
cHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoIGIvVG9vbHMvZ3N0
cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtYWxzby1wdXNoLWJ1
ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQxN2RmNjkyYjRkMmYzOTJjYTUyZjgxMzZiOTE2Yzg1NTQwZTIzNzUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZl
cnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2
MyArMCwwIEBACi1Gcm9tIDc2MmU5YzY0NWVjMTM1MTNjNjJlYjVhMzgwMGQ3NDA2ZTAxY2RjYjcg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1D
Mz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KLURhdGU6IE1vbiwg
MjQgQXByIDIwMTcgMTc6MjI6MDIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzddIHF0ZGVtdXg6
IGFsc28gcHVzaCBidWZmZXJzIHdpdGhvdXQgZW5jcnlwdGlvbiBpbmZvCi0gaW5zdGVhZCBvZiBk
cm9wcGluZyB0aGVtCi0KLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgMzkgKysrKysrKysr
KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE5IGluc2Vy
dGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRl
bXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggZGEyMjQ2M2Y4Li44ZTlmNWI5YWUg
MTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21wNC9xdGRl
bXV4LmMKLUBAIC01NjAwLDI2ICs1NjAwLDI1IEBAIGdzdF9xdGRlbXV4X2RlY29yYXRlX2FuZF9w
dXNoX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgICAgZ3N0X3BhZF9wdXNoX2V2
ZW50IChzdHJlYW0tPnBhZCwgZXZlbnQpOwotICAgICB9Ci0gCi0tICAgIGlmIChpbmZvLT5jcnlw
dG9faW5mbyA9PSBOVUxMKSB7Ci0tICAgICAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgImNl
bmMgbWV0YWRhdGEgaGFzbid0IGJlZW4gcGFyc2VkIHlldCIpOwotLSAgICAgIGdzdF9idWZmZXJf
dW5yZWYgKGJ1Zik7Ci0tICAgICAgZ290byBleGl0OwotLSAgICB9Ci0tCi0tICAgIC8qIFRoZSBl
bmQgb2YgdGhlIGNyeXB0b19pbmZvIGFycmF5IG1hdGNoZXMgb3VyIG5fc2FtcGxlcyBwb3NpdGlv
biwKLS0gICAgICogc28gY291bnQgYmFja3dhcmQgZnJvbSB0aGVyZSAqLwotLSAgICBpbmRleCA9
IHN0cmVhbS0+c2FtcGxlX2luZGV4IC0gc3RyZWFtLT5uX3NhbXBsZXMgKyBpbmZvLT5jcnlwdG9f
aW5mby0+bGVuOwotLSAgICBpZiAoR19MSUtFTFkgKGluZGV4ID49IDAgJiYgaW5kZXggPCBpbmZv
LT5jcnlwdG9faW5mby0+bGVuKSkgewotLSAgICAgIC8qIHN0ZWFsIHN0cnVjdHVyZSBmcm9tIGFy
cmF5ICovCi0tICAgICAgY3J5cHRvX2luZm8gPSBnX3B0cl9hcnJheV9pbmRleCAoaW5mby0+Y3J5
cHRvX2luZm8sIGluZGV4KTsKLS0gICAgICBnX3B0cl9hcnJheV9pbmRleCAoaW5mby0+Y3J5cHRv
X2luZm8sIGluZGV4KSA9IE5VTEw7Ci0tICAgICAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICJh
dHRhY2hpbmcgY2VuYyBtZXRhZGF0YSBbJXUvJXVdIiwgaW5kZXgsCi0tICAgICAgICAgIGluZm8t
PmNyeXB0b19pbmZvLT5sZW4pOwotLSAgICAgIGlmICghY3J5cHRvX2luZm8gfHwgIWdzdF9idWZm
ZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSAoYnVmLCBjcnlwdG9faW5mbykpCi0tICAgICAgICBHU1Rf
RVJST1JfT0JKRUNUIChxdGRlbXV4LCAiZmFpbGVkIHRvIGF0dGFjaCBjZW5jIG1ldGFkYXRhIHRv
IGJ1ZmZlciIpOwotLSAgICB9IGVsc2UgewotLSAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11
eCwgIk5vIGNyeXB0byBpbmZvIHdpdGggaW5kZXggJWQgYW5kIHNhbXBsZSAlZCIsCi0tICAgICAg
ICAgIGluZGV4LCBzdHJlYW0tPnNhbXBsZV9pbmRleCk7Ci0rCi0rICAgIGlmIChpbmZvLT5jcnlw
dG9faW5mbyA9PSBOVUxMKQotKyAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJjZW5j
IG1ldGFkYXRhIGhhc24ndCBiZWVuIHBhcnNlZCB5ZXQsIHB1c2hpbmcgYnVmZmVyIGFzIGlmIGl0
IHdhc24ndCBlbmNyeXB0ZWQiKTsKLSsgICAgZWxzZSB7Ci0rICAgICAgLyogVGhlIGVuZCBvZiB0
aGUgY3J5cHRvX2luZm8gYXJyYXkgbWF0Y2hlcyBvdXIgbl9zYW1wbGVzIHBvc2l0aW9uLAotKyAg
ICAgICAqIHNvIGNvdW50IGJhY2t3YXJkIGZyb20gdGhlcmUgKi8KLSsgICAgICBpbmRleCA9IHN0
cmVhbS0+c2FtcGxlX2luZGV4IC0gc3RyZWFtLT5uX3NhbXBsZXMgKyBpbmZvLT5jcnlwdG9faW5m
by0+bGVuOwotKyAgICAgIGlmIChHX0xJS0VMWSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGluZm8t
PmNyeXB0b19pbmZvLT5sZW4pKSB7Ci0rICAgICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBh
cnJheSAqLwotKyAgICAgICAgY3J5cHRvX2luZm8gPSBnX3B0cl9hcnJheV9pbmRleCAoaW5mby0+
Y3J5cHRvX2luZm8sIGluZGV4KTsKLSsgICAgICAgIGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5j
cnlwdG9faW5mbywgaW5kZXgpID0gTlVMTDsKLSsgICAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRl
bXV4LCAiYXR0YWNoaW5nIGNlbmMgbWV0YWRhdGEgWyV1LyV1XSIsIGluZGV4LAotKyAgICAgICAg
ICAgIGluZm8tPmNyeXB0b19pbmZvLT5sZW4pOwotKyAgICAgICAgaWYgKCFjcnlwdG9faW5mbyB8
fCAhZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKLSsg
ICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2ggY2Vu
YyBtZXRhZGF0YSB0byBidWZmZXIiKTsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgR1NUX0lO
Rk9fT0JKRUNUIChxdGRlbXV4LCAiTm8gY3J5cHRvIGluZm8gd2l0aCBpbmRleCAlZCBhbmQgc2Ft
cGxlICVkIiwKLSsgICAgICAgICAgICBpbmRleCwgc3RyZWFtLT5zYW1wbGVfaW5kZXgpOwotKyAg
ICAgIH0KLSAgICAgfQotICAgfQotIAotLS0gCi0yLjE3LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA0LXF0ZGVtdXgtQWRkLWluaXRp
YWwtc3VwcG9ydC1mb3ItQVYxLWRlbXV4aW5nLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA0LXF0ZGVtdXgtQWRkLWluaXRpYWwtc3VwcG9ydC1mb3It
QVYxLWRlbXV4aW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjJiNDk3
M2VmZjcyODQwNTMwMDlkYjk4OTEzMDA5OTY5YjJjZjUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVn
aW5zLWdvb2QtMDAwNC1xdGRlbXV4LUFkZC1pbml0aWFsLXN1cHBvcnQtZm9yLUFWMS1kZW11eGlu
Zy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi1Gcm9tIGI2ZThjNjMyM2Uw
MTI0OWJiM2FjNGYxMjFjM2FkYzNlYThkOTI0YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G
cm9tOiA9P1VURi04P3E/T2xpdmllcj0yMENyPUMzPUFBdGU/PSA8b2xpdmllci5jcmV0ZUBjb2xs
YWJvcmEuY29tPgotRGF0ZTogV2VkLCAyNSBKdWwgMjAxOCAxMDo0MzoxMSAtMDQwMAotU3ViamVj
dDogW1BBVENIXSBxdGRlbXV4OiBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBBVjEgZGVtdXhpbmcK
LQotRm9sbG93aW5nIHRoZSBzcGVjIGF0Ci1odHRwczovL2FvbWVkaWFjb2RlYy5naXRodWIuaW8v
YXYxLWlzb2JtZmYvCi0tLS0KLSBnc3QvaXNvbXA0L2ZvdXJjYy5oICAgICAgICB8ICAxICsKLSBn
c3QvaXNvbXA0L3F0ZGVtdXguYyAgICAgICB8ICA0ICsrKysKLSBnc3QvaXNvbXA0L3F0ZGVtdXhf
ZHVtcC5jICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gZ3N0
L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMgfCAgMSArCi0gNCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNl
cnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L2ZvdXJjYy5oIGIvZ3N0L2lzb21w
NC9mb3VyY2MuaAotaW5kZXggNmY0NjdmZmJiLi5jMDZiNjk0MTggMTAwNjQ0Ci0tLS0gYS9nc3Qv
aXNvbXA0L2ZvdXJjYy5oCi0rKysgYi9nc3QvaXNvbXA0L2ZvdXJjYy5oCi1AQCAtMjY0LDYgKzI2
NCw3IEBAIEdfQkVHSU5fREVDTFMKLSAjZGVmaW5lIEZPVVJDQ193aWRlICAgICBHU1RfTUFLRV9G
T1VSQ0MoJ3cnLCdpJywnZCcsJ2UnKQotICNkZWZpbmUgRk9VUkNDX3psaWIgICAgIEdTVF9NQUtF
X0ZPVVJDQygneicsJ2wnLCdpJywnYicpCi0gI2RlZmluZSBGT1VSQ0NfbHBjbSAgICAgR1NUX01B
S0VfRk9VUkNDKCdsJywncCcsJ2MnLCdtJykKLSsjZGVmaW5lIEZPVVJDQ19hdjAxICAgICBHU1Rf
TUFLRV9GT1VSQ0MoJ2EnLCd2JywnMCcsJzEnKQotIAotICNkZWZpbmUgRk9VUkNDX2NmaGQgICAg
IEdTVF9NQUtFX0ZPVVJDQygnQycsJ0YnLCdIJywnRCcpCi0gI2RlZmluZSBGT1VSQ0NfYXA0eCAg
ICAgR1NUX01BS0VfRk9VUkNDKCdhJywncCcsJzQnLCd4JykKLWRpZmYgLS1naXQgYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCAzZWZiNWJhOWQuLjdh
NjgyODMzZiAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguYwotQEAgLTE0NjUxLDYgKzE0NjUxLDEwIEBAIHF0ZGVtdXhfdmlkZW9fY2Fw
cyAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0sCi0gICAgICAg
Y2FwcyA9IGdzdF9jYXBzX25ld19zaW1wbGUgKCJ2aWRlby94LXdtdiIsCi0gICAgICAgICAgICJ3
bXZ2ZXJzaW9uIiwgR19UWVBFX0lOVCwgMywgImZvcm1hdCIsIEdfVFlQRV9TVFJJTkcsICJXVkMx
IiwgTlVMTCk7Ci0gICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgRk9VUkNDX2F2MDE6Ci0rICAgICAg
X2NvZGVjICgiQVYxIik7Ci0rICAgICAgY2FwcyA9IGdzdF9jYXBzX25ld19lbXB0eV9zaW1wbGUg
KCJ2aWRlby94LWF2MSIpOwotKyAgICAgIGJyZWFrOwotICAgICBjYXNlIEdTVF9NQUtFX0ZPVVJD
QyAoJ2snLCAncCcsICdjJywgJ2QnKToKLSAgICAgZGVmYXVsdDoKLSAgICAgewotZGlmZiAtLWdp
dCBhL2dzdC9pc29tcDQvcXRkZW11eF9kdW1wLmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXhfZHVtcC5j
Ci1pbmRleCA1ZmYyZTkyODguLjI1OTIxZGZlMiAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRk
ZW11eF9kdW1wLmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eF9kdW1wLmMKLUBAIC0zMDMsNiAr
MzAzLDUxIEBAIHF0ZGVtdXhfZHVtcF9zdHNkX2F2YzEgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBH
c3RCeXRlUmVhZGVyICogZGF0YSwgZ3VpbnQgc2l6ZSwKLSAgIHJldHVybiBUUlVFOwotIH0KLSAK
LSsKLStzdGF0aWMgZ2Jvb2xlYW4KLStxdGRlbXV4X2R1bXBfc3RzZF9hdjAxIChHc3RRVERlbXV4
ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIGRhdGEsIGd1aW50IHNpemUsCi0rICAgIGludCBk
ZXB0aCkKLSt7Ci0rICBndWludCBjb21wcmVzc29yX2xlbjsKLSsgIGNoYXIgY29tcHJlc3Nvcl9u
YW1lWzMyXTsKLSsKLSsgIC8qIFNpemUgb2YgYXYwMSA9IDc4IGJ5dGVzICovCi0rICBpZiAoc2l6
ZSA8ICg2ICsgMiArIDQgKyAxMiArIDIgKyAyICsgNCArIDQgKyA0ICsgMiArIDEgKyAzMSArIDIg
KyAyKSkKLSsgICAgcmV0dXJuIEZBTFNFOwotKwotKyAgZ3N0X2J5dGVfcmVhZGVyX3NraXBfdW5j
aGVja2VkIChkYXRhLCA2KTsKLSsgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiJSpzICAgIGRh
dGEgcmVmZXJlbmNlOiVkIiwgZGVwdGgsICIiLAotKyAgICAgIEdFVF9VSU5UMTYgKGRhdGEpKTsK
LSsgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiJSpzICAgIHZlcnNpb24vcmV2LjogICUwOHgi
LCBkZXB0aCwgIiIsCi0rICAgICAgR0VUX1VJTlQzMiAoZGF0YSkpOwotKyAgZ3N0X2J5dGVfcmVh
ZGVyX3NraXBfdW5jaGVja2VkIChkYXRhLCAxMik7ICAgIC8qIHByZS1kZWZpbmVkICYgcmVzZXJ2
ZWQgKi8KLSsgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiJSpzICAgIHdpZHRoOiAgICAgICAg
ICV1IiwgZGVwdGgsICIiLAotKyAgICAgIEdFVF9VSU5UMTYgKGRhdGEpKTsKLSsgIEdTVF9MT0df
T0JKRUNUIChxdGRlbXV4LCAiJSpzICAgIGhlaWdodDogICAgICAgICV1IiwgZGVwdGgsICIiLAot
KyAgICAgIEdFVF9VSU5UMTYgKGRhdGEpKTsKLSsgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAi
JSpzICAgIGhvcml6LiByZXNvbDogICVnIiwgZGVwdGgsICIiLAotKyAgICAgIEdFVF9GUDMyIChk
YXRhKSk7Ci0rICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgIiUqcyAgICB2ZXJ0LiByZXNvbC46
ICAlZyIsIGRlcHRoLCAiIiwKLSsgICAgICBHRVRfRlAzMiAoZGF0YSkpOwotKyAgR1NUX0xPR19P
QkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgZGF0YSBzaXplOiAgICAgJXUiLCBkZXB0aCwgIiIsCi0r
ICAgICAgR0VUX1VJTlQzMiAoZGF0YSkpOwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIl
KnMgICAgZnJhbWUgY291bnQ6ICAgJXUiLCBkZXB0aCwgIiIsCi0rICAgICAgR0VUX1VJTlQxNiAo
ZGF0YSkpOwotKyAgLyogc29tZXRoaW5nIGlzIG5vdCByaWdodCB3aXRoIHRoaXMsIGl0J3Mgc3Vw
cG9zZWQgdG8gYmUgYSBzdHJpbmcgYnV0IGl0J3MKLSsgICAqIG5vdCBhcHBhcmVudGx5LCBzbyBq
dXN0IHNraXAgdGhpcyBmb3Igbm93ICovCi0rICBjb21wcmVzc29yX2xlbiA9IE1BWCAoR0VUX1VJ
TlQ4IChkYXRhKSwgMzEpOwotKyAgbWVtY3B5IChjb21wcmVzc29yX25hbWUsIGdzdF9ieXRlX3Jl
YWRlcl9nZXRfZGF0YV91bmNoZWNrZWQgKGRhdGEsIDMxKSwgMzEpOwotKyAgY29tcHJlc3Nvcl9u
YW1lW2NvbXByZXNzb3JfbGVuXSA9IDA7Ci0rICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgIiUq
cyAgICBjb21wcmVzc29yOiAgICAlcyIsIGRlcHRoLCAiIiwKLSsgICAgICBjb21wcmVzc29yX25h
bWUpOwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgZGVwdGg6ICAgICAgICAg
JXUiLCBkZXB0aCwgIiIsCi0rICAgICAgR0VUX1VJTlQxNiAoZGF0YSkpOwotKyAgR1NUX0xPR19P
QkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgY29sb3IgdGFibGUgSUQ6JXUiLCBkZXB0aCwgIiIsCi0r
ICAgICAgR0VUX1VJTlQxNiAoZGF0YSkpOwotKwotKyAgcmV0dXJuIFRSVUU7Ci0rfQotKwotIGdi
b29sZWFuCi0gcXRkZW11eF9kdW1wX3N0c2QgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRl
UmVhZGVyICogZGF0YSwgaW50IGRlcHRoKQotIHsKLUBAIC0zNTMsNiArMzk4LDEwIEBAIHF0ZGVt
dXhfZHVtcF9zdHNkIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIGRhdGEs
IGludCBkZXB0aCkKLSAgICAgICAgIGlmICghcXRkZW11eF9kdW1wX3Vua25vd24gKHF0ZGVtdXgs
ICZzdWIsIGRlcHRoICsgMSkpCi0gICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgIGJy
ZWFrOwotKyAgICAgIGNhc2UgRk9VUkNDX2F2MDE6Ci0rICAgICAgICBpZiAoIXF0ZGVtdXhfZHVt
cF9zdHNkX2F2MDEgKHF0ZGVtdXgsICZzdWIsIHNpemUsIGRlcHRoICsgMSkpCi0rICAgICAgICAg
IHJldHVybiBGQUxTRTsKLSsgICAgICAgIGJyZWFrOwotICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAvKiBVbmtub3duIHN0c2QgZGF0YSwgZHVtcCB0aGUgYnl0ZXMgKi8KLSAgICAgICAgIGlmICgh
cXRkZW11eF9kdW1wX3Vua25vd24gKHF0ZGVtdXgsICZzdWIsIGRlcHRoICsgMSkpCi1kaWZmIC0t
Z2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlw
ZXMuYwotaW5kZXggMWQ1ODQwMzk0Li42OGY5OGJkNDUgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0
L3F0ZGVtdXhfdHlwZXMuYwotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMKLUBAIC0y
MTQsNiArMjE0LDcgQEAgc3RhdGljIGNvbnN0IFF0Tm9kZVR5cGUgcXRfbm9kZV90eXBlc1tdID0g
ewotICAge0ZPVVJDQ190ZW5jLCAidHJhY2sgZW5jcnlwdGlvbiIsIDB9LAotICAge0ZPVVJDQ19z
dHBwLCAiWE1MIHN1YnRpdGxlIHNhbXBsZSBlbnRyeSIsIDB9LAotICAge0ZPVVJDQ19jbGNwLCAi
Q2xvc2VkIENhcHRpb24iLCAwfSwKLSsgIHtGT1VSQ0NfYXYwMSwgIkFWMSBTYW1wbGUgRW50cnki
LCAwfSwKLSAgIHswLCAidW5rbm93biIsIDAsfSwKLSB9OwotIAotLS0gCi0yLjE4LjAKLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXF0
ZGVtdXgtRXh0cmFjdC1BVjEtY29kZWNfZGF0YS1hbmQtcHV0LWl0LWluLXRoZS1jYXAucGF0Y2gg
Yi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtcXRkZW11eC1F
eHRyYWN0LUFWMS1jb2RlY19kYXRhLWFuZC1wdXQtaXQtaW4tdGhlLWNhcC5wYXRjaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZiMzIzZThmZDJmYzNhNjBjMGVhYWE0ZDkwZWI1MmU1
OGE4NzMzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtcXRkZW11eC1FeHRy
YWN0LUFWMS1jb2RlY19kYXRhLWFuZC1wdXQtaXQtaW4tdGhlLWNhcC5wYXRjaAorKysgL2Rldi9u
dWxsCkBAIC0xLDExMiArMCwwIEBACi1Gcm9tIDQzZWU0MDU1YzNkMDNhOWY5OWFjZGYzYzA1ZjQ1
ZTE1NDg5OWVkZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/T2xp
dmllcj0yMENyPUMzPUFBdGU/PSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgotRGF0ZTog
V2VkLCAyNSBKdWwgMjAxOCAxNDozMTozOSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBxdGRlbXV4
OiBFeHRyYWN0IEFWMSBjb2RlY19kYXRhIGFuZCBwdXQgaXQgaW4gdGhlIGNhcHMKLQotQWxzbyBl
eHRyYWN0IHRoZSBwcmVzZW50YXRpb24tZGVsYXkgYW5kIHB1dCBpdCBpbiB0aGUgY2Fwcy4KLS0t
LQotIGdzdC9pc29tcDQvZm91cmNjLmggIHwgIDEgKwotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwg
NzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAyIGZpbGVz
IGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvZm91
cmNjLmggYi9nc3QvaXNvbXA0L2ZvdXJjYy5oCi1pbmRleCBjMDZiNjk0MTguLmUxOGU2YzJjOSAx
MDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvZm91cmNjLmgKLSsrKyBiL2dzdC9pc29tcDQvZm91cmNj
LmgKLUBAIC0yNjUsNiArMjY1LDcgQEAgR19CRUdJTl9ERUNMUwotICNkZWZpbmUgRk9VUkNDX3ps
aWIgICAgIEdTVF9NQUtFX0ZPVVJDQygneicsJ2wnLCdpJywnYicpCi0gI2RlZmluZSBGT1VSQ0Nf
bHBjbSAgICAgR1NUX01BS0VfRk9VUkNDKCdsJywncCcsJ2MnLCdtJykKLSAjZGVmaW5lIEZPVVJD
Q19hdjAxICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCd2JywnMCcsJzEnKQotKyNkZWZpbmUgRk9V
UkNDX2F2MUMgICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3YnLCcxJywnQycpCi0gCi0gI2RlZmlu
ZSBGT1VSQ0NfY2ZoZCAgICAgR1NUX01BS0VfRk9VUkNDKCdDJywnRicsJ0gnLCdEJykKLSAjZGVm
aW5lIEZPVVJDQ19hcDR4ICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCdwJywnNCcsJ3gnKQotZGlm
ZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWlu
ZGV4IDdhNjgyODMzZi4uZDFjZTMyMGI4IDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4
LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1AQCAtMTExODcsNiArMTExODcsODEgQEAg
cXRkZW11eF9wYXJzZV90cmFrIChHc3RRVERlbXV4ICogcXRkZW11eCwgR05vZGUgKiB0cmFrKQot
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgfQotKyAgICAg
ICAgICBjYXNlIEZPVVJDQ19hdjAxOgotKyAgICAgICAgICB7Ci0rICAgICAgICAgICAgZ2ludCBs
ZW4gPSBRVF9VSU5UMzIgKHN0c2RfZW50cnlfZGF0YSkgLSAweDU2OwotKyAgICAgICAgICAgIGNv
bnN0IGd1aW50OCAqYXYxX2RhdGEgPSBzdHNkX2VudHJ5X2RhdGEgKyAweDU2OwotKwotKyAgICAg
ICAgICAgIC8qIGZpbmQgYXYxQyAqLwotKyAgICAgICAgICAgIHdoaWxlIChsZW4gPj0gMHg4KSB7
Ci0rICAgICAgICAgICAgICBnaW50IHNpemU7Ci0rCi0rICAgICAgICAgICAgICBpZiAoUVRfVUlO
VDMyIChhdjFfZGF0YSkgPD0gbGVuKQotKyAgICAgICAgICAgICAgICBzaXplID0gUVRfVUlOVDMy
IChhdjFfZGF0YSkgLSAweDg7Ci0rICAgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAg
IHNpemUgPSBsZW4gLSAweDg7Ci0rCi0rICAgICAgICAgICAgICBpZiAoc2l6ZSA8IDEpCi0rICAg
ICAgICAgICAgICAgIC8qIE5vIHJlYWwgZGF0YSwgc28gYnJlYWsgb3V0ICovCi0rICAgICAgICAg
ICAgICAgIGJyZWFrOwotKwotKyAgICAgICAgICAgICAgc3dpdGNoIChRVF9GT1VSQ0MgKGF2MV9k
YXRhICsgMHg0KSkgewotKyAgICAgICAgICAgICAgICBjYXNlIEZPVVJDQ19hdjFDOgotKyAgICAg
ICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgICAgLyogcGFyc2UsIGlmIGZvdW5kICovCi0r
ICAgICAgICAgICAgICAgICAgR3N0QnVmZmVyICpidWY7Ci0rICAgICAgICAgICAgICAgICAgZ3Vp
bnQ4IHByZXNfZGVsYXlfZmllbGQ7Ci0rCi0rICAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09C
SkVDVCAocXRkZW11eCwKLSsgICAgICAgICAgICAgICAgICAgICAgImZvdW5kIGF2MUMgY29kZWNf
ZGF0YSBpbiBzdHNkIG9mIHNpemUgJWQiLCBzaXplKTsKLSsKLSsgICAgICAgICAgICAgICAgICAv
KiBub3QgZW5vdWdoIGRhdGEsIGp1c3QgaWdub3JlIGFuZCBob3BlIGZvciB0aGUgYmVzdCAqLwot
KyAgICAgICAgICAgICAgICAgIGlmIChzaXplIDwgNSkKLSsgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotKwotKyAgICAgICAgICAgICAgICAgIC8qIENvbnRlbnQgaXM6Ci0rICAgICAgICAgICAg
ICAgICAgICogNCBieXRlczogYXRvbSBsZW5ndGgKLSsgICAgICAgICAgICAgICAgICAgKiA0IGJ5
dGVzOiBmb3VyY2MKLSsgICAgICAgICAgICAgICAgICAgKiAxIGJ5dGU6IHZlcnNpb24KLSsgICAg
ICAgICAgICAgICAgICAgKiAzIGJ5dGVzOiBmbGFncwotKyAgICAgICAgICAgICAgICAgICAqIDMg
Yml0czogcmVzZXJ2ZWQKLSsgICAgICAgICAgICAgICAgICAgKiAxIGJpdHM6ICBpbml0aWFsX3By
ZXNlbnRhdGlvbl9kZWxheV9wcmVzZW50Ci0rICAgICAgICAgICAgICAgICAgICogNCBiaXRzOiBp
bml0aWFsX3ByZXNlbnRhdGlvbl9kZWxheSAoaWYgcHJlc2VudCBlbHNlIHJlc2VydmVkCi0rICAg
ICAgICAgICAgICAgICAgICogcmVzdDogT0JVcy4KLSsgICAgICAgICAgICAgICAgICAgKi8KLSsK
LSsgICAgICAgICAgICAgICAgICBpZiAoYXYxX2RhdGFbOV0gIT0gMCkgewotKyAgICAgICAgICAg
ICAgICAgICAgR1NUX1dBUk5JTkcgKCJVbmtub3duIHZlcnNpb24gJWQgb2YgYXYxQyBib3giLCBh
djFfZGF0YVs5XSk7Ci0rICAgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAg
ICAgICB9Ci0rCi0rICAgICAgICAgICAgICAgICAgLyogV2Ugc2tpcCBpbml0aWFsX3ByZXNlbnRh
dGlvbl9kZWxheSogZm9yIG5vdyAqLwotKyAgICAgICAgICAgICAgICAgIHByZXNfZGVsYXlfZmll
bGQgPSAqKGF2MV9kYXRhICsgMTIpOwotKyAgICAgICAgICAgICAgICAgIGlmIChwcmVzX2RlbGF5
X2ZpZWxkICYgKDEgPDwgNSkpIHsKLSsgICAgICAgICAgICAgICAgICAgIGdzdF9jYXBzX3NldF9z
aW1wbGUgKGVudHJ5LT5jYXBzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJwcmVzZW50YXRp
b24tZGVsYXkiLCBHX1RZUEVfSU5ULAotKyAgICAgICAgICAgICAgICAgICAgICAgIChnaW50KSAo
cHJlc19kZWxheV9maWVsZCAmIDB4MEYpICsgMSwgTlVMTCk7Ci0rICAgICAgICAgICAgICAgICAg
fQotKyAgICAgICAgICAgICAgICAgIGlmIChzaXplID4gNSkgewotKyAgICAgICAgICAgICAgICAg
ICAgYnVmID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jIChzaXplIC0gNSk7Ci0rICAgICAgICAg
ICAgICAgICAgICBHU1RfQlVGRkVSX0ZMQUdfU0VUIChidWYsIEdTVF9CVUZGRVJfRkxBR19IRUFE
RVIpOwotKyAgICAgICAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl9maWxsIChidWYsIDAsIGF2MV9k
YXRhICsgMTMsIHNpemUgLSA1KTsKLSsgICAgICAgICAgICAgICAgICAgIGdzdF9jYXBzX3NldF9z
aW1wbGUgKGVudHJ5LT5jYXBzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJjb2RlY19kYXRh
IiwgR1NUX1RZUEVfQlVGRkVSLCBidWYsIE5VTEwpOwotKyAgICAgICAgICAgICAgICAgICAgZ3N0
X2J1ZmZlcl91bnJlZiAoYnVmKTsKLSsgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgZGVmYXVs
dDoKLSsgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgIH0KLSsKLSsgICAg
ICAgICAgICAgIGxlbiAtPSBzaXplICsgODsKLSsgICAgICAgICAgICAgIGF2MV9kYXRhICs9IHNp
emUgKyA4OwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAg
ICAgfQotICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
fQotLS0gCi0yLjE4LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtUmVjb2duaXplLW1vcmUtQVYxLWF0b21zLnBhdGNo
IGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgt
UmVjb2duaXplLW1vcmUtQVYxLWF0b21zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmZDU3NTc0ODIyMTlkYjkwMTEwMDUxYjg3NzRlMjgyYmEwODFjY2U4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LVJlY29nbml6ZS1tb3JlLUFWMS1hdG9t
cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLUZyb20gZTA3Y2U5YWZiNGVk
YjJlYTg5ODc2M2M3ZWExMWYwYWYyNzA0MTA0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy
b206ID0/VVRGLTg/cT9PbGl2aWVyPTIwQ3I9QzM9QUF0ZT89IDxvbGl2aWVyLmNyZXRlQGNvbGxh
Ym9yYS5jb20+Ci1EYXRlOiBXZWQsIDI1IEp1bCAyMDE4IDE2OjUxOjM4IC0wNDAwCi1TdWJqZWN0
OiBbUEFUQ0hdIHF0ZGVtdXg6IFJlY29nbml6ZSBtb3JlIEFWMSBhdG9tcwotCi0tLS0KLSBnc3Qv
aXNvbXA0L2ZvdXJjYy5oICAgICAgICB8IDQgKysrKwotIGdzdC9pc29tcDQvcXRkZW11eF90eXBl
cy5jIHwgNSArKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0KLWRpZmYg
LS1naXQgYS9nc3QvaXNvbXA0L2ZvdXJjYy5oIGIvZ3N0L2lzb21wNC9mb3VyY2MuaAotaW5kZXgg
ZTE4ZTZjMmM5Li42YzQyNWU2ZjkgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L2ZvdXJjYy5oCi0r
KysgYi9nc3QvaXNvbXA0L2ZvdXJjYy5oCi1AQCAtMjY2LDYgKzI2NiwxMCBAQCBHX0JFR0lOX0RF
Q0xTCi0gI2RlZmluZSBGT1VSQ0NfbHBjbSAgICAgR1NUX01BS0VfRk9VUkNDKCdsJywncCcsJ2Mn
LCdtJykKLSAjZGVmaW5lIEZPVVJDQ19hdjAxICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCd2Jywn
MCcsJzEnKQotICNkZWZpbmUgRk9VUkNDX2F2MUMgICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3Yn
LCcxJywnQycpCi0rI2RlZmluZSBGT1VSQ0NfYXYxZiAgICAgR1NUX01BS0VfRk9VUkNDKCdhJywn
dicsJzEnLCdmJykKLSsjZGVmaW5lIEZPVVJDQ19hdjFtICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2En
LCd2JywnMScsJ20nKQotKyNkZWZpbmUgRk9VUkNDX2F2MXMgICAgIEdTVF9NQUtFX0ZPVVJDQygn
YScsJ3YnLCcxJywncycpCi0rI2RlZmluZSBGT1VSQ0NfYXYxTSAgICAgR1NUX01BS0VfRk9VUkND
KCdhJywndicsJzEnLCdNJykKLSAKLSAjZGVmaW5lIEZPVVJDQ19jZmhkICAgICBHU1RfTUFLRV9G
T1VSQ0MoJ0MnLCdGJywnSCcsJ0QnKQotICNkZWZpbmUgRk9VUkNDX2FwNHggICAgIEdTVF9NQUtF
X0ZPVVJDQygnYScsJ3AnLCc0JywneCcpCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4
X3R5cGVzLmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYwotaW5kZXggNjhmOThiZDQ1Li45
YWIyZTdlM2UgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYwotKysrIGIv
Z3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMKLUBAIC0yMTUsNiArMjE1LDExIEBAIHN0YXRpYyBj
b25zdCBRdE5vZGVUeXBlIHF0X25vZGVfdHlwZXNbXSA9IHsKLSAgIHtGT1VSQ0Nfc3RwcCwgIlhN
TCBzdWJ0aXRsZSBzYW1wbGUgZW50cnkiLCAwfSwKLSAgIHtGT1VSQ0NfY2xjcCwgIkNsb3NlZCBD
YXB0aW9uIiwgMH0sCi0gICB7Rk9VUkNDX2F2MDEsICJBVjEgU2FtcGxlIEVudHJ5IiwgMH0sCi0r
ICB7Rk9VUkNDX2F2MUMsICJBVjEgQ29kZWMgQ29uZmlndXJhdGlvbiIsIDB9LAotKyAge0ZPVVJD
Q19hdjFmLCAiQVYxIEZvcndhcmQgS2V5IEZyYW1lIHNhbXBsZSBncm91cCBlbnRyeSIsIDB9LAot
KyAge0ZPVVJDQ19hdjFtLCAiQVYxIE11bHRpLUZyYW1lIHNhbXBsZSBncm91cCBlbnRyeSIsIDB9
LAotKyAge0ZPVVJDQ19hdjFzLCAiQVYxIFMtRnJhbWUgc2FtcGxlIGdyb3VwIGVudHJ5IiwgMH0s
Ci0rICB7Rk9VUkNDX2F2MU0sICJBVjEgTWV0YWRhdGEgc2FtcGxlIGdyb3VwIGVudHJ5IiwgMH0s
Ci0gICB7MCwgInVua25vd24iLCAwLH0sCi0gfTsKLSAKLS0tIAotMi4xOC4wCi0KZGlmZiAtLWdp
dCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3Nr
YS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoIGIvVG9v
bHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10
aGUtV2ViTS1lbmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDhkMzBiZGMyMjkwMjg1NDM0YjcxZDk0NTNjOTBkZjczNDhkZTE2
ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUt
V2ViTS1lbmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2gKKysrIC9kZXYvbnVsbApA
QCAtMSw4NDIgKzAsMCBAQAotRnJvbSA2OWQ4OTZhMDJhY2VmNWNkYTlkNzI3ZjQ2ODE4YmYwMjIx
ZmI4MmViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWWFjaW5lIEJhbmRvdSA8eWFj
aW5lLmJhbmRvdUBzb2Z0YXRob21lLmNvbT4KLURhdGU6IFN1biwgMzAgU2VwIDIwMTggMTk6Mjg6
MDcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbWF0cm9za2E6IEFkZCB0aGUgV2ViTSBlbmNyeXB0
ZWQgY29udGVudCBzdXBwb3J0IGluCi0gbWF0cm9za2FkZW11eAotCi1UaGlzIGNvbW1pdDoKLQot
MS4gUmVhZHMgdGhlIFdlYk0gYW5kIE1hdHJvc2thIENvbnRlbnRFbmNyeXB0aW9uIHN1YmVsZW1l
bnRzLgotCi0yLiBDcmVhdGVzIGEgR1NUX1BST1RFQ1RJT04gZXZlbnQgZm9yIGVhY2ggQ29udGVu
dEVuY3J5cHRpb24sIHdoaWNoCi0gICB3aWxsIGJlIHNlbnQgYmVmb3JlIHB1c2hpbmcgdGhlIGZp
cnN0IHNvdXJjZSBidWZmZXIuCi0gICBUaGUgRFJNIHN5c3RlbSBpZCBmaWVsZCBpbiB0aGlzIGV2
ZW50IGlzIHNldCB0byBHU1RfUFJPVEVDVElPTl9VTlNQRUNJRklFRF9TWVNURU1fSUQsCi0gICBi
ZWNhdXNlIGl0IGlzbid0IHNwZWNpZmllZCBuZWl0aGVyIGJ5IE1hdHJvc2thIG5vciBieSB0aGUg
V2ViTSBzcGVjLgotCi0zLiBSZWFkcyB0aGUgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiBvZiBlbmNy
eXB0ZWQgQmxvY2svU2ltcGxlQmxvY2sgYW5kCi0gICBleHRyYWN0cyB0aGUgSVYgYW5kIHRoZSBw
YXJ0aXRpb25pbmcgZm9ybWF0IChzdWJzYW1wbGVzKS4KLQotNC4gQ3JlYXRlcyB0aGUgbWV0YWRh
dGEgcHJvdGVjdGlvbiBmb3IgZWFjaCBlbmNyeXB0ZWQgQmxvY2svU2ltcGxlQmxvY2ssCi0gICB3
aXRoIHRob3NlIGluZm9ybWF0aW9uczogS2V5SUQgKGV4dHJhY3RlZCBmcm9tIENvbnRlbnRFbmNy
eXB0aW9uIGVsZW1lbnQpLAotICAgSVYgYW5kIHBhcnRpdGlvbmluZyBmb3JtYXQuCi0KLTUuIEFk
ZHMgYSBuZXcgY2FwcyBmb3IgV2ViTSBlbmNyeXB0ZWQgY29udGVudCBuYW1lZCAiYXBwbGljYXRp
b24veC13ZWJtLWVuYyIsCi0gICB3aXRoIHRoZSBmb2xsb3dpbmcgbmV3IGZpZWxkczoKLQotICAg
ImVuY3J5cHRpb24tYWxnb3JpdGhtIjogVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHVzZWQuCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6ICJOb25lIiwgIkRFUyIsICIzREVTIiwg
IlR3b2Zpc2giLCAiQmxvd2Zpc2giLCAiQUVTIi4KLQotICAgImVuY29kaW5nLXNjb3BlIjogVGhl
IGZpZWxkIHRoYXQgZGVzY3JpYmVzIHdoaWNoIEVsZW1lbnRzIGhhdmUgYmVlbiBtb2RpZmllZC4K
LSAgICAgICAgICAgICAgICAgICAgIFZhbHVlczogImZyYW1lIiwgImNvZGVjLWRhdGEiLCAibmV4
dC1jb250ZW50Ii4KLQotICAgImNpcGhlci1tb2RlIjogVGhlIGNpcGhlciBtb2RlIHVzZWQgaW4g
dGhlIGVuY3J5cHRpb24uCi0gICAgICAgICAgICAgICAgICBWYWx1ZXM6ICJOb25lIiwgIkNUUiIu
Ci0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyNzUKLS0t
LQotIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jICAgICAgIHwgMTIyICsrKysrKysrKysr
Ky0KLSBnc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMgICAgICAgICB8ICA3MyArKysrKysrKwot
IGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaCAgICAgICAgIHwgIDUzICsrKysrKwotIGdzdC9t
YXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jIHwgMzU0ICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKystLQotIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oIHwg
ICAzICsKLSA1IGZpbGVzIGNoYW5nZWQsIDU4NiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo
LSkKLQotZGlmZiAtLWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jIGIvZ3N0L21h
dHJvc2thL21hdHJvc2thLWRlbXV4LmMKLWluZGV4IDY4MzM4MGJiZi4uMWVmN2I0MmNjIDEwMDY0
NAotLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKLSsrKyBiL2dzdC9tYXRyb3Nr
YS9tYXRyb3NrYS1kZW11eC5jCi1AQCAtMTczLDYgKzE3Myw5IEBAIHN0YXRpYyBHc3RDYXBzICpn
c3RfbWF0cm9za2FfZGVtdXhfYXVkaW9fY2FwcyAoR3N0TWF0cm9za2FUcmFja0F1ZGlvQ29udGV4
dAotIHN0YXRpYyBHc3RDYXBzCi0gICAgICogZ3N0X21hdHJvc2thX2RlbXV4X3N1YnRpdGxlX2Nh
cHMgKEdzdE1hdHJvc2thVHJhY2tTdWJ0aXRsZUNvbnRleHQgKgotICAgICBzdWJ0aXRsZWNvbnRl
eHQsIGNvbnN0IGdjaGFyICogY29kZWNfaWQsIGdwb2ludGVyIGRhdGEsIGd1aW50IHNpemUpOwot
K3N0YXRpYyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3Jp
dGhtX25hbWUgKGdpbnQgdmFsKTsKLStzdGF0aWMgY29uc3QgZ2NoYXIgKmdzdF9tYXRyb3NrYV90
cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX25hbWUgKGdpbnQgdmFsKTsKLStzdGF0aWMgY29u
c3QgZ2NoYXIgKmdzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9uYW1lIChnaW50IHZh
bCk7Ci0gCi0gLyogc3RyZWFtIG1ldGhvZHMgKi8KLSBzdGF0aWMgdm9pZCBnc3RfbWF0cm9za2Ff
ZGVtdXhfcmVzZXQgKEdzdEVsZW1lbnQgKiBlbGVtZW50KTsKLUBAIC0zNTksMTIgKzM2MiwxMyBA
QCBnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlciAoR3N0TWF0cm9za2FUcmFja0NvbnRleHQgKiBj
b250ZXh0LCBHc3RCdWZmZXIgKiBidWYpCi0gICBHc3RNYXBJbmZvIG1hcDsKLSAgIGdwb2ludGVy
IGRhdGE7Ci0gICBnc2l6ZSBzaXplOwotKyAgR3N0QnVmZmVyICpvdXRfYnVmID0gYnVmOwotIAot
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKEdTVF9JU19CVUZGRVIgKGJ1ZiksIE5VTEwpOwotIAot
ICAgR1NUX0RFQlVHICgiZGVjb2RpbmcgYnVmZmVyICVwIiwgYnVmKTsKLSAKLS0gIGdzdF9idWZm
ZXJfbWFwIChidWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7Ci0rICBnc3RfYnVmZmVyX21hcCAob3V0
X2J1ZiwgJm1hcCwgR1NUX01BUF9SRUFEKTsKLSAgIGRhdGEgPSBtYXAuZGF0YTsKLSAgIHNpemUg
PSBtYXAuc2l6ZTsKLSAKLUBAIC0zNzIsMTUgKzM3Niw1MyBAQCBnc3RfbWF0cm9za2FfZGVjb2Rl
X2J1ZmZlciAoR3N0TWF0cm9za2FUcmFja0NvbnRleHQgKiBjb250ZXh0LCBHc3RCdWZmZXIgKiBi
dWYpCi0gCi0gICBpZiAoZ3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChjb250ZXh0LT5lbmNvZGlu
Z3MsICZkYXRhLCAmc2l6ZSwKLSAgICAgICAgICAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5H
X1NDT1BFX0ZSQU1FLCBGQUxTRSkpIHsKLS0gICAgZ3N0X2J1ZmZlcl91bm1hcCAoYnVmLCAmbWFw
KTsKLS0gICAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmKTsKLS0gICAgcmV0dXJuIGdzdF9idWZmZXJf
bmV3X3dyYXBwZWQgKGRhdGEsIHNpemUpOwotKyAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVm
LCAmbWFwKTsKLSsgICAgaWYgKGRhdGEgIT0gbWFwLmRhdGEpIHsKLSsgICAgICBnc3RfYnVmZmVy
X3VucmVmIChvdXRfYnVmKTsKLSsgICAgICBvdXRfYnVmID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBl
ZCAoZGF0YSwgc2l6ZSk7Ci0rICAgIH0KLSAgIH0gZWxzZSB7Ci0gICAgIEdTVF9ERUJVRyAoImRl
Y29kZSBkYXRhIGZhaWxlZCIpOwotLSAgICBnc3RfYnVmZmVyX3VubWFwIChidWYsICZtYXApOwot
LSAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOwotKyAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRf
YnVmLCAmbWFwKTsKLSsgICAgZ3N0X2J1ZmZlcl91bnJlZiAob3V0X2J1Zik7Ci0gICAgIHJldHVy
biBOVUxMOwotICAgfQotKyAgLyogRW5jcnlwdGVkIHN0cmVhbSAqLwotKyAgaWYgKGNvbnRleHQt
PnByb3RlY3Rpb25faW5mbykgewotKwotKyAgICBHc3RTdHJ1Y3R1cmUgKmluZm9fcHJvdGVjdCA9
IGdzdF9zdHJ1Y3R1cmVfY29weSAoY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvKTsKLSsgICAgZ2Jv
b2xlYW4gZW5jcnlwdGVkID0gRkFMU0U7Ci0rCi0rICAgIGdzdF9idWZmZXJfbWFwIChvdXRfYnVm
LCAmbWFwLCBHU1RfTUFQX1JFQUQpOwotKyAgICBkYXRhID0gbWFwLmRhdGE7Ci0rICAgIHNpemUg
PSBtYXAuc2l6ZTsKLSsKLSsgICAgaWYgKGdzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21l
dGEgKCZkYXRhLCAmc2l6ZSwgaW5mb19wcm90ZWN0LAotKyAgICAgICAgICAgICZlbmNyeXB0ZWQp
KSB7Ci0rICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7Ci0rICAgICAgaWYg
KGRhdGEgIT0gbWFwLmRhdGEpIHsKLSsgICAgICAgIEdzdEJ1ZmZlciAqdG1wX2J1ZiA9IG91dF9i
dWY7Ci0rICAgICAgICBvdXRfYnVmID0KLSsgICAgICAgICAgICBnc3RfYnVmZmVyX2NvcHlfcmVn
aW9uICh0bXBfYnVmLCBHU1RfQlVGRkVSX0NPUFlfQUxMLAotKyAgICAgICAgICAgIGdzdF9idWZm
ZXJfZ2V0X3NpemUgKHRtcF9idWYpIC0gc2l6ZSwgc2l6ZSk7Ci0rICAgICAgICBnc3RfYnVmZmVy
X3VucmVmICh0bXBfYnVmKTsKLSsgICAgICAgIGlmIChlbmNyeXB0ZWQpCi0rICAgICAgICAgIGdz
dF9idWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSAob3V0X2J1ZiwgaW5mb19wcm90ZWN0KTsKLSsg
ICAgICAgIGVsc2UKLSsgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3Byb3RlY3Qp
OwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKGluZm9fcHJv
dGVjdCk7Ci0rICAgICAgfQotKyAgICB9IGVsc2UgewotKyAgICAgIEdTVF9XQVJOSU5HICgiQWRk
aW5nIHByb3RlY3Rpb24gbWV0YWRhdGEgZmFpbGVkIik7Ci0rICAgICAgZ3N0X2J1ZmZlcl91bm1h
cCAob3V0X2J1ZiwgJm1hcCk7Ci0rICAgICAgZ3N0X2J1ZmZlcl91bnJlZiAob3V0X2J1Zik7Ci0r
ICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3Byb3RlY3QpOwotKyAgICAgIHJldHVybiBO
VUxMOwotKyAgICB9Ci0rICB9Ci0rCi0rICByZXR1cm4gb3V0X2J1ZjsKLSB9Ci0gCi0gc3RhdGlj
IHZvaWQKLUBAIC02MzAsNiArNjcyLDggQEAgZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX3N0cmVh
bSAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBHc3RFYm1sUmVhZCAqIGVibWwsCi0gICBjb250
ZXh0LT5kdHNfb25seSA9IEZBTFNFOwotICAgY29udGV4dC0+aW50cmFfb25seSA9IEZBTFNFOwot
ICAgY29udGV4dC0+dGFncyA9IGdzdF90YWdfbGlzdF9uZXdfZW1wdHkgKCk7Ci0rICBnX3F1ZXVl
X2luaXQgKCZjb250ZXh0LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKLSsgIGNvbnRleHQtPnBy
b3RlY3Rpb25faW5mbyA9IE5VTEw7Ci0gCi0gICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIlBh
cnNpbmcgYSBUcmFja0VudHJ5ICglZCB0cmFja3MgcGFyc2VkIHNvIGZhcikiLAotICAgICAgIGRl
bXV4LT5jb21tb24ubnVtX3N0cmVhbXMpOwotQEAgLTE0NjcsNiArMTUxMSwzMSBAQCBnc3RfbWF0
cm9za2FfZGVtdXhfcGFyc2Vfc3RyZWFtIChHc3RNYXRyb3NrYURlbXV4ICogZGVtdXgsIEdzdEVi
bWxSZWFkICogZWJtbCwKLSAgICAgICAgIGNvbnRleHQtPnN0cmVhbV9oZWFkZXJzLCBjYXBzKTsK
LSAgIH0KLSAKLSsgIGlmIChjb250ZXh0LT5lbmNvZGluZ3MpIHsKLSsgICAgR3N0TWF0cm9za2FU
cmFja0VuY29kaW5nICplbmM7Ci0rICAgIGd1aW50IGk7Ci0rCi0rICAgIGZvciAoaSA9IDA7IGkg
PCBjb250ZXh0LT5lbmNvZGluZ3MtPmxlbjsgaSsrKSB7Ci0rICAgICAgZW5jID0gJmdfYXJyYXlf
aW5kZXggKGNvbnRleHQtPmVuY29kaW5ncywgR3N0TWF0cm9za2FUcmFja0VuY29kaW5nLCBpKTsK
LSsgICAgICBpZiAoZW5jLT50eXBlID09IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBUSU9O
IC8qIGVuY3J5cHRpb24gKi8gKSB7Ci0rICAgICAgICBHc3RTdHJ1Y3R1cmUgKnMgPSBnc3RfY2Fw
c19nZXRfc3RydWN0dXJlIChjYXBzLCAwKTsKLSsgICAgICAgIGlmICghZ3N0X3N0cnVjdHVyZV9o
YXNfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtd2VibS1lbmMiKSkgewotKyAgICAgICAgICBnc3Rf
c3RydWN0dXJlX3NldCAocywgIm9yaWdpbmFsLW1lZGlhLXR5cGUiLCBHX1RZUEVfU1RSSU5HLAot
KyAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZSAocyksIE5VTEwpOwotKyAgICAg
ICAgICBnc3Rfc3RydWN0dXJlX3NldCAocywgImVuY3J5cHRpb24tYWxnb3JpdGhtIiwgR19UWVBF
X1NUUklORywKLSsgICAgICAgICAgICAgIGdzdF9tYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2Fs
Z29yaXRobV9uYW1lIChlbmMtPmVuY19hbGdvKSwKLSsgICAgICAgICAgICAgIE5VTEwpOwotKyAg
ICAgICAgICBnc3Rfc3RydWN0dXJlX3NldCAocywgImVuY29kaW5nLXNjb3BlIiwgR19UWVBFX1NU
UklORywKLSsgICAgICAgICAgICAgIGdzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9u
YW1lIChlbmMtPnNjb3BlKSwgTlVMTCk7Ci0rICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChz
LCAiY2lwaGVyLW1vZGUiLCBHX1RZUEVfU1RSSU5HLAotKyAgICAgICAgICAgICAgZ3N0X21hdHJv
c2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZQotKyAgICAgICAgICAgICAgKGVu
Yy0+ZW5jX2NpcGhlcl9tb2RlKSwgTlVMTCk7Ci0rICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0
X25hbWUgKHMsICJhcHBsaWNhdGlvbi94LXdlYm0tZW5jIik7Ci0rICAgICAgICB9Ci0rICAgICAg
fQotKyAgICB9Ci0rICB9Ci0rCi0gICBjb250ZXh0LT5jYXBzID0gY2FwczsKLSAKLSAgIC8qIHRh
ZGFhaCEgKi8KLUBAIC00MTg1LDYgKzQyNTQsNyBAQCBnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2Vf
YmxvY2tncm91cF9vcl9zaW1wbGVibG9jayAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LAotICAg
ICBnYm9vbGVhbiBkZWx0YV91bml0ID0gRkFMU0U7Ci0gICAgIGd1aW50NjQgZHVyYXRpb24gPSAw
OwotICAgICBnaW50NjQgbGFjZV90aW1lID0gMDsKLSsgICAgR3N0RXZlbnQgKnByb3RlY3RfZXZl
bnQ7Ci0gCi0gICAgIHN0cmVhbSA9IGdfcHRyX2FycmF5X2luZGV4IChkZW11eC0+Y29tbW9uLnNy
Yywgc3RyZWFtX251bSk7Ci0gCi1AQCAtNDIwNCw2ICs0Mjc0LDEyIEBAIGdzdF9tYXRyb3NrYV9k
ZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrIChHc3RNYXRyb3NrYURlbXV4ICog
ZGVtdXgsCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgbGFjZV90aW1lID0gR1NUX0NMT0NLX1RJTUVf
Tk9ORTsKLSAgICAgfQotKyAgICAvKiBTZW5kIHRoZSBHU1RfUFJPVEVDVElPTiBldmVudCAqLwot
KyAgICB3aGlsZSAoKHByb3RlY3RfZXZlbnQgPSBnX3F1ZXVlX3BvcF9oZWFkICgmc3RyZWFtLT5w
cm90ZWN0aW9uX2V2ZW50X3F1ZXVlKSkpIHsKLSsgICAgICBHU1RfVFJBQ0VfT0JKRUNUIChkZW11
eCwgInB1c2hpbmcgcHJvdGVjdGlvbiBldmVudCBmb3Igc3RyZWFtICVkOiVzIiwKLSsgICAgICAg
ICAgc3RyZWFtLT5pbmRleCwgR1NUX1NUUl9OVUxMIChzdHJlYW0tPm5hbWUpKTsKLSsgICAgICBn
c3RfcGFkX3B1c2hfZXZlbnQgKHN0cmVhbS0+cGFkLCBwcm90ZWN0X2V2ZW50KTsKLSsgICAgfQot
IAotICAgICAvKiBuZWVkIHRvIHJlZnJlc2ggc2VnbWVudCBpbmZvIEFTQVAgKi8KLSAgICAgaWYg
KEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIChsYWNlX3RpbWUpICYmIGRlbXV4LT5uZWVkX3NlZ21l
bnQpIHsKLUBAIC01MzUwLDYgKzU0MjYsOSBAQCBnc3RfbWF0cm9za2FfZGVtdXhfcGFyc2VfaWQg
KEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwgZ3VpbnQzMiBpZCwKLSAgICAgICAgIH0KLSAgICAg
ICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX1BPU0lUSU9OOgotICAgICAgICAgY2FzZSBHU1RfTUFU
Uk9TS0FfSURfRU5DUllQVEVEQkxPQ0s6Ci0rICAgICAgICAgIC8qIFRoZSBXZWJNIGRvZXNuJ3Qg
c3VwcG9ydCB0aGUgRW5jcnlwdGVkQmxvY2sgZWxlbWVudC4KLSsgICAgICAgICAgICogVGhlIE1h
dHJvc2thIHNwZWMgZG9lc24ndCBnaXZlIHVzIG1vcmUgZGV0YWlsLCBob3cgdG8gcGFyc2UgdGhp
cyBlbGVtZW50LAotKyAgICAgICAgICAgKiBmb3IgZXhhbXBsZSB0aGUgZmllbGQgVHJhbnNmb3Jt
SUQgaXNuJ3Qgc3BlY2lmaWVkIHlldC4qLwotICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURf
U0lMRU5UVFJBQ0tTOgotICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwKLSAgICAg
ICAgICAgICAgICJTa2lwcGluZyBDbHVzdGVyIHN1YmVsZW1lbnQgMHgleCAtIGlnbm9yaW5nIiwg
aWQpOwotQEAgLTY5MTUsNiArNjk5NCwzNyBAQCBnc3RfbWF0cm9za2FfZGVtdXhfZ2V0X3Byb3Bl
cnR5IChHT2JqZWN0ICogb2JqZWN0LAotICAgfQotIH0KLSAKLStzdGF0aWMgY29uc3QgZ2NoYXIg
KgotK2dzdF9tYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2FsZ29yaXRobV9uYW1lIChnaW50IHZh
bCkKLSt7Ci0rICBHRW51bVZhbHVlICplbjsKLSsgIEdFbnVtQ2xhc3MgKmVudW1fY2xhc3MgPQot
KyAgICAgIGdfdHlwZV9jbGFzc19yZWYgKE1BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJ
VEhNX1RZUEUpOwotKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1fQ0xBU1MgKGVudW1f
Y2xhc3MpLCB2YWwpOwotKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25pY2sgOiBOVUxMOwotK30K
LSsKLStzdGF0aWMgY29uc3QgZ2NoYXIgKgotK2dzdF9tYXRyb3NrYV90cmFja19lbmNyeXB0aW9u
X2NpcGhlcl9tb2RlX25hbWUgKGdpbnQgdmFsKQotK3sKLSsgIEdFbnVtVmFsdWUgKmVuOwotKyAg
R0VudW1DbGFzcyAqZW51bV9jbGFzcyA9Ci0rICAgICAgZ190eXBlX2NsYXNzX3JlZiAoTUFUUk9T
S0FfVFJBQ0tfRU5DUllQVElPTl9DSVBIRVJfTU9ERV9UWVBFKTsKLSsgIGVuID0gZ19lbnVtX2dl
dF92YWx1ZSAoR19FTlVNX0NMQVNTIChlbnVtX2NsYXNzKSwgdmFsKTsKLSsgIHJldHVybiBlbiA/
IGVuLT52YWx1ZV9uaWNrIDogTlVMTDsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IGdjaGFyICoKLStn
c3RfbWF0cm9za2FfdHJhY2tfZW5jb2Rpbmdfc2NvcGVfbmFtZSAoZ2ludCB2YWwpCi0rewotKyAg
R0VudW1WYWx1ZSAqZW47Ci0rICBHRW51bUNsYXNzICplbnVtX2NsYXNzID0KLSsgICAgICBnX3R5
cGVfY2xhc3NfcmVmIChNQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9UWVBFKTsKLSsKLSsg
IGVuID0gZ19lbnVtX2dldF92YWx1ZSAoR19FTlVNX0NMQVNTIChlbnVtX2NsYXNzKSwgdmFsKTsK
LSsgIHJldHVybiBlbiA/IGVuLT52YWx1ZV9uaWNrIDogTlVMTDsKLSt9Ci0rCi0gZ2Jvb2xlYW4K
LSBnc3RfbWF0cm9za2FfZGVtdXhfcGx1Z2luX2luaXQgKEdzdFBsdWdpbiAqIHBsdWdpbikKLSB7
Ci1kaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jIGIvZ3N0L21hdHJvc2th
L21hdHJvc2thLWlkcy5jCi1pbmRleCAzYmUzZDI3NmIuLmI5NjQwNDM4NiAxMDA2NDQKLS0tLSBh
L2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYwotKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2th
LWlkcy5jCi1AQCAtMzUxLDUgKzM1MSw3OCBAQCBnc3RfbWF0cm9za2FfdHJhY2tfZnJlZSAoR3N0
TWF0cm9za2FUcmFja0NvbnRleHQgKiB0cmFjaykKLSAgIGlmICh0cmFjay0+c3RyZWFtX2hlYWRl
cnMpCi0gICAgIGdzdF9idWZmZXJfbGlzdF91bnJlZiAodHJhY2stPnN0cmVhbV9oZWFkZXJzKTsK
LSAKLSsgIGdfcXVldWVfZm9yZWFjaCAoJnRyYWNrLT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlLCAo
R0Z1bmMpIGdzdF9ldmVudF91bnJlZiwKLSsgICAgICBOVUxMKTsKLSsgIGdfcXVldWVfY2xlYXIg
KCZ0cmFjay0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSk7Ci0rCi0rICBpZiAodHJhY2stPnByb3Rl
Y3Rpb25faW5mbykKLSsgICAgZ3N0X3N0cnVjdHVyZV9mcmVlICh0cmFjay0+cHJvdGVjdGlvbl9p
bmZvKTsKLSsKLSAgIGdfZnJlZSAodHJhY2spOwotIH0KLSsKLStHVHlwZQotK21hdHJvc2thX3Ry
YWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX2dldF90eXBlICh2b2lkKQotK3sKLSsgIHN0YXRpYyBH
VHlwZSB0eXBlID0gMDsKLSsKLSsgIHN0YXRpYyBjb25zdCBHRW51bVZhbHVlIHR5cGVzW10gPSB7
Ci0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fTk9ORSwgIk5v
dCBlbmNyeXB0ZWQiLAotKyAgICAgICAgIk5vbmUifSwKLSsgICAge0dTVF9NQVRST1NLQV9UUkFD
S19FTkNSWVBUSU9OX0FMR09SSVRITV9ERVMsICJERVMgZW5jcnlwdGlvbiBhbGdvcml0aG0iLAot
KyAgICAgICAgIkRFUyJ9LAotKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxH
T1JJVEhNXzNERVMsICIzREVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwKLSsgICAgICAgICIzREVT
In0sCi0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fVFdPRklT
SCwKLSsgICAgICAgICJUd29GaXNoIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwgIlR3b0Zpc2gifSwK
LSsgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9CTE9XRklTSCwK
LSsgICAgICAgICJCbG93RmlzaCBlbmNyeXB0aW9uIGFsZ29yaXRobSIsICJCbG93RmlzaCJ9LAot
KyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0FFUywgIkFFUyBl
bmNyeXB0aW9uIGFsZ29yaXRobSIsCi0rICAgICAgICAiQUVTIn0sCi0rICAgIHswLCBOVUxMLCBO
VUxMfQotKyAgfTsKLSsKLSsgIGlmICghdHlwZSkgewotKyAgICB0eXBlID0gZ19lbnVtX3JlZ2lz
dGVyX3N0YXRpYyAoIk1hdHJvc2thVHJhY2tFbmNyeXB0aW9uQWxnb3JpdGhtIiwgdHlwZXMpOwot
KyAgfQotKyAgcmV0dXJuIHR5cGU7Ci0rfQotKwotK0dUeXBlCi0rbWF0cm9za2FfdHJhY2tfZW5j
cnlwdGlvbl9jaXBoZXJfbW9kZV9nZXRfdHlwZSAodm9pZCkKLSt7Ci0rICBzdGF0aWMgR1R5cGUg
dHlwZSA9IDA7Ci0rCi0rICBzdGF0aWMgY29uc3QgR0VudW1WYWx1ZSB0eXBlc1tdID0gewotKyAg
ICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQ0lQSEVSX01PREVfTk9ORSwgIk5vdCBk
ZWZpbmVkIiwKLSsgICAgICAgICJOb25lIn0sCi0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5D
UllQVElPTl9DSVBIRVJfTU9ERV9DVFIsICJDVFIgZW5jcnlwdGlvbiBtb2RlIiwKLSsgICAgICAg
ICJDVFIifSwKLSsgICAgezAsIE5VTEwsIE5VTEx9Ci0rICB9OwotKwotKyAgaWYgKCF0eXBlKSB7
Ci0rICAgIHR5cGUgPSBnX2VudW1fcmVnaXN0ZXJfc3RhdGljICgiTWF0cm9za2FUcmFja0VuY3J5
cHRpb25DaXBoZXJNb2RlIiwgdHlwZXMpOwotKyAgfQotKyAgcmV0dXJuIHR5cGU7Ci0rfQotKwot
K0dUeXBlCi0rbWF0cm9za2FfdHJhY2tfZW5jb2Rpbmdfc2NvcGVfZ2V0X3R5cGUgKHZvaWQpCi0r
ewotKyAgc3RhdGljIEdUeXBlIHR5cGUgPSAwOwotKwotKyAgc3RhdGljIGNvbnN0IEdFbnVtVmFs
dWUgdHlwZXNbXSA9IHsKLSsgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9G
UkFNRSwgIkVuY29kaW5nIHNjb3BlIGZyYW1lIiwgImZyYW1lIn0sCi0rICAgIHtHU1RfTUFUUk9T
S0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfQ09ERUNfREFUQSwgIkVuY29kaW5nIHNjb3BlIGNvZGVj
IGRhdGEiLAotKyAgICAgICAgImNvZGVjLWRhdGEifSwKLSsgICAge0dTVF9NQVRST1NLQV9UUkFD
S19FTkNPRElOR19TQ09QRV9ORVhUX0NPTlRFTlRfRU5DT0RJTkcsCi0rICAgICAgICAiRW5jb2Rp
bmcgc2NvcGUgbmV4dCBjb250ZW50IiwgIm5leHQtY29udGVudCJ9LAotKyAgICB7MCwgTlVMTCwg
TlVMTH0KLSsgIH07Ci0rCi0rICBpZiAoIXR5cGUpIHsKLSsgICAgdHlwZSA9IGdfZW51bV9yZWdp
c3Rlcl9zdGF0aWMgKCJNYXRyb3NrYVRyYWNrRW5jb2RpbmdTY29wZSIsIHR5cGVzKTsKLSsgIH0K
LSsgIHJldHVybiB0eXBlOwotK30KLWRpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9za2Et
aWRzLmggYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmgKLWluZGV4IGMyZTQxZTU0OS4uOWIy
NjNkOGExIDEwMDY0NAotLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oCi0rKysgYi9n
c3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmgKLUBAIC0xNzUsNiArMTc1LDkgQEAKLSAjZGVmaW5l
IEdTVF9NQVRST1NLQV9JRF9DT05URU5UU0lHS0VZSUQgICAgICAgICAgICAweDQ3RTQKLSAjZGVm
aW5lIEdTVF9NQVRST1NLQV9JRF9DT05URU5UU0lHQUxHTyAgICAgICAgICAgICAweDQ3RTUKLSAj
ZGVmaW5lIEdTVF9NQVRST1NLQV9JRF9DT05URU5UU0lHSEFTSEFMR08gICAgICAgICAweDQ3RTYK
LSsvKiBBZGRlZCBpbiBXZWJNIHNwZWMgKi8KLSsjZGVmaW5lIEdTVF9NQVRST1NLQV9JRF9DT05U
RU5URU5DQUVTU0VUVElOR1MgICAgICAweDQ3RTcKLSsjZGVmaW5lIEdTVF9NQVRST1NLQV9JRF9B
RVNTRVRUSU5HU0NJUEhFUk1PREUgICAgICAweDQ3RTgKLSAKLSAvKiBJRCBpbiB0aGUgQ1VFcyBt
YXN0ZXIgKi8KLSAjZGVmaW5lIEdTVF9NQVRST1NLQV9JRF9QT0lOVEVOVFJZICAgICAgICAgICAg
ICAgICAweEJCCi1AQCAtNTE2LDYgKzUxOSwxNyBAQCB0eXBlZGVmIGVudW0gewotICAgR1NUX01B
VFJPU0tBX1NURVJFT19NT0RFX0ZCRl9STCAgICAgID0gMHhFCi0gfSBHc3RNYXRyb3NrYVN0ZXJl
b01vZGU7Ci0gCi0rdHlwZWRlZiBlbnVtIHsKLSsgIEdTVF9NQVRST1NLQV9FTkNPRElOR19DT01Q
UkVTU0lPTiA9IDB4MDAsCi0rICBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfRU5DUllQVElPTiAgPSAw
eDAxCi0rfSBHc3RNYXRyb3NrYUVuY29kaW5nVHlwZTsKLSsKLSsvKiBXZWJNIHNwZWMgKi8KLSt0
eXBlZGVmIGVudW0gewotKyAgR1NUX01BVFJPU0tBX0JMT0NLX0VOQ1JZUFRFRCAgID0gMHgwMSwK
LSsgIEdTVF9NQVRST1NLQV9CTE9DS19QQVJUSVRJT05FRCA9IDB4MDIKLSt9IEdzdE1hdHJvc2th
RW5jcnlwdGVkQmxvY2tGbGFnczsKLSsKLSB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0cm9za2FUcmFj
a0NvbnRleHQgR3N0TWF0cm9za2FUcmFja0NvbnRleHQ7Ci0gCi0gLyogVE9ETzogY2hlY2sgaWYg
YWxsIGZpZWxkcyBhcmUgdXNlZCAqLwotQEAgLTU0OSw2ICs1NjMsMTEgQEAgc3RydWN0IF9Hc3RN
YXRyb3NrYVRyYWNrQ29udGV4dCB7Ci0gCi0gICBnYm9vbGVhbiAgICAgIHNldF9kaXNjb250OyAv
KiBUUlVFID0gc2V0IERJU0NPTlQgZmxhZyBvbiBuZXh0IGJ1ZmZlciAqLwotIAotKyAgLyogUXVl
dWUgdG8gc2F2ZSB0aGUgR1NUX1BST1RFQ1RJT04gZXZlbnRzIHdoaWNoIHdpbGwgYmUgc2VudCBi
ZWZvcmUgdGhlIGZpcnN0IHNvdXJjZSBidWZmZXIgKi8KLSsgIEdRdWV1ZSAgICAgICAgIHByb3Rl
Y3Rpb25fZXZlbnRfcXVldWU7Ci0rICAvKiBQcm90ZWN0aW9uIGluZm9ybWF0aW9uIHN0cnVjdHVy
ZSB3aGljaCB3aWxsIGJlIGFkZGVkIGluIHByb3RlY3Rpb24gbWV0YWRhdGEgZm9yIGVhY2ggZW5j
cnlwdGVkIGJ1ZmZlciAqLwotKyAgR3N0U3RydWN0dXJlICogcHJvdGVjdGlvbl9pbmZvOwotKwot
ICAgLyogU3RyZWFtIGhlYWRlciBidWZmZXIsIHRvIHB1dCBpbnRvIGNhcHMgYW5kIHNlbmQgYmVm
b3JlIGFueSBvdGhlciBidWZmZXJzICovCi0gICBHc3RCdWZmZXJMaXN0ICogc3RyZWFtX2hlYWRl
cnM7Ci0gICBnYm9vbGVhbiAgICAgICAgc2VuZF9zdHJlYW1faGVhZGVyczsKLUBAIC02NTQsNiAr
NjczLDkgQEAgdHlwZWRlZiBlbnVtIHsKLSAgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19T
Q09QRV9ORVhUX0NPTlRFTlRfRU5DT0RJTkcgPSAoMTw8MikKLSB9IEdzdE1hdHJvc2thVHJhY2tF
bmNvZGluZ1Njb3BlOwotIAotKyNkZWZpbmUgTUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVf
VFlQRSAobWF0cm9za2FfdHJhY2tfZW5jb2Rpbmdfc2NvcGVfZ2V0X3R5cGUoKSkKLStHVHlwZSBt
YXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9nZXRfdHlwZSAodm9pZCk7Ci0rCi0gdHlwZWRl
ZiBlbnVtIHsKLSAgIEdTVF9NQVRST1NLQV9UUkFDS19DT01QUkVTU0lPTl9BTEdPUklUSE1fWkxJ
QiA9IDAsCi0gICBHU1RfTUFUUk9TS0FfVFJBQ0tfQ09NUFJFU1NJT05fQUxHT1JJVEhNX0JaTElC
ID0gMSwKLUBAIC02NjEsNiArNjgzLDM1IEBAIHR5cGVkZWYgZW51bSB7Ci0gICBHU1RfTUFUUk9T
S0FfVFJBQ0tfQ09NUFJFU1NJT05fQUxHT1JJVEhNX0hFQURFUlNUUklQID0gMwotIH0gR3N0TWF0
cm9za2FUcmFja0NvbXByZXNzaW9uQWxnb3JpdGhtOwotIAotKy8qIFRoZSBlbmNyeXB0aW9uIGFs
Z29yaXRobSB1c2VkLiBUaGUgdmFsdWUgJzAnIG1lYW5zIHRoYXQgdGhlIGNvbnRlbnRzCi0rICog
aGF2ZSBub3QgYmVlbiBlbmNyeXB0ZWQgYnV0IG9ubHkgc2lnbmVkLgotKyAqIFByZWRlZmluZWQg
dmFsdWVzOiAxIC0gREVTOyAyIC0gM0RFUzsgMyAtIFR3b2Zpc2g7IDQgLSBCbG93ZmlzaDsgNSAt
IEFFUy4KLSsgKiBXZWJNIG9ubHkgc3VwcG9ydHMgYSB2YWx1ZSBvZiA1IChBRVMpLgotKyAqLwot
K3R5cGVkZWYgZW51bSB7Ci0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklU
SE1fTk9ORSAgICAgPSAwLAotKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJ
VEhNX0RFUyAgICAgID0gMSwKLSsgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09S
SVRITV8zREVTICAgICA9IDIsCi0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdP
UklUSE1fVFdPRklTSCAgPSAzLAotKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxH
T1JJVEhNX0JMT1dGSVNIID0gNCwKLSsgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FM
R09SSVRITV9BRVMgICAgICA9IDUKLSt9IEdzdE1hdHJvc2thVHJhY2tFbmNyeXB0aW9uQWxnb3Jp
dGhtOwotKwotKyNkZWZpbmUgTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fVFlQ
RSAobWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fZ2V0X3R5cGUoKSkKLStHVHlw
ZSBtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2FsZ29yaXRobV9nZXRfdHlwZSAodm9pZCk7Ci0r
Ci0rLyogRGVmaW5lZCBvbmx5IGluIFdlYk0gc3BlYy4KLSsgKiBUaGUgY2lwaGVyIG1vZGUgdXNl
ZCBpbiB0aGUgZW5jcnlwdGlvbi4gUHJlZGVmaW5lZCB2YWx1ZXM6IDEgLSBDVFIKLSsgKi8KLSt0
eXBlZGVmIGVudW0gewotKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQ0lQSEVSX01P
REVfTk9ORSAgICA9IDAsCi0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9DSVBIRVJf
TU9ERV9DVFIgICAgID0gMQotK30gR3N0TWF0cm9za2FUcmFja0VuY3J5cHRpb25DaXBoZXJNb2Rl
OwotKwotKyNkZWZpbmUgTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9DSVBIRVJfTU9ERV9UWVBF
IChtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX2dldF90eXBlKCkpCi0rR1R5
cGUgbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJfbW9kZV9nZXRfdHlwZSAodm9pZCk7
Ci0rCi0rCi0gdHlwZWRlZiBzdHJ1Y3QgX0dzdE1hdHJvc2thVHJhY2tFbmNvZGluZyB7Ci0gICBn
dWludCAgIG9yZGVyOwotICAgZ3VpbnQgICBzY29wZSAgICAgOiAzOwotQEAgLTY2OCw2ICs3MTks
OCBAQCB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0cm9za2FUcmFja0VuY29kaW5nIHsKLSAgIGd1aW50
ICAgY29tcF9hbGdvIDogMjsKLSAgIGd1aW50OCAqY29tcF9zZXR0aW5nczsKLSAgIGd1aW50ICAg
Y29tcF9zZXR0aW5nc19sZW5ndGg7Ci0rICBndWludCAgIGVuY19hbGdvICA6IDM7Ci0rICBndWlu
dCAgIGVuY19jaXBoZXJfbW9kZSA6IDI7Ci0gfSBHc3RNYXRyb3NrYVRyYWNrRW5jb2Rpbmc7Ci0g
Ci0gZ2Jvb2xlYW4gZ3N0X21hdHJvc2thX3RyYWNrX2luaXRfdmlkZW9fY29udGV4dCAgICAoR3N0
TWF0cm9za2FUcmFja0NvbnRleHQgKiogcF9jb250ZXh0KTsKLWRpZmYgLS1naXQgYS9nc3QvbWF0
cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFk
LWNvbW1vbi5jCi1pbmRleCA0MTliYTdmOTUuLmZmYjM5M2JmOSAxMDA2NDQKLS0tLSBhL2dzdC9t
YXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCi0rKysgYi9nc3QvbWF0cm9za2EvbWF0cm9z
a2EtcmVhZC1jb21tb24uYwotQEAgLTM5LDYgKzM5LDcgQEAKLSAKLSAjaW5jbHVkZSA8Z3N0L3Rh
Zy90YWcuaD4KLSAjaW5jbHVkZSA8Z3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaD4KLSsjaW5j
bHVkZSA8Z3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oPgotIAotICNpbmNsdWRlICJsem8uaCIKLSAK
LUBAIC0yNjIsOSArMjYzLDkgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9jb250ZW50X2VuY29kaW5n
cyAoR0FycmF5ICogZW5jb2RpbmdzKQotICAgICAgICAgPT0gMCkKLSAgICAgICBjb250aW51ZTsK
LSAKLS0gICAgLyogRW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIHlldCAqLwotLSAgICBpZiAoZW5j
LT50eXBlICE9IDApCi0tICAgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOwotKyAgICAvKiBPdGhl
ciB0aGFuIEVOQ09ESU5HX0NPTVBSRVNTSU9OIG5vdCBoYW5kbGVkIGhlcmUgKi8KLSsgICAgaWYg
KGVuYy0+dHlwZSAhPSBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfQ09NUFJFU1NJT04pCi0rICAgICAg
Y29udGludWU7Ci0gCi0gICAgIGlmIChpICsgMSA+PSBlbmNvZGluZ3MtPmxlbikKLSAgICAgICBy
ZXR1cm4gR1NUX0ZMT1dfRVJST1I7Ci1AQCAtMzEyLDkgKzMxMyw5IEBAIGdzdF9tYXRyb3NrYV9k
ZWNvZGVfZGF0YSAoR0FycmF5ICogZW5jb2RpbmdzLCBncG9pbnRlciAqIGRhdGFfb3V0LAotICAg
ICBpZiAoKGVuYy0+c2NvcGUgJiBzY29wZSkgPT0gMCkKLSAgICAgICBjb250aW51ZTsKLSAKLS0g
ICAgLyogRW5jcnlwdGlvbiBub3Qgc3VwcG9ydGVkIHlldCAqLwotLSAgICBpZiAoZW5jLT50eXBl
ICE9IDApIHsKLS0gICAgICByZXQgPSBGQUxTRTsKLSsgICAgLyogRW5jcnlwdGlvbiBub3QgaGFu
ZGxlZCBoZXJlICovCi0rICAgIGlmIChlbmMtPnR5cGUgIT0gR1NUX01BVFJPU0tBX0VOQ09ESU5H
X0NPTVBSRVNTSU9OKSB7Ci0rICAgICAgcmV0ID0gVFJVRTsKLSAgICAgICBicmVhazsKLSAgICAg
fQotIAotQEAgLTM0OSw2ICszNTAsMjExIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfZGF0YSAoR0Fy
cmF5ICogZW5jb2RpbmdzLCBncG9pbnRlciAqIGRhdGFfb3V0LAotICAgcmV0dXJuIHJldDsKLSB9
Ci0gCi0rLyogVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIHByb3RlY3Rpb24gaW5mbyBvZiBCbG9j
ay9TaW1wbGVCbG9jayBhbmQgZXh0cmFjdHMgdGhlCi0rICogSVYgYW5kIHBhcnRpdGlvbmluZyBm
b3JtYXQgKHN1YnNhbXBsZSkgaW5mb3JtYXRpb24uCi0rICogU2V0IHRob3NlIHBhcnNlZCBpbmZv
cm1hdGlvbiBpbnRvIHByb3RlY3Rpb24gaW5mbyBzdHJ1Y3R1cmUgQGluZm9fcHJvdGVjdCB3aGlj
aAotKyAqIHdpbGwgYmUgYWRkZWQgaW4gcHJvdGVjdGlvbiBtZXRhZGF0YSBvZiB0aGUgR3N0YnVm
ZmVyLgotKyAqIFRoZSBzdWJzYW1wbGVzIGZvcm1hdCBmb2xsb3dzIHRoZSBzYW1lIHBzc2ggYm94
IGZvcm1hdCBpbiBDb21tb24gRW5jcnlwdGlvbiBzcGVjOgotKyAqIHN1YnNhbXBsZSBudW1iZXIg
KyBjbGVhciBzdWJzYW1wbGUgc2l6ZSAoMTZiaXQgYmlnZW5kaWFuKSB8IGVuY3J5cHRlZCBzdWJz
YW1wbGUgc2l6ZSAoMzJiaXQgYmlnZW5kaWFuKSB8IC4uLgotKyAqIEBlbmNyeXB0ZWQgaXMgYW4g
b3V0cHV0IGFyZ3VtZW50OiBUUlVFIGlmIHRoZSBjdXJyZW50IEJsb2NrL1NpbXBsZUJsb2NrIGlz
IGVuY3J5cHRlZCBlbHNlIEZBTFNFCi0rICovCi0rZ2Jvb2xlYW4KLStnc3RfbWF0cm9za2FfcGFy
c2VfcHJvdGVjdGlvbl9tZXRhIChncG9pbnRlciAqIGRhdGFfb3V0LCBnc2l6ZSAqIHNpemVfb3V0
LAotKyAgICBHc3RTdHJ1Y3R1cmUgKiBpbmZvX3Byb3RlY3QsIGdib29sZWFuICogZW5jcnlwdGVk
KQotK3sKLSsgIGd1aW50OCAqZGF0YTsKLSsgIEdzdEJ1ZmZlciAqYnVmX2l2OwotKyAgZ3VpbnQ4
ICpkYXRhX2l2OwotKyAgZ3VpbnQ4ICpzdWJzYW1wbGVzOwotKyAgZ3VpbnQ4IHNpZ25hbF9ieXRl
OwotKyAgZ2ludCBpOwotKyAgR3N0Qnl0ZVJlYWRlciByZWFkZXI7Ci0rCi0rICBnX3JldHVybl92
YWxfaWZfZmFpbCAoZGF0YV9vdXQgIT0gTlVMTCAmJiAqZGF0YV9vdXQgIT0gTlVMTCwgRkFMU0Up
OwotKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHNpemVfb3V0ICE9IE5VTEwsIEZBTFNFKTsKLSsg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpbmZvX3Byb3RlY3QgIT0gTlVMTCwgRkFMU0UpOwotKyAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKGVuY3J5cHRlZCAhPSBOVUxMLCBGQUxTRSk7Ci0rCi0rICAq
ZW5jcnlwdGVkID0gRkFMU0U7Ci0rICBkYXRhID0gKmRhdGFfb3V0OwotKyAgZ3N0X2J5dGVfcmVh
ZGVyX2luaXQgKCZyZWFkZXIsIGRhdGEsICpzaXplX291dCk7Ci0rCi0rICAvKiBXZWJNIHNwZWM6
Ci0rICAgKiA0LjcgU2lnbmFsIEJ5dGUgRm9ybWF0Ci0rICAgKiAgMCAxIDIgMyA0IDUgNiA3Ci0r
ICAgKiArLSstKy0rLSstKy0rLSstKwotKyAgICogfFh8ICAgUlNWICAgfFB8RXwKLSsgICAqICst
Ky0rLSstKy0rLSstKy0rCi0rICAgKgotKyAgICogRXh0ZW5zaW9uIGJpdCAoWCkKLSsgICAqIElm
IHNldCwgYW5vdGhlciBzaWduYWwgYnl0ZSB3aWxsIGZvbGxvdyB0aGlzIGJ5dGUuIFJlc2VydmVk
IGZvciBmdXR1cmUgZXhwYW5zaW9uIChjdXJyZW50bHkgTVVTVCBiZSBzZXQgdG8gMCkuCi0rICAg
KiBSU1YgYml0cyAoUlNWKQotKyAgICogQml0cyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4gTVVT
VCBiZSBzZXQgdG8gMCBhbmQgTVVTVCBiZSBpZ25vcmVkLgotKyAgICogRW5jcnlwdGVkIGJpdCAo
RSkKLSsgICAqIElmIHNldCwgdGhlIEJsb2NrIE1VU1QgY29udGFpbiBhbiBJViBpbW1lZGlhdGVs
eSBmb2xsb3dlZCBieSBhbiBlbmNyeXB0ZWQgZnJhbWUuIElmIG5vdCBzZXQsIHRoZSBCbG9jayBN
VVNUIE5PVCBpbmNsdWRlIGFuIElWIGFuZCB0aGUgZnJhbWUgTVVTVCBiZSB1bmVuY3J5cHRlZC4g
VGhlIHVuZW5jcnlwdGVkIGZyYW1lIE1VU1QgaW1tZWRpYXRlbHkgZm9sbG93IHRoZSBTaWduYWwg
Qnl0ZS4KLSsgICAqIFBhcnRpdGlvbmVkIGJpdCAoUCkKLSsgICAqIFVzZWQgdG8gaW5kaWNhdGUg
dGhhdCB0aGUgc2FtcGxlIGhhcyBzdWJzYW1wbGUgcGFydGl0aW9ucy4gSWYgc2V0LCB0aGUgSVYg
d2lsbCBiZSBmb2xsb3dlZCBieSBhIG51bV9wYXJ0aXRpb25zIGJ5dGUsIGFuZCBudW1fcGFydGl0
aW9ucyAqIDMyLWJpdCBwYXJ0aXRpb24gb2Zmc2V0cy4gVGhpcyBiaXQgY2FuIG9ubHkgYmUgc2V0
IGlmIHRoZSBFIGJpdCBpcyBhbHNvIHNldC4KLSsgICAqLwotKyAgaWYgKCFnc3RfYnl0ZV9yZWFk
ZXJfZ2V0X3VpbnQ4ICgmcmVhZGVyLCAmc2lnbmFsX2J5dGUpKSB7Ci0rICAgIEdTVF9FUlJPUiAo
IkVycm9yIHJlYWRpbmcgdGhlIHNpZ25hbCBieXRlIik7Ci0rICAgIHJldHVybiBGQUxTRTsKLSsg
IH0KLSsKLSsgIC8qIFVuZW5jcnlwdGVkIGJ1ZmZlciAqLwotKyAgaWYgKCEoc2lnbmFsX2J5dGUg
JiBHU1RfTUFUUk9TS0FfQkxPQ0tfRU5DUllQVEVEKSkgewotKyAgICByZXR1cm4gVFJVRTsKLSsg
IH0KLSsKLSsgIC8qIEVuY3J5cHRlZCBidWZmZXIgKi8KLSsgICplbmNyeXB0ZWQgPSBUUlVFOwot
KyAgLyogQ3JlYXRlIElWIGJ1ZmZlciAqLwotKyAgaWYgKCFnc3RfYnl0ZV9yZWFkZXJfZHVwX2Rh
dGEgKCZyZWFkZXIsIHNpemVvZiAoZ3VpbnQ2NCksICZkYXRhX2l2KSkgewotKyAgICBHU1RfRVJS
T1IgKCJFcnJvciByZWFkaW5nIHRoZSBJViBkYXRhIik7Ci0rICAgIHJldHVybiBGQUxTRTsKLSsg
IH0KLSsgIGJ1Zl9pdiA9IGdzdF9idWZmZXJfbmV3X3dyYXBwZWQgKChncG9pbnRlcikgZGF0YV9p
diwgc2l6ZW9mIChndWludDY0KSk7Ci0rICBnc3Rfc3RydWN0dXJlX3NldCAoaW5mb19wcm90ZWN0
LCAiaXYiLCBHU1RfVFlQRV9CVUZGRVIsIGJ1Zl9pdiwgTlVMTCk7Ci0rICBnc3RfYnVmZmVyX3Vu
cmVmIChidWZfaXYpOwotKwotKyAgLyogUGFydGl0aW9uZWQgaW4gc3Vic2FtcGxlICovCi0rICBp
ZiAoc2lnbmFsX2J5dGUgJiBHU1RfTUFUUk9TS0FfQkxPQ0tfUEFSVElUSU9ORUQpIHsKLSsgICAg
Z3VpbnQgbmJfc3Vic2FtcGxlOwotKyAgICBndWludDMyIG9mZnNldCA9IDA7Ci0rICAgIGd1aW50
MzIgb2Zmc2V0X3ByZXY7Ci0rICAgIGd1aW50MzIgZW5jcnlwdGVkX2J5dGVzID0gMDsKLSsgICAg
Z3VpbnQxNiBjbGVhcl9ieXRlcyA9IDA7Ci0rICAgIEdzdEJ1ZmZlciAqYnVmX3N1Yl9zYW1wbGU7
Ci0rICAgIGd1aW50OCBuYl9wYXJ0OwotKyAgICBHc3RCeXRlV3JpdGVyIHdyaXRlcjsKLSsKLSsg
ICAgLyogUmVhZCB0aGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMgKDEgYnl0ZSkgKi8KLSsgICAgaWYg
KCFnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQ4ICgmcmVhZGVyLCAmbmJfcGFydCkpIHsKLSsgICAg
ICBHU1RfRVJST1IgKCJFcnJvciByZWFkaW5nIHRoZSBwYXJ0aXRpb24gbnVtYmVyIik7Ci0rICAg
ICAgcmV0dXJuIEZBTFNFOwotKyAgICB9Ci0rCi0rICAgIGlmIChuYl9wYXJ0ID09IDApIHsKLSsg
ICAgICBHU1RfRVJST1IgKCJQYXJ0aXRpb25lZCwgYnV0IHRoZSBzdWJzYW1wbGUgbnVtYmVyIGVx
dWFsIHRvIHplcm8iKTsKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgICAgbmJf
c3Vic2FtcGxlID0gKG5iX3BhcnQgKyAyKSA+PiAxOwotKwotKyAgICBnc3Rfc3RydWN0dXJlX3Nl
dCAoaW5mb19wcm90ZWN0LCAic3Vic2FtcGxlX2NvdW50IiwgR19UWVBFX1VJTlQsCi0rICAgICAg
ICBuYl9zdWJzYW1wbGUsIE5VTEwpOwotKwotKyAgICAvKiBXZWJNIFNwZWM6Ci0rICAgICAqCi0r
ICAgICAqIDQuNiBTdWJzYW1wbGUgRW5jcnlwdGVkIEJsb2NrIEZvcm1hdAotKyAgICAgKgotKyAg
ICAgKiBUaGUgU3Vic2FtcGxlIEVuY3J5cHRlZCBCbG9jayBmb3JtYXQgZXh0ZW5kcyB0aGUgRnVs
bC1zYW1wbGUgZm9ybWF0IGJ5IHNldHRpbmcgYSAicGFydGl0aW9uZWQiIChQKSBiaXQgaW4gdGhl
IFNpZ25hbCBCeXRlLgotKyAgICAgKiBJZiB0aGlzIGJpdCBpcyBzZXQsIHRoZSBFbmNyeXB0ZWRC
bG9jayBoZWFkZXIgc2hhbGwgaW5jbHVkZSBhbgotKyAgICAgKiA4LWJpdCBpbnRlZ2VyIGluZGlj
YXRpbmcgdGhlIG51bWJlciBvZiBzYW1wbGUgcGFydGl0aW9ucyAoZGl2aWRlcnMgYmV0d2VlbiBj
bGVhci9lbmNyeXB0ZWQgc2VjdGlvbnMpLAotKyAgICAgKiBhbmQgYSBzZXJpZXMgb2YgMzItYml0
IGludGVnZXJzIGluIGJpZy1lbmRpYW4gZW5jb2RpbmcgaW5kaWNhdGluZyB0aGUgYnl0ZSBvZmZz
ZXRzIG9mIHN1Y2ggcGFydGl0aW9ucy4KLSsgICAgICoKLSsgICAgICogIDAgICAgICAgICAgICAg
ICAgICAgMSAgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgICAgIDMKLSsgICAgICog
IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzIDQgNSA2IDcg
OCA5IDAgMQotKyAgICAgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKwotKyAgICAgKiB8ICBTaWduYWwgQnl0ZSAgfCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotKyAgICAgKiArLSst
Ky0rLSstKy0rLSstKyAgICAgICAgICAgICBJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAotKyAgICAgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAotKyAgICAgKiB8ICAgICAgICAgICAgICAgKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwotKyAgICAgKiB8ICAgICAg
ICAgICAgICAgfCBudW1fcGFydGl0aW9uIHwgICAgIFBhcnRpdGlvbiAwIG9mZnNldCAtPiAgICAg
fAotKyAgICAgKiB8LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstfAotKyAgICAgKiB8ICAgICAtPiBQYXJ0aXRpb24gMCBvZmZzZXQg
ICAgIHwgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAgfAotKyAgICAgKiB8LSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstfAot
KyAgICAgKiB8ICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAgIHwgICAgIFBhcnRpdGlvbiBu
LTEgb2Zmc2V0IC0+ICAgfAotKyAgICAgKiB8LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstfAotKyAgICAgKiB8ICAgICAtPiBQYXJ0
aXRpb24gbi0xIG9mZnNldCAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotKyAg
ICAgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAotKyAgICAgKiB8ICAgICAgICAgICAgICAgICAgICBDbGVhci9lbmNyeXB0
ZWQgc2FtcGxlIGRhdGEgICAgICAgICAgICAgICAgfAotKyAgICAgKiB8ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotKyAgICAg
KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotKyAgICAgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwotKyAgICAgKgotKyAgICAgKiA0LjYuMSBTQU1Q
TEUgUEFSVElUSU9OUwotKyAgICAgKgotKyAgICAgKiBUaGUgc2FtcGxlcyBzaGFsbCBiZSBwYXJ0
aXRpb25lZCBpbnRvIGFsdGVybmF0aW5nIGNsZWFyIGFuZCBlbmNyeXB0ZWQgc2VjdGlvbnMsCi0r
ICAgICAqIGFsd2F5cyBzdGFydGluZyB3aXRoIGEgY2xlYXIgc2VjdGlvbi4KLSsgICAgICogR2Vu
ZXJhbGx5IGZvciBuIGNsZWFyL2VuY3J5cHRlZCBzZWN0aW9ucyB0aGVyZSBzaGFsbCBiZSBuLTEg
cGFydGl0aW9uIG9mZnNldHMuCi0rICAgICAqIEhvd2V2ZXIsIGlmIGl0IGlzIHJlcXVpcmVkIHRo
YXQgdGhlIGZpcnN0IHNlY3Rpb24gYmUgZW5jcnlwdGVkLCB0aGVuIHRoZSBmaXJzdCBwYXJ0aXRp
b24gc2hhbGwgYmUgYXQgYnl0ZSBvZmZzZXQgMAotKyAgICAgKiAoaW5kaWNhdGluZyBhIHplcm8t
c2l6ZSBjbGVhciBzZWN0aW9uKSwgYW5kIHRoZXJlIHNoYWxsIGJlIG4gcGFydGl0aW9uIG9mZnNl
dHMuCi0rICAgICAqIFBsZWFzZSByZWZlciB0byB0aGUgIlNhbXBsZSBFbmNyeXB0aW9uIiBkZXNj
cmlwdGlvbiBvZiB0aGUgIkNvbW1vbiBFbmNyeXB0aW9uIgotKyAgICAgKiBzZWN0aW9uIG9mIHRo
ZSBWUCBDb2RlYyBJU08gTWVkaWEgRmlsZSBGb3JtYXQgQmluZGluZyBTcGVjaWZpY2F0aW9uIGZv
ciBtb3JlCi0rICAgICAqIGRldGFpbCBvbiBob3cgc3Vic2FtcGxlIGVuY3J5cHRpb24gaXMgaW1w
bGVtZW50ZWQuCi0rICAgICAqLwotKyAgICBzdWJzYW1wbGVzID0KLSsgICAgICAgIGdfbWFsbG9j
IChuYl9zdWJzYW1wbGUgKiAoc2l6ZW9mIChndWludDE2KSArIHNpemVvZiAoZ3VpbnQzMikpKTsK
LSsKLSsgICAgZ3N0X2J5dGVfd3JpdGVyX2luaXRfd2l0aF9kYXRhICgmd3JpdGVyLCBzdWJzYW1w
bGVzLAotKyAgICAgICAgbmJfc3Vic2FtcGxlICogKHNpemVvZiAoZ3VpbnQxNikgKyBzaXplb2Yg
KGd1aW50MzIpKSwgRkFMU0UpOwotKwotKyAgICBmb3IgKGkgPSAwOyBpIDw9IG5iX3BhcnQ7IGkr
KykgewotKyAgICAgIG9mZnNldF9wcmV2ID0gb2Zmc2V0OwotKyAgICAgIGlmIChpID09IG5iX3Bh
cnQpIHsKLSsgICAgICAgIG9mZnNldCA9IGdzdF9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nICgm
cmVhZGVyKTsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAgaWYgKCFnc3RfYnl0ZV9yZWFkZXJf
Z2V0X3VpbnQzMl9iZSAoJnJlYWRlciwgJm9mZnNldCkpIHsKLSsgICAgICAgICAgR1NUX0VSUk9S
ICgiRXJyb3IgcmVhZGluZyB0aGUgcGFydGl0aW9uIG9mZnNldCIpOwotKyAgICAgICAgICBnb3Rv
IHJlbGVhc2VfZXJyOwotKyAgICAgICAgfQotKyAgICAgIH0KLSsKLSsgICAgICBpZiAob2Zmc2V0
IDwgb2Zmc2V0X3ByZXYpIHsKLSsgICAgICAgIEdTVF9FUlJPUiAoIlBhcnRpdGlvbiBvZmZzZXRz
IHNob3VsZCBub3QgZGVjcmVhc2UiKTsKLSsgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7Ci0rICAg
ICAgfQotKwotKyAgICAgIGlmIChpICUgMiA9PSAwKSB7Ci0rICAgICAgICBpZiAoKG9mZnNldCAt
IG9mZnNldF9wcmV2KSAmIDB4RkZGRjAwMDApIHsKLSsgICAgICAgICAgR1NUX0VSUk9SCi0rICAg
ICAgICAgICAgICAoIlRoZSBDbGVhciBQYXJ0aXRpb24gZXhjZWVkIDY0S0IgaW4gZW5jcnlwdGVk
IHN1YnNhbXBsZSBmb3JtYXQiKTsKLSsgICAgICAgICAgZ290byByZWxlYXNlX2VycjsKLSsgICAg
ICAgIH0KLSsgICAgICAgIC8qIFdlIHNldCB0aGUgQ2xlYXIgcGFydGl0aW9uIHNpemUgaW4gMTYg
Yml0cywgaW4gb3JkZXIgdG8KLSsgICAgICAgICAqIGZvbGxvdyB0aGUgc2FtZSBmb3JtYXQgb2Yg
dGhlIGJveCBQU1NIIGluIENFTkMgc3BlYyAqLwotKyAgICAgICAgY2xlYXJfYnl0ZXMgPSBvZmZz
ZXQgLSBvZmZzZXRfcHJldjsKLSsgICAgICAgIGlmIChpID09IG5iX3BhcnQpCi0rICAgICAgICAg
IGVuY3J5cHRlZF9ieXRlcyA9IDA7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGVuY3J5cHRl
ZF9ieXRlcyA9IG9mZnNldCAtIG9mZnNldF9wcmV2OwotKyAgICAgIH0KLSsKLSsgICAgICBpZiAo
KGkgJSAyID09IDEpIHx8IChpID09IG5iX3BhcnQpKSB7Ci0rICAgICAgICBpZiAoY2xlYXJfYnl0
ZXMgPT0gMCAmJiBlbmNyeXB0ZWRfYnl0ZXMgPT0gMCkgewotKyAgICAgICAgICBHU1RfRVJST1Ig
KCJGb3VuZCAyIHBhcnRpdGlvbnMgd2l0aCB0aGUgc2FtZSBvZmZzZXRzLiIpOwotKyAgICAgICAg
ICBnb3RvIHJlbGVhc2VfZXJyOwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKCFnc3RfYnl0ZV93
cml0ZXJfcHV0X3VpbnQxNl9iZSAoJndyaXRlciwgY2xlYXJfYnl0ZXMpKSB7Ci0rICAgICAgICAg
IEdTVF9FUlJPUiAoIkVycm9yIHdyaXRpbmcgdGhlIG51bWJlciBvZiBjbGVhciBieXRlcyIpOwot
KyAgICAgICAgICBnb3RvIHJlbGVhc2VfZXJyOwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKCFn
c3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9iZSAoJndyaXRlciwgZW5jcnlwdGVkX2J5dGVzKSkg
ewotKyAgICAgICAgICBHU1RfRVJST1IgKCJFcnJvciB3cml0aW5nIHRoZSBudW1iZXIgb2YgZW5j
cnlwdGVkIGJ5dGVzIik7Ci0rICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7Ci0rICAgICAgICB9
Ci0rICAgICAgfQotKyAgICB9Ci0rCi0rICAgIGJ1Zl9zdWJfc2FtcGxlID0KLSsgICAgICAgIGdz
dF9idWZmZXJfbmV3X3dyYXBwZWQgKHN1YnNhbXBsZXMsCi0rICAgICAgICBuYl9zdWJzYW1wbGUg
KiAoc2l6ZW9mIChndWludDE2KSArIHNpemVvZiAoZ3VpbnQzMikpKTsKLSsgICAgZ3N0X3N0cnVj
dHVyZV9zZXQgKGluZm9fcHJvdGVjdCwgInN1YnNhbXBsZXMiLCBHU1RfVFlQRV9CVUZGRVIsCi0r
ICAgICAgICBidWZfc3ViX3NhbXBsZSwgTlVMTCk7Ci0rICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1
Zl9zdWJfc2FtcGxlKTsKLSsgIH0gZWxzZSB7Ci0rICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChpbmZv
X3Byb3RlY3QsICJzdWJzYW1wbGVfY291bnQiLCBHX1RZUEVfVUlOVCwgMCwgTlVMTCk7Ci0rICB9
Ci0rCi0rICBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgKCZyZWFkZXIsIDAsIChjb25zdCBndWlu
dDggKiopIGRhdGFfb3V0KTsKLSsgICpzaXplX291dCA9IGdzdF9ieXRlX3JlYWRlcl9nZXRfcmVt
YWluaW5nICgmcmVhZGVyKTsKLSsgIHJldHVybiBUUlVFOwotKwotK3JlbGVhc2VfZXJyOgotKyAg
Z19mcmVlIChzdWJzYW1wbGVzKTsKLSsgIHJldHVybiBGQUxTRTsKLSt9Ci0rCi0gc3RhdGljIGdp
bnQKLSBnc3RfbWF0cm9za2FfaW5kZXhfY29tcGFyZSAoR3N0TWF0cm9za2FJbmRleCAqIGkxLCBH
c3RNYXRyb3NrYUluZGV4ICogaTIpCi0gewotQEAgLTI3NDQsOSArMjk1MCwxMSBAQCBnc3RfbWF0
cm9za2FfcmVhZF9jb21tb25fcmVhZF90cmFja19lbmNvZGluZyAoR3N0TWF0cm9za2FSZWFkQ29t
bW9uICogY29tbW9uLAotICAgICAgICAgICAgICAgR19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKLSAg
ICAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7Ci0gICAgICAgICAgIGJyZWFrOwotLSAgICAg
ICAgfSBlbHNlIGlmIChudW0gIT0gMCkgewotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKCgh
Y29tbW9uLT5pc193ZWJtKSAmJiAobnVtID09IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBU
SU9OKSkgewotICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCi0t
ICAgICAgICAgICAgICAiRW5jcnlwdGVkIHRyYWNrcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQiKTsK
LSsgICAgICAgICAgICAgICJFbmNyeXB0ZWQgdHJhY2tzIGFyZSBzdXBwb3J0ZWQgb25seSBpbiBX
ZWJNIik7Ci0gICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwotICAgICAgICAgICBicmVh
azsKLSAgICAgICAgIH0KLUBAIC0yODEyLDEyICszMDIwLDEzMiBAQCBnc3RfbWF0cm9za2FfcmVh
ZF9jb21tb25fcmVhZF90cmFja19lbmNvZGluZyAoR3N0TWF0cm9za2FSZWFkQ29tbW9uICogY29t
bW9uLAotICAgICAgICAgYnJlYWs7Ci0gICAgICAgfQotIAotLSAgICAgIGNhc2UgR1NUX01BVFJP
U0tBX0lEX0NPTlRFTlRFTkNSWVBUSU9OOgotLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAoY29t
bW9uLT5zaW5rcGFkLAotLSAgICAgICAgICAgICJFbmNyeXB0ZWQgdHJhY2tzIG5vdCB5ZXQgc3Vw
cG9ydGVkIik7Ci0tICAgICAgICBnc3RfZWJtbF9yZWFkX3NraXAgKGVibWwpOwotLSAgICAgICAg
cmV0ID0gR1NUX0ZMT1dfRVJST1I7Ci0rICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVO
VEVOQ1JZUFRJT046ewotKwotKyAgICAgICAgREVCVUdfRUxFTUVOVF9TVEFSVCAoY29tbW9uLCBl
Ym1sLCAiQ29udGVudEVuY3J5cHRpb24iKTsKLSsKLSsgICAgICAgIGlmIChlbmMudHlwZSAhPSBH
U1RfTUFUUk9TS0FfRU5DT0RJTkdfRU5DUllQVElPTikgewotKyAgICAgICAgICBHU1RfV0FSTklO
R19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKLSsgICAgICAgICAgICAgICJVbmV4cGVjdGVkIHRv
IGhhdmUgQ29udGVudCBFbmNyeXB0aW9uIGJlY2F1c2UgaXQgaXNuJ3QgZW5jcnlwdGlvbiB0eXBl
Iik7Ci0rICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwotKyAgICAgICAgICBicmVhazsK
LSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmICgocmV0ID0gZ3N0X2VibWxfcmVhZF9tYXN0ZXIg
KGVibWwsICZpZCkpICE9IEdTVF9GTE9XX09LKQotKyAgICAgICAgICBicmVhazsKLSsKLSsgICAg
ICAgIHdoaWxlIChyZXQgPT0gR1NUX0ZMT1dfT0sgJiYKLSsgICAgICAgICAgICBnc3RfZWJtbF9y
ZWFkX2hhc19yZW1haW5pbmcgKGVibWwsIDEsIFRSVUUpKSB7Ci0rICAgICAgICAgIGlmICgocmV0
ID0gZ3N0X2VibWxfcGVla19pZCAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0spCi0rICAgICAg
ICAgICAgYnJlYWs7Ci0rCi0rICAgICAgICAgIHN3aXRjaCAoaWQpIHsKLSsgICAgICAgICAgICBj
YXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DQUxHTzp7Ci0rICAgICAgICAgICAgICBndWlu
dDY0IG51bTsKLSsKLSsgICAgICAgICAgICAgIGlmICgocmV0ID0gZ3N0X2VibWxfcmVhZF91aW50
IChlYm1sLCAmaWQsICZudW0pKSAhPSBHU1RfRkxPV19PSykgewotKyAgICAgICAgICAgICAgICBi
cmVhazsKLSsgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgIGlmIChudW0gPiBHU1Rf
TUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQUVTKSB7Ci0rICAgICAgICAgICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwgIkludmFsaWQgQ29udGVudEVu
Y0FsZ28gJSIKLSsgICAgICAgICAgICAgICAgICAgIEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7Ci0r
ICAgICAgICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwotKyAgICAgICAgICAgICAgICBi
cmVhazsKLSsgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qg
KGNvbW1vbi0+c2lua3BhZCwKLSsgICAgICAgICAgICAgICAgICAiQ29udGVudEVuY0FsZ286ICUi
IEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7Ci0rICAgICAgICAgICAgICBlbmMuZW5jX2FsZ28gPSBu
dW07Ci0rCi0rICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAg
ICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ0FFU1NFVFRJTkdTOnsKLSsKLSsgICAg
ICAgICAgICAgIERFQlVHX0VMRU1FTlRfU1RBUlQgKGNvbW1vbiwgZWJtbCwgIkNvbnRlbnRFbmNB
RVNTZXR0aW5ncyIpOwotKwotKyAgICAgICAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9yZWFk
X21hc3RlciAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0spCi0rICAgICAgICAgICAgICAgIGJy
ZWFrOwotKwotKyAgICAgICAgICAgICAgd2hpbGUgKHJldCA9PSBHU1RfRkxPV19PSyAmJgotKyAg
ICAgICAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfaGFzX3JlbWFpbmluZyAoZWJtbCwgMSwgVFJV
RSkpIHsKLSsgICAgICAgICAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9wZWVrX2lkIChlYm1s
LCAmaWQpKSAhPSBHU1RfRkxPV19PSykKLSsgICAgICAgICAgICAgICAgICBicmVhazsKLSsKLSsg
ICAgICAgICAgICAgICAgc3dpdGNoIChpZCkgewotKyAgICAgICAgICAgICAgICAgIGNhc2UgR1NU
X01BVFJPU0tBX0lEX0FFU1NFVFRJTkdTQ0lQSEVSTU9ERTp7Ci0rICAgICAgICAgICAgICAgICAg
ICBndWludDY0IG51bTsKLSsKLSsgICAgICAgICAgICAgICAgICAgIGlmICgocmV0ID0KLSsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VibWxfcmVhZF91aW50IChlYm1sLCAmaWQsCi0r
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnVtKSkgIT0gR1NUX0ZMT1dfT0spIHsK
LSsgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0r
ICAgICAgICAgICAgICAgICAgICBpZiAobnVtID4gMykgewotKyAgICAgICAgICAgICAgICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsICJJbnZhbGlkIENpcGhlciBNb2Rl
ICUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBHX0dVSU5UNjRfRk9STUFULCBudW0pOwot
KyAgICAgICAgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKLSsgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg
ICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCi0rICAgICAgICAgICAg
ICAgICAgICAgICAgIkNvbnRlbnRFbmNBRVNTZXR0aW5nczogJSIgR19HVUlOVDY0X0ZPUk1BVCwg
bnVtKTsKLSsgICAgICAgICAgICAgICAgICAgIGVuYy5lbmNfY2lwaGVyX21vZGUgPSBudW07Ci0r
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAgICB9Ci0rICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKLSsgICAgICAgICAgICAgICAgICAgIEdTVF9XQVJOSU5HX09C
SkVDVCAoY29tbW9uLT5zaW5rcGFkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3du
IENvbnRlbnRFbmNBRVNTZXR0aW5ncyBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsCi0rICAg
ICAgICAgICAgICAgICAgICAgICAgaWQpOwotKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gZ3N0
X2VibWxfcmVhZF9za2lwIChlYm1sKTsKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotKyAg
ICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICBERUJVR19F
TEVNRU5UX1NUT1AgKGNvbW1vbiwgZWJtbCwgIkNvbnRlbnRFbmNBRVNTZXR0aW5ncyIsIHJldCk7
Ci0rICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAg
Y2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ0tFWUlEOnsKLSsgICAgICAgICAgICAgIGd1
aW50OCAqZGF0YTsKLSsgICAgICAgICAgICAgIGd1aW50NjQgc2l6ZTsKLSsgICAgICAgICAgICAg
IEdzdEJ1ZmZlciAqa2V5SWRfYnVmOwotKyAgICAgICAgICAgICAgR3N0RXZlbnQgKmV2ZW50Owot
KwotKyAgICAgICAgICAgICAgaWYgKChyZXQgPQotKyAgICAgICAgICAgICAgICAgICAgICBnc3Rf
ZWJtbF9yZWFkX2JpbmFyeSAoZWJtbCwgJmlkLCAmZGF0YSwKLSsgICAgICAgICAgICAgICAgICAg
ICAgICAgICZzaXplKSkgIT0gR1NUX0ZMT1dfT0spIHsKLSsgICAgICAgICAgICAgICAgYnJlYWs7
Ci0rICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChjb21t
b24tPnNpbmtwYWQsCi0rICAgICAgICAgICAgICAgICAgIkNvbnRlbnRFbmNyeXB0IEtleUlEIGxl
bmd0aCA6ICUiIEdfR1VJTlQ2NF9GT1JNQVQsIHNpemUpOwotKyAgICAgICAgICAgICAga2V5SWRf
YnVmID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6ZSk7Ci0rCi0rICAgICAgICAg
ICAgICAvKiBQdXNoIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIEtleSBJRCBpbnRvIHRoZSBxdWV1
ZXMgb2YgYWxsIHN0cmVhbXMuICovCi0rICAgICAgICAgICAgICAvKiBzeXN0ZW1faWQgZmllbGQg
aXMgc2V0IHRvIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCBiZWNhdXNlIGl0
IGlzbid0IHNwZWNpZmllZCBuZWl0aGVyIGluIFdlYk0gbm9yIGluIE1hdHJvc2thIHNwZWMuICov
Ci0rICAgICAgICAgICAgICBldmVudCA9Ci0rICAgICAgICAgICAgICAgICAgZ3N0X2V2ZW50X25l
d19wcm90ZWN0aW9uCi0rICAgICAgICAgICAgICAgICAgKEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lG
SUVEX1NZU1RFTV9JRCwga2V5SWRfYnVmLAotKyAgICAgICAgICAgICAgICAgICJtYXRyb3NrYWRl
bXV4Iik7Ci0rICAgICAgICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUIChjb21tb24tPnNpbmtwYWQs
Ci0rICAgICAgICAgICAgICAgICAgImFkZGluZyBwcm90ZWN0aW9uIGV2ZW50IGZvciBzdHJlYW0g
JWQiLCBjb250ZXh0LT5pbmRleCk7Ci0rICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAo
JmNvbnRleHQtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUsIGV2ZW50KTsKLSsKLSsgICAgICAgICAg
ICAgIGNvbnRleHQtPnByb3RlY3Rpb25faW5mbyA9Ci0rICAgICAgICAgICAgICAgICAgZ3N0X3N0
cnVjdHVyZV9uZXcgKCJhcHBsaWNhdGlvbi94LWNlbmMiLCAiaXZfc2l6ZSIsCi0rICAgICAgICAg
ICAgICAgICAgR19UWVBFX1VJTlQsIDgsICJlbmNyeXB0ZWQiLCBHX1RZUEVfQk9PTEVBTiwgVFJV
RSwgImtpZCIsCi0rICAgICAgICAgICAgICAgICAgR1NUX1RZUEVfQlVGRkVSLCBrZXlJZF9idWYs
IE5VTEwpOwotKwotKyAgICAgICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZiAoa2V5SWRfYnVmKTsK
LSsgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBkZWZh
dWx0OgotKyAgICAgICAgICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQs
Ci0rICAgICAgICAgICAgICAgICAgIlVua25vd24gQ29udGVudEVuY3J5cHRpb24gc3ViZWxlbWVu
dCAweCV4IC0gaWdub3JpbmciLCBpZCk7Ci0rICAgICAgICAgICAgICByZXQgPSBnc3RfZWJtbF9y
ZWFkX3NraXAgKGVibWwpOwotKyAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgIH0KLSsg
ICAgICAgIH0KLSsgICAgICAgIERFQlVHX0VMRU1FTlRfU1RPUCAoY29tbW9uLCBlYm1sLCAiQ29u
dGVudEVuY3J5cHRpb24iLCByZXQpOwotICAgICAgICAgYnJlYWs7Ci0rICAgICAgfQotICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwK
LSAgICAgICAgICAgICAiVW5rbm93biBDb250ZW50RW5jb2Rpbmcgc3ViZWxlbWVudCAweCV4IC0g
aWdub3JpbmciLCBpZCk7Ci1kaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQt
Y29tbW9uLmggYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaAotaW5kZXggYTYy
ODJkNjk4Li5lMzNlZjhlZjQgMTAwNjQ0Ci0tLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVh
ZC1jb21tb24uaAotKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmgKLUBA
IC0xMjAsNiArMTIwLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dzdE1hdHJvc2thUmVhZENvbW1vbiB7
Ci0gR3N0Rmxvd1JldHVybiBnc3RfbWF0cm9za2FfZGVjb2RlX2NvbnRlbnRfZW5jb2RpbmdzIChH
QXJyYXkgKiBlbmNvZGluZ3MpOwotIGdib29sZWFuIGdzdF9tYXRyb3NrYV9kZWNvZGVfZGF0YSAo
R0FycmF5ICogZW5jb2RpbmdzLCBncG9pbnRlciAqIGRhdGFfb3V0LAotICAgICBnc2l6ZSAqIHNp
emVfb3V0LCBHc3RNYXRyb3NrYVRyYWNrRW5jb2RpbmdTY29wZSBzY29wZSwgZ2Jvb2xlYW4gZnJl
ZSk7Ci0rZ2Jvb2xlYW4KLStnc3RfbWF0cm9za2FfcGFyc2VfcHJvdGVjdGlvbl9tZXRhIChncG9p
bnRlciAqIGRhdGFfb3V0LCBnc2l6ZSAqIHNpemVfb3V0LAotKyAgICBHc3RTdHJ1Y3R1cmUgKiBp
bmZvX3Byb3RlY3QsIGdib29sZWFuICogZW5jcnlwdGVkKTsKLSBnaW50IGdzdF9tYXRyb3NrYV9p
bmRleF9zZWVrX2ZpbmQgKEdzdE1hdHJvc2thSW5kZXggKiBpMSwgR3N0Q2xvY2tUaW1lICogdGlt
ZSwKLSAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKLSBHc3RNYXRyb3NrYUluZGV4ICogZ3N0X21h
dHJvc2thX3JlYWRfY29tbW9uX2RvX2luZGV4X3NlZWsgKAotLS0gCi0yLjE1LjAKLQpkaWZmIC0t
Z2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDEyLW1hdHJv
c2tkZW11eC1kby1ub3QtdXNlLU1hcEluZm8uZGF0YS1hZnRlci11bm1hcHBpbmcucGF0Y2ggYi9U
b29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4
LWRvLW5vdC11c2UtTWFwSW5mby5kYXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWQwZjQ4ZGMwMTkwNDZmYTk3YjUxYWVmYTUyYzY4NDA1ODJi
ZGU1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRv
LW5vdC11c2UtTWFwSW5mby5kYXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaAorKysgL2Rldi9udWxs
CkBAIC0xLDEwOCArMCwwIEBACi1Gcm9tIGRlZmFlMzUwMzU4NjYwZTU1N2M3NGU0MWE0ZmU4YThi
YjMyN2U5YzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGliYXVsdCBTYXVuaWVy
IDx0c2F1bmllckBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAzIE9jdCAyMDE4IDE3OjM0OjQ5ICsw
MjAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1hdHJvc2tkZW11eDogZG8gbm90IHVzZSBNYXBJbmZvLmRh
dGEgYWZ0ZXIgdW5tYXBwaW5nCi0KLUFuZCBtaW5vciBnc3QtaW5kZW50aW5nCi0tLS0KLSBnc3Qv
bWF0cm9za2EvbWF0cm9za2EtZGVtdXguYyAgICAgICB8IDIyICsrKysrKysrKysrKystLS0tLS0t
LS0KLSBnc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYyB8ICA2ICsrKysrKwotIDIg
ZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKLQotZGlmZiAt
LWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jIGIvZ3N0L21hdHJvc2thL21hdHJv
c2thLWRlbXV4LmMKLWluZGV4IDFlZjdiNDJjYy4uYjY3MTEyY2M2IDEwMDY0NAotLS0tIGEvZ3N0
L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKLSsrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1k
ZW11eC5jCi1AQCAtMzc2LDEwICszNzYsMTIgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9idWZmZXIg
KEdzdE1hdHJvc2thVHJhY2tDb250ZXh0ICogY29udGV4dCwgR3N0QnVmZmVyICogYnVmKQotIAot
ICAgaWYgKGdzdF9tYXRyb3NrYV9kZWNvZGVfZGF0YSAoY29udGV4dC0+ZW5jb2RpbmdzLCAmZGF0
YSwgJnNpemUsCi0gICAgICAgICAgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9G
UkFNRSwgRkFMU0UpKSB7Ci0tICAgIGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOwot
ICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgewotKyAgICAgIGdzdF9idWZmZXJfdW5tYXAgKG91
dF9idWYsICZtYXApOwotICAgICAgIGdzdF9idWZmZXJfdW5yZWYgKG91dF9idWYpOwotICAgICAg
IG91dF9idWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChkYXRhLCBzaXplKTsKLSsgICAgfSBl
bHNlIHsKLSsgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKLSAgICAgfQot
ICAgfSBlbHNlIHsKLSAgICAgR1NUX0RFQlVHICgiZGVjb2RlIGRhdGEgZmFpbGVkIik7Ci1AQCAt
Mzk5LDExICs0MDEsMTIgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9idWZmZXIgKEdzdE1hdHJvc2th
VHJhY2tDb250ZXh0ICogY29udGV4dCwgR3N0QnVmZmVyICogYnVmKQotIAotICAgICBpZiAoZ3N0
X21hdHJvc2thX3BhcnNlX3Byb3RlY3Rpb25fbWV0YSAoJmRhdGEsICZzaXplLCBpbmZvX3Byb3Rl
Y3QsCi0gICAgICAgICAgICAgJmVuY3J5cHRlZCkpIHsKLS0gICAgICBnc3RfYnVmZmVyX3VubWFw
IChvdXRfYnVmLCAmbWFwKTsKLSAgICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgewotLSAgICAg
ICAgR3N0QnVmZmVyICp0bXBfYnVmID0gb3V0X2J1ZjsKLS0gICAgICAgIG91dF9idWYgPQotLSAg
ICAgICAgICAgIGdzdF9idWZmZXJfY29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9CVUZGRVJfQ09Q
WV9BTEwsCi0rICAgICAgICBHc3RCdWZmZXIgKnRtcF9idWY7Ci0rCi0rICAgICAgICBnc3RfYnVm
ZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKLSsgICAgICAgIHRtcF9idWYgPSBvdXRfYnVmOwot
KyAgICAgICAgb3V0X2J1ZiA9IGdzdF9idWZmZXJfY29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9C
VUZGRVJfQ09QWV9BTEwsCi0gICAgICAgICAgICAgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSAodG1wX2J1
ZikgLSBzaXplLCBzaXplKTsKLSAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYgKHRtcF9idWYpOwot
ICAgICAgICAgaWYgKGVuY3J5cHRlZCkKLUBAIC00MTEsNiArNDE0LDcgQEAgZ3N0X21hdHJvc2th
X2RlY29kZV9idWZmZXIgKEdzdE1hdHJvc2thVHJhY2tDb250ZXh0ICogY29udGV4dCwgR3N0QnVm
ZmVyICogYnVmKQotICAgICAgICAgZWxzZQotICAgICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUg
KGluZm9fcHJvdGVjdCk7Ci0gICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGdzdF9idWZmZXJfdW5t
YXAgKG91dF9idWYsICZtYXApOwotICAgICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3By
b3RlY3QpOwotICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLUBAIC0yNzA1LDEwICsyNzA5LDEwIEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9oYW5kbGVfc2Vla19ldmVudCAoR3N0TWF0cm9za2FEZW11eCAq
IGRlbXV4LAotICAgICogd291bGQgYmUgZGV0ZXJtaW5lZCBhZ2FpbiB3aGVuIHBhcnNpbmcsIGJ1
dCBhbnl3YXkgLi4uICovCi0gICBzZWVrc2VnbWVudC5kdXJhdGlvbiA9IGRlbXV4LT5jb21tb24u
c2VnbWVudC5kdXJhdGlvbjsKLSAKLS0gIGZsdXNoID0gISAhKGZsYWdzICYgR1NUX1NFRUtfRkxB
R19GTFVTSCk7Ci0tICBrZXl1bml0ID0gISAhKGZsYWdzICYgR1NUX1NFRUtfRkxBR19LRVlfVU5J
VCk7Ci0tICBhZnRlciA9ICEgIShmbGFncyAmIEdTVF9TRUVLX0ZMQUdfU05BUF9BRlRFUik7Ci0t
ICBiZWZvcmUgPSAhICEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX1NOQVBfQkVGT1JFKTsKLSsgIGZs
dXNoID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX0ZMVVNIKTsKLSsgIGtleXVuaXQgPSAhIShm
bGFncyAmIEdTVF9TRUVLX0ZMQUdfS0VZX1VOSVQpOwotKyAgYWZ0ZXIgPSAhIShmbGFncyAmIEdT
VF9TRUVLX0ZMQUdfU05BUF9BRlRFUik7Ci0rICBiZWZvcmUgPSAhIShmbGFncyAmIEdTVF9TRUVL
X0ZMQUdfU05BUF9CRUZPUkUpOwotIAotICAgLyogYWx3YXlzIGRvIGZ1bGwgdXBkYXRlIGlmIGZs
dXNoaW5nLAotICAgICogb3RoZXJ3aXNlIHByb2JsZW1zIG1pZ2h0IGFyaXNlIGRvd25zdHJlYW0g
d2l0aCBtaXNzaW5nIGtleWZyYW1lcyBldGMgKi8KLWRpZmYgLS1naXQgYS9nc3QvbWF0cm9za2Ev
bWF0cm9za2EtcmVhZC1jb21tb24uYyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1v
bi5jCi1pbmRleCBmZmIzOTNiZjkuLjEyMDg1NTAzYSAxMDA2NDQKLS0tLSBhL2dzdC9tYXRyb3Nr
YS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCi0rKysgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVh
ZC1jb21tb24uYwotQEAgLTIwNDMsNiArMjA0Myw4IEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1v
bl9wYXJzZV9tZXRhZGF0YV9pZF9zaW1wbGVfdGFnIChHc3RNYXRyb3NrYVJlYWRDb21tb24gKgot
ICAgICBjb25zdCBnY2hhciAqbWF0cm9za2FfdGFnbmFtZTsKLSAgICAgY29uc3QgZ2NoYXIgKmdz
dHJlYW1lcl90YWduYW1lOwotICAgfQotKwotKyAgLyogKklOREVOVC1PRkYqICovCi0gICB0YWdf
Y29udltdID0gewotICAgICB7Ci0gICAgICAgLyogVGhlIGZvbGxvd2luZyBsaXN0IGhhcyB0aGUg
X3NhbWVfIG9yZGVyIGFzIHRoZSBvbmUgaW4gTWF0cm9za2Egc3BlYy4gUGxlYXNlLCBkb24ndCBt
ZXNzIGl0IHVwLiAqLwotQEAgLTIxNzcsMTEgKzIxNzksMTQgQEAgZ3N0X21hdHJvc2thX3JlYWRf
Y29tbW9uX3BhcnNlX21ldGFkYXRhX2lkX3NpbXBsZV90YWcgKEdzdE1hdHJvc2thUmVhZENvbW1v
biAqCi0gICAgIEdTVF9NQVRST1NLQV9UQUdfSURfTElDRU5TRSwgR1NUX1RBR19MSUNFTlNFfSwg
eyAgICAvKiBUaGUgbGljZW5zZSBhcHBsaWVkIHRvIHRoZSBjb250ZW50IChsaWtlIENyZWF0aXZl
IENvbW1vbnMgdmFyaWFudHMpLiAqLwotICAgICBHU1RfTUFUUk9TS0FfVEFHX0lEX1RFUk1TX09G
X1VTRSwgR1NUX1RBR19MSUNFTlNFfQotICAgfTsKLSsgIC8qICpJTkRFTlQtT04qICovCi0gICBz
dGF0aWMgY29uc3Qgc3RydWN0Ci0gICB7Ci0gICAgIGNvbnN0IGdjaGFyICptYXRyb3NrYV90YWdu
YW1lOwotICAgICBjb25zdCBnY2hhciAqZ3N0cmVhbWVyX3RhZ25hbWU7Ci0gICB9Ci0rCi0rICAv
KiAqSU5ERU5ULU9GRiogKi8KLSAgIGNoaWxkX3RhZ19jb252W10gPSB7Ci0gICAgIHsKLSAgICAg
IlRJVExFL1NPUlRfV0lUSD0iLCBHU1RfVEFHX1RJVExFX1NPUlROQU1FfSwgewotQEAgLTIxOTgs
NiArMjIwMyw3IEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9wYXJzZV9tZXRhZGF0YV9pZF9z
aW1wbGVfdGFnIChHc3RNYXRyb3NrYVJlYWRDb21tb24gKgotICAgICAiTElDRU5TRS9VUkw9Iiwg
R1NUX1RBR19MSUNFTlNFX1VSSX0sIHsKLSAgICAgIkxJQ0VOU0UvVVJMPSIsIEdTVF9UQUdfTElD
RU5TRV9VUkl9Ci0gICB9OwotKyAgLyogKklOREVOVC1PTiogKi8KLSAgIEdzdEZsb3dSZXR1cm4g
cmV0OwotICAgZ3VpbnQzMiBpZDsKLSAgIGdjaGFyICp2YWx1ZSA9IE5VTEw7Ci0tLSAKLTIuMTUu
MAotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMTMtQXZvaWQtd2FybmluZy13aGVuLXJlcG9ydGluZy1hYm91dC1kZWNyeXB0b3JzLnBhdGNo
IGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDEzLUF2b2lkLXdh
cm5pbmctd2hlbi1yZXBvcnRpbmctYWJvdXQtZGVjcnlwdG9ycy5wYXRjaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGU2MjZlZGQ1Nzk1MTA4Y2M4YzgyMjk2ODVlMjhlNWU3NDk4ODg3
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9n
c3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTMtQXZvaWQtd2FybmluZy13aGVu
LXJlcG9ydGluZy1hYm91dC1kZWNyeXB0b3JzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjgg
KzAsMCBAQAotRnJvbSAwNTdjNTA5OWJmZTE1NzZjNTJkY2NkNDE3M2VhZTJhOTc4ZTYzYWIwIE1v
biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdh
bGlhLmNvbT4KLURhdGU6IEZyaSwgMjIgSnVuIDIwMTggMTY6MDA6MTEgKzAxMDAKLVN1YmplY3Q6
IFtQQVRDSF0gcXRkZW11eDogQXZvaWQgd2FybmluZyB3aGVuIHJlcG9ydGluZyBhYm91dCBkZWNy
eXB0b3JzCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTY2
NTIKLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNCArKystCi0gMSBmaWxlIGNoYW5nZWQs
IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21w
NC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggZDdjN2FiNmNiLi5kYzI1
NWU4ZDcgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmMKLUBAIC04MTIwLDcgKzgxMjAsOSBAQCBnc3RfcXRkZW11eF9yZXF1ZXN0X3By
b3RlY3Rpb25fY29udGV4dCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgICAgcXRkZW11eC0+
cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAxKTsKLSAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0
ZGVtdXgsICJkZXRlY3RlZCAldSBwcm90ZWN0aW9uIHN5c3RlbXMsIHdlIGhhdmUgIgotICAgICAg
ICJkZWNyeXB0b3JzIGZvciAldSBvZiB0aGVtLCBydW5uaW5nIGNvbnRleHQgcmVxdWVzdCIsCi0t
ICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4sIGdfc3Rydl9sZW5ndGgg
KGZpbHRlcmVkX3N5c19pZHMpKTsKLSsgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9p
ZHMtPmxlbiwKLSsgICAgICBmaWx0ZXJlZF9zeXNfaWRzID8gZ19zdHJ2X2xlbmd0aCAoZmlsdGVy
ZWRfc3lzX2lkcykgOiAwKTsKLSsKLSAKLSAgIGlmIChzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1l
X2V2ZW50X3F1ZXVlLmxlbmd0aCkgewotICAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAi
dXNpbmcgc3RyZWFtIGV2ZW50IHF1ZXVlLCBsZW5ndGggJXUiLAotLS0gCi0yLjE3LjEKLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDE0LXB1
bHNlLU1hcmstZGVmYXVsdC1kZXZpY2VzLWFzLWRlZmF1bHQucGF0Y2ggYi9Ub29scy9nc3RyZWFt
ZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTQtcHVsc2UtTWFyay1kZWZhdWx0LWRldmlj
ZXMtYXMtZGVmYXVsdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM1YjZk
N2Q5N2Y4NDJiNmMzYjVkZjc1ODJmYThkZmFjOGMxYzM2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMTQtcHVsc2UtTWFyay1kZWZhdWx0LWRldmljZXMtYXMtZGVmYXVsdC5wYXRj
aAorKysgL2Rldi9udWxsCkBAIC0xLDMxOCArMCwwIEBACi1Gcm9tIDMyYzgzM2ViYjQyYjhlOGY0
NmM1YTcyYTE2YTg3NGJjMDBmYzU1NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBU
aGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBpZ2FsaWEuY29tPgotRGF0ZTogTW9uLCAyNiBOb3Yg
MjAxOCAxMzo0ODo1NiAtMDMwMAotU3ViamVjdDogW1BBVENIXSBwdWxzZTogTWFyayBkZWZhdWx0
IGRldmljZXMgYXMgImRlZmF1bHQiCi0KLS0tLQotIGV4dC9wdWxzZS9wdWxzZWRldmljZXByb3Zp
ZGVyLmMgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSBleHQvcHVsc2Uv
cHVsc2VkZXZpY2Vwcm92aWRlci5oIHwgICAzICsKLSAyIGZpbGVzIGNoYW5nZWQsIDc5IGluc2Vy
dGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L3B1bHNlL3B1bHNl
ZGV2aWNlcHJvdmlkZXIuYyBiL2V4dC9wdWxzZS9wdWxzZWRldmljZXByb3ZpZGVyLmMKLWluZGV4
IGExOTY0ZGFiMi4uOWI2NmEwZTMzIDEwMDY0NAotLS0tIGEvZXh0L3B1bHNlL3B1bHNlZGV2aWNl
cHJvdmlkZXIuYwotKysrIGIvZXh0L3B1bHNlL3B1bHNlZGV2aWNlcHJvdmlkZXIuYwotQEAgLTQw
LDcgKzQwLDcgQEAgR1NUX0RFQlVHX0NBVEVHT1JZX0VYVEVSTiAocHVsc2VfZGVidWcpOwotIAot
IHN0YXRpYyBHc3REZXZpY2UgKmdzdF9wdWxzZV9kZXZpY2VfbmV3IChndWludCBpZCwKLSAgICAg
Y29uc3QgZ2NoYXIgKiBkZXZpY2VfbmFtZSwgR3N0Q2FwcyAqIGNhcHMsIGNvbnN0IGdjaGFyICog
aW50ZXJuYWxfbmFtZSwKLS0gICAgR3N0UHVsc2VEZXZpY2VUeXBlIHR5cGUsIEdzdFN0cnVjdHVy
ZSAqIHByb3BlcnRpZXMpOwotKyAgICBHc3RQdWxzZURldmljZVR5cGUgdHlwZSwgR3N0U3RydWN0
dXJlICogcHJvcGVydGllcywgZ2Jvb2xlYW4gaXNfZGVmYXVsdCk7Ci0gCi0gR19ERUZJTkVfVFlQ
RSAoR3N0UHVsc2VEZXZpY2VQcm92aWRlciwgZ3N0X3B1bHNlX2RldmljZV9wcm92aWRlciwKLSAg
ICAgR1NUX1RZUEVfREVWSUNFX1BST1ZJREVSKTsKLUBAIC02NSw2ICs2NSwxMiBAQCBlbnVtCi0g
fTsKLSAKLSAKLSt0eXBlZGVmIHN0cnVjdAotK3sKLSsgIEdMaXN0ICpkZXZpY2VzOwotKyAgR3N0
UHVsc2VEZXZpY2VQcm92aWRlciAqc2VsZjsKLSt9IExpc3REZXZpY2VzRGF0YTsKLSsKLSBzdGF0
aWMgdm9pZAotIGdzdF9wdWxzZV9kZXZpY2VfcHJvdmlkZXJfY2xhc3NfaW5pdCAoR3N0UHVsc2VE
ZXZpY2VQcm92aWRlckNsYXNzICoga2xhc3MpCi0gewotQEAgLTExNCw2ICsxMjAsOCBAQCBnc3Rf
cHVsc2VfZGV2aWNlX3Byb3ZpZGVyX2ZpbmFsaXplIChHT2JqZWN0ICogb2JqZWN0KQotIAotICAg
Z19mcmVlIChzZWxmLT5jbGllbnRfbmFtZSk7Ci0gICBnX2ZyZWUgKHNlbGYtPnNlcnZlcik7Ci0r
ICBnX2ZyZWUgKHNlbGYtPmRlZmF1bHRfc2lua19uYW1lKTsKLSsgIGdfZnJlZSAoc2VsZi0+ZGVm
YXVsdF9zb3VyY2VfbmFtZSk7Ci0gCi0gICBHX09CSkVDVF9DTEFTUyAoZ3N0X3B1bHNlX2Rldmlj
ZV9wcm92aWRlcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKLSB9Ci1AQCAtMTg2
LDcgKzE5NCw3IEBAIGNvbnRleHRfc3RhdGVfY2IgKHBhX2NvbnRleHQgKiBjLCB2b2lkICp1c2Vy
ZGF0YSkKLSB9Ci0gCi0gc3RhdGljIEdzdERldmljZSAqCi0tbmV3X3NvdXJjZSAoY29uc3QgcGFf
c291cmNlX2luZm8gKiBpbmZvKQotK25ld19zb3VyY2UgKEdzdFB1bHNlRGV2aWNlUHJvdmlkZXIg
KiBzZWxmLCBjb25zdCBwYV9zb3VyY2VfaW5mbyAqIGluZm8pCi0gewotICAgR3N0Q2FwcyAqY2Fw
czsKLSAgIEdzdFN0cnVjdHVyZSAqcHJvcHM7Ci1AQCAtMjAwLDExICsyMDgsMTIgQEAgbmV3X3Nv
dXJjZSAoY29uc3QgcGFfc291cmNlX2luZm8gKiBpbmZvKQotICAgcHJvcHMgPSBnc3RfcHVsc2Vf
bWFrZV9zdHJ1Y3R1cmUgKGluZm8tPnByb3BsaXN0KTsKLSAKLSAgIHJldHVybiBnc3RfcHVsc2Vf
ZGV2aWNlX25ldyAoaW5mby0+aW5kZXgsIGluZm8tPmRlc2NyaXB0aW9uLAotLSAgICAgIGNhcHMs
IGluZm8tPm5hbWUsIEdTVF9QVUxTRV9ERVZJQ0VfVFlQRV9TT1VSQ0UsIHByb3BzKTsKLSsgICAg
ICBjYXBzLCBpbmZvLT5uYW1lLCBHU1RfUFVMU0VfREVWSUNFX1RZUEVfU09VUkNFLCBwcm9wcywK
LSsgICAgICAhZ19zdHJjbXAwIChpbmZvLT5uYW1lLCBzZWxmLT5kZWZhdWx0X3NvdXJjZV9uYW1l
KSk7Ci0gfQotIAotIHN0YXRpYyBHc3REZXZpY2UgKgotLW5ld19zaW5rIChjb25zdCBwYV9zaW5r
X2luZm8gKiBpbmZvKQotK25ld19zaW5rIChHc3RQdWxzZURldmljZVByb3ZpZGVyICogc2VsZiwg
Y29uc3QgcGFfc2lua19pbmZvICogaW5mbykKLSB7Ci0gICBHc3RDYXBzICpjYXBzOwotICAgR3N0
U3RydWN0dXJlICpwcm9wczsKLUBAIC0yMTgsNyArMjI3LDggQEAgbmV3X3NpbmsgKGNvbnN0IHBh
X3NpbmtfaW5mbyAqIGluZm8pCi0gICBwcm9wcyA9IGdzdF9wdWxzZV9tYWtlX3N0cnVjdHVyZSAo
aW5mby0+cHJvcGxpc3QpOwotIAotICAgcmV0dXJuIGdzdF9wdWxzZV9kZXZpY2VfbmV3IChpbmZv
LT5pbmRleCwgaW5mby0+ZGVzY3JpcHRpb24sCi0tICAgICAgY2FwcywgaW5mby0+bmFtZSwgR1NU
X1BVTFNFX0RFVklDRV9UWVBFX1NJTkssIHByb3BzKTsKLSsgICAgICBjYXBzLCBpbmZvLT5uYW1l
LCBHU1RfUFVMU0VfREVWSUNFX1RZUEVfU0lOSywgcHJvcHMsCi0rICAgICAgIWdfc3RyY21wMCAo
aW5mby0+bmFtZSwgc2VsZi0+ZGVmYXVsdF9zaW5rX25hbWUpKTsKLSB9Ci0gCi0gc3RhdGljIHZv
aWQKLUBAIC0yMzMsMTIgKzI0MywyNiBAQCBnZXRfc291cmNlX2luZm9fY2IgKHBhX2NvbnRleHQg
KiBjb250ZXh0LAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0tICBkZXYgPSBuZXdfc291cmNlIChp
bmZvKTsKLSsgIGRldiA9IG5ld19zb3VyY2UgKHNlbGYsIGluZm8pOwotIAotICAgaWYgKGRldikK
LSAgICAgZ3N0X2RldmljZV9wcm92aWRlcl9kZXZpY2VfYWRkIChHU1RfREVWSUNFX1BST1ZJREVS
IChzZWxmKSwgZGV2KTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStnZXRfc2VydmVyX2luZm9fY2Ig
KHBhX2NvbnRleHQgKiBjb250ZXh0LCBjb25zdCBwYV9zZXJ2ZXJfaW5mbyAqIGluZm8sCi0rICAg
IHZvaWQgKnVzZXJkYXRhKQotK3sKLSsgIEdzdFB1bHNlRGV2aWNlUHJvdmlkZXIgKnNlbGYgPSB1
c2VyZGF0YTsKLSsKLSsgIGdfZnJlZSAoc2VsZi0+ZGVmYXVsdF9zaW5rX25hbWUpOwotKyAgZ19m
cmVlIChzZWxmLT5kZWZhdWx0X3NvdXJjZV9uYW1lKTsKLSsgIHNlbGYtPmRlZmF1bHRfc2lua19u
YW1lID0gZ19zdHJkdXAgKGluZm8tPmRlZmF1bHRfc2lua19uYW1lKTsKLSsgIHNlbGYtPmRlZmF1
bHRfc291cmNlX25hbWUgPSBnX3N0cmR1cCAoaW5mby0+ZGVmYXVsdF9zb3VyY2VfbmFtZSk7Ci0r
Ci0rICBwYV90aHJlYWRlZF9tYWlubG9vcF9zaWduYWwgKHNlbGYtPm1haW5sb29wLCAwKTsKLSt9
Ci0rCi0gc3RhdGljIHZvaWQKLSBnZXRfc2lua19pbmZvX2NiIChwYV9jb250ZXh0ICogY29udGV4
dCwKLSAgICAgY29uc3QgcGFfc2lua19pbmZvICogaW5mbywgaW50IGVvbCwgdm9pZCAqdXNlcmRh
dGEpCi1AQCAtMjUxLDcgKzI3NSw3IEBAIGdldF9zaW5rX2luZm9fY2IgKHBhX2NvbnRleHQgKiBj
b250ZXh0LAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0tICBkZXYgPSBuZXdfc2luayAoaW5mbyk7
Ci0rICBkZXYgPSBuZXdfc2luayAoc2VsZiwgaW5mbyk7Ci0gCi0gICBpZiAoZGV2KQotICAgICBn
c3RfZGV2aWNlX3Byb3ZpZGVyX2RldmljZV9hZGQgKEdTVF9ERVZJQ0VfUFJPVklERVIgKHNlbGYp
LCBkZXYpOwotQEAgLTMxMiwzNCArMzM2LDM4IEBAIHN0YXRpYyB2b2lkCi0gZ2V0X3NvdXJjZV9p
bmZvX2xpc3RfY2IgKHBhX2NvbnRleHQgKiBjb250ZXh0LCBjb25zdCBwYV9zb3VyY2VfaW5mbyAq
IGluZm8sCi0gICAgIGludCBlb2wsIHZvaWQgKnVzZXJkYXRhKQotIHsKLS0gIEdMaXN0ICoqZGV2
aWNlcyA9IHVzZXJkYXRhOwotKyAgTGlzdERldmljZXNEYXRhICpkYXRhID0gdXNlcmRhdGE7Ci0g
Ci0gICBpZiAoZW9sKQotICAgICByZXR1cm47Ci0gCi0tICAqZGV2aWNlcyA9IGdfbGlzdF9wcmVw
ZW5kICgqZGV2aWNlcywgZ3N0X29iamVjdF9yZWZfc2luayAobmV3X3NvdXJjZSAoaW5mbykpKTsK
LSsgIGRhdGEtPmRldmljZXMgPQotKyAgICAgIGdfbGlzdF9wcmVwZW5kIChkYXRhLT5kZXZpY2Vz
LAotKyAgICAgIGdzdF9vYmplY3RfcmVmX3NpbmsgKG5ld19zb3VyY2UgKGRhdGEtPnNlbGYsIGlu
Zm8pKSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi0gZ2V0X3NpbmtfaW5mb19saXN0X2NiIChwYV9j
b250ZXh0ICogY29udGV4dCwgY29uc3QgcGFfc2lua19pbmZvICogaW5mbywKLSAgICAgaW50IGVv
bCwgdm9pZCAqdXNlcmRhdGEpCi0gewotLSAgR0xpc3QgKipkZXZpY2VzID0gdXNlcmRhdGE7Ci0r
ICBMaXN0RGV2aWNlc0RhdGEgKmRhdGEgPSB1c2VyZGF0YTsKLSAKLSAgIGlmIChlb2wpCi0gICAg
IHJldHVybjsKLSAKLS0gICpkZXZpY2VzID0gZ19saXN0X3ByZXBlbmQgKCpkZXZpY2VzLCBnc3Rf
b2JqZWN0X3JlZl9zaW5rIChuZXdfc2luayAoaW5mbykpKTsKLSsgIGRhdGEtPmRldmljZXMgPQot
KyAgICAgIGdfbGlzdF9wcmVwZW5kIChkYXRhLT5kZXZpY2VzLCBnc3Rfb2JqZWN0X3JlZl9zaW5r
IChuZXdfc2luayAoZGF0YS0+c2VsZiwKLSsgICAgICAgICAgICAgIGluZm8pKSk7Ci0gfQotIAot
IHN0YXRpYyBHTGlzdCAqCi0gZ3N0X3B1bHNlX2RldmljZV9wcm92aWRlcl9wcm9iZSAoR3N0RGV2
aWNlUHJvdmlkZXIgKiBwcm92aWRlcikKLSB7Ci0gICBHc3RQdWxzZURldmljZVByb3ZpZGVyICpz
ZWxmID0gR1NUX1BVTFNFX0RFVklDRV9QUk9WSURFUiAocHJvdmlkZXIpOwotLSAgR0xpc3QgKmRl
dmljZXMgPSBOVUxMOwotICAgcGFfbWFpbmxvb3AgKm0gPSBOVUxMOwotICAgcGFfY29udGV4dCAq
YyA9IE5VTEw7Ci0gICBwYV9vcGVyYXRpb24gKm87Ci0rICBMaXN0RGV2aWNlc0RhdGEgZGF0YSA9
IHsgTlVMTCwgc2VsZiB9OwotIAotICAgaWYgKCEobSA9IHBhX21haW5sb29wX25ldyAoKSkpCi0g
ICAgIHJldHVybiBOVUxMOwotQEAgLTM3Niw3ICs0MDQsNyBAQCBnc3RfcHVsc2VfZGV2aWNlX3By
b3ZpZGVyX3Byb2JlIChHc3REZXZpY2VQcm92aWRlciAqIHByb3ZpZGVyKQotICAgfQotICAgR1NU
X0RFQlVHX09CSkVDVCAoc2VsZiwgImNvbm5lY3RlZCIpOwotIAotLSAgbyA9IHBhX2NvbnRleHRf
Z2V0X3NpbmtfaW5mb19saXN0IChjLCBnZXRfc2lua19pbmZvX2xpc3RfY2IsICZkZXZpY2VzKTsK
LSsgIG8gPSBwYV9jb250ZXh0X2dldF9zaW5rX2luZm9fbGlzdCAoYywgZ2V0X3NpbmtfaW5mb19s
aXN0X2NiLCAmZGF0YSk7Ci0gICB3aGlsZSAocGFfb3BlcmF0aW9uX2dldF9zdGF0ZSAobykgPT0g
UEFfT1BFUkFUSU9OX1JVTk5JTkcgJiYKLSAgICAgICBwYV9vcGVyYXRpb25fZ2V0X3N0YXRlIChv
KSA9PSBQQV9PUEVSQVRJT05fUlVOTklORykgewotICAgICBpZiAocGFfbWFpbmxvb3BfaXRlcmF0
ZSAobSwgVFJVRSwgTlVMTCkgPCAwKQotQEAgLTM4NCw3ICs0MTIsNyBAQCBnc3RfcHVsc2VfZGV2
aWNlX3Byb3ZpZGVyX3Byb2JlIChHc3REZXZpY2VQcm92aWRlciAqIHByb3ZpZGVyKQotICAgfQot
ICAgcGFfb3BlcmF0aW9uX3VucmVmIChvKTsKLSAKLS0gIG8gPSBwYV9jb250ZXh0X2dldF9zb3Vy
Y2VfaW5mb19saXN0IChjLCBnZXRfc291cmNlX2luZm9fbGlzdF9jYiwgJmRldmljZXMpOwotKyAg
byA9IHBhX2NvbnRleHRfZ2V0X3NvdXJjZV9pbmZvX2xpc3QgKGMsIGdldF9zb3VyY2VfaW5mb19s
aXN0X2NiLCAmZGF0YSk7Ci0gICB3aGlsZSAocGFfb3BlcmF0aW9uX2dldF9zdGF0ZSAobykgPT0g
UEFfT1BFUkFUSU9OX1JVTk5JTkcgJiYKLSAgICAgICBwYV9vcGVyYXRpb25fZ2V0X3N0YXRlIChv
KSA9PSBQQV9PUEVSQVRJT05fUlVOTklORykgewotICAgICBpZiAocGFfbWFpbmxvb3BfaXRlcmF0
ZSAobSwgVFJVRSwgTlVMTCkgPCAwKQotQEAgLTM5NSwxOCArNDIzLDM4IEBAIGdzdF9wdWxzZV9k
ZXZpY2VfcHJvdmlkZXJfcHJvYmUgKEdzdERldmljZVByb3ZpZGVyICogcHJvdmlkZXIpCi0gICBw
YV9jb250ZXh0X2Rpc2Nvbm5lY3QgKGMpOwotICAgcGFfbWFpbmxvb3BfZnJlZSAobSk7Ci0gCi0t
ICByZXR1cm4gZGV2aWNlczsKLSsgIHJldHVybiBkYXRhLmRldmljZXM7Ci0gCi0gZmFpbGVkOgot
IAotICAgcmV0dXJuIE5VTEw7Ci0gfQotIAotK3N0YXRpYyBnYm9vbGVhbgotK3J1bl9wdWxzZV9v
cGVyYXRpb24gKEdzdFB1bHNlRGV2aWNlUHJvdmlkZXIgKiBzZWxmLCBwYV9vcGVyYXRpb24gKiBv
cGVyYXRpb24pCi0rewotKyAgaWYgKCFvcGVyYXRpb24pCi0rICAgIHJldHVybiBGQUxTRTsKLSsK
LSsgIHdoaWxlIChwYV9vcGVyYXRpb25fZ2V0X3N0YXRlIChvcGVyYXRpb24pID09IFBBX09QRVJB
VElPTl9SVU5OSU5HKSB7Ci0rICAgIGlmICghUEFfQ09OVEVYVF9JU19HT09EIChwYV9jb250ZXh0
X2dldF9zdGF0ZSAoKHNlbGYtPmNvbnRleHQpKSkpIHsKLSsgICAgICBwYV9vcGVyYXRpb25fY2Fu
Y2VsIChvcGVyYXRpb24pOwotKyAgICAgIHBhX29wZXJhdGlvbl91bnJlZiAob3BlcmF0aW9uKTsK
LSsgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgICAgcGFfdGhyZWFkZWRfbWFpbmxv
b3Bfd2FpdCAoc2VsZi0+bWFpbmxvb3ApOwotKyAgfQotKwotKyAgcGFfb3BlcmF0aW9uX3VucmVm
IChvcGVyYXRpb24pOwotKwotKyAgcmV0dXJuIFRSVUU7Ci0rfQotKwotIHN0YXRpYyBnYm9vbGVh
bgotIGdzdF9wdWxzZV9kZXZpY2VfcHJvdmlkZXJfc3RhcnQgKEdzdERldmljZVByb3ZpZGVyICog
cHJvdmlkZXIpCi0gewotICAgR3N0UHVsc2VEZXZpY2VQcm92aWRlciAqc2VsZiA9IEdTVF9QVUxT
RV9ERVZJQ0VfUFJPVklERVIgKHByb3ZpZGVyKTsKLS0gIHBhX29wZXJhdGlvbiAqaW5pdGlhbF9v
cGVyYXRpb247Ci0gCi0gICBpZiAoIShzZWxmLT5tYWlubG9vcCA9IHBhX3RocmVhZGVkX21haW5s
b29wX25ldyAoKSkpIHsKLSAgICAgR1NUX0VSUk9SX09CSkVDVCAoc2VsZiwgIkNvdWxkIG5vdCBj
cmVhdGUgcHVsc2VhdWRpbyBtYWlubG9vcCIpOwotQEAgLTQ2MiwyNyArNTEwLDE4IEBAIGdzdF9w
dWxzZV9kZXZpY2VfcHJvdmlkZXJfc3RhcnQgKEdzdERldmljZVByb3ZpZGVyICogcHJvdmlkZXIp
Ci0gICBwYV9jb250ZXh0X3N1YnNjcmliZSAoc2VsZi0+Y29udGV4dCwKLSAgICAgICBQQV9TVUJT
Q1JJUFRJT05fTUFTS19TT1VSQ0UgfCBQQV9TVUJTQ1JJUFRJT05fTUFTS19TSU5LLCBOVUxMLCBO
VUxMKTsKLSAKLS0gIGluaXRpYWxfb3BlcmF0aW9uID0gcGFfY29udGV4dF9nZXRfc291cmNlX2lu
Zm9fbGlzdCAoc2VsZi0+Y29udGV4dCwKLS0gICAgICBnZXRfc291cmNlX2luZm9fY2IsIHNlbGYp
OwotLSAgd2hpbGUgKHBhX29wZXJhdGlvbl9nZXRfc3RhdGUgKGluaXRpYWxfb3BlcmF0aW9uKSA9
PSBQQV9PUEVSQVRJT05fUlVOTklORykgewotLSAgICBpZiAoIVBBX0NPTlRFWFRfSVNfR09PRCAo
cGFfY29udGV4dF9nZXRfc3RhdGUgKChzZWxmLT5jb250ZXh0KSkpKQotLSAgICAgIGdvdG8gY2Fu
Y2VsX2FuZF9mYWlsOwotLQotLSAgICBwYV90aHJlYWRlZF9tYWlubG9vcF93YWl0IChzZWxmLT5t
YWlubG9vcCk7Ci0tICB9Ci0tICBwYV9vcGVyYXRpb25fdW5yZWYgKGluaXRpYWxfb3BlcmF0aW9u
KTsKLSsgIGlmICghcnVuX3B1bHNlX29wZXJhdGlvbiAoc2VsZiwgcGFfY29udGV4dF9nZXRfc2Vy
dmVyX2luZm8gKHNlbGYtPmNvbnRleHQsCi0rICAgICAgICAgICAgICBnZXRfc2VydmVyX2luZm9f
Y2IsIHNlbGYpKSkKLSsgICAgZ290byB1bmxvY2tfYW5kX2ZhaWw7Ci0gCi0tICBpbml0aWFsX29w
ZXJhdGlvbiA9IHBhX2NvbnRleHRfZ2V0X3NpbmtfaW5mb19saXN0IChzZWxmLT5jb250ZXh0LAot
LSAgICAgIGdldF9zaW5rX2luZm9fY2IsIHNlbGYpOwotLSAgaWYgKCFpbml0aWFsX29wZXJhdGlv
bikKLSsgIGlmICghcnVuX3B1bHNlX29wZXJhdGlvbiAoc2VsZiwKLSsgICAgICAgICAgcGFfY29u
dGV4dF9nZXRfc291cmNlX2luZm9fbGlzdCAoc2VsZi0+Y29udGV4dCwgZ2V0X3NvdXJjZV9pbmZv
X2NiLAotKyAgICAgICAgICAgICAgc2VsZikpKQotICAgICBnb3RvIHVubG9ja19hbmRfZmFpbDsK
LS0gIHdoaWxlIChwYV9vcGVyYXRpb25fZ2V0X3N0YXRlIChpbml0aWFsX29wZXJhdGlvbikgPT0g
UEFfT1BFUkFUSU9OX1JVTk5JTkcpIHsKLS0gICAgaWYgKCFQQV9DT05URVhUX0lTX0dPT0QgKHBh
X2NvbnRleHRfZ2V0X3N0YXRlICgoc2VsZi0+Y29udGV4dCkpKSkKLS0gICAgICBnb3RvIGNhbmNl
bF9hbmRfZmFpbDsKLSAKLS0gICAgcGFfdGhyZWFkZWRfbWFpbmxvb3Bfd2FpdCAoc2VsZi0+bWFp
bmxvb3ApOwotLSAgfQotLSAgcGFfb3BlcmF0aW9uX3VucmVmIChpbml0aWFsX29wZXJhdGlvbik7
Ci0rICBpZiAoIXJ1bl9wdWxzZV9vcGVyYXRpb24gKHNlbGYsIHBhX2NvbnRleHRfZ2V0X3Npbmtf
aW5mb19saXN0IChzZWxmLT5jb250ZXh0LAotKyAgICAgICAgICAgICAgZ2V0X3NpbmtfaW5mb19j
Yiwgc2VsZikpKQotKyAgICBnb3RvIHVubG9ja19hbmRfZmFpbDsKLSAKLSAgIHBhX3RocmVhZGVk
X21haW5sb29wX3VubG9jayAoc2VsZi0+bWFpbmxvb3ApOwotIAotQEAgLTQ5NSwxMSArNTM0LDYg
QEAgdW5sb2NrX2FuZF9mYWlsOgotIAotIG1haW5sb29wX2ZhaWxlZDoKLSAgIHJldHVybiBGQUxT
RTsKLS0KLS1jYW5jZWxfYW5kX2ZhaWw6Ci0tICBwYV9vcGVyYXRpb25fY2FuY2VsIChpbml0aWFs
X29wZXJhdGlvbik7Ci0tICBwYV9vcGVyYXRpb25fdW5yZWYgKGluaXRpYWxfb3BlcmF0aW9uKTsK
LS0gIGdvdG8gdW5sb2NrX2FuZF9mYWlsOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTYxMSw3
ICs2NDUsNyBAQCBnc3RfcHVsc2VfZGV2aWNlX3JlY29uZmlndXJlX2VsZW1lbnQgKEdzdERldmlj
ZSAqIGRldmljZSwgR3N0RWxlbWVudCAqIGVsZW1lbnQpCi0gc3RhdGljIEdzdERldmljZSAqCi0g
Z3N0X3B1bHNlX2RldmljZV9uZXcgKGd1aW50IGRldmljZV9pbmRleCwgY29uc3QgZ2NoYXIgKiBk
ZXZpY2VfbmFtZSwKLSAgICAgR3N0Q2FwcyAqIGNhcHMsIGNvbnN0IGdjaGFyICogaW50ZXJuYWxf
bmFtZSwgR3N0UHVsc2VEZXZpY2VUeXBlIHR5cGUsCi0tICAgIEdzdFN0cnVjdHVyZSAqIHByb3Bz
KQotKyAgICBHc3RTdHJ1Y3R1cmUgKiBwcm9wcywgZ2Jvb2xlYW4gaXNfZGVmYXVsdCkKLSB7Ci0g
ICBHc3RQdWxzZURldmljZSAqZ3N0ZGV2OwotICAgY29uc3QgZ2NoYXIgKmVsZW1lbnQgPSBOVUxM
OwotQEAgLTYzNiw3ICs2NzAsNyBAQCBnc3RfcHVsc2VfZGV2aWNlX25ldyAoZ3VpbnQgZGV2aWNl
X2luZGV4LCBjb25zdCBnY2hhciAqIGRldmljZV9uYW1lLAotICAgICAgIGJyZWFrOwotICAgfQot
IAotLQotKyAgZ3N0X3N0cnVjdHVyZV9zZXQgKHByb3BzLCAiaXMtZGVmYXVsdCIsIEdfVFlQRV9C
T09MRUFOLCBpc19kZWZhdWx0LCBOVUxMKTsKLSAgIGdzdGRldiA9IGdfb2JqZWN0X25ldyAoR1NU
X1RZUEVfUFVMU0VfREVWSUNFLAotICAgICAgICJkaXNwbGF5LW5hbWUiLCBkZXZpY2VfbmFtZSwg
ImNhcHMiLCBjYXBzLCAiZGV2aWNlLWNsYXNzIiwga2xhc3MsCi0gICAgICAgImludGVybmFsLW5h
bWUiLCBpbnRlcm5hbF9uYW1lLCAicHJvcGVydGllcyIsIHByb3BzLCBOVUxMKTsKLUBAIC02NDQs
NiArNjc4LDcgQEAgZ3N0X3B1bHNlX2RldmljZV9uZXcgKGd1aW50IGRldmljZV9pbmRleCwgY29u
c3QgZ2NoYXIgKiBkZXZpY2VfbmFtZSwKLSAgIGdzdGRldi0+dHlwZSA9IHR5cGU7Ci0gICBnc3Rk
ZXYtPmRldmljZV9pbmRleCA9IGRldmljZV9pbmRleDsKLSAgIGdzdGRldi0+ZWxlbWVudCA9IGVs
ZW1lbnQ7Ci0rICBnc3RkZXYtPmlzX2RlZmF1bHQgPSBpc19kZWZhdWx0OwotIAotICAgZ3N0X3N0
cnVjdHVyZV9mcmVlIChwcm9wcyk7Ci0gICBnc3RfY2Fwc191bnJlZiAoY2Fwcyk7Ci1kaWZmIC0t
Z2l0IGEvZXh0L3B1bHNlL3B1bHNlZGV2aWNlcHJvdmlkZXIuaCBiL2V4dC9wdWxzZS9wdWxzZWRl
dmljZXByb3ZpZGVyLmgKLWluZGV4IDA4OTJhZDU4Ni4uN2JjZDFiYzQ3IDEwMDY0NAotLS0tIGEv
ZXh0L3B1bHNlL3B1bHNlZGV2aWNlcHJvdmlkZXIuaAotKysrIGIvZXh0L3B1bHNlL3B1bHNlZGV2
aWNlcHJvdmlkZXIuaAotQEAgLTUwLDYgKzUwLDggQEAgc3RydWN0IF9Hc3RQdWxzZURldmljZVBy
b3ZpZGVyIHsKLSAKLSAgIGdjaGFyICpzZXJ2ZXI7Ci0gICBnY2hhciAqY2xpZW50X25hbWU7Ci0r
ICBnY2hhciAqZGVmYXVsdF9zb3VyY2VfbmFtZTsKLSsgIGdjaGFyICpkZWZhdWx0X3NpbmtfbmFt
ZTsKLSAKLSAgIHBhX3RocmVhZGVkX21haW5sb29wICptYWlubG9vcDsKLSAgIHBhX2NvbnRleHQg
KmNvbnRleHQ7Ci1AQCAtODQsNiArODYsNyBAQCBzdHJ1Y3QgX0dzdFB1bHNlRGV2aWNlIHsKLSAg
IEdzdFB1bHNlRGV2aWNlVHlwZSB0eXBlOwotICAgZ3VpbnQgICAgICAgICAgICAgZGV2aWNlX2lu
ZGV4OwotICAgZ2NoYXIgICAgICAgICAgICAqaW50ZXJuYWxfbmFtZTsKLSsgIGdib29sZWFuICAg
ICAgICAgaXNfZGVmYXVsdDsKLSAgIGNvbnN0IGdjaGFyICAgICAgKmVsZW1lbnQ7Ci0gfTsKLSAK
LS0tIAotMi4xOS4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2Qtc2NhbGV0ZW1wby1BZHZlcnRpc2UtaW50ZXJsZWF2ZWQtbGF5b3V0LWluLWNh
cHMtdGVtcC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
c2NhbGV0ZW1wby1BZHZlcnRpc2UtaW50ZXJsZWF2ZWQtbGF5b3V0LWluLWNhcHMtdGVtcC5wYXRj
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNmNhN2NjNTc2NTgxOWMzZmU1MWYwM2JmMzVkZmUyYjVkODBlOTZmCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC1zY2FsZXRlbXBvLUFkdmVydGlzZS1pbnRlcmxlYXZlZC1sYXlvdXQtaW4tY2Fwcy10ZW1wLnBh
dGNoCkBAIC0wLDAgKzEsMzYgQEAKK0Zyb20gN2JlMmFhNmY0MmQ4OWVlNzg0ZDViZWYxYzI3Mzg3
YmRhNzFmMmNjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBoaWxpcHBlIE5vcm1h
bmQgPHBoaWxuQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDIzIEFwciAyMDE5IDEwOjEwOjAxICsw
MTAwCitTdWJqZWN0OiBbUEFUQ0hdIHNjYWxldGVtcG86IEFkdmVydGlzZSBpbnRlcmxlYXZlZCBs
YXlvdXQgaW4gY2FwcyB0ZW1wbGF0ZXMKKworU2NhbGV0ZW1wbyBkb2Vzbid0IHN1cHBvcnQgbm9u
LWludGVybGVhdmVkIGxheW91dC4gTm90IGV4cGxpY2l0ZWx5IHN0YXRpbmcgdGhpcword291bGQg
dHJpZ2dlciBjcml0aWNhbCB3YXJuaW5ncyBhbmQgYSBjYXBzIG5lZ290aWF0aW9uIGZhaWx1cmUg
d2hlbiBzY2FsZXRlbXBvCitpcyB1c2VkIGFzIHBsYXliaW4gYXVkaW8tZmlsdGVyLgorCitQYXRj
aCBzdWdnZXN0ZWQgYnkgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29s
bGFib3JhLmNvbT4uCisKK2h0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIv
Z3N0LXBsdWdpbnMtZ29vZC9pc3N1ZXMvNTkxCistLS0KKyBnc3QvYXVkaW9meC9nc3RzY2FsZXRl
bXBvLmMgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs
ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvYXVkaW9meC9nc3RzY2FsZXRlbXBvLmMgYi9n
c3QvYXVkaW9meC9nc3RzY2FsZXRlbXBvLmMKK2luZGV4IDNhNzE5NzE5YS4uODNlZThmZTI0IDEw
MDY0NAorLS0tIGEvZ3N0L2F1ZGlvZngvZ3N0c2NhbGV0ZW1wby5jCisrKysgYi9nc3QvYXVkaW9m
eC9nc3RzY2FsZXRlbXBvLmMKK0BAIC05Myw5ICs5Myw5IEBAIGVudW0KKyAKKyAjZGVmaW5lIFNV
UFBPUlRFRF9DQVBTIFwKKyBHU1RfU1RBVElDX0NBUFMgKCBcCistICAgIEdTVF9BVURJT19DQVBT
X01BS0UgKEdTVF9BVURJT19ORSAoRjMyKSkgIjsgIiBcCistICAgIEdTVF9BVURJT19DQVBTX01B
S0UgKEdTVF9BVURJT19ORSAoRjY0KSkgIjsgIiBcCistICAgIEdTVF9BVURJT19DQVBTX01BS0Ug
KEdTVF9BVURJT19ORSAoUzE2KSkgXAorKyAgICBHU1RfQVVESU9fQ0FQU19NQUtFIChHU1RfQVVE
SU9fTkUgKEYzMikpICIsIGxheW91dD0oc3RyaW5nKWludGVybGVhdmVkOyAiIFwKKysgICAgR1NU
X0FVRElPX0NBUFNfTUFLRSAoR1NUX0FVRElPX05FIChGNjQpKSAiLCBsYXlvdXQ9KHN0cmluZylp
bnRlcmxlYXZlZDsgIiBcCisrICAgIEdTVF9BVURJT19DQVBTX01BS0UgKEdTVF9BVURJT19ORSAo
UzE2KSkgIiwgbGF5b3V0PShzdHJpbmcpaW50ZXJsZWF2ZWQiIFwKKyApCisgCisgc3RhdGljIEdz
dFN0YXRpY1BhZFRlbXBsYXRlIHNpbmtfdGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFU
RSAoInNpbmsiLAorLS0gCisyLjIwLjEKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3Bh
dGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1mb3It
dW5zcGVjaWZpZWQtc3lzdC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1l
ci0wMDAxLXByb3RlY3Rpb24tQWRkLWEtbmV3LWRlZmluaXRpb24tZm9yLXVuc3BlY2lmaWVkLXN5
c3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyODg0NGM0NjUzZjZjNDk1
ZDc0Yjg4OWY2M2QxOTUxZDNmMmZhYmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJv
dGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1mb3ItdW5zcGVjaWZpZWQtc3lzdC5wYXRjaAor
KysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLUZyb20gMDVhM2RhMzQ3YjNiOGRiYWY0NzA3
OTNkYzNmOWViYjIzZTZmYzY3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFlhY2lu
ZSBCYW5kb3UgPHlhY2luZS5iYW5kb3VAc29mdGF0aG9tZS5jb20+Ci1EYXRlOiBNb24sIDEgT2N0
IDIwMTggMTI6MTE6NDcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIHByb3RlY3Rpb246IEFk
ZCBhIG5ldyBkZWZpbml0aW9uIGZvciB1bnNwZWNpZmllZCBzeXN0ZW0KLSBwcm90ZWN0aW9uCi0K
LUluIHNvbWUgY2FzZXMgdGhlIHN5c3RlbSBwcm90ZWN0aW9uIElEIGlzIG5vdCBwcmVzZW50IGlu
IHRoZSBjb250ZW50cwotb3IgaW4gdGhlaXIgbWV0YWRhdGEuCi1UaGlzIGRlZmluZSBpcyB1c2Vk
IHRvIHNldCB0aGUgdmFsdWUgb2YgdGhlICJzeXN0ZW1faWQiIGZpZWxkIGluIEdzdFByb3RlY3Rp
b25FdmVudCwKLXdpdGggdGhpcyB2YWx1ZSwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgdXNlIGFuIGV4
dGVybmFsIGluZm9ybWF0aW9uIHRvIGNob29zZSB3aGljaAotcHJvdGVjdGlvbiBzeXN0ZW0gdG8g
dXNlLgotCi1FeGFtcGxlOiBUaGUgbWF0cm9za2FkZW11eCB1c2VzIHRoaXMgdmFsdWUgaW4gdGhl
IGNhc2Ugb2YgZW5jcnlwdGVkIFdlYk0sCi10aGUgYXBwbGljYXRpb24gd2lsbCBjaG9vc2UgdGhl
IGFwcHJvcHJpYXRlIHByb3RlY3Rpb24gc3lzdGVtIGJhc2VkIG9uIHRoZSBpbmZvcm1hdGlvbgot
cmVjZWl2ZWQgdGhyb3VnaCBFTUUgQVBJLgotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzk3MjMxCi0tLS0KLSBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMu
dHh0IHwgIDEgKwotIGdzdC9nc3Rwcm90ZWN0aW9uLmggICAgICAgICAgICAgfCAxOCArKysrKysr
KysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKLQotZGlmZiAt
LWdpdCBhL2RvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQgYi9kb2NzL2dzdC9nc3RyZWFt
ZXItc2VjdGlvbnMudHh0Ci1pbmRleCA0OTJjNGQ1OTIuLmVjYzZiMDRlNSAxMDA2NDQKLS0tLSBh
L2RvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKLSsrKyBiL2RvY3MvZ3N0L2dzdHJlYW1l
ci1zZWN0aW9ucy50eHQKLUBAIC0yNTA2LDYgKzI1MDYsNyBAQCBnc3RfYnVmZmVyX2dldF9wcm90
ZWN0aW9uX21ldGEKLSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtCi0gZ3N0X3Byb3RlY3Rp
b25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMKLSBHU1RfUFJPVEVDVElP
Tl9TWVNURU1fSURfQ0FQU19GSUVMRAotK0dTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RF
TV9JRAotIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgotIEdTVF9QUk9URUNUSU9OX01FVEFfQVBJX1RZ
UEUKLSBHU1RfUFJPVEVDVElPTl9NRVRBX0lORk8KLWRpZmYgLS1naXQgYS9nc3QvZ3N0cHJvdGVj
dGlvbi5oIGIvZ3N0L2dzdHByb3RlY3Rpb24uaAotaW5kZXggYTc2NjllYWIzLi4wZWQ4N2U0Mjcg
MTAwNjQ0Ci0tLS0gYS9nc3QvZ3N0cHJvdGVjdGlvbi5oCi0rKysgYi9nc3QvZ3N0cHJvdGVjdGlv
bi5oCi1AQCAtMzQsNiArMzQsMjQgQEAgR19CRUdJTl9ERUNMUwotICAqLwotICNkZWZpbmUgR1NU
X1BST1RFQ1RJT05fU1lTVEVNX0lEX0NBUFNfRklFTEQgInByb3RlY3Rpb24tc3lzdGVtIgotIAot
Ky8qKgotKyAqIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRDoKLSsgKgotKyAq
IFRoZSBwcm90ZWN0aW9uIHN5c3RlbSB2YWx1ZSBvZiB0aGUgdW5zcGVjaWZpZWQgVVVJRC4KLSsg
KiBJbiBzb21lIGNhc2VzIHRoZSBzeXN0ZW0gcHJvdGVjdGlvbiBJRCBpcyBub3QgcHJlc2VudCBp
biB0aGUgY29udGVudHMgb3IgaW4gdGhlaXIKLSsgKiBtZXRhZGF0YSwgYXMgZW5jcnlwdGVkIFdl
Yk0uCi0rICogVGhpcyBkZWZpbmUgaXMgdXNlZCB0byBzZXQgdGhlIHZhbHVlIG9mIHRoZSAic3lz
dGVtX2lkIiBmaWVsZCBpbiBHc3RQcm90ZWN0aW9uRXZlbnQsCi0rICogd2l0aCB0aGlzIHZhbHVl
LCB0aGUgYXBwbGljYXRpb24gd2lsbCB1c2UgYW4gZXh0ZXJuYWwgaW5mb3JtYXRpb24gdG8gY2hv
b3NlIHdoaWNoCi0rICogcHJvdGVjdGlvbiBzeXN0ZW0gdG8gdXNlLgotKyAqCi0rICogRXhhbXBs
ZTogVGhlIG1hdHJvc2thZGVtdXggdXNlcyB0aGlzIHZhbHVlIGluIHRoZSBjYXNlIG9mIGVuY3J5
cHRlZCBXZWJNLAotKyAqIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGNob29zZSB0aGUgYXBwcm9wcmlh
dGUgcHJvdGVjdGlvbiBzeXN0ZW0gYmFzZWQgb24gdGhlIGluZm9ybWF0aW9uCi0rICogcmVjZWl2
ZWQgdGhyb3VnaCBFTUUgQVBJLgotKyAqCi0rICogU2luY2U6IDEuMTYKLSsgKi8KLSsjZGVmaW5l
IEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCAidW5zcGVjaWZpZWQuZ3N0cmVh
bWVyLm9yZyIKLSsKLSB0eXBlZGVmIHN0cnVjdCBfR3N0UHJvdGVjdGlvbk1ldGEgR3N0UHJvdGVj
dGlvbk1ldGE7Ci0gLyoqCi0gICogR3N0UHJvdGVjdGlvbk1ldGE6Ci0tLSAKLTIuMTUuMAotCmRp
ZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMi1wcm90ZWN0
aW9uLUZpeC10aGUtc3RyaW5nLXRvLWRlZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoIGIvVG9v
bHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDItcHJvdGVjdGlvbi1GaXgtdGhlLXN0
cmluZy10by1kZWZpbmUtdW5zcGVjaWZpZWQtc3lzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjMzNDhjOTJkODhkMjYyMTJiMDExNWIxMGVkNzE5MjFjYjdkOTFjMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFt
ZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMi1wcm90ZWN0aW9uLUZpeC10aGUtc3RyaW5nLXRvLWRl
ZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBA
QAotRnJvbSBiODliMTgwMmRmNDQ4MjlhMGMwMzRkYjU4MDdiYzg5M2FkM2M3Nzc0IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAaWdhbGlh
LmNvbT4KLURhdGU6IFdlZCwgMyBPY3QgMjAxOCAxODoyMzowMSArMDIwMAotU3ViamVjdDogW1BB
VENIIDIvMl0gcHJvdGVjdGlvbjogRml4IHRoZSBzdHJpbmcgdG8gZGVmaW5lIHVuc3BlY2lmaWVk
IHN5c3RlbQotIGlkCi0KLVNldHRpbmcgaXQgdG8gInVuc3BlY2lmaWVkLXN5c3RlbS1pZCIuCi0t
LS0KLSBnc3QvZ3N0cHJvdGVjdGlvbi5oIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy
dGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2dzdHByb3RlY3Rpb24u
aCBiL2dzdC9nc3Rwcm90ZWN0aW9uLmgKLWluZGV4IDBlZDg3ZTQyNy4uZjc3YTdiZjk3IDEwMDY0
NAotLS0tIGEvZ3N0L2dzdHByb3RlY3Rpb24uaAotKysrIGIvZ3N0L2dzdHByb3RlY3Rpb24uaAot
QEAgLTUwLDcgKzUwLDcgQEAgR19CRUdJTl9ERUNMUwotICAqCi0gICogU2luY2U6IDEuMTYKLSAg
Ki8KLS0jZGVmaW5lIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCAidW5zcGVj
aWZpZWQuZ3N0cmVhbWVyLm9yZyIKLSsjZGVmaW5lIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVE
X1NZU1RFTV9JRCAidW5zcGVjaWZpZWQtc3lzdGVtLWlkIgotIAotIHR5cGVkZWYgc3RydWN0IF9H
c3RQcm90ZWN0aW9uTWV0YSBHc3RQcm90ZWN0aW9uTWV0YTsKLSAvKioKLS0tIAotMi4xNS4wCi0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368114</attachid>
            <date>2019-04-24 02:13:56 -0700</date>
            <delta_ts>2019-04-24 03:55:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197157-20190424101354.patch</filename>
            <type>text/plain</type>
            <size>141411</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTgzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODYzYTQ4N2NlZWU1OTE1ZGE3NThmNWQ1NTVlYzdiNWZl
NzAxNzRlOS4uYjk2ZTg0NWQxYWRhYzdkMGZhZDc5Zjc1M2FkYTg0ZDhjYWU2MGMzYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDE5LTA0LTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbQnVpbGRdW0dTdHJlYW1lcl0gVXBkYXRlIHRvIDEuMTYuMAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHVwc3RyZWFtZWQgcGF0
Y2hlcyB3ZXJlIHJlbW92ZWQgYW5kIGEgbmV3IG9uZSB3YXMgYWRkZWQgZm9yIGEKKyAgICAgICAg
cmVncmVzc2lvbiBkZXRlY3RlZCBpbiB0aGUgc2NhbGV0ZW1wbyBHU3RyZWFtZXIgZWxlbWVudC4g
VGhlIEdOT01FCisgICAgICAgIEZsYXRwYWsgd2FzIG1pZ3JhdGVkIHRvIDMuMzIgYW5kIEkgc3dp
dGNoZWQgYSBmZXcgbW9kdWxlcyB0byBNZXNvbgorICAgICAgICBvbiB0aGUgd2F5LCBhcyBpdCBp
cyB0aGUgcHJlZmVycmVkIGJ1aWxkIHN5c3RlbSBub3cgaW4gR1N0cmVhbWVyCisgICAgICAgIDEu
MTYuCisKKyAgICAgICAgKiBmbGF0cGFrL2ZpbGVzL2h0dHBkLWF1dG9nZW4uc2g6CisgICAgICAg
ICogZmxhdHBhay9mbGF0cGFrdXRpbHMucHk6CisgICAgICAgIChGbGF0cGFrUGFja2FnZS5pbnN0
YWxsKToKKyAgICAgICAgKFdlYmtpdEZsYXRwYWsucnVuX2luX3NhbmRib3gpOgorICAgICAgICAq
IGZsYXRwYWsvb3JnLndlYmtpdC5Db21tb25Nb2R1bGVzLnlhbWw6CisgICAgICAgICogZmxhdHBh
ay9vcmcud2Via2l0LldlYktpdC55YW1sOgorICAgICAgICAqIGdzdHJlYW1lci9qaGJ1aWxkLm1v
ZHVsZXM6CisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEt
YW9tZW5jLUFkZC1zdXBwb3J0LWZvci0xMC0xMmJpdC1kZWNvZGluZy5wYXRjaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1hb21lbmMt
SGFuZGxlLTgtYml0X2RlcHRoLWltYWdlcy13aXRoLUFPTV9JTUdfRk1UX0hJLnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAzLWZk
a2FhY2VuYy1SZW1vdmUtTU9ERV8yXzEucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDQtZmRrYWFjZGVjLVVzZS1XQVYtY2hhbm5l
bC1tYXBwaW5nLWluc3RlYWQtb2YtaW50ZXJsZWF2ZS1zZXR0aW5nLnBhdGNoOiBSZW1vdmVkLgor
ICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDA1LW1zc2RlbXV4
LWZpeC1wcm90ZWN0aW9uLWRhdGEtZG91YmxlLWZyZWUucGF0Y2g6IFJlbW92ZWQuCisgICAgICAg
ICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3Qt
U1RSRUFNX0NPTExFQ1RJT04tb24tRVZFTlRfU1RSRUFNX0NPTEwucGF0Y2g6IFJlbW92ZWQuCisg
ICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgt
RGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYwOC03MDgtQ2xvc2VkLUNhcHRpb24ucGF0Y2g6IFJlbW92
ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0
ZGVtdXgtRG8tbm90LXJ1bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2g6
IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDAyLXF0ZGVtdXgtRG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5wYXRjaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRk
ZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRk
ZW11eC1DbGFyaWZ5LWZpZWxkLW5hbWUtYWJvdXQtc3RyZWFtLWVuY3J5cHRpb24tcy5wYXRjaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAw
MDMtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5w
YXRjaDogUmVtb3ZlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDQtcXRkZW11eC1BZGQtaW5pdGlhbC1zdXBwb3J0LWZvci1BVjEtZGVtdXhpbmcucGF0
Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC0wMDA1LXF0ZGVtdXgtRXh0cmFjdC1BVjEtY29kZWNfZGF0YS1hbmQtcHV0LWl0LWluLXRoZS1j
YXAucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtZ29vZC0wMDA2LXF0ZGVtdXgtUmVjb2duaXplLW1vcmUtQVYxLWF0b21zLnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1t
YXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNo
OiBSZW1vdmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5n
LnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtMDAxMy1Bdm9pZC13YXJuaW5nLXdoZW4tcmVwb3J0aW5nLWFib3V0LWRlY3J5cHRvcnMu
cGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMt
Z29vZC0wMDE0LXB1bHNlLU1hcmstZGVmYXVsdC1kZXZpY2VzLWFzLWRlZmF1bHQucGF0Y2g6IFJl
bW92ZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1zY2Fs
ZXRlbXBvLUFkdmVydGlzZS1pbnRlcmxlYXZlZC1sYXlvdXQtaW4tY2Fwcy10ZW1wLnBhdGNoOiBB
ZGRlZC4KKyAgICAgICAgKiBnc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0
aW9uLUFkZC1hLW5ldy1kZWZpbml0aW9uLWZvci11bnNwZWNpZmllZC1zeXN0LnBhdGNoOiBSZW1v
dmVkLgorICAgICAgICAqIGdzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAyLXByb3RlY3Rp
b24tRml4LXRoZS1zdHJpbmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0Y2g6IFJlbW92
ZWQuCisKIDIwMTktMDQtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIE1pbmlCcm93c2VyOiBhbHNvIHNldCB0aGUgcGFzc2VkIGJn
LWNvbG9yIHdoZW4gcmVjZWl2aW5nIGFyZ3VtZW50cwpkaWZmIC0tZ2l0IGEvVG9vbHMvZmxhdHBh
ay9maWxlcy9odHRwZC1hdXRvZ2VuLnNoIGIvVG9vbHMvZmxhdHBhay9maWxlcy9odHRwZC1hdXRv
Z2VuLnNoCmluZGV4IDZhMGE0NzNhODI1MzJjYTljOTVjZDQyZDBjNmY3ZmQ0Mzc4YjE4OTguLjFj
MGM0ODMwNTFmYmRmODYwNGI5NDRhNjM1MTFjNGUxMjFlYWVmNGQgMTAwNzU1Ci0tLSBhL1Rvb2xz
L2ZsYXRwYWsvZmlsZXMvaHR0cGQtYXV0b2dlbi5zaAorKysgYi9Ub29scy9mbGF0cGFrL2ZpbGVz
L2h0dHBkLWF1dG9nZW4uc2gKQEAgLTEgKzEsMiBAQAotYXV0b3JlY29uZgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK2F1dG9tYWtlIC0tYWRkLW1pc3NpbmcKK2F1dG9yZWNvbmYgLS1pbnN0
YWxsCmRpZmYgLS1naXQgYS9Ub29scy9mbGF0cGFrL2ZsYXRwYWt1dGlscy5weSBiL1Rvb2xzL2Zs
YXRwYWsvZmxhdHBha3V0aWxzLnB5CmluZGV4IDJlMWJmOTg0Y2M1MjZjOTRhZGVlNTdhOTgwYmY0
YWQwZTI5NTgyZjcuLjk5MjQ5NTg1OWNjODBmZTk3ZWQ1ZWYyNmJkNTRiYWM2Yjg3NTExM2MgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL2ZsYXRwYWsvZmxhdHBha3V0aWxzLnB5CisrKyBiL1Rvb2xzL2ZsYXRw
YWsvZmxhdHBha3V0aWxzLnB5CkBAIC00NzQsNyArNDc0LDcgQEAgY2xhc3MgRmxhdHBha1BhY2th
Z2UoRmxhdHBha09iamVjdCk6CiAgICAgICAgIGNvbW1lbnQgPSAiSW5zdGFsbGluZyBmcm9tICIg
KyBzZWxmLnJlcG8ubmFtZSArICIgIiArIHNlbGYubmFtZSArICIgIiArIHNlbGYuYXJjaCArICIg
IiArIHNlbGYuYnJhbmNoCiAgICAgICAgIHNlbGYuZmxhdHBhaygqYXJncywgc2hvd19vdXRwdXQ9
VHJ1ZSwgY29tbWVudD1jb21tZW50KQogICAgICAgICBpZiBzZWxmLmhhc2g6Ci0gICAgICAgICAg
ICBhcmdzID0gWyJ1cGRhdGUiLCAiLS1jb21taXQiLCBzZWxmLmhhc2hdCisgICAgICAgICAgICBh
cmdzID0gWyJ1cGRhdGUiLCAiLS1jb21taXQiLCBzZWxmLmhhc2gsIHNlbGYubmFtZV0KICAgICAg
ICAgICAgIGNvbW1lbnQgPSAiVXBkYXRpbmcgdG8gJXMiICUgc2VsZi5oYXNoCiAgICAgICAgICAg
ICBzZWxmLmZsYXRwYWsoKmFyZ3MsIHNob3dfb3V0cHV0PVRydWUsIGNvbW1lbnQ9Y29tbWVudCkK
IApAQCAtNzY4LDYgKzc2OCw3IEBAIGNsYXNzIFdlYmtpdEZsYXRwYWs6CiAgICAgICAgICAgICAg
ICAgIkphdmFTY3JpcHRDb3JlVXNlSklUIiwKICAgICAgICAgICAgICAgICAiTWFsbG9jIiwKICAg
ICAgICAgICAgICAgICAiV0FZTEFORF9ESVNQTEFZIiwKKyAgICAgICAgICAgICAgICAiV0FZTEFO
RF9TT0NLRVQiLAogICAgICAgICAgICAgICAgICJESVNQTEFZIiwKICAgICAgICAgICAgICAgICAi
TEFORyIsCiAgICAgICAgICAgICAgICAgIk5VTUJFUl9PRl9QUk9DRVNTT1JTIiwKZGlmZiAtLWdp
dCBhL1Rvb2xzL2ZsYXRwYWsvb3JnLndlYmtpdC5Db21tb25Nb2R1bGVzLnlhbWwgYi9Ub29scy9m
bGF0cGFrL29yZy53ZWJraXQuQ29tbW9uTW9kdWxlcy55YW1sCmluZGV4IDg0YTM1NDk2Yjc4YWVj
MjUwM2JiMWUxNzM3ZDAwZDQ5OGVkOGRmYjMuLmQxYzk5MWI5ZTZiMGY5MmNjYTJlNmQ1ODQxYTc0
NWIxODU2OTNiOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2ZsYXRwYWsvb3JnLndlYmtpdC5Db21tb25N
b2R1bGVzLnlhbWwKKysrIGIvVG9vbHMvZmxhdHBhay9vcmcud2Via2l0LkNvbW1vbk1vZHVsZXMu
eWFtbApAQCAtMTMzLDU3ICsxMzMsMzYgQEAKICAgc291cmNlczoKICAgICAtIHR5cGU6IGdpdAog
ICAgICAgdXJsOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdHJl
YW1lci5naXQKLSAgICAgIGJyYW5jaDogMS4xNC40Ci0gICAgLSB0eXBlOiBwYXRjaAotICAgICAg
cGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQt
YS1uZXctZGVmaW5pdGlvbi1mb3ItdW5zcGVjaWZpZWQtc3lzdC5wYXRjaAotICAgIC0gdHlwZTog
cGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAyLXBy
b3RlY3Rpb24tRml4LXRoZS1zdHJpbmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0Y2gK
KyAgICAgIGJyYW5jaDogMS4xNi4wCiAgIGNvbmZpZy1vcHRzOgotICAgIC0gLURkaXNhYmxlX2d0
a2RvYz10cnVlCisgICAgLSAtRGd0a19kb2M9ZGlzYWJsZWQKKyAgICAtIC1EaW50cm9zcGVjdGlv
bj1kaXNhYmxlZAorICAgIC0gLURleGFtcGxlcz1kaXNhYmxlZAorICAgIC0gLUR0ZXN0cz1kaXNh
YmxlZAogLSBuYW1lOiBnc3QtcGx1Z2lucy1iYXNlCiAgIGJ1aWxkc3lzdGVtOiBtZXNvbgogICBz
b3VyY2VzOgogICAgIC0gdHlwZTogZ2l0CiAgICAgICB1cmw6IGh0dHBzOi8vZ2l0bGFiLmZyZWVk
ZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtYmFzZS5naXQKLSAgICAgIGJyYW5jaDog
MS4xNC40Ci0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3QtU1RSRUFNX0NPTExFQ1RJT04t
b24tRVZFTlRfU1RSRUFNX0NPTEwucGF0Y2gKKyAgICAgIGJyYW5jaDogMS4xNi4wCiAgIGNvbmZp
Zy1vcHRzOgotICAgIC0gLURkaXNhYmxlX2d0a2RvYz10cnVlCisgICAgLSAtRGd0a19kb2M9ZGlz
YWJsZWQKKyAgICAtIC1EaW50cm9zcGVjdGlvbj1kaXNhYmxlZAorICAgIC0gLURleGFtcGxlcz1k
aXNhYmxlZAorICAgIC0gLUR0ZXN0cz1kaXNhYmxlZAogLSBuYW1lOiBnc3QtcGx1Z2lucy1nb29k
CiAgIGJ1aWxkc3lzdGVtOiBtZXNvbgogICBzb3VyY2VzOgogICAgIC0gdHlwZTogZ2l0CiAgICAg
ICB1cmw6IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvZ3N0LXBsdWdp
bnMtZ29vZC5naXQKLSAgICAgIGJyYW5jaDogMS4xNC40Ci0gICAgLSB0eXBlOiBwYXRjaAotICAg
ICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAyLXF0ZGVt
dXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2gKLSAgICAtIHR5
cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDMtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5m
by1pbi5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9w
YXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4LURvLW5vdC1ydW4tdGhlLXByZWZl
cnJlZC1kZWNyeXB0b3ItY29udGV4dC1xLnBhdGNoCi0gICAgLSB0eXBlOiBwYXRjaAotICAgICAg
cGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAyLXF0ZGVtdXgt
RG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gK
LSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1x
dGRlbXV4LUNsYXJpZnktZmllbGQtbmFtZS1hYm91dC1zdHJlYW0tZW5jcnlwdGlvbi1zLnBhdGNo
Ci0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYwOC03MDgt
Q2xvc2VkLUNhcHRpb24ucGF0Y2gKKyAgICAgIGJyYW5jaDogMS4xNi4wCiAgICAgLSB0eXBlOiBw
YXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDA0LXF0ZGVtdXgtQWRkLWluaXRpYWwtc3VwcG9ydC1mb3ItQVYxLWRlbXV4aW5nLnBhdGNoCi0g
ICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC0wMDA1LXF0ZGVtdXgtRXh0cmFjdC1BVjEtY29kZWNfZGF0YS1hbmQtcHV0LWl0
LWluLXRoZS1jYXAucGF0Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1SZWNvZ25pemUtbW9y
ZS1BVjEtYXRvbXMucGF0Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTEtbWF0cm9za2EtQWRkLXRoZS1XZWJN
LWVuY3J5cHRlZC1jb250ZW50LXN1cHBvcnQtaW4tbS5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gK
LSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMi1t
YXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNo
Ci0gICAgLSB0eXBlOiBwYXRjaAotICAgICAgcGF0aDogLi4vZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDEzLUF2b2lkLXdhcm5pbmctd2hlbi1yZXBvcnRpbmctYWJvdXQtZGVj
cnlwdG9ycy5wYXRjaAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxNC1wdWxzZS1NYXJrLWRlZmF1bHQtZGV2aWNl
cy1hcy1kZWZhdWx0LnBhdGNoCisgICAgICBwYXRoOiAuLi9nc3RyZWFtZXIvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLXNjYWxldGVtcG8tQWR2ZXJ0aXNlLWludGVybGVhdmVkLWxheW91dC1pbi1j
YXBzLXRlbXAucGF0Y2gKICAgY29uZmlnLW9wdHM6Ci0gICAgLSAtRGRpc2FibGVfZ3RrZG9jPXRy
dWUKKyAgICAtIC1EZ3RrX2RvYz1kaXNhYmxlZAorICAgIC0gLURpbnRyb3NwZWN0aW9uPWRpc2Fi
bGVkCisgICAgLSAtRGV4YW1wbGVzPWRpc2FibGVkCisgICAgLSAtRGd0azM9ZGlzYWJsZWQKIC0g
bmFtZTogeDI2NAogICBjb25maWctb3B0czoKICAgICAtICItLWVuYWJsZS1zaGFyZWQiCkBAIC0y
MDAsMjYgKzE3OSwyNCBAQAogICBzb3VyY2VzOgogICAgIC0gdHlwZTogZ2l0CiAgICAgICB1cmw6
IGh0dHBzOi8vYW5vbmdpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3QtcGx1Z2lu
cy11Z2x5Ci0gICAgICBicmFuY2g6IDEuMTQuNAorICAgICAgYnJhbmNoOiAxLjE2LjAKICAgY29u
ZmlnLW9wdHM6Ci0gICAgLSAtRGRpc2FibGVfZ3RrZG9jPXRydWUKKyAgICAtIC1EZ3RrX2RvYz1k
aXNhYmxlZAogLSBuYW1lOiBnc3QtcGx1Z2lucy1iYWQKICAgYnVpbGRzeXN0ZW06IG1lc29uCiAg
IHNvdXJjZXM6CiAgICAgLSB0eXBlOiBnaXQKICAgICAgIHVybDogaHR0cHM6Ly9naXRsYWIuZnJl
ZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcGx1Z2lucy1iYWQuZ2l0Ci0gICAgICBicmFuY2g6
IDEuMTQuNAotICAgIC0gdHlwZTogcGF0Y2gKLSAgICAgIHBhdGg6IC4uL2dzdHJlYW1lci9wYXRj
aGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWFvbWVuYy1BZGQtc3VwcG9ydC1mb3ItMTAtMTJiaXQt
ZGVjb2RpbmcucGF0Y2gKLSAgICAtIHR5cGU6IHBhdGNoCi0gICAgICBwYXRoOiAuLi9nc3RyZWFt
ZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1hb21lbmMtSGFuZGxlLTgtYml0X2RlcHRo
LWltYWdlcy13aXRoLUFPTV9JTUdfRk1UX0hJLnBhdGNoCisgICAgICBicmFuY2g6IDEuMTYuMAog
ICBjb25maWctb3B0czoKLSAgICAtIC1EZGlzYWJsZV9ndGtkb2M9dHJ1ZQorICAgIC0gLURndGtf
ZG9jPWRpc2FibGVkCisgICAgLSAtRGludHJvc3BlY3Rpb249ZGlzYWJsZWQKKyAgICAtIC1EZXhh
bXBsZXM9ZGlzYWJsZWQKIC0gbmFtZTogZmZtcGVnCiAgIHNvdXJjZXM6CiAgICAgLSB0eXBlOiBh
cmNoaXZlCi0gICAgICB1cmw6IGh0dHBzOi8vZmZtcGVnLm9yZy9yZWxlYXNlcy9mZm1wZWctMy40
LjUudGFyLmd6Ci0gICAgICBzaGEyNTY6IDE4ZjgwY2M5Y2EzMjIxMzRlZDQwZDI1ZDc0ODlhZjk1
NGZhNTE5YjRlN2U2Mjg5YjcwODRmMWIwYTFjZGY0NzIKKyAgICAgIHVybDogaHR0cHM6Ly9mZm1w
ZWcub3JnL3JlbGVhc2VzL2ZmbXBlZy00LjAuNC50YXIuZ3oKKyAgICAgIHNoYTI1NjogODBiYjY4
NWFiZmNkZGE3YzliNmM5YzVjYWYxZDhkYmI5Mjc4NTgwNTBkNzM3N2MyYjhmMzQ4OGM3ZThhOWI3
ZgogICBjb25maWctb3B0czoKICAgICAtIC0tZW5hYmxlLXN0YXRpYwogICAgIC0gLS1lbmFibGUt
cGljCkBAIC0yNjQsMTYgKzI0MSwxNiBAQAogICBidWlsZGRpcjogdHJ1ZQogICBzb3VyY2VzOgog
ICAgIC0gdHlwZTogYXJjaGl2ZQotICAgICAgdXJsOiBodHRwczovL2dzdHJlYW1lci5mcmVlZGVz
a3RvcC5vcmcvc3JjL2dzdC1saWJhdi9nc3QtbGliYXYtMS4xNC40LnRhci54egotICAgICAgc2hh
MjU2OiBkZmQ3ODU5MTkwMWRmNzg1M2VhYjdlNTZhODZjMzRhMWIwMzYzNWRhMGQzZDU2Yjg5YWE1
NzdmMTg5Nzg2NWRhCisgICAgICB1cmw6IGh0dHBzOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9y
Zy9zcmMvZ3N0LWxpYmF2L2dzdC1saWJhdi0xLjE2LjAudGFyLnh6CisgICAgICBzaGEyNTY6IGRm
YWMxMTkwNDNhOWNmZGNhY2Q3YWNkZTc3ZjY3NGFiMTcyY2YyNTM3YjU4MTJiZTUyZjQ5ZTljZGRj
NTNkOWEKICAgY29uZmlnLW9wdHM6Ci0gICAgLSAtRGRpc2FibGVfZ3RrZG9jPXRydWUKKyAgICAt
IC1EZ3RrX2RvYz1kaXNhYmxlZAogCiAtIG5hbWU6IGxpYmdjcnlwdCAjIFNwZWVkdXAgbGliZ2Ny
eXB0CiAgIHNvdXJjZXM6CiAgICAgLSB0eXBlOiBnaXQKICAgICAgIHVybDogaHR0cHM6Ly9kZXYu
Z251cGcub3JnL3NvdXJjZS9saWJnY3J5cHQuZ2l0Ci0gICAgICBicmFuY2g6IGxpYmdjcnlwdC0x
LjcuNgorICAgICAgYnJhbmNoOiBsaWJnY3J5cHQtMS44LjQKICAgICAtIHR5cGU6IHBhdGNoCiAg
ICAgICBwYXRoOiBwYXRjaGVzL2xpYmdjcnlwdC0wMDAxLVVzZS1wa2ctY29uZmlnLXRvLWRldGVj
dC1ncGctZXJyb3IucGF0Y2gKICAgICAtIHR5cGU6IHBhdGNoCkBAIC0zNDQsNCArMzIxLDQgQEAK
ICAgLSB0eXBlOiBhcmNoaXZlCiAgICAgdXJsOiBodHRwOi8vZ2l0aHViLmNvbS91Y2xvdXZhaW4v
b3BlbmpwZWcvYXJjaGl2ZS92Mi4zLjAudGFyLmd6CiAgICAgc2hhMjU2OiAzZGM3ODdjMWJiNjAy
M2JhODQ2YzJhMGQ5YjFmNmUxNzlmMWNkMjU1MTcyYmRlOWViNzViMDFmMWU2YzdkNzFhCi0gIGJ1
aWxkc3lzdGVtOiBjbWFrZS1uaW5qYQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyAgYnVp
bGRzeXN0ZW06IGNtYWtlLW5pbmphCmRpZmYgLS1naXQgYS9Ub29scy9mbGF0cGFrL29yZy53ZWJr
aXQuV2ViS2l0LnlhbWwgYi9Ub29scy9mbGF0cGFrL29yZy53ZWJraXQuV2ViS2l0LnlhbWwKaW5k
ZXggMTY3ZTQzYmM2NzAyYThiZjIyNGJhZGQwZGZjZTVmODEwZmE5NzQ3MC4uYjZkNjEyNjYwZDhh
MjA0NWRhMzEyZmRiMDkxYjc4ZTU4YTgwN2U2OSAxMDA2NDQKLS0tIGEvVG9vbHMvZmxhdHBhay9v
cmcud2Via2l0LldlYktpdC55YW1sCisrKyBiL1Rvb2xzL2ZsYXRwYWsvb3JnLndlYmtpdC5XZWJL
aXQueWFtbApAQCAtMSw5ICsxLDkgQEAKIGFwcC1pZDogJShQT1JUTkFNRSlzCiBydW50aW1lOiBv
cmcuZ25vbWUuUGxhdGZvcm0KLXJ1bnRpbWUtdmVyc2lvbjogIjMuMjgiCitydW50aW1lLXZlcnNp
b246ICIzLjMyIgogIyBDb250cm9sIHRoZSBleGFjdCB2ZXJzaW9uIG9mIHRoZSBTZGsvUnVudGlt
ZSB0aGF0IGlzIGJlaW5nIHVzZWQuCi1zZGstaGFzaDogMzFhZjBjMTBmOGU0MjE1MTIyMGE3Mjhi
NTJkZjBhNWMzN2VhOGU0YjAzMzgyNWY0MGMzMGU0NGQxMWNiMzFkMQotcnVudGltZS1oYXNoOiA2
ZDFkMGViYmQ3MjQwNGM2MWQxMDkzMDdlYjIyNDA1NDJiN2FkODI2MDhiYzY0MjhiYmE2ZjNlZWJj
ZmM4YmYzCitzZGstaGFzaDogYjNiOWIxZDFiMTllYTJiYjcyMDE5NDI4Y2E3NWM3YTc4NDU1ZTk4
NmEwZjkxZGRkZjZhMjljOTI5OTBjYzVhNworcnVudGltZS1oYXNoOiA3YzlkNTU5MmQ4MDVkMGI3
YzIxMjE5MGZkODExOGU0Yzc4Y2I4ZWQ4ZjgxZTY4Nzg1ODk3MjY3MGRhY2NmZjc2CiBzZGs6IG9y
Zy5nbm9tZS5TZGsKIGNvbW1hbmQ6ICUoQ09NTUFORClzCiBmaW5pc2gtYXJnczoKZGlmZiAtLWdp
dCBhL1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9nc3RyZWFtZXIvamhi
dWlsZC5tb2R1bGVzCmluZGV4IDk2Y2ZmMzEzNDdiZWEwZGQ0NjE5YTY2ZWVmZTFjNmFmMDIzOTE2
YjEuLjU3ZWU3MDZiODEyYThlNDdiZWUzMmE3ODI0NTBkY2JhMTkzZmI1NTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL2po
YnVpbGQubW9kdWxlcwpAQCAtMjMsMTIgKzIzLDEzIEBACiAgICAgICBocmVmPSJodHRwczovL2No
cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vd2VibS8iLz4KICAgPHJlcG9zaXRvcnkgdHlwZT0iZ2l0
IiBuYW1lPSJhb21lZGlhLmdvb2dsZXNvdXJjZS5jb20iCiAgICAgICBocmVmPSJodHRwczovL2Fv
bWVkaWEuZ29vZ2xlc291cmNlLmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIg
bmFtZT0iZmZtcGVnIiBocmVmPSJodHRwczovL2ZmbXBlZy5vcmcvcmVsZWFzZXMvIi8+CiAKLSAg
PGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiIGF1dG9n
ZW4tc2g9ImNvbmZpZ3VyZSI+Ci0gICAgPGJyYW5jaCBtb2R1bGU9Im9yYy9vcmMtJHt2ZXJzaW9u
fS50YXIueHoiIHZlcnNpb249IjAuNC4yOCIKKyAgPG1lc29uIGlkPSJvcmMiIG1lc29uYXJncz0i
LURndGtfZG9jPWRpc2FibGVkIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0ke3ZlcnNp
b259LnRhci54eiIgdmVyc2lvbj0iMC40LjI5IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmJmY2Q3YzY1NjNiMDU2NzIzODZjNGVlZGZjNGMw
ZDRhMGExMmI0YjQ3NzViNzRlYzZkZWI4OGZjMmJjZDgzY2UiLz4KLSAgPC9hdXRvdG9vbHM+Cisg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGY4OTAxZjkxNDRiNWVjMTdkZmZkYjMzNTQ4YjVmNGM3
ZjgwNDliMGQxMDIzYmUzNDYyY2RkNjRlYzVhM2FiMiIvPgorICA8L21lc29uPgogCiAgIDxhdXRv
dG9vbHMgaWQ9Im9wZW5oMjY0IiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iIGF1dG9n
ZW4tc2g9InBzZXVkby1jb25maWd1cmUiPgogICAgIDxicmFuY2ggbW9kdWxlPSJjaXNjby9vcGVu
aDI2NC9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIgdmVyc2lvbj0iMS41LjAiCkBAIC00Nyw5
MSArNDgsNzMgQEAKICAgICAgICAgICAgIHJldmlzaW9uPSJtYXN0ZXIiIHRhZz0iY2RiMDgzZTg0
YTcxZDZkMzExNjNhNGY2NGYxOGRjMTMyOGZkNzgyYyIgLz4KICAgPC9jbWFrZT4KIAotICA8YXV0
b3Rvb2xzIGlkPSJnc3RyZWFtZXIiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9
Ii0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIC0tZGlzYWJsZS1leGFt
cGxlcyAtLWRpc2FibGUtdGVzdHMiPgorICA8bWVzb24gaWQ9ImdzdHJlYW1lciIgbWVzb25hcmdz
PSItRGd0a19kb2M9ZGlzYWJsZWQgLURpbnRyb3NwZWN0aW9uPWRpc2FibGVkIC1EZXhhbXBsZXM9
ZGlzYWJsZWQgLUR0ZXN0cz1kaXNhYmxlZCI+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxk
ZXAgcGFja2FnZT0ib3JjIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBoYXNo
PSJzaGEyNTY6Zjk0ZjY2OTZjNWYwNWEzYjNhOTE4M2UzOWM1ZjVjMGI3NzlmNzVhMDRjMGVmYTQ5
N2U3OTIwYWZhOTg1ZmZjNyIgbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0u
dGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTQuNCI+Ci0gICAgICA8cGF0Y2gg
ZmlsZT0iZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1mb3It
dW5zcGVjaWZpZWQtc3lzdC5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIDA1YTNk
YTM0N2IzYjhkYmFmNDcwNzkzZGMzZjllYmIyM2U2ZmM2N2YgLS0+Ci0gICAgICA8cGF0Y2ggZmls
ZT0iZ3N0cmVhbWVyLTAwMDItcHJvdGVjdGlvbi1GaXgtdGhlLXN0cmluZy10by1kZWZpbmUtdW5z
cGVjaWZpZWQtc3lzdC5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIGI4OWIxODAy
ZGY0NDgyOWEwYzAzNGRiNTgwN2JjODkzYWQzYzc3NzQgLS0+CisgICAgPGJyYW5jaCBoYXNoPSJz
aGEyNTY6MGU4ZTJmNzExOGJlNDM3Y2JhODc5MzUzOTcwY2Y4M2MyYWNjZWQ4MjVlY2I5Mjc1YmEw
NWQ5MTg2ZWYwN2MwMCIgbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFy
Lnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTYuMCI+CiAgICAgPC9icmFuY2g+Ci0g
IDwvYXV0b3Rvb2xzPgorICA8L21lc29uPgogCi0gIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5z
LWJhc2UiCi0gICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgotICAgICAgICAgICAg
IGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNh
YmxlLWludHJvc3BlY3Rpb24iPgorICA8bWVzb24gaWQ9ImdzdC1wbHVnaW5zLWJhc2UiIG1lc29u
YXJncz0iLURndGtfZG9jPWRpc2FibGVkIC1EaW50cm9zcGVjdGlvbj1kaXNhYmxlZCAtRGV4YW1w
bGVzPWRpc2FibGVkIj4KICAgICA8aWYgY29uZGl0aW9uLXNldD0id3BlIj4KLSAgICAgIDxhdXRv
Z2VuYXJncyB2YWx1ZT0iLS1kaXNhYmxlLXBhbmdvIi8+CisgICAgICA8YXV0b2dlbmFyZ3MgdmFs
dWU9Ii1EcGFuZ289ZGlzYWJsZWQiLz4KICAgICA8L2lmPgogICAgIDxkZXBlbmRlbmNpZXM+CiAg
ICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAg
IDxicmFuY2ggaGFzaD0ic2hhMjU2OmNhNjEzOTQ5MGU0ODg2M2U3NzA2ZDg3MGZmNGU4YWM5ZjQx
N2I1NmYzYjllNGIzY2U0OTBjMTNiMDlhNzc0NjEiIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFzZS9n
c3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNp
b249IjEuMTQuNCIgPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhc2UtMDAwMS1w
YXJzZWJpbi1Qb3N0LVNUUkVBTV9DT0xMRUNUSU9OLW9uLUVWRU5UX1NUUkVBTV9DT0xMLnBhdGNo
IiBzdHJpcD0iMSIvPiA8IS0tIE1lcmdlZCBhcyA4OWQwZTljYzkyYTg2YWEwMjI3ZWU4NzQwNjcz
N2I2ZDMxNjcwYWVhIC0tPgorICAgIDxicmFuY2ggaGFzaD0ic2hhMjU2OjQwOTNhYTdiNTFlMjhm
YjI0ZGZkNjAzODkzZmVhZDhkMWI3NzgyZjA4OGIwNWVkMGYyMmEyMWVmMTc2ZmI1YWUiIG1vZHVs
ZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiBy
ZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTYuMCIgPgogICAgIDwvYnJhbmNoPgotICA8L2F1
dG90b29scz4KKyAgPC9tZXNvbj4KIAotICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29k
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMg
LS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICA8bWVzb24gaWQ9
ImdzdC1wbHVnaW5zLWdvb2QiIG1lc29uYXJncz0iLURndGtfZG9jPWRpc2FibGVkIC1EaW50cm9z
cGVjdGlvbj1kaXNhYmxlZCAtRGV4YW1wbGVzPWRpc2FibGVkIC1EZ3RrMz1kaXNhYmxlZCI+CiAg
ICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIv
PgogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJ2cHgiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KIAot
ICAgIDxicmFuY2ggaGFzaD0ic2hhMjU2OjVmOGI1NTMyNjBjYjBhYWM1Njg5MDA1M2Q4NTExZGIx
NTI4ZDUzY2FlMTBmMDI4N2NmY2UyY2IyYWNjNzA5NzkiIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29v
ZC9nc3QtcGx1Z2lucy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZl
cnNpb249IjEuMTQuNCI+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDAy
LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2giIHN0
cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyBlZTRiNDVkYTI0Y2I3NDY1YjQxNmMyMzA1OTdmOGVm
YzdiMmM0NWNiIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMy1x
dGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNo
IiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgODQ0NDIzZmY5OWUyODFmYzgzMTMwM2I5Mjg2
MWVkNDNjZTVjMTUxOCAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAw
MDEtcXRkZW11eC1Eby1ub3QtcnVuLXRoZS1wcmVmZXJyZWQtZGVjcnlwdG9yLWNvbnRleHQtcS5w
YXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIDNlMDYzNzAzYjNhNTFiOGFhYTdmNzVm
MzZjNDY2MGM1ODNhNjBlOTMgLS0+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29v
ZC0wMDAyLXF0ZGVtdXgtRG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5wYXRjaCIgc3Ry
aXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIDQzYTU0MGIxY2Q5ZjE2MmQzZGFlNWQ1MGUzNjcwM2Rm
YWY1NThhM2UgLS0+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0
ZGVtdXgtQ2xhcmlmeS1maWVsZC1uYW1lLWFib3V0LXN0cmVhbS1lbmNyeXB0aW9uLXMucGF0Y2gi
IHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyAwZmJkZTJhMDc5MjhiYTc5YjdhNGRkYjQ1ODVm
NmIxZGUzNmE3NGJiIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAw
MS1xdGRlbXV4LURldGVjdC1hbmQtZXhwb3NlLUNFQS02MDgtNzA4LUNsb3NlZC1DYXB0aW9uLnBh
dGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMjg2OWVkZWVhMjlhMDIyMDA3YTk5ZGIy
ZGY0MWI1YTdlMWEzMDI1YyAodG8gYmUgc2hpcHBlZCBpbiAxLjE2KSAtLT4KLSAgICAgIDxwYXRj
aCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1BZGQtaW5pdGlhbC1zdXBwb3J0
LWZvci1BVjEtZGVtdXhpbmcucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyBiNmU4
YzYzMjNlMDEyNDliYjNhYzRmMTIxYzNhZGMzZWE4ZDkyNGJmICh0byBiZSBzaGlwcGVkIGluIDEu
MTYpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwNS1xdGRlbXV4
LUV4dHJhY3QtQVYxLWNvZGVjX2RhdGEtYW5kLXB1dC1pdC1pbi10aGUtY2FwLnBhdGNoIiBzdHJp
cD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgNDNlZTQwNTVjM2QwM2E5Zjk5YWNkZjNjMDVmNDVlMTU0
ODk5ZWRlZiAodG8gYmUgc2hpcHBlZCBpbiAxLjE2KSAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJn
c3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1SZWNvZ25pemUtbW9yZS1BVjEtYXRvbXMucGF0
Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyBlMDdjZTlhZmI0ZWRiMmVhODk4NzYzYzdl
YTExZjBhZjI3MDQxMDRlICh0byBiZSBzaGlwcGVkIGluIDEuMTYpIC0tPgotICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlw
dGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQg
YXMgMDQzMjgyNjk1MGQ0ZDgwZmUyYjUwZmZkMzc1N2RjMDgxNTVkZTllMyAtLT4KLSAgICAgIDxw
YXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2Ut
TWFwSW5mby5kYXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVy
Z2VkIGFzIGRlZmFlMzUwMzU4NjYwZTU1N2M3NGU0MWE0ZmU4YThiYjMyN2U5YzggLS0+Ci0gICAg
ICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDEzLUF2b2lkLXdhcm5pbmctd2hlbi1y
ZXBvcnRpbmctYWJvdXQtZGVjcnlwdG9ycy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2Vk
IGFzIDU2NjY5MjA1ZWIyZDA4ODc1OTY1NzRlYWJiNzgwNmIzMWM1YmE1Y2YgLS0+Ci0gICAgICA8
cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDE0LXB1bHNlLU1hcmstZGVmYXVsdC1kZXZp
Y2VzLWFzLWRlZmF1bHQucGF0Y2giIHN0cmlwPSIxIiAvPgorICAgIDxicmFuY2ggaGFzaD0ic2hh
MjU2OjY1NGFkZWYzMzM4MGQ2MDQxMTJmNzAyYzI5Mjc1NzRjZmMyODVlMzEzMDdiNzllNTg0MTEz
ODU4ODM4YmIwZmQiIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lucy1nb29kLSR7
dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFtZXIiIHZlcnNpb249IjEuMTYuMCI+CisgICAg
ICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC1zY2FsZXRlbXBvLUFkdmVydGlzZS1pbnRl
cmxlYXZlZC1sYXlvdXQtaW4tY2Fwcy10ZW1wLnBhdGNoIiBzdHJpcD0iMSIvPiA8IS0tIE1lcmdl
ZCB1cHN0cmVhbSwgc2hvdWxkIGJlIHNoaXBwZWQgaW4gMS4xNi4xIC0tPgogICAgIDwvYnJhbmNo
PgotICA8L2F1dG90b29scz4KKyAgPC9tZXNvbj4KIAotICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1
Z2lucy1iYWQiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1l
eGFtcGxlcyAtLWRpc2FibGUtZ3RrLWRvYyAtLWRpc2FibGUtaW50cm9zcGVjdGlvbiAtLWRpc2Fi
bGUtZ3RrMyI+CisgIDxtZXNvbiBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBtZXNvbmFyZ3M9Ii1EZ3Rr
X2RvYz1kaXNhYmxlZCAtRGludHJvc3BlY3Rpb249ZGlzYWJsZWQgLURleGFtcGxlcz1kaXNhYmxl
ZCI+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3JhcGhlbmUiLz4K
ICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgogICAgICAgPGRlcCBwYWNr
YWdlPSJvcGVuaDI2NCIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJhb20iLz4KICAgICA8L2RlcGVu
ZGVuY2llcz4KLSAgICA8YnJhbmNoIGhhc2g9InNoYTI1Njo5MTBiNGUwZTJlODk3ZThiNmQwNjc2
N2FmMTc3OWQ3MDA1N2MzMDlmNjcyOTJmNDg1ZmY5ODhkMDg3YWEwZGU1IiBtb2R1bGU9ImdzdC1w
bHVnaW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJl
YW1lciIgdmVyc2lvbj0iMS4xNC40Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1i
YWQtMDAwMS1hb21lbmMtQWRkLXN1cHBvcnQtZm9yLTEwLTEyYml0LWRlY29kaW5nLnBhdGNoIiBz
dHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMWQ5NmQ5ZTg0MmRkNzE4ODJmNTRkZGZmYmY2YzFj
Y2VjZGIwM2ZjZCAodG8gYmUgc2hpcHBlZCBpbiAxLjE2KSAtLT4KLSAgICAgIDxwYXRjaCBmaWxl
PSJnc3QtcGx1Z2lucy1iYWQtMDAwMi1hb21lbmMtSGFuZGxlLTgtYml0X2RlcHRoLWltYWdlcy13
aXRoLUFPTV9JTUdfRk1UX0hJLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMTBh
MzdlMGMzNTI4YTcyMTA4NDQ0MWMzN2FmMzdiYWVmMDkwOGRkYyAodG8gYmUgc2hpcHBlZCBpbiAx
LjE2KSAtLT4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMy1mZGthYWNl
bmMtUmVtb3ZlLU1PREVfMl8xLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgZjRm
ZGI5NzcwYzc2MTEzZjM4NTE1MjQ1ZmVjYzVmMTFiM2FjZTIwZCAodG8gYmUgc2hpcHBlZCBpbiAx
LjE0LjUpIC0tPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDA0LWZka2Fh
Y2RlYy1Vc2UtV0FWLWNoYW5uZWwtbWFwcGluZy1pbnN0ZWFkLW9mLWludGVybGVhdmUtc2V0dGlu
Zy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIDE5ZDM0ZjZiNWUxNjMzZDVlYzRi
YjI4MzJjNTg0NzBmMGM4MjljYWIgKHRvIGJlIHNoaXBwZWQgaW4gMS4xNC41KSAtLT4KLSAgICAg
IDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwNS1tc3NkZW11eC1maXgtcHJvdGVjdGlv
bi1kYXRhLWRvdWJsZS1mcmVlLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgN2Mx
MzZiYmI1ZWUzNGRmYzFhMGIwMDNmNWRiMzUxZjE5ODYxMDZhMCAodG8gYmUgc2hpcHBlZCBpbiAx
LjE0LjUpIC0tPgorICAgIDxicmFuY2ggaGFzaD0ic2hhMjU2OjIyMTM5ZGUzNTYyNmFkYTYwOTBi
ZGZhMzQyM2IyN2I3ZmMxNWEwMTk4MzMxZDI1Yzk1ZTZiMTJjYjEwNzJiMDUiIG1vZHVsZT0iZ3N0
LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIgcmVwbz0iZ3N0
cmVhbWVyIiB2ZXJzaW9uPSIxLjE2LjAiPgogICAgIDwvYnJhbmNoPgorICA8L21lc29uPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImZmbXBlZyIgYXV0b2dlbi10ZW1wbGF0ZT0iJShzcmNkaXIpcy9jb25m
aWd1cmUgLS1wcmVmaXg9JShwcmVmaXgpcyAtLWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtcGljIC0t
ZGlzYWJsZS1hdmRldmljZSAtLWRpc2FibGUtcG9zdHByb2MgLS1kaXNhYmxlLXN3c2NhbGUgLS1k
aXNhYmxlLXByb2dyYW1zIC0tZGlzYWJsZS1mZnBsYXkgLS1kaXNhYmxlLWZmcHJvYmUgLS1kaXNh
YmxlLWZmbXBlZyAtLWRpc2FibGUtZW5jb2Rlcj1mbGFjIC0tZGlzYWJsZS1wcm90b2NvbHMgLS1k
aXNhYmxlLWRldmljZXMgLS1kaXNhYmxlLW5ldHdvcmsgLS1kaXNhYmxlLWh3YWNjZWxzIC0tZGlz
YWJsZS1keHZhMiAtLWRpc2FibGUtdmRwYXUgLS1kaXNhYmxlLWZpbHRlcnMgLS1lbmFibGUtZmls
dGVyPXlhZGlmIC0tZGlzYWJsZS1kb2MgLS1kaXNhYmxlLWQzZDExdmEgLS1kaXNhYmxlLWR4dmEy
IC0tZGlzYWJsZS1hdWRpb3Rvb2xib3ggLS1kaXNhYmxlLXZpZGVvdG9vbGJveCAtLWRpc2FibGUt
dmFhcGkgLS1kaXNhYmxlLWNyeXN0YWxoZCAtLWRpc2FibGUtbWVkaWFjb2RlYyAtLWRpc2FibGUt
bnZlbmMgLS1kaXNhYmxlLW1tYWwgLS1kaXNhYmxlLW9teCAtLWRpc2FibGUtb214LXJwaSAtLWRp
c2FibGUtY3VkYSAtLWRpc2FibGUtY3V2aWQgLS1kaXNhYmxlLWxpYm1meCAtLWRpc2FibGUtbGli
bnBwIC0tZGlzYWJsZS1pY29udiAtLWRpc2FibGUtam5pIC0tZGlzYWJsZS12NGwyX20ybSAtLWVu
YWJsZS1vcHRpbWl6YXRpb25zIj4KKyAgICA8YnJhbmNoIHJlcG89ImZmbXBlZyIgdmVyc2lvbj0i
NC4wLjQiIG1vZHVsZT0iZmZtcGVnLSR7dmVyc2lvbn0udGFyLmd6IiBoYXNoPSJzaGEyNTY6ODBi
YjY4NWFiZmNkZGE3YzliNmM5YzVjYWYxZDhkYmI5Mjc4NTgwNTBkNzM3N2MyYjhmMzQ4OGM3ZThh
OWI3ZiIvPgogICA8L2F1dG90b29scz4KIAotICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1
dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25m
aWd1cmU9Jy0tZGlzYWJsZS15YXNtJyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgIDxtZXNvbiBpZD0i
Z3N0LWxpYmF2IiBtZXNvbmFyZ3M9Ii1EZ3RrX2RvYz1kaXNhYmxlZCI+CiAgICAgPGRlcGVuZGVu
Y2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJmZm1wZWciLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIGhh
c2g9InNoYTI1NjpkZmQ3ODU5MTkwMWRmNzg1M2VhYjdlNTZhODZjMzRhMWIwMzYzNWRhMGQzZDU2
Yjg5YWE1NzdmMTg5Nzg2NWRhIiBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2ZXJzaW9u
fS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIgdmVyc2lvbj0iMS4xNC40IiAvPgotICA8L2F1dG90
b29scz4KKyAgICA8YnJhbmNoIGhhc2g9InNoYTI1NjpkZmFjMTE5MDQzYTljZmRjYWNkN2FjZGU3
N2Y2NzRhYjE3MmNmMjUzN2I1ODEyYmU1MmY0OWU5Y2RkYzUzZDlhIiBtb2R1bGU9ImdzdC1saWJh
di9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHJlcG89ImdzdHJlYW1lciIgdmVyc2lvbj0i
MS4xNi4wIiAvPgorICA8L21lc29uPgogCi0gIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lci12YWFw
aSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVz
IC0tZGlzYWJsZS1ndGstZG9jIj4KLSAgICA8YnJhbmNoIGhhc2g9InNoYTI1NjpjZTE4ZGJmZTk2
MWM2YThkMzEyNzAyMzE2ODYwNzU1ODZiZjdhN2RmNjJiNzc4YzhlN2Y1ZWMxNDgyNTFkMGEzIiBt
b2R1bGU9ImdzdHJlYW1lci12YWFwaS9nc3RyZWFtZXItdmFhcGktJHt2ZXJzaW9ufS50YXIueHoi
IHJlcG89ImdzdHJlYW1lciIgdmVyc2lvbj0iMS4xNC40IiAvPgorICA8bWVzb24gaWQ9ImdzdHJl
YW1lci12YWFwaSIgbWVzb25hcmdzPSItRGd0a19kb2M9ZGlzYWJsZWQgLURleGFtcGxlcz1kaXNh
YmxlZCI+CisgICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6NGU3ZmNlNjI2ZWUwNTkwZGNhNzRiNWE4
MzQxZDI1YmFjNzYzMDc5NDUxMzFhOTcwYjQxNGZjNTg5NWY1MTcxZiIgbW9kdWxlPSJnc3RyZWFt
ZXItdmFhcGkvZ3N0cmVhbWVyLXZhYXBpLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3RyZWFt
ZXIiIHZlcnNpb249IjEuMTYuMCIgLz4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBw
YWNrYWdlPSJnc3RyZWFtZXIiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFz
ZSIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYWQiLz4KICAgICAgIDxkZXAg
cGFja2FnZT0ibGlidmEiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgIDwvYXV0b3Rvb2xzPgot
Ci0gICA8YXV0b3Rvb2xzIGlkPSJsaWJ2YSIgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLXZhLW1lc3Nh
Z2luZz1ubyI+Ci0gICAgIDxicmFuY2ggbW9kdWxlPSJpbnRlbC9saWJ2YS9yZWxlYXNlcy9kb3du
bG9hZC8ke3ZlcnNpb259L2xpYnZhLSR7dmVyc2lvbn0udGFyLmJ6MiIgdmVyc2lvbj0iMi4xLjAi
Ci0gICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmYzZmE5NTNhMTFkMzIxMGMzYTRlZTc5MDMxYWJk
YmUwODYzZDVjZTEzZDliM2Y5M2YzMTVmMWVlYzYwYTRiMGYiCi0gICAgICAgICAgICBjaGVja291
dGRpcj0ibGlidmEtJHt2ZXJzaW9ufSIgcmVwbz0iZ2l0aHViLXRhcmJhbGwiLz4KLSAgIDwvYXV0
b3Rvb2xzPgorICAgPC9tZXNvbj4KIAorICA8YXV0b3Rvb2xzIGlkPSJsaWJ2YSIgYXV0b2dlbmFy
Z3M9Ii0tZW5hYmxlLXZhLW1lc3NhZ2luZz1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9ImludGVs
L2xpYnZhL3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vbGlidmEtJHt2ZXJzaW9ufS50YXIu
YnoyIiB2ZXJzaW9uPSIyLjQuMCIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo5OTI2MzA1NmMy
MTU5M2EyNmYyZWNlODEyYWVlNmZlNjAxNDJiNDllNmNkNDZjYjMzYzhkZGRmMThmYzE5MzkxIgor
ICAgICAgICAgICBjaGVja291dGRpcj0ibGlidmEtJHt2ZXJzaW9ufSIgcmVwbz0iZ2l0aHViLXRh
cmJhbGwiLz4KKyAgPC9hdXRvdG9vbHM+CiAKIDwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtYW9tZW5jLUFkZC1zdXBw
b3J0LWZvci0xMC0xMmJpdC1kZWNvZGluZy5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAxLWFvbWVuYy1BZGQtc3VwcG9ydC1mb3ItMTAtMTJiaXQtZGVj
b2RpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiN2EyMjViMDIzNGYx
NGU2NTM0Mjk5Yzk2MWMxYTU0Mjc3MDk3MGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFk
LTAwMDEtYW9tZW5jLUFkZC1zdXBwb3J0LWZvci0xMC0xMmJpdC1kZWNvZGluZy5wYXRjaAorKysg
L2Rldi9udWxsCkBAIC0xLDE2NSArMCwwIEBACi1Gcm9tIDFkOTZkOWU4NDJkZDcxODgyZjU0ZGRm
ZmJmNmMxY2NlY2RiMDNmY2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZWFuLURl
ciA8c2VhbkBzaW9idWQuY29tPgotRGF0ZTogV2VkLCAyNyBKdW4gMjAxOCAwOTo0NDowMCArMDAw
MAotU3ViamVjdDogW1BBVENIXSBhb21lbmM6IEFkZCBzdXBwb3J0IGZvciAxMC8xMmJpdCBkZWNv
ZGluZwotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNjc0
Ci0tLS0KLSBleHQvYW9tL2dzdGF2MWRlYy5jIHwgMTA4ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCsp
LCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L2FvbS9nc3RhdjFkZWMuYyBiL2V4
dC9hb20vZ3N0YXYxZGVjLmMKLWluZGV4IGQzMzExOGU2NC4uMjNiMThmNDRjIDEwMDY0NAotLS0t
IGEvZXh0L2FvbS9nc3RhdjFkZWMuYwotKysrIGIvZXh0L2FvbS9nc3RhdjFkZWMuYwotQEAgLTUy
LDE1ICs1MiwyNiBAQCBzdGF0aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgZ3N0X2F2MV9kZWNfc3Jj
X3BhZF90ZW1wbGF0ZSA9Ci0gR1NUX1NUQVRJQ19QQURfVEVNUExBVEUgKCJzcmMiLAotICAgICBH
U1RfUEFEX1NSQywKLSAgICAgR1NUX1BBRF9BTFdBWVMsCi0tICAgIEdTVF9TVEFUSUNfQ0FQUyAo
InZpZGVvL3gtcmF3LCAiCi0tICAgICAgICAiZm9ybWF0ID0gKHN0cmluZykgXCJJNDIwXCIsICIK
LS0gICAgICAgICJmcmFtZXJhdGUgPSAoZnJhY3Rpb24pIFswLCBNQVhdLCAiCi0tICAgICAgICAi
d2lkdGggPSAoaW50KSBbIDQsIE1BWCBdLCAiICJoZWlnaHQgPSAoaW50KSBbIDQsIE1BWCBdIikK
LSsgICAgR1NUX1NUQVRJQ19DQVBTIChHU1RfVklERU9fQ0FQU19NQUtFICgieyBJNDIwLCBZVjEy
LCBZNDJCLCBZNDQ0IgotKyNpZiBHX0JZVEVfT1JERVIgPT0gR19MSVRUTEVfRU5ESUFOCi0rICAg
ICAgICAgICAgIiwgSTQyMF8xMExFLCBJNDIwXzEyTEUsIEk0MjJfMTBMRSwgSTQyMl8xMkxFLCBZ
NDQ0XzEwTEUsIFk0NDRfMTJMRSIKLSsjZWxzZQotKyAgICAgICAgICAgICIsIEk0MjBfMTBCRSwg
STQyMF8xMkJFLCBJNDIyXzEwQkUsIEk0MjJfMTJCRSwgWTQ0NF8xMEJFLCBZNDQ0XzEyQkUiCi0r
I2VuZGlmCi0rICAgICAgICAgICAgIiB9IikpCi0gICAgICk7Ci0gCi0gR1NUX0RFQlVHX0NBVEVH
T1JZX1NUQVRJQyAoYXYxX2RlY19kZWJ1Zyk7Ci0gI2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgYXYx
X2RlY19kZWJ1ZwotIAotKyNkZWZpbmUgR1NUX1ZJREVPX0ZPUk1BVF9XSVRIX0VORElBTihmbXQs
ZW5kaWFuKSBHU1RfVklERU9fRk9STUFUXyMjZm10IyNlbmRpYW4KLSsKLSsjaWYgR19CWVRFX09S
REVSID09IEdfTElUVExFX0VORElBTgotKyNkZWZpbmUgQU9NX0ZNVF9UT19HU1QoZm10KSBHU1Rf
VklERU9fRk9STUFUX1dJVEhfRU5ESUFOKGZtdCxMRSkKLSsjZWxzZQotKyNkZWZpbmUgQU9NX0ZN
VF9UT19HU1QoZm10KSBHU1RfVklERU9fRk9STUFUX1dJVEhfRU5ESUFOKGZtdCxCRSkKLSsjZW5k
aWYKLSsKLSBzdGF0aWMgdm9pZCBnc3RfYXYxX2RlY19zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBv
YmplY3QsIGd1aW50IHByb3BfaWQsCi0gICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1T
cGVjICogcHNwZWMpOwotIHN0YXRpYyB2b2lkIGdzdF9hdjFfZGVjX2dldF9wcm9wZXJ0eSAoR09i
amVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKLUBAIC03OSw2ICs5MCw4IEBAIHN0YXRpYyB2
b2lkIGdzdF9hdjFfZGVjX2ltYWdlX3RvX2J1ZmZlciAoR3N0QVYxRGVjICogZGVjLAotICAgICBj
b25zdCBhb21faW1hZ2VfdCAqIGltZywgR3N0QnVmZmVyICogYnVmZmVyKTsKLSBzdGF0aWMgR3N0
Rmxvd1JldHVybiBnc3RfYXYxX2RlY19vcGVuX2NvZGVjIChHc3RBVjFEZWMgKiBhdjFkZWMsCi0g
ICAgIEdzdFZpZGVvQ29kZWNGcmFtZSAqIGZyYW1lKTsKLStzdGF0aWMgZ2Jvb2xlYW4gZ3N0X2F2
MV9kZWNfZ2V0X3ZhbGlkX2Zvcm1hdCAoR3N0QVYxRGVjICogZGVjLAotKyAgICBjb25zdCBhb21f
aW1hZ2VfdCAqIGltZywgR3N0VmlkZW9Gb3JtYXQgKiBmbXQpOwotIAotICNkZWZpbmUgZ3N0X2F2
MV9kZWNfcGFyZW50X2NsYXNzIHBhcmVudF9jbGFzcwotIEdfREVGSU5FX1RZUEUgKEdzdEFWMURl
YywgZ3N0X2F2MV9kZWMsIEdTVF9UWVBFX1ZJREVPX0RFQ09ERVIpOwotQEAgLTMwOSw2ICszMjIs
ODEgQEAgZ3N0X2F2MV9kZWNfaW1hZ2VfdG9fYnVmZmVyIChHc3RBVjFEZWMgKiBkZWMsIGNvbnN0
IGFvbV9pbWFnZV90ICogaW1nLAotICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwICgmZnJhbWUpOwot
IH0KLSAKLStnYm9vbGVhbgotK2dzdF9hdjFfZGVjX2dldF92YWxpZF9mb3JtYXQgKEdzdEFWMURl
YyAqIGRlYywgY29uc3QgYW9tX2ltYWdlX3QgKiBpbWcsCi0rICAgIEdzdFZpZGVvRm9ybWF0ICog
Zm10KQotK3sKLSsgIHN3aXRjaCAoaW1nLT5mbXQpIHsKLSsgICAgY2FzZSBBT01fSU1HX0ZNVF9J
NDIwOgotKyAgICBjYXNlIEFPTV9JTUdfRk1UX0k0MjAxNjoKLSsgICAgICBpZiAoaW1nLT5iaXRf
ZGVwdGggPT0gOCkgewotKyAgICAgICAgKmZtdCA9IGltZy0+bW9ub2Nocm9tZSA/IEdTVF9WSURF
T19GT1JNQVRfR1JBWTggOiBHU1RfVklERU9fRk9STUFUX0k0MjA7Ci0rICAgICAgICByZXR1cm4g
VFJVRTsKLSsgICAgICB9IGVsc2UgaWYgKGltZy0+Yml0X2RlcHRoID09IDEwKSB7Ci0rICAgICAg
ICAqZm10ID0gQU9NX0ZNVF9UT19HU1QgKEk0MjBfMTApOwotKyAgICAgICAgcmV0dXJuIFRSVUU7
Ci0rICAgICAgfSBlbHNlIGlmIChpbWctPmJpdF9kZXB0aCA9PSAxMikgewotKyAgICAgICAgKmZt
dCA9IEFPTV9GTVRfVE9fR1NUIChJNDIwXzEyKTsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAg
ICAgIH0KLSsKLSsgICAgICBHU1RfRklYTUVfT0JKRUNUIChkZWMsCi0rICAgICAgICAgICJQbGVh
c2UgYWRkIGEgNDoyOjAgcGxhbmFyICV1IGJpdCBkZXB0aCBmcmFtZSBmb3JtYXQiLAotKyAgICAg
ICAgICBpbWctPmJpdF9kZXB0aCk7Ci0rICAgICAgR1NUX0VMRU1FTlRfV0FSTklORyAoZGVjLCBT
VFJFQU0sIE5PVF9JTVBMRU1FTlRFRCwgKE5VTEwpLAotKyAgICAgICAgICAoIlVuc3VwcG9ydGVk
IGZyYW1lIGZvcm1hdCAtIDQ6MjowIHBsYW5hciAldSBiaXQgZGVwdGgiLAotKyAgICAgICAgICAg
ICAgaW1nLT5iaXRfZGVwdGgpKTsKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rCi0rICAgIGNhc2Ug
QU9NX0lNR19GTVRfSTQyMjoKLSsgICAgY2FzZSBBT01fSU1HX0ZNVF9JNDIyMTY6Ci0rICAgICAg
aWYgKGltZy0+Yml0X2RlcHRoID09IDgpIHsKLSsgICAgICAgICpmbXQgPSBHU1RfVklERU9fRk9S
TUFUX1k0MkI7Ci0rICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICB9IGVsc2UgaWYgKGltZy0+
Yml0X2RlcHRoID09IDEwKSB7Ci0rICAgICAgICAqZm10ID0gQU9NX0ZNVF9UT19HU1QgKEk0MjJf
MTApOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgICAgfSBlbHNlIGlmIChpbWctPmJpdF9k
ZXB0aCA9PSAxMikgewotKyAgICAgICAgKmZtdCA9IEFPTV9GTVRfVE9fR1NUIChJNDIyXzEyKTsK
LSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICAgIH0KLSsgICAgICBHU1RfRklYTUVfT0JKRUNU
IChkZWMsCi0rICAgICAgICAgICJQbGVhc2UgYWRkIGEgNDoyOjIgcGxhbmFyICV1IGJpdCBkZXB0
aCBmcmFtZSBmb3JtYXQiLAotKyAgICAgICAgICBpbWctPmJpdF9kZXB0aCk7Ci0rICAgICAgR1NU
X0VMRU1FTlRfV0FSTklORyAoZGVjLCBTVFJFQU0sIE5PVF9JTVBMRU1FTlRFRCwgKE5VTEwpLAot
KyAgICAgICAgICAoIlVuc3VwcG9ydGVkIGZyYW1lIGZvcm1hdCAtIDQ6MjoyIHBsYW5hciAldSBi
aXQgZGVwdGgiLAotKyAgICAgICAgICAgICAgaW1nLT5iaXRfZGVwdGgpKTsKLSsgICAgICByZXR1
cm4gRkFMU0U7Ci0rCi0rICAgIGNhc2UgQU9NX0lNR19GTVRfSTQ0NDoKLSsgICAgY2FzZSBBT01f
SU1HX0ZNVF9JNDQ0MTY6Ci0rICAgICAgaWYgKGltZy0+Yml0X2RlcHRoID09IDgpIHsKLSsgICAg
ICAgICpmbXQgPSBHU1RfVklERU9fRk9STUFUX1k0NDQ7Ci0rICAgICAgICByZXR1cm4gVFJVRTsK
LSsgICAgICB9IGVsc2UgaWYgKGltZy0+Yml0X2RlcHRoID09IDEwKSB7Ci0rICAgICAgICAqZm10
ID0gQU9NX0ZNVF9UT19HU1QgKFk0NDRfMTApOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAg
ICAgfSBlbHNlIGlmIChpbWctPmJpdF9kZXB0aCA9PSAxMikgewotKyAgICAgICAgKmZtdCA9IEFP
TV9GTVRfVE9fR1NUIChZNDQ0XzEyKTsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICAgIH0K
LSsgICAgICBHU1RfRklYTUVfT0JKRUNUIChkZWMsCi0rICAgICAgICAgICJQbGVhc2UgYWRkIGEg
NDo0OjQgcGxhbmFyICV1IGJpdCBkZXB0aCBmcmFtZSBmb3JtYXQiLAotKyAgICAgICAgICBpbWct
PmJpdF9kZXB0aCk7Ci0rICAgICAgR1NUX0VMRU1FTlRfV0FSTklORyAoZGVjLCBTVFJFQU0sIE5P
VF9JTVBMRU1FTlRFRCwgKE5VTEwpLAotKyAgICAgICAgICAoIlVuc3VwcG9ydGVkIGZyYW1lIGZv
cm1hdCAtIDQ6NDo0IHBsYW5hciAldSBiaXQgZGVwdGgiLAotKyAgICAgICAgICAgICAgaW1nLT5i
aXRfZGVwdGgpKTsKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rCi0rICAgIGNhc2UgQU9NX0lNR19G
TVRfWVYxMjoKLSsgICAgICAqZm10ID0gR1NUX1ZJREVPX0ZPUk1BVF9ZVjEyOwotKyAgICAgIHJl
dHVybiBUUlVFOwotKwotKyAgICBkZWZhdWx0OgotKyAgICAgIHJldHVybiBGQUxTRTsKLSsgIH0K
LSt9Ci0rCi0gc3RhdGljIEdzdEZsb3dSZXR1cm4KLSBnc3RfYXYxX2RlY19oYW5kbGVfZnJhbWUg
KEdzdFZpZGVvRGVjb2RlciAqIGRlYywgR3N0VmlkZW9Db2RlY0ZyYW1lICogZnJhbWUpCi0gewot
QEAgLTMxOCw2ICs0MDYsNyBAQCBnc3RfYXYxX2RlY19oYW5kbGVfZnJhbWUgKEdzdFZpZGVvRGVj
b2RlciAqIGRlYywgR3N0VmlkZW9Db2RlY0ZyYW1lICogZnJhbWUpCi0gICBhb21fY29kZWNfZXJy
X3Qgc3RhdHVzOwotICAgYW9tX2ltYWdlX3QgKmltZzsKLSAgIGFvbV9jb2RlY19pdGVyX3QgaXRl
ciA9IE5VTEw7Ci0rICBHc3RWaWRlb0Zvcm1hdCBmbXQ7Ci0gCi0gICBpZiAoIWF2MWRlYy0+ZGVj
b2Rlcl9pbml0ZWQpIHsKLSAgICAgcmV0ID0gZ3N0X2F2MV9kZWNfb3Blbl9jb2RlYyAoYXYxZGVj
LCBmcmFtZSk7Ci1AQCAtMzQ5LDcgKzQzOCwxNiBAQCBnc3RfYXYxX2RlY19oYW5kbGVfZnJhbWUg
KEdzdFZpZGVvRGVjb2RlciAqIGRlYywgR3N0VmlkZW9Db2RlY0ZyYW1lICogZnJhbWUpCi0gCi0g
ICBpbWcgPSBhb21fY29kZWNfZ2V0X2ZyYW1lICgmYXYxZGVjLT5kZWNvZGVyLCAmaXRlcik7Ci0g
ICBpZiAoaW1nKSB7Ci0tICAgIGdzdF9hdjFfZGVjX2hhbmRsZV9yZXNvbHV0aW9uX2NoYW5nZSAo
YXYxZGVjLCBpbWcsIEdTVF9WSURFT19GT1JNQVRfSTQyMCk7Ci0rICAgIGlmIChnc3RfYXYxX2Rl
Y19nZXRfdmFsaWRfZm9ybWF0IChhdjFkZWMsIGltZywgJmZtdCkgPT0gRkFMU0UpIHsKLSsgICAg
ICBhb21faW1nX2ZyZWUgKGltZyk7Ci0rICAgICAgR1NUX0VMRU1FTlRfRVJST1IgKGRlYywgTElC
UkFSWSwgRU5DT0RFLAotKyAgICAgICAgICAoIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUiKSwgKCJV
bnN1cHBvcnRlZCBjb2xvciBmb3JtYXQgJWQiLAotKyAgICAgICAgICAgICAgaW1nLT5mbXQpKTsK
LSsgICAgICBnc3RfdmlkZW9fY29kZWNfZnJhbWVfdW5yZWYgKGZyYW1lKTsKLSsgICAgICByZXR1
cm4gR1NUX0ZMT1dfRVJST1I7Ci0rICAgIH0KLSsKLSsgICAgZ3N0X2F2MV9kZWNfaGFuZGxlX3Jl
c29sdXRpb25fY2hhbmdlIChhdjFkZWMsIGltZywgZm10KTsKLSAKLSAgICAgcmV0ID0gZ3N0X3Zp
ZGVvX2RlY29kZXJfYWxsb2NhdGVfb3V0cHV0X2ZyYW1lIChkZWMsIGZyYW1lKTsKLSAgICAgaWYg
KHJldCA9PSBHU1RfRkxPV19PSykgewotLS0gCi0yLjE4LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Z3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItYW9tZW5jLUhhbmRsZS04LWJp
dF9kZXB0aC1pbWFnZXMtd2l0aC1BT01fSU1HX0ZNVF9ISS5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWFvbWVuYy1IYW5kbGUtOC1iaXRfZGVwdGgt
aW1hZ2VzLXdpdGgtQU9NX0lNR19GTVRfSEkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEyYmY2NjE4ODZlM2E1NzU4YjhhOWU4MzE1Zjc2NDc4ZTg1NzdiYzguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItYW9tZW5jLUhhbmRsZS04LWJpdF9kZXB0aC1pbWFn
ZXMtd2l0aC1BT01fSU1HX0ZNVF9ISS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAg
QEAKLUZyb20gMTBhMzdlMGMzNTI4YTcyMTA4NDQ0MWMzN2FmMzdiYWVmMDkwOGRkYyBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNlYW4tRGVyIDxzZWFuQHNpb2J1ZC5jb20+Ci1EYXRl
OiBXZWQsIDI3IEp1biAyMDE4IDA5OjQ4OjAwICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFvbWVu
YzogSGFuZGxlIDggYml0X2RlcHRoIGltYWdlcyB3aXRoCi0gQU9NX0lNR19GTVRfSElHSEJJVERF
UFRIIGVuYWJsZWQKLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lk
PTc5MTY3NAotLS0tCi0gZXh0L2FvbS9nc3RhdjFkZWMuYyB8IDIwICsrKysrKysrKysrKysrKyst
LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0K
LWRpZmYgLS1naXQgYS9leHQvYW9tL2dzdGF2MWRlYy5jIGIvZXh0L2FvbS9nc3RhdjFkZWMuYwot
aW5kZXggMjNiMThmNDRjLi42ZTBhOWJkNWQgMTAwNjQ0Ci0tLS0gYS9leHQvYW9tL2dzdGF2MWRl
Yy5jCi0rKysgYi9leHQvYW9tL2dzdGF2MWRlYy5jCi1AQCAtMjg1LDcgKzI4NSw3IEBAIHN0YXRp
YyB2b2lkCi0gZ3N0X2F2MV9kZWNfaW1hZ2VfdG9fYnVmZmVyIChHc3RBVjFEZWMgKiBkZWMsIGNv
bnN0IGFvbV9pbWFnZV90ICogaW1nLAotICAgICBHc3RCdWZmZXIgKiBidWZmZXIpCi0gewotLSAg
aW50IGRlc3RzdHJpZGUsIHNyY3N0cmlkZSwgaGVpZ2h0LCB3aWR0aCwgbGluZSwgY29tcDsKLSsg
IGludCBkZXN0c3RyaWRlLCBzcmNzdHJpZGUsIGhlaWdodCwgd2lkdGgsIGxpbmUsIGNvbXAsIHk7
Ci0gICBndWludDggKmRlc3QsICpzcmM7Ci0gICBHc3RWaWRlb0ZyYW1lIGZyYW1lOwotICAgR3N0
VmlkZW9JbmZvICppbmZvID0gJmRlYy0+b3V0cHV0X3N0YXRlLT5pbmZvOwotQEAgLTI5OCwxMyAr
Mjk4LDI1IEBAIGdzdF9hdjFfZGVjX2ltYWdlX3RvX2J1ZmZlciAoR3N0QVYxRGVjICogZGVjLCBj
b25zdCBhb21faW1hZ2VfdCAqIGltZywKLSAgIGZvciAoY29tcCA9IDA7IGNvbXAgPCAzOyBjb21w
KyspIHsKLSAgICAgZGVzdCA9IEdTVF9WSURFT19GUkFNRV9DT01QX0RBVEEgKCZmcmFtZSwgY29t
cCk7Ci0gICAgIHNyYyA9IGltZy0+cGxhbmVzW2NvbXBdOwotLSAgICB3aWR0aCA9IEdTVF9WSURF
T19GUkFNRV9DT01QX1dJRFRIICgmZnJhbWUsIGNvbXApCi0tICAgICAgICAqIEdTVF9WSURFT19G
UkFNRV9DT01QX1BTVFJJREUgKCZmcmFtZSwgY29tcCk7Ci0rICAgIHdpZHRoID0KLSsgICAgICAg
IEdTVF9WSURFT19GUkFNRV9DT01QX1dJRFRIICgmZnJhbWUsCi0rICAgICAgICBjb21wKSAqIEdT
VF9WSURFT19GUkFNRV9DT01QX1BTVFJJREUgKCZmcmFtZSwgY29tcCk7Ci0gICAgIGhlaWdodCA9
IEdTVF9WSURFT19GUkFNRV9DT01QX0hFSUdIVCAoJmZyYW1lLCBjb21wKTsKLSAgICAgZGVzdHN0
cmlkZSA9IEdTVF9WSURFT19GUkFNRV9DT01QX1NUUklERSAoJmZyYW1lLCBjb21wKTsKLSAgICAg
c3Jjc3RyaWRlID0gaW1nLT5zdHJpZGVbY29tcF07Ci0gCi0tICAgIGlmIChzcmNzdHJpZGUgPT0g
ZGVzdHN0cmlkZSkgewotKyAgICBpZiAoKGltZy0+Zm10ICYgQU9NX0lNR19GTVRfSElHSEJJVERF
UFRIKSAmJiBpbWctPmJpdF9kZXB0aCA9PSA4KSB7Ci0rICAgICAgR1NUX1RSQUNFX09CSkVDVCAo
ZGVjLAotKyAgICAgICAgICAiSElHSEJJVERFUFRIIGltYWdlIHdpdGggOCBiaXRfZGVwdGguIENv
bXAgJWQ6ICVkICE9ICVkLCBjb3B5aW5nICIKLSsgICAgICAgICAgImxpbmUgYnkgbGluZS4iLCBj
b21wLCBzcmNzdHJpZGUsIGRlc3RzdHJpZGUpOwotKyAgICAgIGZvciAobGluZSA9IDA7IGxpbmUg
PCBoZWlnaHQ7IGxpbmUrKykgewotKyAgICAgICAgZm9yICh5ID0gMDsgeSA8IHdpZHRoOyB5Kysp
IHsKLSsgICAgICAgICAgZGVzdFt5XSA9IHNyY1t5ICogMl07Ci0rICAgICAgICB9Ci0rICAgICAg
ICBkZXN0ICs9IGRlc3RzdHJpZGU7Ci0rICAgICAgICBzcmMgKz0gc3Jjc3RyaWRlOwotKyAgICAg
IH0KLSsgICAgfSBlbHNlIGlmIChzcmNzdHJpZGUgPT0gZGVzdHN0cmlkZSkgewotICAgICAgIEdT
VF9UUkFDRV9PQkpFQ1QgKGRlYywgIlN0cmlkZSBtYXRjaGVzLiBDb21wICVkOiAlZCwgY29weWlu
ZyBmdWxsIHBsYW5lIiwKLSAgICAgICAgICAgY29tcCwgc3Jjc3RyaWRlKTsKLSAgICAgICBtZW1j
cHkgKGRlc3QsIHNyYywgc3Jjc3RyaWRlICogaGVpZ2h0KTsKLS0tIAotMi4xOC4wCi0KZGlmZiAt
LWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAzLWZka2Fh
Y2VuYy1SZW1vdmUtTU9ERV8yXzEucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1iYWQtMDAwMy1mZGthYWNlbmMtUmVtb3ZlLU1PREVfMl8xLnBhdGNoCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWEwOGY5YWJiYTJiYzhlYzIwNDc5ODQ5OGUzYmQzNGVk
NWVhYzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAzLWZka2FhY2VuYy1SZW1v
dmUtTU9ERV8yXzEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIGY0
ZmRiOTc3MGM3NjExM2YzODUxNTI0NWZlY2M1ZjExYjNhY2UyMGQgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCi1Gcm9tOiAiSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSIgPGphbi5zdGVm
ZmVuc0BnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDQgRGVjIDIwMTggMTc6NTQ6NDIgKzAxMDAKLVN1
YmplY3Q6IFtQQVRDSF0gZmRrYWFjZW5jOiBSZW1vdmUgTU9ERV8yXzEKLQotVGhpcyBpcyBub3Qg
YSBzdGFuZGFyZCBtb2RlIGFuZCBubyBsb25nZXIgc3VwcG9ydGVkIGJ5IGZkay1hYWMgMi4wLjAu
Ci0KLUZvciBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVn
aW5zLWJhZC9pc3N1ZXMvODI1Ci0tLS0KLSBleHQvZmRrYWFjL2dzdGZka2FhY2VuYy5jIHwgNCAt
LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQv
ZmRrYWFjL2dzdGZka2FhY2VuYy5jIGIvZXh0L2Zka2FhYy9nc3RmZGthYWNlbmMuYwotaW5kZXgg
YWQyYmNiNDkyLi44NDEwZTY4NGMgMTAwNjQ0Ci0tLS0gYS9leHQvZmRrYWFjL2dzdGZka2FhY2Vu
Yy5jCi0rKysgYi9leHQvZmRrYWFjL2dzdGZka2FhY2VuYy5jCi1AQCAtNzEsMTAgKzcxLDYgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdAotICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRf
Q0VOVEVSLAotICAgICAgICAgICBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9OVF9MRUZU
LAotICAgICAgICAgICBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9OVF9SSUdIVH19LCB7
Ci0tICAgIDMsIE1PREVfMl8xLCB7Ci0tICBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9O
VF9MRUZULAotLSAgICAgICAgICBHU1RfQVVESU9fQ0hBTk5FTF9QT1NJVElPTl9GUk9OVF9SSUdI
VCwKLS0gICAgICAgICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fTEZFMX19LCB7Ci0gICAg
IDQsIE1PREVfMV8yXzEsIHsKLSAgIEdTVF9BVURJT19DSEFOTkVMX1BPU0lUSU9OX0ZST05UX0NF
TlRFUiwKLSAgICAgICAgICAgR1NUX0FVRElPX0NIQU5ORUxfUE9TSVRJT05fRlJPTlRfTEVGVCwK
LS0tIAotMi4xOC4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWJhZC0wMDA0LWZka2FhY2RlYy1Vc2UtV0FWLWNoYW5uZWwtbWFwcGluZy1pbnN0ZWFk
LW9mLWludGVybGVhdmUtc2V0dGluZy5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dz
dC1wbHVnaW5zLWJhZC0wMDA0LWZka2FhY2RlYy1Vc2UtV0FWLWNoYW5uZWwtbWFwcGluZy1pbnN0
ZWFkLW9mLWludGVybGVhdmUtc2V0dGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWQ4MjBhZjNiOTA2NGM5ZTAxNzIyYWNkMjQ1YTAxNzEwMThkNDNmMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwNC1mZGthYWNkZWMtVXNlLVdBVi1jaGFubmVsLW1hcHBp
bmctaW5zdGVhZC1vZi1pbnRlcmxlYXZlLXNldHRpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt
MSw0NyArMCwwIEBACi1Gcm9tIDE5ZDM0ZjZiNWUxNjMzZDVlYzRiYjI4MzJjNTg0NzBmMGM4Mjlj
YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiAiSmFuIEFsZXhhbmRlciBTdGVmZmVu
cyAoaGVmdGlnKSIgPGphbi5zdGVmZmVuc0BnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDUgRGVjIDIw
MTggMTA6MTA6MzkgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gZmRrYWFjZGVjOiBVc2UgV0FWIGNo
YW5uZWwgbWFwcGluZyBpbnN0ZWFkIG9mIGludGVybGVhdmUKLSBzZXR0aW5nCi0KLVRoZSBsYXR0
ZXIgaXMgZ29pbmcgYXdheSBpbiBsaWJmZGstYWFjIDIuMC4wLiBJbnN0ZWFkLCBNUEVHLXN0eWxl
IG91dHB1dAotaXMgYWx3YXlzIG5vbi1pbnRlcmxlYXZlZCBhbmQgV0FWLXN0eWxlIG91dHB1dCBp
cyBhbHdheXMgaW50ZXJsZWF2ZWQuCi1FYXJsaWVyIGxpYmZkay1hYWMgYWxzbyBkZWZhdWx0cyBp
bnRlcmxlYXZpbmcgYWNjb3JkaW5nbHkuCi0KLVNpbmNlIG91ciByZW9yZGVyaW5nIGxvb2tzIGF0
IHRoZSBhc3NvY2lhdGVkIFBDRSBpbmRpY2VzIGluc3RlYWQgb2YgdGhlCi1hY3R1YWwgY2hhbm5l
bCBvcmRlciwgd2UncmUgYWdub3N0aWMgdG8gdGhlIG1hcHBpbmcuCi0KLUZvciBodHRwczovL2dp
dGxhYi5mcmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLWJhZC9pc3N1ZXMvODI1
Ci0tLS0KLSBleHQvZmRrYWFjL2dzdGZka2FhY2RlYy5jIHwgMTIgKysrKy0tLS0tLS0tCi0gMSBm
aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp
dCBhL2V4dC9mZGthYWMvZ3N0ZmRrYWFjZGVjLmMgYi9leHQvZmRrYWFjL2dzdGZka2FhY2RlYy5j
Ci1pbmRleCBjMjcxODM3NTIuLmY1MTM2YjMzNCAxMDA2NDQKLS0tLSBhL2V4dC9mZGthYWMvZ3N0
ZmRrYWFjZGVjLmMKLSsrKyBiL2V4dC9mZGthYWMvZ3N0ZmRrYWFjZGVjLmMKLUBAIC0xNTEsMTcg
KzE1MSwxMyBAQCBnc3RfZmRrYWFjZGVjX3NldF9mb3JtYXQgKEdzdEF1ZGlvRGVjb2RlciAqIGRl
YywgR3N0Q2FwcyAqIGNhcHMpCi0gICAgIGdzdF9idWZmZXJfdW5yZWYgKGNvZGVjX2RhdGEpOwot
ICAgfQotIAotKyAgLyogQ2hvb3NlIFdBViBjaGFubmVsIG1hcHBpbmcgdG8gZ2V0IGludGVybGVh
dmluZyBldmVuIHdpdGggbGliZmRrLWFhYyAyLjAuMAotKyAgICogVGhlIHBDaGFubmVsSW5kaWNl
cyByZXRhaW4gdGhlIGluZGljZXMgZnJvbSB0aGUgc3RhbmRhcmQgTVBFRyBtYXBwaW5nIHNvCi0r
ICAgKiB3ZSdyZSBhZ25vc3RpYyB0byB0aGUgYWN0dWFsIG9yZGVyLiAqLwotICAgaWYgKChlcnIg
PQotICAgICAgICAgICBhYWNEZWNvZGVyX1NldFBhcmFtIChzZWxmLT5kZWMsIEFBQ19QQ01fT1VU
UFVUX0NIQU5ORUxfTUFQUElORywKLS0gICAgICAgICAgICAgIDApKSAhPSBBQUNfREVDX09LKSB7
Ci0tICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHNlbGYsICJGYWlsZWQgdG8gc2V0IG91dHB1dCBjaGFu
bmVsIG1hcHBpbmc6ICVkIiwgZXJyKTsKLS0gICAgcmV0dXJuIEZBTFNFOwotLSAgfQotLQotLSAg
aWYgKChlcnIgPQotLSAgICAgICAgICBhYWNEZWNvZGVyX1NldFBhcmFtIChzZWxmLT5kZWMsIEFB
Q19QQ01fT1VUUFVUX0lOVEVSTEVBVkVELAotICAgICAgICAgICAgICAgMSkpICE9IEFBQ19ERUNf
T0spIHsKLS0gICAgR1NUX0VSUk9SX09CSkVDVCAoc2VsZiwgIkZhaWxlZCB0byBzZXQgaW50ZXJs
ZWF2ZWQgb3V0cHV0OiAlZCIsIGVycik7Ci0rICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHNlbGYsICJG
YWlsZWQgdG8gc2V0IG91dHB1dCBjaGFubmVsIG1hcHBpbmc6ICVkIiwgZXJyKTsKLSAgICAgcmV0
dXJuIEZBTFNFOwotICAgfQotIAotLS0gCi0yLjE4LjEKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0
cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDUtbXNzZGVtdXgtZml4LXByb3RlY3Rp
b24tZGF0YS1kb3VibGUtZnJlZS5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWJhZC0wMDA1LW1zc2RlbXV4LWZpeC1wcm90ZWN0aW9uLWRhdGEtZG91YmxlLWZyZWUu
cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViMzYwMzViZGE2M2U5MzBmOWRh
ZWI5MTJhNDUzMjI2MGJhNGVmOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDUt
bXNzZGVtdXgtZml4LXByb3RlY3Rpb24tZGF0YS1kb3VibGUtZnJlZS5wYXRjaAorKysgL2Rldi9u
dWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gN2MxMzZiYmI1ZWUzNGRmYzFhMGIwMDNmNWRiMzUx
ZjE5ODYxMDZhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFhhYmllciBSb2RyaWd1
ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgotRGF0ZTogTW9uLCAxOCBNYXIgMjAxOSAx
NToyMzowNyArMDEwMAotU3ViamVjdDogW1BBVENIXSBtc3NkZW11eDogZml4IHByb3RlY3Rpb24g
ZGF0YSBkb3VibGUgZnJlZQotCi1Gb3Igbm90IGJlaW5nIGR1cGxpY2F0ZWQgaGVyZSBpdCB3YXMg
YmVpbmcgZnJlZWQgd2hlbiB0aGUgbWFuaWZlc3Qgd2FzCi1iZWluZyBkZXN0cm95ZWQgYW5kIGEg
c2Vjb25kIHRpbWUgd2hlbiB0aGUgYnVmZmVyIHdhcyBiZWluZyBkZXN0cm95ZWQuCi0tLS0KLSBl
eHQvc21vb3Roc3RyZWFtaW5nL2dzdG1zc2RlbXV4LmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQs
IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvc21vb3Ro
c3RyZWFtaW5nL2dzdG1zc2RlbXV4LmMgYi9leHQvc21vb3Roc3RyZWFtaW5nL2dzdG1zc2RlbXV4
LmMKLWluZGV4IDg1ZjBlYzg5YS4uYmNlYThjYTA3IDEwMDY0NAotLS0tIGEvZXh0L3Ntb290aHN0
cmVhbWluZy9nc3Rtc3NkZW11eC5jCi0rKysgYi9leHQvc21vb3Roc3RyZWFtaW5nL2dzdG1zc2Rl
bXV4LmMKLUBAIC00ODksNyArNDg5LDcgQEAgZ3N0X21zc19kZW11eF9zZXR1cF9zdHJlYW1zIChH
c3RBZGFwdGl2ZURlbXV4ICogZGVtdXgpCi0gCi0gICAgIGlmIChwcm90ZWN0ZWQpIHsKLSAgICAg
ICBHc3RCdWZmZXIgKnByb3RlY3Rpb25fYnVmZmVyID0KLS0gICAgICAgICAgZ3N0X2J1ZmZlcl9u
ZXdfd3JhcHBlZCAoKGdwb2ludGVyKSBwcm90ZWN0aW9uX2RhdGEsCi0rICAgICAgICAgIGdzdF9i
dWZmZXJfbmV3X3dyYXBwZWQgKGdfc3RyZHVwIChwcm90ZWN0aW9uX2RhdGEpLAotICAgICAgICAg
ICBzdHJsZW4gKHByb3RlY3Rpb25fZGF0YSkpOwotICAgICAgIEdzdEV2ZW50ICpldmVudCA9Ci0g
ICAgICAgICAgIGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAocHJvdGVjdGlvbl9zeXN0ZW1faWQs
IHByb3RlY3Rpb25fYnVmZmVyLAotLS0gCi0yLjIwLjEKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0
cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFzZS0wMDAxLXBhcnNlYmluLVBvc3QtU1RSRUFN
X0NPTExFQ1RJT04tb24tRVZFTlRfU1RSRUFNX0NPTEwucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1iYXNlLTAwMDEtcGFyc2ViaW4tUG9zdC1TVFJFQU1fQ09MTEVD
VElPTi1vbi1FVkVOVF9TVFJFQU1fQ09MTC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjgwYmMyZGI0NjQ1NGFhOTcyOTNhZmVkNzQ1OWZmMzg1ZGI3YjY5NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1iYXNlLTAwMDEtcGFyc2ViaW4tUG9zdC1TVFJFQU1fQ09MTEVDVElP
Ti1vbi1FVkVOVF9TVFJFQU1fQ09MTC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLUZyb20gODlkMGU5Y2M5MmE4NmFhMDIyN2VlODc0MDY3MzdiNmQzMTY3MGFlYSBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGlnYWxp
YS5jb20+Ci1EYXRlOiBXZWQsIDE4IEFwciAyMDE4IDE2OjA2OjA3IC0wMzAwCi1TdWJqZWN0OiBb
UEFUQ0hdIHBhcnNlYmluOiBQb3N0IFNUUkVBTV9DT0xMRUNUSU9OIG9uIEVWRU5UX1NUUkVBTV9D
T0xMRUNUSU9OCi0KLU90aGVyd2lzZSBkZWNvZGViaW4gd29uJ3QgZ2V0IG5vdGlmaWVkIGFib3V0
IFNUUkVBTV9DT0xMRUNUSU9OIGNvbW1pbmcKLWZyb20gdGhlIHNvdXJjZXMgYW5kIHRodXMgd2ls
bCBuZXZlciBnZXQgaW5mb3Jtb3JlZCBhYm91dCBpdC4gV2l0aG91dAotYmVpbmcgaW5mb3JtZWQg
YWJvdXQgdGhlIHN0cmVhbSBjb2xsZWN0aW9uIGRlY29kZWJpbiB3b24ndCBiZSBhYmxlIHRvCi1z
ZWxlY3QgYW55IHN0cmVhbXMuIEl0IGVuZHMgdXAgbm90IGNyZWF0aW5nIGFueSBvdXRwdXQgZm9y
IHRoZSBzdHJlYW1zCi1kZWZpbmVkIGZyb20gb3V0c2lkZSBwYXJzZXJiaW4uCi0KLWh0dHBzOi8v
YnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTUzNjQKLS0tLQotIGdzdC9wbGF5
YmFjay9nc3RwYXJzZWJpbi5jIHwgMyArKysKLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z
KCspCi0KLWRpZmYgLS1naXQgYS9nc3QvcGxheWJhY2svZ3N0cGFyc2ViaW4uYyBiL2dzdC9wbGF5
YmFjay9nc3RwYXJzZWJpbi5jCi1pbmRleCA0YzViZmMxOWQuLmY5NjYyZWI0OSAxMDA2NDQKLS0t
LSBhL2dzdC9wbGF5YmFjay9nc3RwYXJzZWJpbi5jCi0rKysgYi9nc3QvcGxheWJhY2svZ3N0cGFy
c2ViaW4uYwotQEAgLTQwNDYsNiArNDA0Niw5IEBAIGdzdF9wYXJzZV9wYWRfZXZlbnQgKEdzdFBh
ZCAqIHBhZCwgR3N0UGFkUHJvYmVJbmZvICogaW5mbywgZ3BvaW50ZXIgdXNlcl9kYXRhKQotICAg
ICAgIEdzdFN0cmVhbUNvbGxlY3Rpb24gKmNvbGxlY3Rpb24gPSBOVUxMOwotICAgICAgIGdzdF9l
dmVudF9wYXJzZV9zdHJlYW1fY29sbGVjdGlvbiAoZXZlbnQsICZjb2xsZWN0aW9uKTsKLSAgICAg
ICBnc3RfcGFyc2VfcGFkX3VwZGF0ZV9zdHJlYW1fY29sbGVjdGlvbiAocGFyc2VwYWQsIGNvbGxl
Y3Rpb24pOwotKyAgICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSAoR1NUX0VMRU1FTlQgKHBh
cnNlcGFkLT5wYXJzZWJpbiksCi0rICAgICAgICAgIGdzdF9tZXNzYWdlX25ld19zdHJlYW1fY29s
bGVjdGlvbiAoR1NUX09CSkVDVCAocGFyc2VwYWQtPnBhcnNlYmluKSwKLSsgICAgICAgICAgICAg
IGNvbGxlY3Rpb24pKTsKLSAgICAgICBicmVhazsKLSAgICAgfQotICAgICBjYXNlIEdTVF9FVkVO
VF9FT1M6ewotLS0gCi0yLjE3LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRGV0ZWN0LWFuZC1leHBvc2UtQ0VBLTYw
OC03MDgtQ2xvc2VkLUNhcHRpb24ucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3Qt
cGx1Z2lucy1nb29kLTAwMDEtcXRkZW11eC1EZXRlY3QtYW5kLWV4cG9zZS1DRUEtNjA4LTcwOC1D
bG9zZWQtQ2FwdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg4NmQx
MDgyYzBlMDQxZWZlMWZmMDVhYWVlMzk2NTZhNGQ0ZmJiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDEtcXRkZW11eC1EZXRlY3QtYW5kLWV4cG9zZS1DRUEtNjA4LTcwOC1DbG9z
ZWQtQ2FwdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzNCArMCwwIEBACi1Gcm9tIDI4
NjllZGVlYTI5YTAyMjAwN2E5OWRiMmRmNDFiNWE3ZTFhMzAyNWMgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCi1Gcm9tOiBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgotRGF0
ZTogV2VkLCAzMSBKYW4gMjAxOCAxNToxMDowMyArMDEwMAotU3ViamVjdDogW1BBVENIXSBxdGRl
bXV4OiBEZXRlY3QgYW5kIGV4cG9zZSBDRUEgNjA4LzcwOCBDbG9zZWQgQ2FwdGlvbiB0cmFja3MK
LQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjY0MwotLS0t
Ci0gZ3N0L2lzb21wNC9mb3VyY2MuaCAgICAgICAgfCAgIDYgKysKLSBnc3QvaXNvbXA0L3F0ZGVt
dXguYyAgICAgICB8IDE1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCi0g
Z3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMgfCAgIDEgKwotIDMgZmlsZXMgY2hhbmdlZCwgMTU2
IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0
L2ZvdXJjYy5oIGIvZ3N0L2lzb21wNC9mb3VyY2MuaAotaW5kZXggYmU1YzdjMDRlLi42ZjQ2N2Zm
YmIgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L2ZvdXJjYy5oCi0rKysgYi9nc3QvaXNvbXA0L2Zv
dXJjYy5oCi1AQCAtOTUsNiArOTUsMTIgQEAgR19CRUdJTl9ERUNMUwotICNkZWZpbmUgRk9VUkND
X2F2YzEgICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3YnLCdjJywnMScpCi0gI2RlZmluZSBGT1VS
Q0NfYXZjMyAgICAgR1NUX01BS0VfRk9VUkNDKCdhJywndicsJ2MnLCczJykKLSAjZGVmaW5lIEZP
VVJDQ19hdmNDICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCd2JywnYycsJ0MnKQotKyNkZWZpbmUg
Rk9VUkNDX2M2MDggICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJzYnLCcwJywnOCcpCi0rI2RlZmlu
ZSBGT1VSQ0NfYzcwOCAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnNycsJzAnLCc4JykKLSsjZGVm
aW5lIEZPVVJDQ19jY2RwICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCdjJywnZCcsJ3AnKQotKyNk
ZWZpbmUgRk9VUkNDX2NkYXQgICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJ2QnLCdhJywndCcpCi0r
I2RlZmluZSBGT1VSQ0NfY2R0MiAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnZCcsJ3QnLCcyJykK
LSsjZGVmaW5lIEZPVVJDQ19jbGNwICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCdsJywnYycsJ3An
KQotICNkZWZpbmUgRk9VUkNDX2NsaXAgICAgIEdTVF9NQUtFX0ZPVVJDQygnYycsJ2wnLCdpJywn
cCcpCi0gI2RlZmluZSBGT1VSQ0NfY21vdiAgICAgR1NUX01BS0VfRk9VUkNDKCdjJywnbScsJ28n
LCd2JykKLSAjZGVmaW5lIEZPVVJDQ19jbXZkICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2MnLCdtJywn
dicsJ2QnKQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmMKLWluZGV4IDc5ZWY1ZjU1Yi4uZjczMmU5MmIzIDEwMDY0NAotLS0tIGEvZ3N0L2lz
b21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1AQCAtNTM3MCw2ICs1
MzcwLDEyMCBAQCBnc3RfcXRkZW11eF9hbGlnbl9idWZmZXIgKEdzdFFURGVtdXggKiBkZW11eCwK
LSAgIHJldHVybiBidWZmZXI7Ci0gfQotIAotK3N0YXRpYyBndWludDggKgotK2NvbnZlcnRfdG9f
Y2NkYXRhIChjb25zdCBndWludDggKiBjY3BhaXIsIGd1aW50OCBjY3BhaXJfc2l6ZSwgZ3VpbnQg
ZmllbGQsCi0rICAgIGdzaXplICogcmVzKQotK3sKLSsgIGd1aW50OCAqc3RvcmFnZTsKLSsgIGdz
aXplIGk7Ci0rCi0rICAvKiBXZSBhcmUgY29udmVydGluZyBmcm9tIHBhaXJzIHRvIHRyaXBsZXRz
ICovCi0rICAqcmVzID0gY2NwYWlyX3NpemUgLyAyICogMzsKLSsgIHN0b3JhZ2UgPSBnX21hbGxv
YyAoKnJlcyk7Ci0rICBmb3IgKGkgPSAwOyBpICogMiA8IGNjcGFpcl9zaXplOyBpICs9IDEpIHsK
LSsgICAgaWYgKGZpZWxkID09IDEpCi0rICAgICAgc3RvcmFnZVtpICogM10gPSAweGZjOwotKyAg
ICBlbHNlCi0rICAgICAgc3RvcmFnZVtpICogM10gPSAweGZkOwotKyAgICBzdG9yYWdlW2kgKiAz
ICsgMV0gPSBjY3BhaXJbaSAqIDJdOwotKyAgICBzdG9yYWdlW2kgKiAzICsgMl0gPSBjY3BhaXJb
aSAqIDIgKyAxXTsKLSsgIH0KLSsKLSsgIHJldHVybiBzdG9yYWdlOwotK30KLSsKLStzdGF0aWMg
Z3VpbnQ4ICoKLStleHRyYWN0X2NjX2Zyb21fZGF0YSAoUXREZW11eFN0cmVhbSAqIHN0cmVhbSwg
Y29uc3QgZ3VpbnQ4ICogZGF0YSwgZ3NpemUgc2l6ZSwKLSsgICAgZ3NpemUgKiBjY2xlbikKLSt7
Ci0rICBndWludDggKnJlcyA9IE5VTEw7Ci0rICBndWludDMyIGF0b21fbGVuZ3RoLCBmb3VyY2M7
Ci0rICBRdERlbXV4U3RyZWFtU3RzZEVudHJ5ICpzdHNkX2VudHJ5OwotKwotKyAgR1NUX01FTURV
TVAgKCJjYXB0aW9uIGF0b20iLCBkYXRhLCBzaXplKTsKLSsKLSsgIC8qIFRoZXJlIG1pZ2h0IGJl
IG11bHRpcGxlIGF0b21zICovCi0rCi0rICAqY2NsZW4gPSAwOwotKyAgaWYgKHNpemUgPCA4KQot
KyAgICBnb3RvIGludmFsaWRfY2RhdDsKLSsgIGF0b21fbGVuZ3RoID0gUVRfVUlOVDMyIChkYXRh
KTsKLSsgIGZvdXJjYyA9IFFUX0ZPVVJDQyAoZGF0YSArIDQpOwotKyAgaWYgKEdfVU5MSUtFTFkg
KGF0b21fbGVuZ3RoID4gc2l6ZSB8fCBhdG9tX2xlbmd0aCA9PSA4KSkKLSsgICAgZ290byBpbnZh
bGlkX2NkYXQ7Ci0rCi0rICBHU1RfREVCVUdfT0JKRUNUIChzdHJlYW0tPnBhZCwgImhlcmUiKTsK
LSsKLSsgIC8qIENoZWNrIGlmIHdlIGhhdmUgc29tZXRoaWcgY29tcGF0aWJsZSAqLwotKyAgc3Rz
ZF9lbnRyeSA9IENVUl9TVFJFQU0gKHN0cmVhbSk7Ci0rICBzd2l0Y2ggKHN0c2RfZW50cnktPmZv
dXJjYykgewotKyAgICBjYXNlIEZPVVJDQ19jNjA4OnsKLSsgICAgICBndWludDggKmNkYXQgPSBO
VUxMLCAqY2R0MiA9IE5VTEw7Ci0rICAgICAgZ3NpemUgY2RhdF9zaXplID0gMCwgY2R0Ml9zaXpl
ID0gMDsKLSsgICAgICAvKiBTaG91bGQgYmUgY2RhdCBvciBjZHQyICovCi0rICAgICAgaWYgKGZv
dXJjYyAhPSBGT1VSQ0NfY2RhdCAmJiBmb3VyY2MgIT0gRk9VUkNDX2NkdDIpIHsKLSsgICAgICAg
IEdTVF9XQVJOSU5HX09CSkVDVCAoc3RyZWFtLT5wYWQsCi0rICAgICAgICAgICAgIlVua25vd24g
ZGF0YSBhdG9tICglIiBHU1RfRk9VUkNDX0ZPUk1BVCAiKSBmb3IgQ0VBNjA4IiwKLSsgICAgICAg
ICAgICBHU1RfRk9VUkNDX0FSR1MgKGZvdXJjYykpOwotKyAgICAgICAgZ290byBpbnZhbGlkX2Nk
YXQ7Ci0rICAgICAgfQotKyAgICAgIC8qIENvbnZlcnQgdG8gY2NfZGF0YSB0cmlwbGV0ICovCi0r
ICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfY2RhdCkKLSsgICAgICAgIGNkYXQgPSBjb252ZXJ0
X3RvX2NjZGF0YSAoZGF0YSArIDgsIGF0b21fbGVuZ3RoIC0gOCwgMSwgJmNkYXRfc2l6ZSk7Ci0r
ICAgICAgZWxzZQotKyAgICAgICAgY2R0MiA9IGNvbnZlcnRfdG9fY2NkYXRhIChkYXRhICsgOCwg
YXRvbV9sZW5ndGggLSA4LCAyLCAmY2R0Ml9zaXplKTsKLSsgICAgICBHU1RfREVCVUdfT0JKRUNU
IChzdHJlYW0tPnBhZCwgInNpemU6JSIgR19HU0laRV9GT1JNQVQgIiBhdG9tX2xlbmd0aDoldSIs
Ci0rICAgICAgICAgIHNpemUsIGF0b21fbGVuZ3RoKTsKLSsgICAgICAvKiBDaGVjayBmb3IgYW5v
dGhlciBhdG9tID8gKi8KLSsgICAgICBpZiAoc2l6ZSA+IGF0b21fbGVuZ3RoICsgOCkgewotKyAg
ICAgICAgZ3VpbnQzMiBuZXdfYXRvbV9sZW5ndGggPSBRVF9VSU5UMzIgKGRhdGEgKyBhdG9tX2xl
bmd0aCk7Ci0rICAgICAgICBpZiAoc2l6ZSA8PSBhdG9tX2xlbmd0aCArIG5ld19hdG9tX2xlbmd0
aCkgewotKyAgICAgICAgICBmb3VyY2MgPSBRVF9GT1VSQ0MgKGRhdGEgKyBhdG9tX2xlbmd0aCAr
IDQpOwotKyAgICAgICAgICBpZiAoZm91cmNjID09IEZPVVJDQ19jZGF0KQotKyAgICAgICAgICAg
IGNkYXQgPQotKyAgICAgICAgICAgICAgICBjb252ZXJ0X3RvX2NjZGF0YSAoZGF0YSArIGF0b21f
bGVuZ3RoICsgOCwgbmV3X2F0b21fbGVuZ3RoIC0gOCwKLSsgICAgICAgICAgICAgICAgMSwgJmNk
YXRfc2l6ZSk7Ci0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBjZHQyID0KLSsgICAgICAg
ICAgICAgICAgY29udmVydF90b19jY2RhdGEgKGRhdGEgKyBhdG9tX2xlbmd0aCArIDgsIG5ld19h
dG9tX2xlbmd0aCAtIDgsCi0rICAgICAgICAgICAgICAgIDIsICZjZHQyX3NpemUpOwotKyAgICAg
ICAgfQotKyAgICAgIH0KLSsgICAgICAqY2NsZW4gPSBjZGF0X3NpemUgKyBjZHQyX3NpemU7Ci0r
ICAgICAgcmVzID0gZ19tYWxsb2MgKCpjY2xlbik7Ci0rICAgICAgaWYgKGNkYXRfc2l6ZSkKLSsg
ICAgICAgIG1lbWNweSAocmVzLCBjZGF0LCBjZGF0X3NpemUpOwotKyAgICAgIGlmIChjZHQyX3Np
emUpCi0rICAgICAgICBtZW1jcHkgKHJlcyArIGNkYXRfc2l6ZSwgY2R0MiwgY2R0Ml9zaXplKTsK
LSsgICAgICBnX2ZyZWUgKGNkYXQpOwotKyAgICAgIGdfZnJlZSAoY2R0Mik7Ci0rICAgIH0KLSsg
ICAgICBicmVhazsKLSsgICAgY2FzZSBGT1VSQ0NfYzcwODoKLSsgICAgICBpZiAoZm91cmNjICE9
IEZPVVJDQ19jY2RwKSB7Ci0rICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHN0cmVhbS0+cGFk
LAotKyAgICAgICAgICAgICJVbmtub3duIGRhdGEgYXRvbSAoJSIgR1NUX0ZPVVJDQ19GT1JNQVQg
IikgZm9yIENFQTcwOCIsCi0rICAgICAgICAgICAgR1NUX0ZPVVJDQ19BUkdTIChmb3VyY2MpKTsK
LSsgICAgICAgIGdvdG8gaW52YWxpZF9jZGF0OwotKyAgICAgIH0KLSsgICAgICAqY2NsZW4gPSBh
dG9tX2xlbmd0aCAtIDg7Ci0rICAgICAgcmVzID0gZ19tZW1kdXAgKGRhdGEgKyA4LCAqY2NsZW4p
OwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0OgotKyAgICAgIC8qIEtlZXAgdGhpcyBoZXJl
IGluIGNhc2Ugb3RoZXIgY2xvc2VkIGNhcHRpb24gZm9ybWF0cyBhcmUgYWRkZWQgKi8KLSsgICAg
ICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKLSsgICAgICBicmVhazsKLSsgIH0KLSsKLSsgIEdT
VF9NRU1EVU1QICgiT3V0cHV0IiwgcmVzLCAqY2NsZW4pOwotKyAgcmV0dXJuIHJlczsKLSsKLSsg
IC8qIEVycm9ycyAqLwotK2ludmFsaWRfY2RhdDoKLSsgIEdTVF9XQVJOSU5HICgiW2NkYXRdIGF0
b20gaXMgdG9vIHNtYWxsIG9yIGludmFsaWQiKTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLSAv
KiB0aGUgaW5wdXQgYnVmZmVyIG1ldGFkYXRhIG11c3QgYmUgd3JpdGFibGUsCi0gICogYnV0IHRp
bWUvZHVyYXRpb24gZXRjIG5vdCB5ZXQgc2V0IGFuZCBuZWVkIG5vdCBiZSBwcmVzZXJ2ZWQgKi8K
LSBzdGF0aWMgR3N0QnVmZmVyICoKLUBAIC01MzkwLDcgKzU1MDQsNyBAQCBnc3RfcXRkZW11eF9w
cm9jZXNzX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJlYW0gKiBzdHJl
YW0sCi0gCi0gICBpZiAoR19VTkxJS0VMWSAoc3RyZWFtLT5zdWJ0eXBlICE9IEZPVVJDQ190ZXh0
Ci0gICAgICAgICAgICYmIHN0cmVhbS0+c3VidHlwZSAhPSBGT1VSQ0Nfc2J0bCAmJgotLSAgICAg
ICAgICBzdHJlYW0tPnN1YnR5cGUgIT0gRk9VUkNDX3N1YnApKSB7Ci0rICAgICAgICAgIHN0cmVh
bS0+c3VidHlwZSAhPSBGT1VSQ0Nfc3VicCAmJiBzdHJlYW0tPnN1YnR5cGUgIT0gRk9VUkNDX2Ns
Y3ApKSB7Ci0gICAgIHJldHVybiBidWY7Ci0gICB9Ci0gCi1AQCAtNTQwOCw2ICs1NTIyLDIzIEBA
IGdzdF9xdGRlbXV4X3Byb2Nlc3NfYnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11
eFN0cmVhbSAqIHN0cmVhbSwKLSAgICAgcmV0dXJuIGJ1ZjsKLSAgIH0KLSAKLSsgIGlmIChzdHJl
YW0tPnN1YnR5cGUgPT0gRk9VUkNDX2NsY3ApIHsKLSsgICAgZ3VpbnQ4ICpjYzsKLSsgICAgZ3Np
emUgY2NsZW4gPSAwOwotKyAgICAvKiBGb3IgY2xvc2VkIGNhcHRpb24sIHdlIG5lZWQgdG8gZXh0
cmFjdCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUKLSsgICAgICogW2NkYXRdLFtjZHQyXSBvciBb
Y2NkcF0gYXRvbSAqLwotKyAgICBjYyA9IGV4dHJhY3RfY2NfZnJvbV9kYXRhIChzdHJlYW0sIG1h
cC5kYXRhLCBtYXAuc2l6ZSwgJmNjbGVuKTsKLSsgICAgZ3N0X2J1ZmZlcl91bm1hcCAoYnVmLCAm
bWFwKTsKLSsgICAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmKTsKLSsgICAgaWYgKGNjKSB7Ci0rICAg
ICAgYnVmID0gX2dzdF9idWZmZXJfbmV3X3dyYXBwZWQgKGNjLCBjY2xlbiwgZ19mcmVlKTsKLSsg
ICAgfSBlbHNlIHsKLSsgICAgICAvKiBDb252ZXJzaW9uIGZhaWxlZCBvciB0aGVyZSdzIG5vdGhp
bmcgKi8KLSsgICAgICBidWYgPSBOVUxMOwotKyAgICB9Ci0rICAgIHJldHVybiBidWY7Ci0rICB9
Ci0rCi0gICBuc2l6ZSA9IEdTVF9SRUFEX1VJTlQxNl9CRSAobWFwLmRhdGEpOwotICAgbnNpemUg
PSBNSU4gKG5zaXplLCBtYXAuc2l6ZSAtIDIpOwotIAotQEAgLTExNTU3LDcgKzExNjg4LDggQEAg
cXRkZW11eF9wYXJzZV90cmFrIChHc3RRVERlbXV4ICogcXRkZW11eCwgR05vZGUgKiB0cmFrKQot
ICAgICAgIH0KLSAgICAgICBlbnRyeS0+c2FtcGxlZCA9IFRSVUU7Ci0gICAgIH0gZWxzZSBpZiAo
c3RyZWFtLT5zdWJ0eXBlID09IEZPVVJDQ19zdWJwIHx8IHN0cmVhbS0+c3VidHlwZSA9PSBGT1VS
Q0NfdGV4dAotLSAgICAgICAgfHwgc3RyZWFtLT5zdWJ0eXBlID09IEZPVVJDQ19zYnRsIHx8IHN0
cmVhbS0+c3VidHlwZSA9PSBGT1VSQ0Nfc3VidCkgewotKyAgICAgICAgfHwgc3RyZWFtLT5zdWJ0
eXBlID09IEZPVVJDQ19zYnRsIHx8IHN0cmVhbS0+c3VidHlwZSA9PSBGT1VSQ0Nfc3VidAotKyAg
ICAgICAgfHwgc3RyZWFtLT5zdWJ0eXBlID09IEZPVVJDQ19jbGNwKSB7Ci0gCi0gICAgICAgZW50
cnktPnNhbXBsZWQgPSBUUlVFOwotICAgICAgIGVudHJ5LT5zcGFyc2UgPSBUUlVFOwotQEAgLTE0
NTQ4LDYgKzE0NjgwLDIxIEBAIHF0ZGVtdXhfc3ViX2NhcHMgKEdzdFFURGVtdXggKiBxdGRlbXV4
LCBRdERlbXV4U3RyZWFtICogc3RyZWFtLAotICAgICAgIF9jb2RlYyAoIlhNTCBzdWJ0aXRsZXMi
KTsKLSAgICAgICBjYXBzID0gZ3N0X2NhcHNfbmV3X2VtcHR5X3NpbXBsZSAoImFwcGxpY2F0aW9u
L3R0bWwreG1sIik7Ci0gICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgRk9VUkNDX2M2MDg6Ci0rICAg
ICAgX2NvZGVjICgiQ0VBIDYwOCBDbG9zZWQgQ2FwdGlvbiIpOwotKyAgICAgIGNhcHMgPQotKyAg
ICAgICAgICBnc3RfY2Fwc19uZXdfc2ltcGxlICgiY2xvc2VkY2FwdGlvbi94LWNlYS02MDgiLCAi
Zm9ybWF0IiwKLSsgICAgICAgICAgR19UWVBFX1NUUklORywgImNjX2RhdGEiLCBOVUxMKTsKLSsg
ICAgICBzdHJlYW0tPm5lZWRfcHJvY2VzcyA9IFRSVUU7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNh
c2UgRk9VUkNDX2M3MDg6Ci0rICAgICAgX2NvZGVjICgiQ0VBIDcwOCBDbG9zZWQgQ2FwdGlvbiIp
OwotKyAgICAgIGNhcHMgPQotKyAgICAgICAgICBnc3RfY2Fwc19uZXdfc2ltcGxlICgiY2xvc2Vk
Y2FwdGlvbi94LWNlYS03MDgiLCAiZm9ybWF0IiwKLSsgICAgICAgICAgR19UWVBFX1NUUklORywg
ImNkcCIsIE5VTEwpOwotKyAgICAgIHN0cmVhbS0+bmVlZF9wcm9jZXNzID0gVFJVRTsKLSsgICAg
ICBicmVhazsKLSsKLSAgICAgZGVmYXVsdDoKLSAgICAgewotICAgICAgIGNhcHMgPSBfZ2V0X3Vu
a25vd25fY29kZWNfbmFtZSAoInRleHQiLCBmb3VyY2MpOwotZGlmZiAtLWdpdCBhL2dzdC9pc29t
cDQvcXRkZW11eF90eXBlcy5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVzLmMKLWluZGV4IDg4
ZGI4YzJjZS4uMWQ1ODQwMzk0IDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4X3R5cGVz
LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eF90eXBlcy5jCi1AQCAtMjEzLDYgKzIxMyw3IEBA
IHN0YXRpYyBjb25zdCBRdE5vZGVUeXBlIHF0X25vZGVfdHlwZXNbXSA9IHsKLSAgIHtGT1VSQ0Nf
cHNzaCwgInByb3RlY3Rpb24gc3lzdGVtIHNwZWNpZmljIGhlYWRlciIsIDB9LAotICAge0ZPVVJD
Q190ZW5jLCAidHJhY2sgZW5jcnlwdGlvbiIsIDB9LAotICAge0ZPVVJDQ19zdHBwLCAiWE1MIHN1
YnRpdGxlIHNhbXBsZSBlbnRyeSIsIDB9LAotKyAge0ZPVVJDQ19jbGNwLCAiQ2xvc2VkIENhcHRp
b24iLCAwfSwKLSAgIHswLCAidW5rbm93biIsIDAsfSwKLSB9OwotIAotLS0gCi0yLjE4LjAKLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAx
LXF0ZGVtdXgtRG8tbm90LXJ1bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0
Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDEtcXRkZW11
eC1Eby1ub3QtcnVuLXRoZS1wcmVmZXJyZWQtZGVjcnlwdG9yLWNvbnRleHQtcS5wYXRjaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGI3YWI5Nzc1NzVmYmE1YTcwMGI4MjdkNjc4NTMz
OGZlZjQyNGRkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDEtcXRkZW11eC1E
by1ub3QtcnVuLXRoZS1wcmVmZXJyZWQtZGVjcnlwdG9yLWNvbnRleHQtcS5wYXRjaAorKysgL2Rl
di9udWxsCkBAIC0xLDMzICswLDAgQEAKLUZyb20gM2UwNjM3MDNiM2E1MWI4YWFhN2Y3NWYzNmM0
NjYwYzU4M2E2MGU5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRoaWJhdWx0IFNh
dW5pZXIgPHRzYXVuaWVyQGlnYWxpYS5jb20+Ci1EYXRlOiBGcmksIDI1IE1heSAyMDE4IDEwOjE3
OjI5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8zXSBxdGRlbXV4OiBEbyBub3QgcnVuIHRoZSBw
cmVmZXJyZWQgZGVjcnlwdG9yIGNvbnRleHQgcXVlcnkKLSBpZiBubyBkZWNyeXB0b3IgYXZhbGFp
YmxlCi0KLVVsdGltYXRlbHkgdGhpcyBhdm9pZHMgYSBzZWdmYXVsdCBhcyB0aGUgY29kZSBleHBl
Y3QgYSBub24gTlVMTCBhcnJheQotaGVyZS4KLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwg
NyArKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0
IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggM2U4
Y2U3ODYwLi5lYzRhOGFkZmQgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysr
IGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLUBAIC04MDU2LDYgKzgwNTYsMTMgQEAgZ3N0X3F0ZGVt
dXhfcmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAotICAg
Z19wdHJfYXJyYXlfYWRkIChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOwot
ICAgZmlsdGVyZWRfc3lzX2lkcyA9IGdzdF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2
YWlsYWJsZV9kZWNyeXB0b3JzICgKLSAgICAgICAoY29uc3QgZ2NoYXIgKiopIHF0ZGVtdXgtPnBy
b3RlY3Rpb25fc3lzdGVtX2lkcy0+cGRhdGEpOwotKwotKyAgaWYgKCFmaWx0ZXJlZF9zeXNfaWRz
KSB7Ci0rICAgIEdTVF9JTkZPX09CSkVDVCAoZWxlbWVudCwKLSsgICAgICAgICJObyBhdmFsYWli
bGUgZGVjcnlwdG9yLCBub3Qgd29ydGggYXNraW5nIHRoZSB1c2VyIHRvIGNob29zZS4iKTsKLSsg
ICAgcmV0dXJuOwotKyAgfQotKwotICAgZ19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4
LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsCi0gICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0
ZW1faWRzLT5sZW4gLSAxKTsKLSAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJkZXRlY3Rl
ZCAldSBwcm90ZWN0aW9uIHN5c3RlbXMsIHdlIGhhdmUgIgotLS0gCi0yLjE3LjAKLQpkaWZmIC0t
Z2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAyLXF0ZGVt
dXgtRG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1l
ci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMi1xdGRlbXV4LURvLW5vdC11bnJlZi1hLU5V
TEwtc3RyZWFtX3RhZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNGQx
MmEyZjIzNGI2MzFjYzU3N2UwYTgzMjQ5MDFjZDVjNTY1MDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC0wMDAyLXF0ZGVtdXgtRG8tbm90LXVucmVmLWEtTlVMTC1zdHJlYW1fdGFncy5w
YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gNDNhNTQwYjFjZDlmMTYy
ZDNkYWU1ZDUwZTM2NzAzZGZhZjU1OGEzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206
IFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGlnYWxpYS5jb20+Ci1EYXRlOiBGcmksIDI1IE1h
eSAyMDE4IDEwOjQ5OjIxICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8zXSBxdGRlbXV4OiBEbyBu
b3QgdW5yZWYgYSBOVUxMIHN0cmVhbV90YWdzCi0KLXN0cmVhbS0+c3RyZWFtX3RhZ3MgaXMgcmVz
ZXQgdG8gTlVMTCBvbmNlIHdlIGV4cG9zZSB0aGUgc3RyZWFtIGFuZAotdGhlc2UgaGF2ZSBiZWVu
IGNvbnN1bWVkLCB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgd2hlbiBjbGVhbmluZyB1cAotdGhlIHN0
cmVhbS4KLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNCArKystCi0gMSBmaWxlIGNoYW5n
ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lz
b21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggZWM0YThhZGZkLi40
MTE2ZjRjNjkgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lz
b21wNC9xdGRlbXV4LmMKLUBAIC0yNjAwLDcgKzI2MDAsOSBAQCBnc3RfcXRkZW11eF9zdHJlYW1f
Y2xlYXIgKFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0pCi0gICAgIGVudHJ5LT5zcGFyc2UgPSBGQUxT
RTsKLSAgIH0KLSAKLS0gIGdzdF90YWdfbGlzdF91bnJlZiAoc3RyZWFtLT5zdHJlYW1fdGFncyk7
Ci0rICBpZiAoc3RyZWFtLT5zdHJlYW1fdGFncykKLSsgICAgZ3N0X3RhZ19saXN0X3VucmVmIChz
dHJlYW0tPnN0cmVhbV90YWdzKTsKLSsKLSAgIHN0cmVhbS0+c3RyZWFtX3RhZ3MgPSBnc3RfdGFn
X2xpc3RfbmV3X2VtcHR5ICgpOwotICAgZ3N0X3RhZ19saXN0X3NldF9zY29wZSAoc3RyZWFtLT5z
dHJlYW1fdGFncywgR1NUX1RBR19TQ09QRV9TVFJFQU0pOwotICAgZ19mcmVlIChzdHJlYW0tPnJl
ZGlyZWN0X3VyaSk7Ci0tLSAKLTIuMTcuMAotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDItcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1w
cmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtMDAwMi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90
ZWN0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjY1YWI0ZjM5MzY2
MTM5NDQ3OGFkOWIyZWMxMWE3Mzk1MWMwZDNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtMDAwMi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBh
dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMwICswLDAgQEAKLUZyb20gMGJhNjJiYTQ4MDVlMmNk
YmVkMTdmYTk5MzQ3NjJkNjg1YmU0MmZkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206
IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgotRGF0ZTogV2Vk
LCAyMSBKdW4gMjAxNyAxNzo1OToyMSArMDIwMAotU3ViamVjdDogW1BBVENIIDIvN10gcXRkZW11
eDogYWRkIGNvbnRleHQgZm9yIGEgcHJlZmVycmVkIHByb3RlY3Rpb24KLQotcXRkZW11eCBzZWxl
Y3RlZCB0aGUgZmlyc3Qgc3lzdGVtIGNvcnJlc3BvbmRpbmcgdG8gYSB3b3JraW5nIEdTdHJlYW1l
cgotZGVjcnlwdG9yLiBXaXRoIHRoaXMgY2hhbmdlLCBiZWZvcmUgc2VsZWN0aW5nIHRoYXQgZGVj
cnlwdG9yLCBxdGRlbXV4Ci13aWxsIGNoZWNrIGlmIGl0IGhhcyBjb250ZXh0IChhIHByZWZlcnJl
ZCBkZWNyeXB0b3IgaWQpIGFuZCBpZiBub3QsIGl0Ci13aWxsIHJlcXVlc3QgaXQuCi0KLVRoZSBy
ZXF1ZXN0IGluY2x1ZGVzIHRyYWNrLWlkLCBhdmFpbGFibGUga2V5IHN5c3RlbSBpZHMgZm9yIHRo
ZQotYXZhaWxhYmxlIGRlY3J5cHRvcnMgYW5kIGV2ZW4gdGhlIGV2ZW50cyBzbyB0aGF0IHRoZSBp
bml0IGRhdGEgaXMKLWFjY2Vzc2libGUuCi0KLVtlb2NhbmhhQGlnYWxpYS5jb206IHNlbGVjdCB0
aGUgcHJlZmVycmVkIHByb3RlY3Rpb24gc3lzdGVtIGV2ZW4gaWYgbm90IGF2YWlsYWJsZV0KLQot
VGVzdCAiNC4gQ2xlYXJLZXlWaWRlbyIgaW4gWW91VHViZSBsZWFuYmFjayBFTUUgY29uZm9ybWFu
Y2UgdGVzdHMgMjAxNiBmb3IKLUguMjY0WzFdIHVzZXMgYSBtZWRpYSBmaWxlWzJdIHdpdGggY2Vu
YyBlbmNyeXB0aW9uIHdoaWNoIGVtYmVkcyAncHNzaCcgYm94ZXMKLXdpdGggdGhlIGluaXQgZGF0
YSBmb3IgdGhlIFBsYXlyZWFkeSBhbmQgV2lkZXZpbmUgZW5jcnlwdGlvbiBzeXN0ZW1zLCBidXQg
bm90Ci1mb3IgdGhlIENsZWFyS2V5IGVuY3J5cHRpb24gc3lzdGVtIChhcyBkZWZpbmVkIGJ5IHRo
ZSBFTUV2MC4xYiBzcGVjWzNdIGFuZCB3aXRoCi10aGUgZW5jcnlwdGlvbiBzeXN0ZW0gaWQgZGVm
aW5lZCBpbiBbNF0pLgotCi1JbnN0ZWFkLCB0aGUgQ2xlYXJLZXkgZW5jcnlwdGlvbiBzeXN0ZW0g
aXMgbWFudWFsbHkgc2VsZWN0ZWQgYnkgdGhlIHdlYiBwYWdlCi1jb2RlIChldmVuIGlmIG5vdCBv
cmlnaW5hbGx5IGRldGVjdGVkIGJ5IHF0ZGVtdXgpIGFuZCB0aGUgcHJvcGVyIGRlY3J5cHRpb24g
a2V5Ci1pcyBkaXNwYXRjaGVkIHRvIHRoZSBkZWNyeXB0b3IsIHdoaWNoIGNhbiB0aGVuIGRlY3J5
cHQgdGhlIHZpZGVvIHN1Y2Nlc3NmdWxseS4KLQotWzFdIGh0dHA6Ly95dC1kYXNoLW1zZS10ZXN0
LmNvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL3VuaXQtdGVzdHMvMjAxNi5odG1sP3Rl
c3RfdHlwZT1lbmNyeXB0ZWRtZWRpYS10ZXN0JndlYm09ZmFsc2UKLVsyXSBodHRwOi8veXQtZGFz
aC1tc2UtdGVzdC5jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS91bml0LXRlc3RzL21l
ZGlhL2Nhcl9jZW5jLTIwMTIwODI3LTg2Lm1wNAotWzNdIGh0dHBzOi8vZHZjcy53My5vcmcvaGcv
aHRtbC1tZWRpYS9yYXctZmlsZS9lbWUtdjAuMWIvZW5jcnlwdGVkLW1lZGlhL2VuY3J5cHRlZC1t
ZWRpYS5odG1sI3NpbXBsZS1kZWNyeXB0aW9uLWNsZWFyLWtleQotWzRdIGh0dHBzOi8vd3d3Lncz
Lm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjcjYzIKLQotaHR0cHM6Ly9idWd6
aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDEwNwotLS0tCi0gZ3N0L2lzb21wNC9x
dGRlbXV4LmMgfCAyMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst
LQotIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgICAxICsKLSAyIGZpbGVzIGNoYW5nZWQsIDE5NSBp
bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggNzA1YmRmN2NhLi5kYTIyNDYz
ZjggMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmMKLUBAIC01MTEsNiArNTExLDggQEAgc3RhdGljIEdzdEluZGV4ICpnc3RfcXRkZW11
eF9nZXRfaW5kZXggKEdzdEVsZW1lbnQgKiBlbGVtZW50KTsKLSAjZW5kaWYKLSBzdGF0aWMgR3N0
U3RhdGVDaGFuZ2VSZXR1cm4gZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICog
ZWxlbWVudCwKLSAgICAgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbik7Ci0rc3RhdGljIHZvaWQg
Z3N0X3F0ZGVtdXhfc2V0X2NvbnRleHQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LAotKyAgICBHc3RD
b250ZXh0ICogY29udGV4dCk7Ci0gc3RhdGljIGdib29sZWFuIHF0ZGVtdXhfc2lua19hY3RpdmF0
ZSAoR3N0UGFkICogc2lua3BhZCwgR3N0T2JqZWN0ICogcGFyZW50KTsKLSBzdGF0aWMgZ2Jvb2xl
YW4gcXRkZW11eF9zaW5rX2FjdGl2YXRlX21vZGUgKEdzdFBhZCAqIHNpbmtwYWQsCi0gICAgIEdz
dE9iamVjdCAqIHBhcmVudCwgR3N0UGFkTW9kZSBtb2RlLCBnYm9vbGVhbiBhY3RpdmUpOwotQEAg
LTYwMCw2ICs2MDIsNyBAQCBnc3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3Mg
KiBrbGFzcykKLSAgIGdzdGVsZW1lbnRfY2xhc3MtPnNldF9pbmRleCA9IEdTVF9ERUJVR19GVU5D
UFRSIChnc3RfcXRkZW11eF9zZXRfaW5kZXgpOwotICAgZ3N0ZWxlbWVudF9jbGFzcy0+Z2V0X2lu
ZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X2dldF9pbmRleCk7Ci0gI2VuZGlm
Ci0rICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfY29udGV4dCA9IEdTVF9ERUJVR19GVU5DUFRSIChn
c3RfcXRkZW11eF9zZXRfY29udGV4dCk7Ci0gCi0gICBnc3RfdGFnX3JlZ2lzdGVyX211c2ljYnJh
aW56X3RhZ3MgKCk7Ci0gCi1AQCAtNjU4LDYgKzY2MSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdz
dFFURGVtdXggKiBxdGRlbXV4KQotICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5V
TEw7Ci0gICBxdGRlbXV4LT5jZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOwotICAgcXRkZW11eC0+
cHJvdGVjdGlvbl9zeXN0ZW1faWRzID0gTlVMTDsKLSsgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90
ZWN0aW9uX3N5c3RlbV9pZCA9IE5VTEw7Ci0gICBnX3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90
ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKLSAgIGdzdF9zZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdt
ZW50LCBHU1RfRk9STUFUX1RJTUUpOwotICAgcXRkZW11eC0+dGFnX2xpc3QgPSBnc3RfdGFnX2xp
c3RfbmV3X2VtcHR5ICgpOwotQEAgLTIxMjEsNiArMjEyNSwxMCBAQCBnc3RfcXRkZW11eF9yZXNl
dCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCi0gICAgICAgZ19wdHJfYXJy
YXlfZnJlZSAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBUUlVFKTsKLSAgICAgICBx
dGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOwotICAgICB9Ci0rICAgIGlmIChx
dGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpIHsKLSsgICAgICBnX2ZyZWUg
KHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCk7Ci0rICAgICAgcXRkZW11
eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkID0gTlVMTDsKLSsgICAgfQotICAgfSBl
bHNlIGlmIChxdGRlbXV4LT5tc3NfbW9kZSkgewotICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNl
dCAocXRkZW11eC0+Zmxvd2NvbWJpbmVyKTsKLSAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgt
Pm5fc3RyZWFtczsgbisrKQotQEAgLTI2MDYsNiArMjYxNCwyOCBAQCBnc3RfcXRkZW11eF9jaGFu
Z2Vfc3RhdGUgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9u
KQotICAgcmV0dXJuIHJlc3VsdDsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStnc3RfcXRkZW11eF9z
ZXRfY29udGV4dCAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdENvbnRleHQgKiBjb250ZXh0KQot
K3sKLSsgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAoZWxlbWVudCk7Ci0rCi0r
ICBnX3JldHVybl9pZl9mYWlsIChHU1RfSVNfQ09OVEVYVCAoY29udGV4dCkpOwotKwotKyAgaWYg
KGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUgKGNvbnRleHQsCi0rICAgICAgICAgICJkcm0t
cHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIikpIHsKLSsgICAgY29uc3QgR3N0U3RydWN0
dXJlICpzOwotKwotKyAgICBzID0gZ3N0X2NvbnRleHRfZ2V0X3N0cnVjdHVyZSAoY29udGV4dCk7
Ci0rICAgIGdfZnJlZSAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKTsK
LSsgICAgcXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkID0KLSsgICAgICAg
IGdfc3RyZHVwIChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcgKHMsICJkZWNyeXB0aW9uLXN5c3Rl
bS1pZCIpKTsKLSsgICAgR1NUX0RFQlVHX09CSkVDVCAoZWxlbWVudCwgInNldCBwcmVmZXJyZWQg
ZGVjcnlwdGlvbiBzeXN0ZW0gdG8gJXMiLAotKyAgICAgICAgcXRkZW11eC0+cHJlZmVycmVkX3By
b3RlY3Rpb25fc3lzdGVtX2lkKTsKLSsgIH0KLSsKLSsgIEdTVF9FTEVNRU5UX0NMQVNTIChwYXJl
bnRfY2xhc3MpLT5zZXRfY29udGV4dCAoZWxlbWVudCwgY29udGV4dCk7Ci0rfQotKwotIHN0YXRp
YyB2b2lkCi0gcXRkZW11eF9wYXJzZV9mdHlwIChHc3RRVERlbXV4ICogcXRkZW11eCwgY29uc3Qg
Z3VpbnQ4ICogYnVmZmVyLCBnaW50IGxlbmd0aCkKLSB7Ci1AQCAtMzg0Nyw2ICszODc3LDggQEAg
cXRkZW11eF9wYXJzZV9wc3NoIChHc3RRVERlbXV4ICogcXRkZW11eCwgR05vZGUgKiBub2RlKQot
ICAgZXZlbnQgPSBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24gKHN5c2lkX3N0cmluZywgcHNzaCwK
LSAgICAgICAocGFyZW50X2JveF90eXBlID09IEZPVVJDQ19tb292KSA/ICJpc29ibWZmL21vb3Yi
IDogImlzb2JtZmYvbW9vZiIpOwotICAgZm9yIChpID0gMDsgaSA8IHF0ZGVtdXgtPm5fc3RyZWFt
czsgKytpKSB7Ci0rICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsCi0rICAgICAgICAiYWRk
aW5nIHByb3RlY3Rpb24gZXZlbnQgZm9yIHN0cmVhbSAlZCBhbmQgc3lzdGVtICVzIiwgaSwgc3lz
aWRfc3RyaW5nKTsKLSAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZxdGRlbXV4LT5zdHJlYW1zW2ld
LT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSwKLSAgICAgICAgIGdzdF9ldmVudF9yZWYg
KGV2ZW50KSk7Ci0gICB9Ci1AQCAtNTU2Myw2ICs1NTk1LDggQEAgZ3N0X3F0ZGVtdXhfZGVjb3Jh
dGVfYW5kX3B1c2hfYnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgR3N0RXZlbnQg
KmV2ZW50OwotIAotICAgICB3aGlsZSAoKGV2ZW50ID0gZ19xdWV1ZV9wb3BfaGVhZCAoJnN0cmVh
bS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUpKSkgewotKyAgICAgIEdTVF9UUkFDRV9P
QkpFQ1QgKHN0cmVhbS0+cGFkLCAicHVzaGluZyBwcm90ZWN0aW9uIGV2ZW50OiAlIgotKyAgICAg
ICAgICBHU1RfUFRSX0ZPUk1BVCwgZXZlbnQpOwotICAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAo
c3RyZWFtLT5wYWQsIGV2ZW50KTsKLSAgICAgfQotIAotQEAgLTc3NTYsMTIgKzc3OTAsMTQyIEBA
IHF0ZGVtdXhfZG9fYWxsb2NhdGlvbiAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIFF0RGVtdXhTdHJl
YW0gKiBzdHJlYW0pCi0gI2VuZGlmCi0gfQotIAotK3N0YXRpYyBnYm9vbGVhbgotK3BhZF9xdWVy
eSAoY29uc3QgR1ZhbHVlICogaXRlbSwgR1ZhbHVlICogdmFsdWUsIGdwb2ludGVyIHVzZXJfZGF0
YSkKLSt7Ci0rICBHc3RQYWQgKnBhZCA9IGdfdmFsdWVfZ2V0X29iamVjdCAoaXRlbSk7Ci0rICBH
c3RRdWVyeSAqcXVlcnkgPSB1c2VyX2RhdGE7Ci0rICBnYm9vbGVhbiByZXM7Ci0rCi0rICByZXMg
PSBnc3RfcGFkX3BlZXJfcXVlcnkgKHBhZCwgcXVlcnkpOwotKwotKyAgaWYgKHJlcykgewotKyAg
ICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgVFJVRSk7Ci0rICAgIHJldHVybiBGQUxTRTsK
LSsgIH0KLSsKLSsgIEdTVF9JTkZPX09CSkVDVCAocGFkLCAicGFkIHBlZXIgcXVlcnkgZmFpbGVk
Iik7Ci0rICByZXR1cm4gVFJVRTsKLSt9Ci0rCi0rc3RhdGljIGdib29sZWFuCi0rZ3N0X3F0ZGVt
dXhfcnVuX3F1ZXJ5IChHc3RFbGVtZW50ICogZWxlbWVudCwgR3N0UXVlcnkgKiBxdWVyeSwKLSsg
ICAgR3N0UGFkRGlyZWN0aW9uIGRpcmVjdGlvbikKLSt7Ci0rICBHc3RJdGVyYXRvciAqaXQ7Ci0r
ICBHc3RJdGVyYXRvckZvbGRGdW5jdGlvbiBmdW5jID0gcGFkX3F1ZXJ5OwotKyAgR1ZhbHVlIHJl
cyA9IHsgMCwgfTsKLSsKLSsgIGdfdmFsdWVfaW5pdCAoJnJlcywgR19UWVBFX0JPT0xFQU4pOwot
KyAgZ192YWx1ZV9zZXRfYm9vbGVhbiAoJnJlcywgRkFMU0UpOwotKwotKyAgLyogQXNrIG5laWdo
Ym9yICovCi0rICBpZiAoZGlyZWN0aW9uID09IEdTVF9QQURfU1JDKQotKyAgICBpdCA9IGdzdF9l
bGVtZW50X2l0ZXJhdGVfc3JjX3BhZHMgKGVsZW1lbnQpOwotKyAgZWxzZQotKyAgICBpdCA9IGdz
dF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzIChlbGVtZW50KTsKLSsKLSsgIHdoaWxlIChnc3Rf
aXRlcmF0b3JfZm9sZCAoaXQsIGZ1bmMsICZyZXMsIHF1ZXJ5KSA9PSBHU1RfSVRFUkFUT1JfUkVT
WU5DKQotKyAgICBnc3RfaXRlcmF0b3JfcmVzeW5jIChpdCk7Ci0rCi0rICBnc3RfaXRlcmF0b3Jf
ZnJlZSAoaXQpOwotKwotKyAgcmV0dXJuIGdfdmFsdWVfZ2V0X2Jvb2xlYW4gKCZyZXMpOwotK30K
LSsKLStzdGF0aWMgdm9pZAotK2dzdF9xdGRlbXV4X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0
IChHc3RRVERlbXV4ICogcXRkZW11eCwKLSsgICAgUXREZW11eFN0cmVhbSAqIHN0cmVhbSkKLSt7
Ci0rICBHc3RRdWVyeSAqcXVlcnk7Ci0rICBHc3RDb250ZXh0ICpjdHh0OwotKyAgR3N0RWxlbWVu
dCAqZWxlbWVudCA9IEdTVF9FTEVNRU5UIChxdGRlbXV4KTsKLSsgIEdzdFN0cnVjdHVyZSAqc3Q7
Ci0rICBnY2hhciAqKmZpbHRlcmVkX3N5c19pZHM7Ci0rICBHVmFsdWUgZXZlbnRfbGlzdCA9IEdf
VkFMVUVfSU5JVDsKLSsgIEdMaXN0ICp3YWxrOwotKwotKyAgLyogMS4gQ2hlY2sgaWYgd2UgYWxy
ZWFkeSBoYXZlIHRoZSBjb250ZXh0LiAqLwotKyAgaWYgKHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90
ZWN0aW9uX3N5c3RlbV9pZCAhPSBOVUxMKSB7Ci0rICAgIEdTVF9MT0dfT0JKRUNUIChlbGVtZW50
LAotKyAgICAgICAgImFscmVhZHkgaGF2ZSB0aGUgcHJvdGVjdGlvbiBjb250ZXh0LCBubyBuZWVk
IHRvIHJlcXVlc3QgaXQgYWdhaW4iKTsKLSsgICAgcmV0dXJuOwotKyAgfQotKwotKyAgZ19wdHJf
YXJyYXlfYWRkIChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOwotKyAgZmls
dGVyZWRfc3lzX2lkcyA9IGdzdF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJs
ZV9kZWNyeXB0b3JzICgKLSsgICAgICAoY29uc3QgZ2NoYXIgKiopIHF0ZGVtdXgtPnByb3RlY3Rp
b25fc3lzdGVtX2lkcy0+cGRhdGEpOwotKyAgZ19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4IChxdGRl
bXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsCi0rICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9z
eXN0ZW1faWRzLT5sZW4gLSAxKTsKLSsgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJkZXRl
Y3RlZCAldSBwcm90ZWN0aW9uIHN5c3RlbXMsIHdlIGhhdmUgIgotKyAgICAgICJkZWNyeXB0b3Jz
IGZvciAldSBvZiB0aGVtLCBydW5uaW5nIGNvbnRleHQgcmVxdWVzdCIsCi0rICAgICAgcXRkZW11
eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4sIGdfc3Rydl9sZW5ndGggKGZpbHRlcmVkX3N5
c19pZHMpKTsKLSsKLSsgIGlmIChzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVl
Lmxlbmd0aCkgewotKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAidXNpbmcgc3RyZWFt
IGV2ZW50IHF1ZXVlLCBsZW5ndGggJXUiLAotKyAgICAgICAgc3RyZWFtLT5wcm90ZWN0aW9uX3Nj
aGVtZV9ldmVudF9xdWV1ZS5sZW5ndGgpOwotKyAgICB3YWxrID0gc3RyZWFtLT5wcm90ZWN0aW9u
X3NjaGVtZV9ldmVudF9xdWV1ZS50YWlsOwotKyAgfSBlbHNlIHsKLSsgICAgR1NUX1RSQUNFX09C
SkVDVCAocXRkZW11eCwgInVzaW5nIGRlbXV4ZXIgZXZlbnQgcXVldWUsIGxlbmd0aCAldSIsCi0r
ICAgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlLmxlbmd0aCk7Ci0rICAgIHdh
bGsgPSBxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlLnRhaWw7Ci0rICB9Ci0rCi0rICBn
X3ZhbHVlX2luaXQgKCZldmVudF9saXN0LCBHU1RfVFlQRV9MSVNUKTsKLSsgIGZvciAoOyB3YWxr
OyB3YWxrID0gZ19saXN0X3ByZXZpb3VzICh3YWxrKSkgewotKyAgICBHVmFsdWUgKmV2ZW50X3Zh
bHVlID0gZ19uZXcwIChHVmFsdWUsIDEpOwotKyAgICBnX3ZhbHVlX2luaXQgKGV2ZW50X3ZhbHVl
LCBHU1RfVFlQRV9FVkVOVCk7Ci0rICAgIGdfdmFsdWVfc2V0X2JveGVkIChldmVudF92YWx1ZSwg
d2Fsay0+ZGF0YSk7Ci0rICAgIGdzdF92YWx1ZV9saXN0X2FwcGVuZF9hbmRfdGFrZV92YWx1ZSAo
JmV2ZW50X2xpc3QsIGV2ZW50X3ZhbHVlKTsKLSsgIH0KLSsKLSsgIC8qICAyYSkgUXVlcnkgZG93
bnN0cmVhbSB3aXRoIEdTVF9RVUVSWV9DT05URVhUIGZvciB0aGUgY29udGV4dCBhbmQKLSsgICAq
ICAgICAgY2hlY2sgaWYgZG93bnN0cmVhbSBhbHJlYWR5IGhhcyBhIGNvbnRleHQgb2YgdGhlIHNw
ZWNpZmljIHR5cGUKLSsgICAqICAyYikgUXVlcnkgdXBzdHJlYW0gYXMgYWJvdmUuCi0rICAgKi8K
LSsgIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25ld19jb250ZXh0ICgiZHJtLXByZWZlcnJlZC1kZWNyeXB0
aW9uLXN5c3RlbS1pZCIpOwotKyAgc3QgPSBnc3RfcXVlcnlfd3JpdGFibGVfc3RydWN0dXJlIChx
dWVyeSk7Ci0rICBnc3Rfc3RydWN0dXJlX3NldCAoc3QsICJ0cmFjay1pZCIsIEdfVFlQRV9VSU5U
LCBzdHJlYW0tPnRyYWNrX2lkLAotKyAgICAgICJzdHJlYW0tZW5jcnlwdGlvbi1zeXN0ZW1zIiwg
R19UWVBFX1NUUlYsIGZpbHRlcmVkX3N5c19pZHMsIE5VTEwpOwotKyAgZ3N0X3N0cnVjdHVyZV9z
ZXRfdmFsdWUgKHN0LCAic3RyZWFtLWVuY3J5cHRpb24tZXZlbnRzIiwgJmV2ZW50X2xpc3QpOwot
KyAgaWYgKGdzdF9xdGRlbXV4X3J1bl9xdWVyeSAoZWxlbWVudCwgcXVlcnksIEdTVF9QQURfU1JD
KSkgewotKyAgICBnc3RfcXVlcnlfcGFyc2VfY29udGV4dCAocXVlcnksICZjdHh0KTsKLSsgICAg
R1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAiZm91bmQgY29udGV4dCAoJXApIGluIGRvd25zdHJl
YW0gcXVlcnkiLCBjdHh0KTsKLSsgICAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQgKGVsZW1lbnQs
IGN0eHQpOwotKyAgfSBlbHNlIGlmIChnc3RfcXRkZW11eF9ydW5fcXVlcnkgKGVsZW1lbnQsIHF1
ZXJ5LCBHU1RfUEFEX1NJTkspKSB7Ci0rICAgIGdzdF9xdWVyeV9wYXJzZV9jb250ZXh0IChxdWVy
eSwgJmN0eHQpOwotKyAgICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsICJmb3VuZCBjb250ZXh0
ICglcCkgaW4gdXBzdHJlYW0gcXVlcnkiLCBjdHh0KTsKLSsgICAgZ3N0X2VsZW1lbnRfc2V0X2Nv
bnRleHQgKGVsZW1lbnQsIGN0eHQpOwotKyAgfSBlbHNlIHsKLSsgICAgLyogMykgUG9zdCBhIEdT
VF9NRVNTQUdFX05FRURfQ09OVEVYVCBtZXNzYWdlIG9uIHRoZSBidXMgd2l0aAotKyAgICAgKiAg
ICB0aGUgcmVxdWlyZWQgY29udGV4dCB0eXBlIGFuZCBhZnRlcndhcmRzIGNoZWNrIGlmIGEKLSsg
ICAgICogICAgdXNhYmxlIGNvbnRleHQgd2FzIHNldCBub3cgYXMgaW4gMSkuIFRoZSBtZXNzYWdl
IGNvdWxkCi0rICAgICAqICAgIGJlIGhhbmRsZWQgYnkgdGhlIHBhcmVudCBiaW5zIG9mIHRoZSBl
bGVtZW50IGFuZCB0aGUKLSsgICAgICogICAgYXBwbGljYXRpb24uCi0rICAgICAqLwotKyAgICBH
c3RNZXNzYWdlICptc2c7Ci0rCi0rICAgIEdTVF9JTkZPX09CSkVDVCAoZWxlbWVudCwgInBvc3Rp
bmcgbmVlZCBjb250ZXh0IG1lc3NhZ2UiKTsKLSsgICAgbXNnID0gZ3N0X21lc3NhZ2VfbmV3X25l
ZWRfY29udGV4dCAoR1NUX09CSkVDVF9DQVNUIChlbGVtZW50KSwKLSsgICAgICAgICJkcm0tcHJl
ZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIik7Ci0rICAgIHN0ID0gKEdzdFN0cnVjdHVyZSAq
KSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlIChtc2cpOwotKyAgICBnc3Rfc3RydWN0dXJlX3Nl
dCAoc3QsICJ0cmFjay1pZCIsIEdfVFlQRV9VSU5ULCBzdHJlYW0tPnRyYWNrX2lkLAotKyAgICAg
ICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwgZmlsdGVyZWRfc3lz
X2lkcywgTlVMTCk7Ci0rICAgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbHVlIChzdCwgInN0cmVhbS1l
bmNyeXB0aW9uLWV2ZW50cyIsICZldmVudF9saXN0KTsKLSsgICAgZ3N0X2VsZW1lbnRfcG9zdF9t
ZXNzYWdlIChlbGVtZW50LCBtc2cpOwotKyAgfQotKwotKyAgZ19zdHJmcmVldiAoZmlsdGVyZWRf
c3lzX2lkcyk7Ci0rICBnX3ZhbHVlX3Vuc2V0ICgmZXZlbnRfbGlzdCk7Ci0rICBnc3RfcXVlcnlf
dW5yZWYgKHF1ZXJ5KTsKLSt9Ci0rCi0gc3RhdGljIGdib29sZWFuCi0gZ3N0X3F0ZGVtdXhfY29u
ZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgUXREZW11
eFN0cmVhbSAqIHN0cmVhbSkKLSB7Ci0gICBHc3RTdHJ1Y3R1cmUgKnM7Ci0tICBjb25zdCBnY2hh
ciAqc2VsZWN0ZWRfc3lzdGVtOwotKyAgY29uc3QgZ2NoYXIgKnNlbGVjdGVkX3N5c3RlbSA9IE5V
TEw7Ci0gCi0gICBnX3JldHVybl92YWxfaWZfZmFpbCAocXRkZW11eCAhPSBOVUxMLCBGQUxTRSk7
Ci0gICBnX3JldHVybl92YWxfaWZfZmFpbCAoc3RyZWFtICE9IE5VTEwsIEZBTFNFKTsKLUBAIC03
Nzc3LDE3ICs3OTQxLDQxIEBAIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9wcm90ZWN0ZWRfY2FwcyAo
R3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgICAgICAiY2VuYyBwcm90ZWN0aW9uIHN5c3RlbSBp
bmZvcm1hdGlvbiBoYXMgYmVlbiBmb3VuZCIpOwotICAgICByZXR1cm4gRkFMU0U7Ci0gICB9Ci0t
ICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywgTlVMTCk7
Ci0tICBzZWxlY3RlZF9zeXN0ZW0gPSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtICgoY29u
c3QgZ2NoYXIgKiopCi0tICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5wZGF0
YSk7Ci0tICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lz
dGVtX2lkcywKLS0gICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAtIDEp
OwotKwotKyAgZ3N0X3F0ZGVtdXhfcmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKHF0ZGVtdXgs
IHN0cmVhbSk7Ci0rICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lk
ICE9IE5VTEwpIHsKLSsgICAgY29uc3QgZ2NoYXIgKnByZWZlcnJlZF9zeXN0ZW1fYXJyYXlbXSA9
Ci0rICAgICAgICB7IHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCwgTlVM
TCB9OwotKwotKyAgICBzZWxlY3RlZF9zeXN0ZW0gPSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lz
dGVtIChwcmVmZXJyZWRfc3lzdGVtX2FycmF5KTsKLSsKLSsgICAgaWYgKHNlbGVjdGVkX3N5c3Rl
bSkgewotKyAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJzZWxlY3RlZCBwcmVmZXJy
ZWQgc3lzdGVtICVzIiwKLSsgICAgICAgICAgcXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25f
c3lzdGVtX2lkKTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHF0
ZGVtdXgsICJjb3VsZCBub3Qgc2VsZWN0IHByZWZlcnJlZCBzeXN0ZW0gJXMgIgotKyAgICAgICAg
ICAiYmVjYXVzZSB0aGVyZSBpcyBubyBhdmFpbGFibGUgZGVjcnlwdG9yIiwKLSsgICAgICAgICAg
cXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKTsKLSsgICAgfQotKyAgfQot
KwotKyAgaWYgKCFzZWxlY3RlZF9zeXN0ZW0pIHsKLSsgICAgZ19wdHJfYXJyYXlfYWRkIChxdGRl
bXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOwotKyAgICBzZWxlY3RlZF9zeXN0ZW0g
PSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtICgoY29uc3QgZ2NoYXIgKiopCi0rICAgICAg
ICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPnBkYXRhKTsKLSsgICAgZ19wdHJfYXJy
YXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsCi0rICAgICAg
ICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAtIDEpOwotKyAgfQotKwotICAg
aWYgKCFzZWxlY3RlZF9zeXN0ZW0pIHsKLSAgICAgR1NUX0VSUk9SX09CSkVDVCAocXRkZW11eCwg
InN0cmVhbSBpcyBwcm90ZWN0ZWQsIGJ1dCBubyAiCi0gICAgICAgICAic3VpdGFibGUgZGVjcnlw
dG9yIGVsZW1lbnQgaGFzIGJlZW4gZm91bmQiKTsKLSAgICAgcmV0dXJuIEZBTFNFOwotICAgfQot
IAotKyAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgInNlbGVjdGVkIHByb3RlY3Rpb24gc3lz
dGVtIGlzICVzIiwKLSsgICAgICBzZWxlY3RlZF9zeXN0ZW0pOwotKwotICAgcyA9IGdzdF9jYXBz
X2dldF9zdHJ1Y3R1cmUgKENVUl9TVFJFQU0gKHN0cmVhbSktPmNhcHMsIDApOwotICAgaWYgKCFn
c3Rfc3RydWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRpb24veC1jZW5jIikpIHsKLSAgICAg
Z3N0X3N0cnVjdHVyZV9zZXQgKHMsCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4Lmgg
Yi9nc3QvaXNvbXA0L3F0ZGVtdXguaAotaW5kZXggYWQ0ZGEzZWYyLi4wNzkzNzIzNTYgMTAwNjQ0
Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgK
LUBAIC0xNTEsNiArMTUxLDcgQEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKLSAgIGd1aW50NjQgY2Vu
Y19hdXhfaW5mb19vZmZzZXQ7Ci0gICBndWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7Ci0gICBn
dWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKLSsgIGdjaGFyICpwcmVmZXJyZWRfcHJvdGVj
dGlvbl9zeXN0ZW1faWQ7Ci0gCi0gCi0gICAvKgotLS0gCi0yLjE3LjAKLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVtdXgtQ2xh
cmlmeS1maWVsZC1uYW1lLWFib3V0LXN0cmVhbS1lbmNyeXB0aW9uLXMucGF0Y2ggYi9Ub29scy9n
c3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRkZW11eC1DbGFyaWZ5LWZp
ZWxkLW5hbWUtYWJvdXQtc3RyZWFtLWVuY3J5cHRpb24tcy5wYXRjaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2RkNmJlYzNmNjA2Njg5ZGM2OTc3NzI0NDA5Njg5MWQxMjhkZDM1NS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRkZW11eC1DbGFyaWZ5LWZpZWxk
LW5hbWUtYWJvdXQtc3RyZWFtLWVuY3J5cHRpb24tcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x
LDU2ICswLDAgQEAKLUZyb20gMGZiZGUyYTA3OTI4YmE3OWI3YTRkZGI0NTg1ZjZiMWRlMzZhNzRi
YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVu
aWVyQGlnYWxpYS5jb20+Ci1EYXRlOiBGcmksIDI1IE1heSAyMDE4IDEyOjI4OjA0ICswMjAwCi1T
dWJqZWN0OiBbUEFUQ0hdIHF0ZGVtdXg6IENsYXJpZnkgZmllbGQgbmFtZSBhYm91dCBzdHJlYW0t
ZW5jcnlwdGlvbi1zeXN0ZW0KLQotVGhpcyBmaWVsZCBpcyBhY3R1YWxseSBvbmx5IGluZm9ybWF0
b3J5IGFuZCB0aGUgdXNlciBjYW4gcG90ZW50aWFsbHkKLWNob29zZSBzb21ldGhpbmcgZWxzZS4g
RU1FIHRlc3RzIGluIFdlYktpdCB0ZXN0c3VpdGUgYWN0dWFsbHkgZG9lc24ndAotdGFrZSBpdCBp
bnRvIGFuZCBmb3JjZSBhbm90aGVyIGVuY3J5cHRpb24gc3lzdGVtIHRvIGJlIHVzZWQsIGFuZCBl
eHBlY3RzCi10byBiZSBnaXZlbiB0aGUgb2NjYXNpb24gdG8gZG8gc28uCi0KLVRoaXMgYmFzaWNh
bGx5IGFsc28gcmV2ZXJ0cyAzZTA2MzcwM2IzYTUxYjhhYWE3Zjc1ZjM2YzQ2NjBjNTgzYTYwZTkz
LgotLS0tCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCAxMyArKysrKy0tLS0tLS0tCi0gMSBmaWxl
IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh
L2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IGJkM2Ew
MGNjZi4uNTE1Njg3MzUzIDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBi
L2dzdC9pc29tcDQvcXRkZW11eC5jCi1AQCAtODA5NiwxMiArODA5Niw2IEBAIGdzdF9xdGRlbXV4
X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0IChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgIGZp
bHRlcmVkX3N5c19pZHMgPSBnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFi
bGVfZGVjcnlwdG9ycyAoCi0gICAgICAgKGNvbnN0IGdjaGFyICoqKSBxdGRlbXV4LT5wcm90ZWN0
aW9uX3N5c3RlbV9pZHMtPnBkYXRhKTsKLSAKLS0gIGlmICghZmlsdGVyZWRfc3lzX2lkcykgewot
LSAgICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsCi0tICAgICAgICAiTm8gYXZhbGFpYmxlIGRl
Y3J5cHRvciwgbm90IHdvcnRoIGFza2luZyB0aGUgdXNlciB0byBjaG9vc2UuIik7Ci0tICAgIHJl
dHVybjsKLS0gIH0KLS0KLSAgIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJv
dGVjdGlvbl9zeXN0ZW1faWRzLAotICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lk
cy0+bGVuIC0gMSk7Ci0gICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAiZGV0ZWN0ZWQgJXUg
cHJvdGVjdGlvbiBzeXN0ZW1zLCB3ZSBoYXZlICIKLUBAIC04MTMzLDcgKzgxMjcsOCBAQCBnc3Rf
cXRkZW11eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dCAoR3N0UVREZW11eCAqIHF0ZGVtdXgs
Ci0gICBxdWVyeSA9IGdzdF9xdWVyeV9uZXdfY29udGV4dCAoImRybS1wcmVmZXJyZWQtZGVjcnlw
dGlvbi1zeXN0ZW0taWQiKTsKLSAgIHN0ID0gZ3N0X3F1ZXJ5X3dyaXRhYmxlX3N0cnVjdHVyZSAo
cXVlcnkpOwotICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHN0LCAidHJhY2staWQiLCBHX1RZUEVfVUlO
VCwgc3RyZWFtLT50cmFja19pZCwKLS0gICAgICAic3RyZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIs
IEdfVFlQRV9TVFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKLSsgICAgICAiYXZhaWxhYmxl
LXN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwgZmlsdGVyZWRfc3lzX2lk
cywKLSsgICAgICBOVUxMKTsKLSAgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbHVlIChzdCwgInN0cmVh
bS1lbmNyeXB0aW9uLWV2ZW50cyIsICZldmVudF9saXN0KTsKLSAgIGlmIChnc3RfcXRkZW11eF9y
dW5fcXVlcnkgKGVsZW1lbnQsIHF1ZXJ5LCBHU1RfUEFEX1NSQykpIHsKLSAgICAgZ3N0X3F1ZXJ5
X3BhcnNlX2NvbnRleHQgKHF1ZXJ5LCAmY3R4dCk7Ci1AQCAtODE1Nyw3ICs4MTUyLDkgQEAgZ3N0
X3F0ZGVtdXhfcmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKEdzdFFURGVtdXggKiBxdGRlbXV4
LAotICAgICAgICAgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQiKTsKLSAgICAg
c3QgPSAoR3N0U3RydWN0dXJlICopIGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUgKG1zZyk7Ci0g
ICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBFX1VJTlQsIHN0cmVh
bS0+dHJhY2tfaWQsCi0tICAgICAgICAic3RyZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIsIEdfVFlQ
RV9TVFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKLSsgICAgICAgICJhdmFpbGFibGUtc3Ry
ZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIsIEdfVFlQRV9TVFJWLCBmaWx0ZXJlZF9zeXNfaWRzLAot
KyAgICAgICAgTlVMTCk7Ci0rCi0gICAgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbHVlIChzdCwgInN0
cmVhbS1lbmNyeXB0aW9uLWV2ZW50cyIsICZldmVudF9saXN0KTsKLSAgICAgZ3N0X2VsZW1lbnRf
cG9zdF9tZXNzYWdlIChlbGVtZW50LCBtc2cpOwotICAgfQotLS0gCi0yLjE3LjAKLQpkaWZmIC0t
Z2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXF0ZGVt
dXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2ggYi9U
b29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRkZW11eC1hbHNv
LXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5wYXRjaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDE3ZGY2OTJiNGQyZjM5MmNhNTJmODEzNmI5MTZjODU1NDBl
MjM3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcXRkZW11eC1hbHNvLXB1
c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5wYXRjaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLUZyb20gNzYyZTljNjQ1ZWMxMzUxM2M2MmViNWEzODAwZDc0MDZl
MDFjZGNiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9FbnJpcXVl
PTIwT2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgotRGF0
ZTogTW9uLCAyNCBBcHIgMjAxNyAxNzoyMjowMiArMDAwMAotU3ViamVjdDogW1BBVENIIDMvN10g
cXRkZW11eDogYWxzbyBwdXNoIGJ1ZmZlcnMgd2l0aG91dCBlbmNyeXB0aW9uIGluZm8KLSBpbnN0
ZWFkIG9mIGRyb3BwaW5nIHRoZW0KLQotLS0tCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCAzOSAr
KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwg
MTkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCBkYTIyNDYzZjguLjhl
OWY1YjlhZSAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguYwotQEAgLTU2MDAsMjYgKzU2MDAsMjUgQEAgZ3N0X3F0ZGVtdXhfZGVjb3Jh
dGVfYW5kX3B1c2hfYnVmZmVyIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgICBnc3RfcGFk
X3B1c2hfZXZlbnQgKHN0cmVhbS0+cGFkLCBldmVudCk7Ci0gICAgIH0KLSAKLS0gICAgaWYgKGlu
Zm8tPmNyeXB0b19pbmZvID09IE5VTEwpIHsKLS0gICAgICBHU1RfREVCVUdfT0JKRUNUIChxdGRl
bXV4LCAiY2VuYyBtZXRhZGF0YSBoYXNuJ3QgYmVlbiBwYXJzZWQgeWV0Iik7Ci0tICAgICAgZ3N0
X2J1ZmZlcl91bnJlZiAoYnVmKTsKLS0gICAgICBnb3RvIGV4aXQ7Ci0tICAgIH0KLS0KLS0gICAg
LyogVGhlIGVuZCBvZiB0aGUgY3J5cHRvX2luZm8gYXJyYXkgbWF0Y2hlcyBvdXIgbl9zYW1wbGVz
IHBvc2l0aW9uLAotLSAgICAgKiBzbyBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZXJlICovCi0tICAg
IGluZGV4ID0gc3RyZWFtLT5zYW1wbGVfaW5kZXggLSBzdHJlYW0tPm5fc2FtcGxlcyArIGluZm8t
PmNyeXB0b19pbmZvLT5sZW47Ci0tICAgIGlmIChHX0xJS0VMWSAoaW5kZXggPj0gMCAmJiBpbmRl
eCA8IGluZm8tPmNyeXB0b19pbmZvLT5sZW4pKSB7Ci0tICAgICAgLyogc3RlYWwgc3RydWN0dXJl
IGZyb20gYXJyYXkgKi8KLS0gICAgICBjcnlwdG9faW5mbyA9IGdfcHRyX2FycmF5X2luZGV4IChp
bmZvLT5jcnlwdG9faW5mbywgaW5kZXgpOwotLSAgICAgIGdfcHRyX2FycmF5X2luZGV4IChpbmZv
LT5jcnlwdG9faW5mbywgaW5kZXgpID0gTlVMTDsKLS0gICAgICBHU1RfTE9HX09CSkVDVCAocXRk
ZW11eCwgImF0dGFjaGluZyBjZW5jIG1ldGFkYXRhIFsldS8ldV0iLCBpbmRleCwKLS0gICAgICAg
ICAgaW5mby0+Y3J5cHRvX2luZm8tPmxlbik7Ci0tICAgICAgaWYgKCFjcnlwdG9faW5mbyB8fCAh
Z3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKLS0gICAg
ICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJmYWlsZWQgdG8gYXR0YWNoIGNlbmMgbWV0
YWRhdGEgdG8gYnVmZmVyIik7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgR1NUX0lORk9fT0JKRUNU
IChxdGRlbXV4LCAiTm8gY3J5cHRvIGluZm8gd2l0aCBpbmRleCAlZCBhbmQgc2FtcGxlICVkIiwK
LS0gICAgICAgICAgaW5kZXgsIHN0cmVhbS0+c2FtcGxlX2luZGV4KTsKLSsKLSsgICAgaWYgKGlu
Zm8tPmNyeXB0b19pbmZvID09IE5VTEwpCi0rICAgICAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11
eCwgImNlbmMgbWV0YWRhdGEgaGFzbid0IGJlZW4gcGFyc2VkIHlldCwgcHVzaGluZyBidWZmZXIg
YXMgaWYgaXQgd2Fzbid0IGVuY3J5cHRlZCIpOwotKyAgICBlbHNlIHsKLSsgICAgICAvKiBUaGUg
ZW5kIG9mIHRoZSBjcnlwdG9faW5mbyBhcnJheSBtYXRjaGVzIG91ciBuX3NhbXBsZXMgcG9zaXRp
b24sCi0rICAgICAgICogc28gY291bnQgYmFja3dhcmQgZnJvbSB0aGVyZSAqLwotKyAgICAgIGlu
ZGV4ID0gc3RyZWFtLT5zYW1wbGVfaW5kZXggLSBzdHJlYW0tPm5fc2FtcGxlcyArIGluZm8tPmNy
eXB0b19pbmZvLT5sZW47Ci0rICAgICAgaWYgKEdfTElLRUxZIChpbmRleCA+PSAwICYmIGluZGV4
IDwgaW5mby0+Y3J5cHRvX2luZm8tPmxlbikpIHsKLSsgICAgICAgIC8qIHN0ZWFsIHN0cnVjdHVy
ZSBmcm9tIGFycmF5ICovCi0rICAgICAgICBjcnlwdG9faW5mbyA9IGdfcHRyX2FycmF5X2luZGV4
IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpOwotKyAgICAgICAgZ19wdHJfYXJyYXlfaW5kZXgg
KGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCkgPSBOVUxMOwotKyAgICAgICAgR1NUX0xPR19PQkpF
Q1QgKHF0ZGVtdXgsICJhdHRhY2hpbmcgY2VuYyBtZXRhZGF0YSBbJXUvJXVdIiwgaW5kZXgsCi0r
ICAgICAgICAgICAgaW5mby0+Y3J5cHRvX2luZm8tPmxlbik7Ci0rICAgICAgICBpZiAoIWNyeXB0
b19pbmZvIHx8ICFnc3RfYnVmZmVyX2FkZF9wcm90ZWN0aW9uX21ldGEgKGJ1ZiwgY3J5cHRvX2lu
Zm8pKQotKyAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUIChxdGRlbXV4LCAiZmFpbGVkIHRvIGF0
dGFjaCBjZW5jIG1ldGFkYXRhIHRvIGJ1ZmZlciIpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAg
ICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsICJObyBjcnlwdG8gaW5mbyB3aXRoIGluZGV4ICVk
IGFuZCBzYW1wbGUgJWQiLAotKyAgICAgICAgICAgIGluZGV4LCBzdHJlYW0tPnNhbXBsZV9pbmRl
eCk7Ci0rICAgICAgfQotICAgICB9Ci0gICB9Ci0gCi0tLSAKLTIuMTcuMAotCmRpZmYgLS1naXQg
YS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1B
ZGQtaW5pdGlhbC1zdXBwb3J0LWZvci1BVjEtZGVtdXhpbmcucGF0Y2ggYi9Ub29scy9nc3RyZWFt
ZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDQtcXRkZW11eC1BZGQtaW5pdGlhbC1zdXBw
b3J0LWZvci1BVjEtZGVtdXhpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNmMmI0OTczZWZmNzI4NDA1MzAwOWRiOTg5MTMwMDk5NjliMmNmNTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtZ29vZC0wMDA0LXF0ZGVtdXgtQWRkLWluaXRpYWwtc3VwcG9ydC1mb3ItQVYx
LWRlbXV4aW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLUZyb20gYjZl
OGM2MzIzZTAxMjQ5YmIzYWM0ZjEyMWMzYWRjM2VhOGQ5MjRiZiBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKLUZyb206ID0/VVRGLTg/cT9PbGl2aWVyPTIwQ3I9QzM9QUF0ZT89IDxvbGl2aWVyLmNy
ZXRlQGNvbGxhYm9yYS5jb20+Ci1EYXRlOiBXZWQsIDI1IEp1bCAyMDE4IDEwOjQzOjExIC0wNDAw
Ci1TdWJqZWN0OiBbUEFUQ0hdIHF0ZGVtdXg6IEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIEFWMSBk
ZW11eGluZwotCi1Gb2xsb3dpbmcgdGhlIHNwZWMgYXQKLWh0dHBzOi8vYW9tZWRpYWNvZGVjLmdp
dGh1Yi5pby9hdjEtaXNvYm1mZi8KLS0tLQotIGdzdC9pc29tcDQvZm91cmNjLmggICAgICAgIHwg
IDEgKwotIGdzdC9pc29tcDQvcXRkZW11eC5jICAgICAgIHwgIDQgKysrKwotIGdzdC9pc29tcDQv
cXRkZW11eF9kdW1wLmMgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKLSBnc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYyB8ICAxICsKLSA0IGZpbGVzIGNoYW5nZWQs
IDU1IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvZm91cmNjLmggYi9n
c3QvaXNvbXA0L2ZvdXJjYy5oCi1pbmRleCA2ZjQ2N2ZmYmIuLmMwNmI2OTQxOCAxMDA2NDQKLS0t
LSBhL2dzdC9pc29tcDQvZm91cmNjLmgKLSsrKyBiL2dzdC9pc29tcDQvZm91cmNjLmgKLUBAIC0y
NjQsNiArMjY0LDcgQEAgR19CRUdJTl9ERUNMUwotICNkZWZpbmUgRk9VUkNDX3dpZGUgICAgIEdT
VF9NQUtFX0ZPVVJDQygndycsJ2knLCdkJywnZScpCi0gI2RlZmluZSBGT1VSQ0NfemxpYiAgICAg
R1NUX01BS0VfRk9VUkNDKCd6JywnbCcsJ2knLCdiJykKLSAjZGVmaW5lIEZPVVJDQ19scGNtICAg
ICBHU1RfTUFLRV9GT1VSQ0MoJ2wnLCdwJywnYycsJ20nKQotKyNkZWZpbmUgRk9VUkNDX2F2MDEg
ICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3YnLCcwJywnMScpCi0gCi0gI2RlZmluZSBGT1VSQ0Nf
Y2ZoZCAgICAgR1NUX01BS0VfRk9VUkNDKCdDJywnRicsJ0gnLCdEJykKLSAjZGVmaW5lIEZPVVJD
Q19hcDR4ICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2EnLCdwJywnNCcsJ3gnKQotZGlmZiAtLWdpdCBh
L2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IDNlZmI1
YmE5ZC4uN2E2ODI4MzNmIDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBi
L2dzdC9pc29tcDQvcXRkZW11eC5jCi1AQCAtMTQ2NTEsNiArMTQ2NTEsMTAgQEAgcXRkZW11eF92
aWRlb19jYXBzIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11eFN0cmVhbSAqIHN0cmVhbSwK
LSAgICAgICBjYXBzID0gZ3N0X2NhcHNfbmV3X3NpbXBsZSAoInZpZGVvL3gtd212IiwKLSAgICAg
ICAgICAgIndtdnZlcnNpb24iLCBHX1RZUEVfSU5ULCAzLCAiZm9ybWF0IiwgR19UWVBFX1NUUklO
RywgIldWQzEiLCBOVUxMKTsKLSAgICAgICBicmVhazsKLSsgICAgY2FzZSBGT1VSQ0NfYXYwMToK
LSsgICAgICBfY29kZWMgKCJBVjEiKTsKLSsgICAgICBjYXBzID0gZ3N0X2NhcHNfbmV3X2VtcHR5
X3NpbXBsZSAoInZpZGVvL3gtYXYxIik7Ci0rICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgR1NUX01B
S0VfRk9VUkNDICgnaycsICdwJywgJ2MnLCAnZCcpOgotICAgICBkZWZhdWx0OgotICAgICB7Ci1k
aWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4X2R1bXAuYyBiL2dzdC9pc29tcDQvcXRkZW11
eF9kdW1wLmMKLWluZGV4IDVmZjJlOTI4OC4uMjU5MjFkZmUyIDEwMDY0NAotLS0tIGEvZ3N0L2lz
b21wNC9xdGRlbXV4X2R1bXAuYwotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4X2R1bXAuYwotQEAg
LTMwMyw2ICszMDMsNTEgQEAgcXRkZW11eF9kdW1wX3N0c2RfYXZjMSAoR3N0UVREZW11eCAqIHF0
ZGVtdXgsIEdzdEJ5dGVSZWFkZXIgKiBkYXRhLCBndWludCBzaXplLAotICAgcmV0dXJuIFRSVUU7
Ci0gfQotIAotKwotK3N0YXRpYyBnYm9vbGVhbgotK3F0ZGVtdXhfZHVtcF9zdHNkX2F2MDEgKEdz
dFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICogZGF0YSwgZ3VpbnQgc2l6ZSwKLSsg
ICAgaW50IGRlcHRoKQotK3sKLSsgIGd1aW50IGNvbXByZXNzb3JfbGVuOwotKyAgY2hhciBjb21w
cmVzc29yX25hbWVbMzJdOwotKwotKyAgLyogU2l6ZSBvZiBhdjAxID0gNzggYnl0ZXMgKi8KLSsg
IGlmIChzaXplIDwgKDYgKyAyICsgNCArIDEyICsgMiArIDIgKyA0ICsgNCArIDQgKyAyICsgMSAr
IDMxICsgMiArIDIpKQotKyAgICByZXR1cm4gRkFMU0U7Ci0rCi0rICBnc3RfYnl0ZV9yZWFkZXJf
c2tpcF91bmNoZWNrZWQgKGRhdGEsIDYpOwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIl
KnMgICAgZGF0YSByZWZlcmVuY2U6JWQiLCBkZXB0aCwgIiIsCi0rICAgICAgR0VUX1VJTlQxNiAo
ZGF0YSkpOwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgdmVyc2lvbi9yZXYu
OiAgJTA4eCIsIGRlcHRoLCAiIiwKLSsgICAgICBHRVRfVUlOVDMyIChkYXRhKSk7Ci0rICBnc3Rf
Ynl0ZV9yZWFkZXJfc2tpcF91bmNoZWNrZWQgKGRhdGEsIDEyKTsgICAgLyogcHJlLWRlZmluZWQg
JiByZXNlcnZlZCAqLwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgd2lkdGg6
ICAgICAgICAgJXUiLCBkZXB0aCwgIiIsCi0rICAgICAgR0VUX1VJTlQxNiAoZGF0YSkpOwotKyAg
R1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICIlKnMgICAgaGVpZ2h0OiAgICAgICAgJXUiLCBkZXB0
aCwgIiIsCi0rICAgICAgR0VUX1VJTlQxNiAoZGF0YSkpOwotKyAgR1NUX0xPR19PQkpFQ1QgKHF0
ZGVtdXgsICIlKnMgICAgaG9yaXouIHJlc29sOiAgJWciLCBkZXB0aCwgIiIsCi0rICAgICAgR0VU
X0ZQMzIgKGRhdGEpKTsKLSsgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiJSpzICAgIHZlcnQu
IHJlc29sLjogICVnIiwgZGVwdGgsICIiLAotKyAgICAgIEdFVF9GUDMyIChkYXRhKSk7Ci0rICBH
U1RfTE9HX09CSkVDVCAocXRkZW11eCwgIiUqcyAgICBkYXRhIHNpemU6ICAgICAldSIsIGRlcHRo
LCAiIiwKLSsgICAgICBHRVRfVUlOVDMyIChkYXRhKSk7Ci0rICBHU1RfTE9HX09CSkVDVCAocXRk
ZW11eCwgIiUqcyAgICBmcmFtZSBjb3VudDogICAldSIsIGRlcHRoLCAiIiwKLSsgICAgICBHRVRf
VUlOVDE2IChkYXRhKSk7Ci0rICAvKiBzb21ldGhpbmcgaXMgbm90IHJpZ2h0IHdpdGggdGhpcywg
aXQncyBzdXBwb3NlZCB0byBiZSBhIHN0cmluZyBidXQgaXQncwotKyAgICogbm90IGFwcGFyZW50
bHksIHNvIGp1c3Qgc2tpcCB0aGlzIGZvciBub3cgKi8KLSsgIGNvbXByZXNzb3JfbGVuID0gTUFY
IChHRVRfVUlOVDggKGRhdGEpLCAzMSk7Ci0rICBtZW1jcHkgKGNvbXByZXNzb3JfbmFtZSwgZ3N0
X2J5dGVfcmVhZGVyX2dldF9kYXRhX3VuY2hlY2tlZCAoZGF0YSwgMzEpLCAzMSk7Ci0rICBjb21w
cmVzc29yX25hbWVbY29tcHJlc3Nvcl9sZW5dID0gMDsKLSsgIEdTVF9MT0dfT0JKRUNUIChxdGRl
bXV4LCAiJSpzICAgIGNvbXByZXNzb3I6ICAgICVzIiwgZGVwdGgsICIiLAotKyAgICAgIGNvbXBy
ZXNzb3JfbmFtZSk7Ci0rICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgIiUqcyAgICBkZXB0aDog
ICAgICAgICAldSIsIGRlcHRoLCAiIiwKLSsgICAgICBHRVRfVUlOVDE2IChkYXRhKSk7Ci0rICBH
U1RfTE9HX09CSkVDVCAocXRkZW11eCwgIiUqcyAgICBjb2xvciB0YWJsZSBJRDoldSIsIGRlcHRo
LCAiIiwKLSsgICAgICBHRVRfVUlOVDE2IChkYXRhKSk7Ci0rCi0rICByZXR1cm4gVFJVRTsKLSt9
Ci0rCi0gZ2Jvb2xlYW4KLSBxdGRlbXV4X2R1bXBfc3RzZCAoR3N0UVREZW11eCAqIHF0ZGVtdXgs
IEdzdEJ5dGVSZWFkZXIgKiBkYXRhLCBpbnQgZGVwdGgpCi0gewotQEAgLTM1Myw2ICszOTgsMTAg
QEAgcXRkZW11eF9kdW1wX3N0c2QgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVy
ICogZGF0YSwgaW50IGRlcHRoKQotICAgICAgICAgaWYgKCFxdGRlbXV4X2R1bXBfdW5rbm93biAo
cXRkZW11eCwgJnN1YiwgZGVwdGggKyAxKSkKLSAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAg
ICAgICAgYnJlYWs7Ci0rICAgICAgY2FzZSBGT1VSQ0NfYXYwMToKLSsgICAgICAgIGlmICghcXRk
ZW11eF9kdW1wX3N0c2RfYXYwMSAocXRkZW11eCwgJnN1Yiwgc2l6ZSwgZGVwdGggKyAxKSkKLSsg
ICAgICAgICAgcmV0dXJuIEZBTFNFOwotKyAgICAgICAgYnJlYWs7Ci0gICAgICAgZGVmYXVsdDoK
LSAgICAgICAgIC8qIFVua25vd24gc3RzZCBkYXRhLCBkdW1wIHRoZSBieXRlcyAqLwotICAgICAg
ICAgaWYgKCFxdGRlbXV4X2R1bXBfdW5rbm93biAocXRkZW11eCwgJnN1YiwgZGVwdGggKyAxKSkK
LWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYyBiL2dzdC9pc29tcDQvcXRk
ZW11eF90eXBlcy5jCi1pbmRleCAxZDU4NDAzOTQuLjY4Zjk4YmQ0NSAxMDA2NDQKLS0tLSBhL2dz
dC9pc29tcDQvcXRkZW11eF90eXBlcy5jCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMu
YwotQEAgLTIxNCw2ICsyMTQsNyBAQCBzdGF0aWMgY29uc3QgUXROb2RlVHlwZSBxdF9ub2RlX3R5
cGVzW10gPSB7Ci0gICB7Rk9VUkNDX3RlbmMsICJ0cmFjayBlbmNyeXB0aW9uIiwgMH0sCi0gICB7
Rk9VUkNDX3N0cHAsICJYTUwgc3VidGl0bGUgc2FtcGxlIGVudHJ5IiwgMH0sCi0gICB7Rk9VUkND
X2NsY3AsICJDbG9zZWQgQ2FwdGlvbiIsIDB9LAotKyAge0ZPVVJDQ19hdjAxLCAiQVYxIFNhbXBs
ZSBFbnRyeSIsIDB9LAotICAgezAsICJ1bmtub3duIiwgMCx9LAotIH07Ci0gCi0tLSAKLTIuMTgu
MAotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMDUtcXRkZW11eC1FeHRyYWN0LUFWMS1jb2RlY19kYXRhLWFuZC1wdXQtaXQtaW4tdGhlLWNh
cC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNS1x
dGRlbXV4LUV4dHJhY3QtQVYxLWNvZGVjX2RhdGEtYW5kLXB1dC1pdC1pbi10aGUtY2FwLnBhdGNo
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NmIzMjNlOGZkMmZjM2E2MGMwZWFhYTRk
OTBlYjUyZTU4YTg3MzMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNS1xdGRl
bXV4LUV4dHJhY3QtQVYxLWNvZGVjX2RhdGEtYW5kLXB1dC1pdC1pbi10aGUtY2FwLnBhdGNoCisr
KyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLUZyb20gNDNlZTQwNTVjM2QwM2E5Zjk5YWNk
ZjNjMDVmNDVlMTU0ODk5ZWRlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRG
LTg/cT9PbGl2aWVyPTIwQ3I9QzM9QUF0ZT89IDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+
Ci1EYXRlOiBXZWQsIDI1IEp1bCAyMDE4IDE0OjMxOjM5IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hd
IHF0ZGVtdXg6IEV4dHJhY3QgQVYxIGNvZGVjX2RhdGEgYW5kIHB1dCBpdCBpbiB0aGUgY2Fwcwot
Ci1BbHNvIGV4dHJhY3QgdGhlIHByZXNlbnRhdGlvbi1kZWxheSBhbmQgcHV0IGl0IGluIHRoZSBj
YXBzLgotLS0tCi0gZ3N0L2lzb21wNC9mb3VyY2MuaCAgfCAgMSArCi0gZ3N0L2lzb21wNC9xdGRl
bXV4LmMgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwot
IDIgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lz
b21wNC9mb3VyY2MuaCBiL2dzdC9pc29tcDQvZm91cmNjLmgKLWluZGV4IGMwNmI2OTQxOC4uZTE4
ZTZjMmM5IDEwMDY0NAotLS0tIGEvZ3N0L2lzb21wNC9mb3VyY2MuaAotKysrIGIvZ3N0L2lzb21w
NC9mb3VyY2MuaAotQEAgLTI2NSw2ICsyNjUsNyBAQCBHX0JFR0lOX0RFQ0xTCi0gI2RlZmluZSBG
T1VSQ0NfemxpYiAgICAgR1NUX01BS0VfRk9VUkNDKCd6JywnbCcsJ2knLCdiJykKLSAjZGVmaW5l
IEZPVVJDQ19scGNtICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2wnLCdwJywnYycsJ20nKQotICNkZWZp
bmUgRk9VUkNDX2F2MDEgICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3YnLCcwJywnMScpCi0rI2Rl
ZmluZSBGT1VSQ0NfYXYxQyAgICAgR1NUX01BS0VfRk9VUkNDKCdhJywndicsJzEnLCdDJykKLSAK
LSAjZGVmaW5lIEZPVVJDQ19jZmhkICAgICBHU1RfTUFLRV9GT1VSQ0MoJ0MnLCdGJywnSCcsJ0Qn
KQotICNkZWZpbmUgRk9VUkNDX2FwNHggICAgIEdTVF9NQUtFX0ZPVVJDQygnYScsJ3AnLCc0Jywn
eCcpCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguYwotaW5kZXggN2E2ODI4MzNmLi5kMWNlMzIwYjggMTAwNjQ0Ci0tLS0gYS9nc3QvaXNvbXA0
L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLUBAIC0xMTE4Nyw2ICsxMTE4
Nyw4MSBAQCBxdGRlbXV4X3BhcnNlX3RyYWsgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9kZSAq
IHRyYWspCi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9
Ci0rICAgICAgICAgIGNhc2UgRk9VUkNDX2F2MDE6Ci0rICAgICAgICAgIHsKLSsgICAgICAgICAg
ICBnaW50IGxlbiA9IFFUX1VJTlQzMiAoc3RzZF9lbnRyeV9kYXRhKSAtIDB4NTY7Ci0rICAgICAg
ICAgICAgY29uc3QgZ3VpbnQ4ICphdjFfZGF0YSA9IHN0c2RfZW50cnlfZGF0YSArIDB4NTY7Ci0r
Ci0rICAgICAgICAgICAgLyogZmluZCBhdjFDICovCi0rICAgICAgICAgICAgd2hpbGUgKGxlbiA+
PSAweDgpIHsKLSsgICAgICAgICAgICAgIGdpbnQgc2l6ZTsKLSsKLSsgICAgICAgICAgICAgIGlm
IChRVF9VSU5UMzIgKGF2MV9kYXRhKSA8PSBsZW4pCi0rICAgICAgICAgICAgICAgIHNpemUgPSBR
VF9VSU5UMzIgKGF2MV9kYXRhKSAtIDB4ODsKLSsgICAgICAgICAgICAgIGVsc2UKLSsgICAgICAg
ICAgICAgICAgc2l6ZSA9IGxlbiAtIDB4ODsKLSsKLSsgICAgICAgICAgICAgIGlmIChzaXplIDwg
MSkKLSsgICAgICAgICAgICAgICAgLyogTm8gcmVhbCBkYXRhLCBzbyBicmVhayBvdXQgKi8KLSsg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0rCi0rICAgICAgICAgICAgICBzd2l0Y2ggKFFUX0ZPVVJD
QyAoYXYxX2RhdGEgKyAweDQpKSB7Ci0rICAgICAgICAgICAgICAgIGNhc2UgRk9VUkNDX2F2MUM6
Ci0rICAgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAgICAvKiBwYXJzZSwgaWYgZm91
bmQgKi8KLSsgICAgICAgICAgICAgICAgICBHc3RCdWZmZXIgKmJ1ZjsKLSsgICAgICAgICAgICAg
ICAgICBndWludDggcHJlc19kZWxheV9maWVsZDsKLSsKLSsgICAgICAgICAgICAgICAgICBHU1Rf
REVCVUdfT0JKRUNUIChxdGRlbXV4LAotKyAgICAgICAgICAgICAgICAgICAgICAiZm91bmQgYXYx
QyBjb2RlY19kYXRhIGluIHN0c2Qgb2Ygc2l6ZSAlZCIsIHNpemUpOwotKwotKyAgICAgICAgICAg
ICAgICAgIC8qIG5vdCBlbm91Z2ggZGF0YSwganVzdCBpZ25vcmUgYW5kIGhvcGUgZm9yIHRoZSBi
ZXN0ICovCi0rICAgICAgICAgICAgICAgICAgaWYgKHNpemUgPCA1KQotKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0rCi0rICAgICAgICAgICAgICAgICAgLyogQ29udGVudCBpczoKLSsgICAg
ICAgICAgICAgICAgICAgKiA0IGJ5dGVzOiBhdG9tIGxlbmd0aAotKyAgICAgICAgICAgICAgICAg
ICAqIDQgYnl0ZXM6IGZvdXJjYwotKyAgICAgICAgICAgICAgICAgICAqIDEgYnl0ZTogdmVyc2lv
bgotKyAgICAgICAgICAgICAgICAgICAqIDMgYnl0ZXM6IGZsYWdzCi0rICAgICAgICAgICAgICAg
ICAgICogMyBiaXRzOiByZXNlcnZlZAotKyAgICAgICAgICAgICAgICAgICAqIDEgYml0czogIGlu
aXRpYWxfcHJlc2VudGF0aW9uX2RlbGF5X3ByZXNlbnQKLSsgICAgICAgICAgICAgICAgICAgKiA0
IGJpdHM6IGluaXRpYWxfcHJlc2VudGF0aW9uX2RlbGF5IChpZiBwcmVzZW50IGVsc2UgcmVzZXJ2
ZWQKLSsgICAgICAgICAgICAgICAgICAgKiByZXN0OiBPQlVzLgotKyAgICAgICAgICAgICAgICAg
ICAqLwotKwotKyAgICAgICAgICAgICAgICAgIGlmIChhdjFfZGF0YVs5XSAhPSAwKSB7Ci0rICAg
ICAgICAgICAgICAgICAgICBHU1RfV0FSTklORyAoIlVua25vd24gdmVyc2lvbiAlZCBvZiBhdjFD
IGJveCIsIGF2MV9kYXRhWzldKTsKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAg
ICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAgICAvKiBXZSBza2lwIGluaXRpYWxf
cHJlc2VudGF0aW9uX2RlbGF5KiBmb3Igbm93ICovCi0rICAgICAgICAgICAgICAgICAgcHJlc19k
ZWxheV9maWVsZCA9ICooYXYxX2RhdGEgKyAxMik7Ci0rICAgICAgICAgICAgICAgICAgaWYgKHBy
ZXNfZGVsYXlfZmllbGQgJiAoMSA8PCA1KSkgewotKyAgICAgICAgICAgICAgICAgICAgZ3N0X2Nh
cHNfc2V0X3NpbXBsZSAoZW50cnktPmNhcHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgInBy
ZXNlbnRhdGlvbi1kZWxheSIsIEdfVFlQRV9JTlQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg
KGdpbnQpIChwcmVzX2RlbGF5X2ZpZWxkICYgMHgwRikgKyAxLCBOVUxMKTsKLSsgICAgICAgICAg
ICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgaWYgKHNpemUgPiA1KSB7Ci0rICAgICAgICAg
ICAgICAgICAgICBidWYgPSBnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MgKHNpemUgLSA1KTsKLSsg
ICAgICAgICAgICAgICAgICAgIEdTVF9CVUZGRVJfRkxBR19TRVQgKGJ1ZiwgR1NUX0JVRkZFUl9G
TEFHX0hFQURFUik7Ci0rICAgICAgICAgICAgICAgICAgICBnc3RfYnVmZmVyX2ZpbGwgKGJ1Ziwg
MCwgYXYxX2RhdGEgKyAxMywgc2l6ZSAtIDUpOwotKyAgICAgICAgICAgICAgICAgICAgZ3N0X2Nh
cHNfc2V0X3NpbXBsZSAoZW50cnktPmNhcHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgImNv
ZGVjX2RhdGEiLCBHU1RfVFlQRV9CVUZGRVIsIGJ1ZiwgTlVMTCk7Ci0rICAgICAgICAgICAgICAg
ICAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOwotKyAgICAgICAgICAgICAgICAgIH0KLSsgICAg
ICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg
ICBkZWZhdWx0OgotKyAgICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgICAgfQot
KwotKyAgICAgICAgICAgICAgbGVuIC09IHNpemUgKyA4OwotKyAgICAgICAgICAgICAgYXYxX2Rh
dGEgKz0gc2l6ZSArIDg7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIGJyZWFrOwot
KyAgICAgICAgICB9Ci0gICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICB9Ci0tLSAKLTIuMTguMAotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1SZWNvZ25pemUtbW9yZS1BVjEtYXRv
bXMucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYt
cXRkZW11eC1SZWNvZ25pemUtbW9yZS1BVjEtYXRvbXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZkNTc1NzQ4MjIxOWRiOTAxMTAwNTFiODc3NGUyODJiYTA4MWNjZTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtUmVjb2duaXplLW1vcmUt
QVYxLWF0b21zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSBlMDdj
ZTlhZmI0ZWRiMmVhODk4NzYzYzdlYTExZjBhZjI3MDQxMDRlIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQotRnJvbTogPT9VVEYtOD9xP09saXZpZXI9MjBDcj1DMz1BQXRlPz0gPG9saXZpZXIuY3Jl
dGVAY29sbGFib3JhLmNvbT4KLURhdGU6IFdlZCwgMjUgSnVsIDIwMTggMTY6NTE6MzggLTA0MDAK
LVN1YmplY3Q6IFtQQVRDSF0gcXRkZW11eDogUmVjb2duaXplIG1vcmUgQVYxIGF0b21zCi0KLS0t
LQotIGdzdC9pc29tcDQvZm91cmNjLmggICAgICAgIHwgNCArKysrCi0gZ3N0L2lzb21wNC9xdGRl
bXV4X3R5cGVzLmMgfCA1ICsrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykK
LQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvZm91cmNjLmggYi9nc3QvaXNvbXA0L2ZvdXJjYy5o
Ci1pbmRleCBlMThlNmMyYzkuLjZjNDI1ZTZmOSAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvZm91
cmNjLmgKLSsrKyBiL2dzdC9pc29tcDQvZm91cmNjLmgKLUBAIC0yNjYsNiArMjY2LDEwIEBAIEdf
QkVHSU5fREVDTFMKLSAjZGVmaW5lIEZPVVJDQ19scGNtICAgICBHU1RfTUFLRV9GT1VSQ0MoJ2wn
LCdwJywnYycsJ20nKQotICNkZWZpbmUgRk9VUkNDX2F2MDEgICAgIEdTVF9NQUtFX0ZPVVJDQygn
YScsJ3YnLCcwJywnMScpCi0gI2RlZmluZSBGT1VSQ0NfYXYxQyAgICAgR1NUX01BS0VfRk9VUkND
KCdhJywndicsJzEnLCdDJykKLSsjZGVmaW5lIEZPVVJDQ19hdjFmICAgICBHU1RfTUFLRV9GT1VS
Q0MoJ2EnLCd2JywnMScsJ2YnKQotKyNkZWZpbmUgRk9VUkNDX2F2MW0gICAgIEdTVF9NQUtFX0ZP
VVJDQygnYScsJ3YnLCcxJywnbScpCi0rI2RlZmluZSBGT1VSQ0NfYXYxcyAgICAgR1NUX01BS0Vf
Rk9VUkNDKCdhJywndicsJzEnLCdzJykKLSsjZGVmaW5lIEZPVVJDQ19hdjFNICAgICBHU1RfTUFL
RV9GT1VSQ0MoJ2EnLCd2JywnMScsJ00nKQotIAotICNkZWZpbmUgRk9VUkNDX2NmaGQgICAgIEdT
VF9NQUtFX0ZPVVJDQygnQycsJ0YnLCdIJywnRCcpCi0gI2RlZmluZSBGT1VSQ0NfYXA0eCAgICAg
R1NUX01BS0VfRk9VUkNDKCdhJywncCcsJzQnLCd4JykKLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0
L3F0ZGVtdXhfdHlwZXMuYyBiL2dzdC9pc29tcDQvcXRkZW11eF90eXBlcy5jCi1pbmRleCA2OGY5
OGJkNDUuLjlhYjJlN2UzZSAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eF90eXBlcy5j
Ci0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXhfdHlwZXMuYwotQEAgLTIxNSw2ICsyMTUsMTEgQEAg
c3RhdGljIGNvbnN0IFF0Tm9kZVR5cGUgcXRfbm9kZV90eXBlc1tdID0gewotICAge0ZPVVJDQ19z
dHBwLCAiWE1MIHN1YnRpdGxlIHNhbXBsZSBlbnRyeSIsIDB9LAotICAge0ZPVVJDQ19jbGNwLCAi
Q2xvc2VkIENhcHRpb24iLCAwfSwKLSAgIHtGT1VSQ0NfYXYwMSwgIkFWMSBTYW1wbGUgRW50cnki
LCAwfSwKLSsgIHtGT1VSQ0NfYXYxQywgIkFWMSBDb2RlYyBDb25maWd1cmF0aW9uIiwgMH0sCi0r
ICB7Rk9VUkNDX2F2MWYsICJBVjEgRm9yd2FyZCBLZXkgRnJhbWUgc2FtcGxlIGdyb3VwIGVudHJ5
IiwgMH0sCi0rICB7Rk9VUkNDX2F2MW0sICJBVjEgTXVsdGktRnJhbWUgc2FtcGxlIGdyb3VwIGVu
dHJ5IiwgMH0sCi0rICB7Rk9VUkNDX2F2MXMsICJBVjEgUy1GcmFtZSBzYW1wbGUgZ3JvdXAgZW50
cnkiLCAwfSwKLSsgIHtGT1VSQ0NfYXYxTSwgIkFWMSBNZXRhZGF0YSBzYW1wbGUgZ3JvdXAgZW50
cnkiLCAwfSwKLSAgIHswLCAidW5rbm93biIsIDAsfSwKLSB9OwotIAotLS0gCi0yLjE4LjAKLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDEx
LW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWluLW0ucGF0
Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTEtbWF0cm9z
a2EtQWRkLXRoZS1XZWJNLWVuY3J5cHRlZC1jb250ZW50LXN1cHBvcnQtaW4tbS5wYXRjaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQzMGJkYzIyOTAyODU0MzRiNzFkOTQ1M2M5MGRm
NzM0OGRlMTZlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTEtbWF0cm9za2Et
QWRkLXRoZS1XZWJNLWVuY3J5cHRlZC1jb250ZW50LXN1cHBvcnQtaW4tbS5wYXRjaAorKysgL2Rl
di9udWxsCkBAIC0xLDg0MiArMCwwIEBACi1Gcm9tIDY5ZDg5NmEwMmFjZWY1Y2RhOWQ3MjdmNDY4
MThiZjAyMjFmYjgyZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBZYWNpbmUgQmFu
ZG91IDx5YWNpbmUuYmFuZG91QHNvZnRhdGhvbWUuY29tPgotRGF0ZTogU3VuLCAzMCBTZXAgMjAx
OCAxOToyODowNyArMDIwMAotU3ViamVjdDogW1BBVENIXSBtYXRyb3NrYTogQWRkIHRoZSBXZWJN
IGVuY3J5cHRlZCBjb250ZW50IHN1cHBvcnQgaW4KLSBtYXRyb3NrYWRlbXV4Ci0KLVRoaXMgY29t
bWl0OgotCi0xLiBSZWFkcyB0aGUgV2ViTSBhbmQgTWF0cm9za2EgQ29udGVudEVuY3J5cHRpb24g
c3ViZWxlbWVudHMuCi0KLTIuIENyZWF0ZXMgYSBHU1RfUFJPVEVDVElPTiBldmVudCBmb3IgZWFj
aCBDb250ZW50RW5jcnlwdGlvbiwgd2hpY2gKLSAgIHdpbGwgYmUgc2VudCBiZWZvcmUgcHVzaGlu
ZyB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZlci4KLSAgIFRoZSBEUk0gc3lzdGVtIGlkIGZpZWxkIGlu
IHRoaXMgZXZlbnQgaXMgc2V0IHRvIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9J
RCwKLSAgIGJlY2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRoZXIgYnkgTWF0cm9za2Egbm9y
IGJ5IHRoZSBXZWJNIHNwZWMuCi0KLTMuIFJlYWRzIHRoZSBwcm90ZWN0aW9uIGluZm9ybWF0aW9u
IG9mIGVuY3J5cHRlZCBCbG9jay9TaW1wbGVCbG9jayBhbmQKLSAgIGV4dHJhY3RzIHRoZSBJViBh
bmQgdGhlIHBhcnRpdGlvbmluZyBmb3JtYXQgKHN1YnNhbXBsZXMpLgotCi00LiBDcmVhdGVzIHRo
ZSBtZXRhZGF0YSBwcm90ZWN0aW9uIGZvciBlYWNoIGVuY3J5cHRlZCBCbG9jay9TaW1wbGVCbG9j
aywKLSAgIHdpdGggdGhvc2UgaW5mb3JtYXRpb25zOiBLZXlJRCAoZXh0cmFjdGVkIGZyb20gQ29u
dGVudEVuY3J5cHRpb24gZWxlbWVudCksCi0gICBJViBhbmQgcGFydGl0aW9uaW5nIGZvcm1hdC4K
LQotNS4gQWRkcyBhIG5ldyBjYXBzIGZvciBXZWJNIGVuY3J5cHRlZCBjb250ZW50IG5hbWVkICJh
cHBsaWNhdGlvbi94LXdlYm0tZW5jIiwKLSAgIHdpdGggdGhlIGZvbGxvd2luZyBuZXcgZmllbGRz
OgotCi0gICAiZW5jcnlwdGlvbi1hbGdvcml0aG0iOiBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0g
dXNlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogIk5vbmUiLCAiREVTIiwg
IjNERVMiLCAiVHdvZmlzaCIsICJCbG93ZmlzaCIsICJBRVMiLgotCi0gICAiZW5jb2Rpbmctc2Nv
cGUiOiBUaGUgZmllbGQgdGhhdCBkZXNjcmliZXMgd2hpY2ggRWxlbWVudHMgaGF2ZSBiZWVuIG1v
ZGlmaWVkLgotICAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiAiZnJhbWUiLCAiY29kZWMtZGF0
YSIsICJuZXh0LWNvbnRlbnQiLgotCi0gICAiY2lwaGVyLW1vZGUiOiBUaGUgY2lwaGVyIG1vZGUg
dXNlZCBpbiB0aGUgZW5jcnlwdGlvbi4KLSAgICAgICAgICAgICAgICAgIFZhbHVlczogIk5vbmUi
LCAiQ1RSIi4KLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NTI3NQotLS0tCi0gZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMgICAgICAgfCAxMjIgKysr
KysrKysrKysrLQotIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYyAgICAgICAgIHwgIDczICsr
KysrKysrCi0gZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oICAgICAgICAgfCAgNTMgKysrKysr
Ci0gZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMgfCAzNTQgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKy0tCi0gZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29t
bW9uLmggfCAgIDMgKwotIDUgZmlsZXMgY2hhbmdlZCwgNTg2IGluc2VydGlvbnMoKyksIDE5IGRl
bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMg
Yi9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwotaW5kZXggNjgzMzgwYmJmLi4xZWY3YjQy
Y2MgMTAwNjQ0Ci0tLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwotKysrIGIvZ3N0
L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKLUBAIC0xNzMsNiArMTczLDkgQEAgc3RhdGljIEdz
dENhcHMgKmdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzIChHc3RNYXRyb3NrYVRyYWNrQXVk
aW9Db250ZXh0Ci0gc3RhdGljIEdzdENhcHMKLSAgICAgKiBnc3RfbWF0cm9za2FfZGVtdXhfc3Vi
dGl0bGVfY2FwcyAoR3N0TWF0cm9za2FUcmFja1N1YnRpdGxlQ29udGV4dCAqCi0gICAgIHN1YnRp
dGxlY29udGV4dCwgY29uc3QgZ2NoYXIgKiBjb2RlY19pZCwgZ3BvaW50ZXIgZGF0YSwgZ3VpbnQg
c2l6ZSk7Ci0rc3RhdGljIGNvbnN0IGdjaGFyICpnc3RfbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlv
bl9hbGdvcml0aG1fbmFtZSAoZ2ludCB2YWwpOwotK3N0YXRpYyBjb25zdCBnY2hhciAqZ3N0X21h
dHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZSAoZ2ludCB2YWwpOwotK3N0
YXRpYyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX25hbWUg
KGdpbnQgdmFsKTsKLSAKLSAvKiBzdHJlYW0gbWV0aG9kcyAqLwotIHN0YXRpYyB2b2lkIGdzdF9t
YXRyb3NrYV9kZW11eF9yZXNldCAoR3N0RWxlbWVudCAqIGVsZW1lbnQpOwotQEAgLTM1OSwxMiAr
MzYyLDEzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29u
dGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKLSAgIEdzdE1hcEluZm8gbWFwOwotICAg
Z3BvaW50ZXIgZGF0YTsKLSAgIGdzaXplIHNpemU7Ci0rICBHc3RCdWZmZXIgKm91dF9idWYgPSBi
dWY7Ci0gCi0gICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lTX0JVRkZFUiAoYnVmKSwgTlVM
TCk7Ci0gCi0gICBHU1RfREVCVUcgKCJkZWNvZGluZyBidWZmZXIgJXAiLCBidWYpOwotIAotLSAg
Z3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9SRUFEKTsKLSsgIGdzdF9idWZmZXJf
bWFwIChvdXRfYnVmLCAmbWFwLCBHU1RfTUFQX1JFQUQpOwotICAgZGF0YSA9IG1hcC5kYXRhOwot
ICAgc2l6ZSA9IG1hcC5zaXplOwotIAotQEAgLTM3MiwxNSArMzc2LDUzIEBAIGdzdF9tYXRyb3Nr
YV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1
ZmZlciAqIGJ1ZikKLSAKLSAgIGlmIChnc3RfbWF0cm9za2FfZGVjb2RlX2RhdGEgKGNvbnRleHQt
PmVuY29kaW5ncywgJmRhdGEsICZzaXplLAotICAgICAgICAgICBHU1RfTUFUUk9TS0FfVFJBQ0tf
RU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgewotLSAgICBnc3RfYnVmZmVyX3VubWFwIChi
dWYsICZtYXApOwotLSAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOwotLSAgICByZXR1cm4gZ3N0
X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6ZSk7Ci0rICAgIGdzdF9idWZmZXJfdW5tYXAg
KG91dF9idWYsICZtYXApOwotKyAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgewotKyAgICAgIGdz
dF9idWZmZXJfdW5yZWYgKG91dF9idWYpOwotKyAgICAgIG91dF9idWYgPSBnc3RfYnVmZmVyX25l
d193cmFwcGVkIChkYXRhLCBzaXplKTsKLSsgICAgfQotICAgfSBlbHNlIHsKLSAgICAgR1NUX0RF
QlVHICgiZGVjb2RlIGRhdGEgZmFpbGVkIik7Ci0tICAgIGdzdF9idWZmZXJfdW5tYXAgKGJ1Ziwg
Jm1hcCk7Ci0tICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7Ci0rICAgIGdzdF9idWZmZXJfdW5t
YXAgKG91dF9idWYsICZtYXApOwotKyAgICBnc3RfYnVmZmVyX3VucmVmIChvdXRfYnVmKTsKLSAg
ICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0rICAvKiBFbmNyeXB0ZWQgc3RyZWFtICovCi0rICBpZiAo
Y29udGV4dC0+cHJvdGVjdGlvbl9pbmZvKSB7Ci0rCi0rICAgIEdzdFN0cnVjdHVyZSAqaW5mb19w
cm90ZWN0ID0gZ3N0X3N0cnVjdHVyZV9jb3B5IChjb250ZXh0LT5wcm90ZWN0aW9uX2luZm8pOwot
KyAgICBnYm9vbGVhbiBlbmNyeXB0ZWQgPSBGQUxTRTsKLSsKLSsgICAgZ3N0X2J1ZmZlcl9tYXAg
KG91dF9idWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7Ci0rICAgIGRhdGEgPSBtYXAuZGF0YTsKLSsg
ICAgc2l6ZSA9IG1hcC5zaXplOwotKwotKyAgICBpZiAoZ3N0X21hdHJvc2thX3BhcnNlX3Byb3Rl
Y3Rpb25fbWV0YSAoJmRhdGEsICZzaXplLCBpbmZvX3Byb3RlY3QsCi0rICAgICAgICAgICAgJmVu
Y3J5cHRlZCkpIHsKLSsgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKLSsg
ICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgewotKyAgICAgICAgR3N0QnVmZmVyICp0bXBfYnVm
ID0gb3V0X2J1ZjsKLSsgICAgICAgIG91dF9idWYgPQotKyAgICAgICAgICAgIGdzdF9idWZmZXJf
Y29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9CVUZGRVJfQ09QWV9BTEwsCi0rICAgICAgICAgICAg
Z3N0X2J1ZmZlcl9nZXRfc2l6ZSAodG1wX2J1ZikgLSBzaXplLCBzaXplKTsKLSsgICAgICAgIGdz
dF9idWZmZXJfdW5yZWYgKHRtcF9idWYpOwotKyAgICAgICAgaWYgKGVuY3J5cHRlZCkKLSsgICAg
ICAgICAgZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChvdXRfYnVmLCBpbmZvX3Byb3Rl
Y3QpOwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKGluZm9f
cHJvdGVjdCk7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZSAo
aW5mb19wcm90ZWN0KTsKLSsgICAgICB9Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgR1NUX1dBUk5J
TkcgKCJBZGRpbmcgcHJvdGVjdGlvbiBtZXRhZGF0YSBmYWlsZWQiKTsKLSsgICAgICBnc3RfYnVm
ZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKLSsgICAgICBnc3RfYnVmZmVyX3VucmVmIChvdXRf
YnVmKTsKLSsgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKGluZm9fcHJvdGVjdCk7Ci0rICAgICAg
cmV0dXJuIE5VTEw7Ci0rICAgIH0KLSsgIH0KLSsKLSsgIHJldHVybiBvdXRfYnVmOwotIH0KLSAK
LSBzdGF0aWMgdm9pZAotQEAgLTYzMCw2ICs2NzIsOCBAQCBnc3RfbWF0cm9za2FfZGVtdXhfcGFy
c2Vfc3RyZWFtIChHc3RNYXRyb3NrYURlbXV4ICogZGVtdXgsIEdzdEVibWxSZWFkICogZWJtbCwK
LSAgIGNvbnRleHQtPmR0c19vbmx5ID0gRkFMU0U7Ci0gICBjb250ZXh0LT5pbnRyYV9vbmx5ID0g
RkFMU0U7Ci0gICBjb250ZXh0LT50YWdzID0gZ3N0X3RhZ19saXN0X25ld19lbXB0eSAoKTsKLSsg
IGdfcXVldWVfaW5pdCAoJmNvbnRleHQtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOwotKyAgY29u
dGV4dC0+cHJvdGVjdGlvbl9pbmZvID0gTlVMTDsKLSAKLSAgIEdTVF9ERUJVR19PQkpFQ1QgKGRl
bXV4LCAiUGFyc2luZyBhIFRyYWNrRW50cnkgKCVkIHRyYWNrcyBwYXJzZWQgc28gZmFyKSIsCi0g
ICAgICAgZGVtdXgtPmNvbW1vbi5udW1fc3RyZWFtcyk7Ci1AQCAtMTQ2Nyw2ICsxNTExLDMxIEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9zdHJlYW0gKEdzdE1hdHJvc2thRGVtdXggKiBkZW11
eCwgR3N0RWJtbFJlYWQgKiBlYm1sLAotICAgICAgICAgY29udGV4dC0+c3RyZWFtX2hlYWRlcnMs
IGNhcHMpOwotICAgfQotIAotKyAgaWYgKGNvbnRleHQtPmVuY29kaW5ncykgewotKyAgICBHc3RN
YXRyb3NrYVRyYWNrRW5jb2RpbmcgKmVuYzsKLSsgICAgZ3VpbnQgaTsKLSsKLSsgICAgZm9yIChp
ID0gMDsgaSA8IGNvbnRleHQtPmVuY29kaW5ncy0+bGVuOyBpKyspIHsKLSsgICAgICBlbmMgPSAm
Z19hcnJheV9pbmRleCAoY29udGV4dC0+ZW5jb2RpbmdzLCBHc3RNYXRyb3NrYVRyYWNrRW5jb2Rp
bmcsIGkpOwotKyAgICAgIGlmIChlbmMtPnR5cGUgPT0gR1NUX01BVFJPU0tBX0VOQ09ESU5HX0VO
Q1JZUFRJT04gLyogZW5jcnlwdGlvbiAqLyApIHsKLSsgICAgICAgIEdzdFN0cnVjdHVyZSAqcyA9
IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKGNhcHMsIDApOwotKyAgICAgICAgaWYgKCFnc3Rfc3Ry
dWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRpb24veC13ZWJtLWVuYyIpKSB7Ci0rICAgICAg
ICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAib3JpZ2luYWwtbWVkaWEtdHlwZSIsIEdfVFlQRV9T
VFJJTkcsCi0rICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX2dldF9uYW1lIChzKSwgTlVMTCk7
Ci0rICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAiZW5jcnlwdGlvbi1hbGdvcml0aG0i
LCBHX1RZUEVfU1RSSU5HLAotKyAgICAgICAgICAgICAgZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5
cHRpb25fYWxnb3JpdGhtX25hbWUgKGVuYy0+ZW5jX2FsZ28pLAotKyAgICAgICAgICAgICAgTlVM
TCk7Ci0rICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAiZW5jb2Rpbmctc2NvcGUiLCBH
X1RZUEVfU1RSSU5HLAotKyAgICAgICAgICAgICAgZ3N0X21hdHJvc2thX3RyYWNrX2VuY29kaW5n
X3Njb3BlX25hbWUgKGVuYy0+c2NvcGUpLCBOVUxMKTsKLSsgICAgICAgICAgZ3N0X3N0cnVjdHVy
ZV9zZXQgKHMsICJjaXBoZXItbW9kZSIsIEdfVFlQRV9TVFJJTkcsCi0rICAgICAgICAgICAgICBn
c3RfbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJfbW9kZV9uYW1lCi0rICAgICAgICAg
ICAgICAoZW5jLT5lbmNfY2lwaGVyX21vZGUpLCBOVUxMKTsKLSsgICAgICAgICAgZ3N0X3N0cnVj
dHVyZV9zZXRfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtd2VibS1lbmMiKTsKLSsgICAgICAgIH0K
LSsgICAgICB9Ci0rICAgIH0KLSsgIH0KLSsKLSAgIGNvbnRleHQtPmNhcHMgPSBjYXBzOwotIAot
ICAgLyogdGFkYWFoISAqLwotQEAgLTQxODUsNiArNDI1NCw3IEBAIGdzdF9tYXRyb3NrYV9kZW11
eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrIChHc3RNYXRyb3NrYURlbXV4ICogZGVt
dXgsCi0gICAgIGdib29sZWFuIGRlbHRhX3VuaXQgPSBGQUxTRTsKLSAgICAgZ3VpbnQ2NCBkdXJh
dGlvbiA9IDA7Ci0gICAgIGdpbnQ2NCBsYWNlX3RpbWUgPSAwOwotKyAgICBHc3RFdmVudCAqcHJv
dGVjdF9ldmVudDsKLSAKLSAgICAgc3RyZWFtID0gZ19wdHJfYXJyYXlfaW5kZXggKGRlbXV4LT5j
b21tb24uc3JjLCBzdHJlYW1fbnVtKTsKLSAKLUBAIC00MjA0LDYgKzQyNzQsMTIgQEAgZ3N0X21h
dHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2sgKEdzdE1hdHJvc2th
RGVtdXggKiBkZW11eCwKLSAgICAgfSBlbHNlIHsKLSAgICAgICBsYWNlX3RpbWUgPSBHU1RfQ0xP
Q0tfVElNRV9OT05FOwotICAgICB9Ci0rICAgIC8qIFNlbmQgdGhlIEdTVF9QUk9URUNUSU9OIGV2
ZW50ICovCi0rICAgIHdoaWxlICgocHJvdGVjdF9ldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKCZz
dHJlYW0tPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpKSkgewotKyAgICAgIEdTVF9UUkFDRV9PQkpF
Q1QgKGRlbXV4LCAicHVzaGluZyBwcm90ZWN0aW9uIGV2ZW50IGZvciBzdHJlYW0gJWQ6JXMiLAot
KyAgICAgICAgICBzdHJlYW0tPmluZGV4LCBHU1RfU1RSX05VTEwgKHN0cmVhbS0+bmFtZSkpOwot
KyAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5wYWQsIHByb3RlY3RfZXZlbnQpOwot
KyAgICB9Ci0gCi0gICAgIC8qIG5lZWQgdG8gcmVmcmVzaCBzZWdtZW50IGluZm8gQVNBUCAqLwot
ICAgICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgKGxhY2VfdGltZSkgJiYgZGVtdXgtPm5l
ZWRfc2VnbWVudCkgewotQEAgLTUzNTAsNiArNTQyNiw5IEBAIGdzdF9tYXRyb3NrYV9kZW11eF9w
YXJzZV9pZCAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBndWludDMyIGlkLAotICAgICAgICAg
fQotICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfUE9TSVRJT046Ci0gICAgICAgICBjYXNl
IEdTVF9NQVRST1NLQV9JRF9FTkNSWVBURURCTE9DSzoKLSsgICAgICAgICAgLyogVGhlIFdlYk0g
ZG9lc24ndCBzdXBwb3J0IHRoZSBFbmNyeXB0ZWRCbG9jayBlbGVtZW50LgotKyAgICAgICAgICAg
KiBUaGUgTWF0cm9za2Egc3BlYyBkb2Vzbid0IGdpdmUgdXMgbW9yZSBkZXRhaWwsIGhvdyB0byBw
YXJzZSB0aGlzIGVsZW1lbnQsCi0rICAgICAgICAgICAqIGZvciBleGFtcGxlIHRoZSBmaWVsZCBU
cmFuc2Zvcm1JRCBpc24ndCBzcGVjaWZpZWQgeWV0LiovCi0gICAgICAgICBjYXNlIEdTVF9NQVRS
T1NLQV9JRF9TSUxFTlRUUkFDS1M6Ci0gICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4
LAotICAgICAgICAgICAgICAgIlNraXBwaW5nIENsdXN0ZXIgc3ViZWxlbWVudCAweCV4IC0gaWdu
b3JpbmciLCBpZCk7Ci1AQCAtNjkxNSw2ICs2OTk0LDM3IEBAIGdzdF9tYXRyb3NrYV9kZW11eF9n
ZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsCi0gICB9Ci0gfQotIAotK3N0YXRpYyBjb25z
dCBnY2hhciAqCi0rZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX25hbWUg
KGdpbnQgdmFsKQotK3sKLSsgIEdFbnVtVmFsdWUgKmVuOwotKyAgR0VudW1DbGFzcyAqZW51bV9j
bGFzcyA9Ci0rICAgICAgZ190eXBlX2NsYXNzX3JlZiAoTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElP
Tl9BTEdPUklUSE1fVFlQRSk7Ci0rICBlbiA9IGdfZW51bV9nZXRfdmFsdWUgKEdfRU5VTV9DTEFT
UyAoZW51bV9jbGFzcyksIHZhbCk7Ci0rICByZXR1cm4gZW4gPyBlbi0+dmFsdWVfbmljayA6IE5V
TEw7Ci0rfQotKwotK3N0YXRpYyBjb25zdCBnY2hhciAqCi0rZ3N0X21hdHJvc2thX3RyYWNrX2Vu
Y3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZSAoZ2ludCB2YWwpCi0rewotKyAgR0VudW1WYWx1ZSAq
ZW47Ci0rICBHRW51bUNsYXNzICplbnVtX2NsYXNzID0KLSsgICAgICBnX3R5cGVfY2xhc3NfcmVm
IChNQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX1RZUEUpOwotKyAgZW4gPSBn
X2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1fQ0xBU1MgKGVudW1fY2xhc3MpLCB2YWwpOwotKyAgcmV0
dXJuIGVuID8gZW4tPnZhbHVlX25pY2sgOiBOVUxMOwotK30KLSsKLStzdGF0aWMgY29uc3QgZ2No
YXIgKgotK2dzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9uYW1lIChnaW50IHZhbCkK
LSt7Ci0rICBHRW51bVZhbHVlICplbjsKLSsgIEdFbnVtQ2xhc3MgKmVudW1fY2xhc3MgPQotKyAg
ICAgIGdfdHlwZV9jbGFzc19yZWYgKE1BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX1RZUEUp
OwotKwotKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1fQ0xBU1MgKGVudW1fY2xhc3Mp
LCB2YWwpOwotKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25pY2sgOiBOVUxMOwotK30KLSsKLSBn
Ym9vbGVhbgotIGdzdF9tYXRyb3NrYV9kZW11eF9wbHVnaW5faW5pdCAoR3N0UGx1Z2luICogcGx1
Z2luKQotIHsKLWRpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMgYi9nc3Qv
bWF0cm9za2EvbWF0cm9za2EtaWRzLmMKLWluZGV4IDNiZTNkMjc2Yi4uYjk2NDA0Mzg2IDEwMDY0
NAotLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jCi0rKysgYi9nc3QvbWF0cm9za2Ev
bWF0cm9za2EtaWRzLmMKLUBAIC0zNTEsNSArMzUxLDc4IEBAIGdzdF9tYXRyb3NrYV90cmFja19m
cmVlIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIHRyYWNrKQotICAgaWYgKHRyYWNrLT5zdHJl
YW1faGVhZGVycykKLSAgICAgZ3N0X2J1ZmZlcl9saXN0X3VucmVmICh0cmFjay0+c3RyZWFtX2hl
YWRlcnMpOwotIAotKyAgZ19xdWV1ZV9mb3JlYWNoICgmdHJhY2stPnByb3RlY3Rpb25fZXZlbnRf
cXVldWUsIChHRnVuYykgZ3N0X2V2ZW50X3VucmVmLAotKyAgICAgIE5VTEwpOwotKyAgZ19xdWV1
ZV9jbGVhciAoJnRyYWNrLT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKLSsKLSsgIGlmICh0cmFj
ay0+cHJvdGVjdGlvbl9pbmZvKQotKyAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKHRyYWNrLT5wcm90
ZWN0aW9uX2luZm8pOwotKwotICAgZ19mcmVlICh0cmFjayk7Ci0gfQotKwotK0dUeXBlCi0rbWF0
cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fZ2V0X3R5cGUgKHZvaWQpCi0rewotKyAg
c3RhdGljIEdUeXBlIHR5cGUgPSAwOwotKwotKyAgc3RhdGljIGNvbnN0IEdFbnVtVmFsdWUgdHlw
ZXNbXSA9IHsKLSsgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9O
T05FLCAiTm90IGVuY3J5cHRlZCIsCi0rICAgICAgICAiTm9uZSJ9LAotKyAgICB7R1NUX01BVFJP
U0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0RFUywgIkRFUyBlbmNyeXB0aW9uIGFsZ29y
aXRobSIsCi0rICAgICAgICAiREVTIn0sCi0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQ
VElPTl9BTEdPUklUSE1fM0RFUywgIjNERVMgZW5jcnlwdGlvbiBhbGdvcml0aG0iLAotKyAgICAg
ICAgIjNERVMifSwKLSsgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRI
TV9UV09GSVNILAotKyAgICAgICAgIlR3b0Zpc2ggZW5jcnlwdGlvbiBhbGdvcml0aG0iLCAiVHdv
RmlzaCJ9LAotKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0JM
T1dGSVNILAotKyAgICAgICAgIkJsb3dGaXNoIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwgIkJsb3dG
aXNoIn0sCi0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQUVT
LCAiQUVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwKLSsgICAgICAgICJBRVMifSwKLSsgICAgezAs
IE5VTEwsIE5VTEx9Ci0rICB9OwotKwotKyAgaWYgKCF0eXBlKSB7Ci0rICAgIHR5cGUgPSBnX2Vu
dW1fcmVnaXN0ZXJfc3RhdGljICgiTWF0cm9za2FUcmFja0VuY3J5cHRpb25BbGdvcml0aG0iLCB0
eXBlcyk7Ci0rICB9Ci0rICByZXR1cm4gdHlwZTsKLSt9Ci0rCi0rR1R5cGUKLSttYXRyb3NrYV90
cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX2dldF90eXBlICh2b2lkKQotK3sKLSsgIHN0YXRp
YyBHVHlwZSB0eXBlID0gMDsKLSsKLSsgIHN0YXRpYyBjb25zdCBHRW51bVZhbHVlIHR5cGVzW10g
PSB7Ci0rICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9DSVBIRVJfTU9ERV9OT05F
LCAiTm90IGRlZmluZWQiLAotKyAgICAgICAgIk5vbmUifSwKLSsgICAge0dTVF9NQVRST1NLQV9U
UkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX0NUUiwgIkNUUiBlbmNyeXB0aW9uIG1vZGUiLAot
KyAgICAgICAgIkNUUiJ9LAotKyAgICB7MCwgTlVMTCwgTlVMTH0KLSsgIH07Ci0rCi0rICBpZiAo
IXR5cGUpIHsKLSsgICAgdHlwZSA9IGdfZW51bV9yZWdpc3Rlcl9zdGF0aWMgKCJNYXRyb3NrYVRy
YWNrRW5jcnlwdGlvbkNpcGhlck1vZGUiLCB0eXBlcyk7Ci0rICB9Ci0rICByZXR1cm4gdHlwZTsK
LSt9Ci0rCi0rR1R5cGUKLSttYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9nZXRfdHlwZSAo
dm9pZCkKLSt7Ci0rICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7Ci0rCi0rICBzdGF0aWMgY29uc3Qg
R0VudW1WYWx1ZSB0eXBlc1tdID0gewotKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5H
X1NDT1BFX0ZSQU1FLCAiRW5jb2Rpbmcgc2NvcGUgZnJhbWUiLCAiZnJhbWUifSwKLSsgICAge0dT
VF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9DT0RFQ19EQVRBLCAiRW5jb2Rpbmcgc2Nv
cGUgY29kZWMgZGF0YSIsCi0rICAgICAgICAiY29kZWMtZGF0YSJ9LAotKyAgICB7R1NUX01BVFJP
U0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX05FWFRfQ09OVEVOVF9FTkNPRElORywKLSsgICAgICAg
ICJFbmNvZGluZyBzY29wZSBuZXh0IGNvbnRlbnQiLCAibmV4dC1jb250ZW50In0sCi0rICAgIHsw
LCBOVUxMLCBOVUxMfQotKyAgfTsKLSsKLSsgIGlmICghdHlwZSkgewotKyAgICB0eXBlID0gZ19l
bnVtX3JlZ2lzdGVyX3N0YXRpYyAoIk1hdHJvc2thVHJhY2tFbmNvZGluZ1Njb3BlIiwgdHlwZXMp
OwotKyAgfQotKyAgcmV0dXJuIHR5cGU7Ci0rfQotZGlmZiAtLWdpdCBhL2dzdC9tYXRyb3NrYS9t
YXRyb3NrYS1pZHMuaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaAotaW5kZXggYzJlNDFl
NTQ5Li45YjI2M2Q4YTEgMTAwNjQ0Ci0tLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmgK
LSsrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaAotQEAgLTE3NSw2ICsxNzUsOSBAQAot
ICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdLRVlJRCAgICAgICAgICAgIDB4NDdF
NAotICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdBTEdPICAgICAgICAgICAgIDB4
NDdFNQotICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdIQVNIQUxHTyAgICAgICAg
IDB4NDdFNgotKy8qIEFkZGVkIGluIFdlYk0gc3BlYyAqLwotKyNkZWZpbmUgR1NUX01BVFJPU0tB
X0lEX0NPTlRFTlRFTkNBRVNTRVRUSU5HUyAgICAgIDB4NDdFNwotKyNkZWZpbmUgR1NUX01BVFJP
U0tBX0lEX0FFU1NFVFRJTkdTQ0lQSEVSTU9ERSAgICAgIDB4NDdFOAotIAotIC8qIElEIGluIHRo
ZSBDVUVzIG1hc3RlciAqLwotICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX1BPSU5URU5UUlkgICAg
ICAgICAgICAgICAgIDB4QkIKLUBAIC01MTYsNiArNTE5LDE3IEBAIHR5cGVkZWYgZW51bSB7Ci0g
ICBHU1RfTUFUUk9TS0FfU1RFUkVPX01PREVfRkJGX1JMICAgICAgPSAweEUKLSB9IEdzdE1hdHJv
c2thU3RlcmVvTW9kZTsKLSAKLSt0eXBlZGVmIGVudW0gewotKyAgR1NUX01BVFJPU0tBX0VOQ09E
SU5HX0NPTVBSRVNTSU9OID0gMHgwMCwKLSsgIEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBU
SU9OICA9IDB4MDEKLSt9IEdzdE1hdHJvc2thRW5jb2RpbmdUeXBlOwotKwotKy8qIFdlYk0gc3Bl
YyAqLwotK3R5cGVkZWYgZW51bSB7Ci0rICBHU1RfTUFUUk9TS0FfQkxPQ0tfRU5DUllQVEVEICAg
PSAweDAxLAotKyAgR1NUX01BVFJPU0tBX0JMT0NLX1BBUlRJVElPTkVEID0gMHgwMgotK30gR3N0
TWF0cm9za2FFbmNyeXB0ZWRCbG9ja0ZsYWdzOwotKwotIHR5cGVkZWYgc3RydWN0IF9Hc3RNYXRy
b3NrYVRyYWNrQ29udGV4dCBHc3RNYXRyb3NrYVRyYWNrQ29udGV4dDsKLSAKLSAvKiBUT0RPOiBj
aGVjayBpZiBhbGwgZmllbGRzIGFyZSB1c2VkICovCi1AQCAtNTQ5LDYgKzU2MywxMSBAQCBzdHJ1
Y3QgX0dzdE1hdHJvc2thVHJhY2tDb250ZXh0IHsKLSAKLSAgIGdib29sZWFuICAgICAgc2V0X2Rp
c2NvbnQ7IC8qIFRSVUUgPSBzZXQgRElTQ09OVCBmbGFnIG9uIG5leHQgYnVmZmVyICovCi0gCi0r
ICAvKiBRdWV1ZSB0byBzYXZlIHRoZSBHU1RfUFJPVEVDVElPTiBldmVudHMgd2hpY2ggd2lsbCBi
ZSBzZW50IGJlZm9yZSB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZlciAqLwotKyAgR1F1ZXVlICAgICAg
ICAgcHJvdGVjdGlvbl9ldmVudF9xdWV1ZTsKLSsgIC8qIFByb3RlY3Rpb24gaW5mb3JtYXRpb24g
c3RydWN0dXJlIHdoaWNoIHdpbGwgYmUgYWRkZWQgaW4gcHJvdGVjdGlvbiBtZXRhZGF0YSBmb3Ig
ZWFjaCBlbmNyeXB0ZWQgYnVmZmVyICovCi0rICBHc3RTdHJ1Y3R1cmUgKiBwcm90ZWN0aW9uX2lu
Zm87Ci0rCi0gICAvKiBTdHJlYW0gaGVhZGVyIGJ1ZmZlciwgdG8gcHV0IGludG8gY2FwcyBhbmQg
c2VuZCBiZWZvcmUgYW55IG90aGVyIGJ1ZmZlcnMgKi8KLSAgIEdzdEJ1ZmZlckxpc3QgKiBzdHJl
YW1faGVhZGVyczsKLSAgIGdib29sZWFuICAgICAgICBzZW5kX3N0cmVhbV9oZWFkZXJzOwotQEAg
LTY1NCw2ICs2NzMsOSBAQCB0eXBlZGVmIGVudW0gewotICAgR1NUX01BVFJPU0tBX1RSQUNLX0VO
Q09ESU5HX1NDT1BFX05FWFRfQ09OVEVOVF9FTkNPRElORyA9ICgxPDwyKQotIH0gR3N0TWF0cm9z
a2FUcmFja0VuY29kaW5nU2NvcGU7Ci0gCi0rI2RlZmluZSBNQVRST1NLQV9UUkFDS19FTkNPRElO
R19TQ09QRV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29wZV9nZXRfdHlwZSgpKQot
K0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX2dldF90eXBlICh2b2lkKTsKLSsK
LSB0eXBlZGVmIGVudW0gewotICAgR1NUX01BVFJPU0tBX1RSQUNLX0NPTVBSRVNTSU9OX0FMR09S
SVRITV9aTElCID0gMCwKLSAgIEdTVF9NQVRST1NLQV9UUkFDS19DT01QUkVTU0lPTl9BTEdPUklU
SE1fQlpMSUIgPSAxLAotQEAgLTY2MSw2ICs2ODMsMzUgQEAgdHlwZWRlZiBlbnVtIHsKLSAgIEdT
VF9NQVRST1NLQV9UUkFDS19DT01QUkVTU0lPTl9BTEdPUklUSE1fSEVBREVSU1RSSVAgPSAzCi0g
fSBHc3RNYXRyb3NrYVRyYWNrQ29tcHJlc3Npb25BbGdvcml0aG07Ci0gCi0rLyogVGhlIGVuY3J5
cHRpb24gYWxnb3JpdGhtIHVzZWQuIFRoZSB2YWx1ZSAnMCcgbWVhbnMgdGhhdCB0aGUgY29udGVu
dHMKLSsgKiBoYXZlIG5vdCBiZWVuIGVuY3J5cHRlZCBidXQgb25seSBzaWduZWQuCi0rICogUHJl
ZGVmaW5lZCB2YWx1ZXM6IDEgLSBERVM7IDIgLSAzREVTOyAzIC0gVHdvZmlzaDsgNCAtIEJsb3dm
aXNoOyA1IC0gQUVTLgotKyAqIFdlYk0gb25seSBzdXBwb3J0cyBhIHZhbHVlIG9mIDUgKEFFUyku
Ci0rICovCi0rdHlwZWRlZiBlbnVtIHsKLSsgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9O
X0FMR09SSVRITV9OT05FICAgICA9IDAsCi0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElP
Tl9BTEdPUklUSE1fREVTICAgICAgPSAxLAotKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJ
T05fQUxHT1JJVEhNXzNERVMgICAgID0gMiwKLSsgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBU
SU9OX0FMR09SSVRITV9UV09GSVNIICA9IDMsCi0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQ
VElPTl9BTEdPUklUSE1fQkxPV0ZJU0ggPSA0LAotKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZ
UFRJT05fQUxHT1JJVEhNX0FFUyAgICAgID0gNQotK30gR3N0TWF0cm9za2FUcmFja0VuY3J5cHRp
b25BbGdvcml0aG07Ci0rCi0rI2RlZmluZSBNQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09S
SVRITV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2FsZ29yaXRobV9nZXRfdHlwZSgp
KQotK0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX2dldF90eXBlICh2
b2lkKTsKLSsKLSsvKiBEZWZpbmVkIG9ubHkgaW4gV2ViTSBzcGVjLgotKyAqIFRoZSBjaXBoZXIg
bW9kZSB1c2VkIGluIHRoZSBlbmNyeXB0aW9uLiBQcmVkZWZpbmVkIHZhbHVlczogMSAtIENUUgot
KyAqLwotK3R5cGVkZWYgZW51bSB7Ci0rICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9D
SVBIRVJfTU9ERV9OT05FICAgID0gMCwKLSsgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9O
X0NJUEhFUl9NT0RFX0NUUiAgICAgPSAxCi0rfSBHc3RNYXRyb3NrYVRyYWNrRW5jcnlwdGlvbkNp
cGhlck1vZGU7Ci0rCi0rI2RlZmluZSBNQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9N
T0RFX1RZUEUgKG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfZ2V0X3R5cGUo
KSkKLStHVHlwZSBtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX2dldF90eXBl
ICh2b2lkKTsKLSsKLSsKLSB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0cm9za2FUcmFja0VuY29kaW5n
IHsKLSAgIGd1aW50ICAgb3JkZXI7Ci0gICBndWludCAgIHNjb3BlICAgICA6IDM7Ci1AQCAtNjY4
LDYgKzcxOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9Hc3RNYXRyb3NrYVRyYWNrRW5jb2Rpbmcgewot
ICAgZ3VpbnQgICBjb21wX2FsZ28gOiAyOwotICAgZ3VpbnQ4ICpjb21wX3NldHRpbmdzOwotICAg
Z3VpbnQgICBjb21wX3NldHRpbmdzX2xlbmd0aDsKLSsgIGd1aW50ICAgZW5jX2FsZ28gIDogMzsK
LSsgIGd1aW50ICAgZW5jX2NpcGhlcl9tb2RlIDogMjsKLSB9IEdzdE1hdHJvc2thVHJhY2tFbmNv
ZGluZzsKLSAKLSBnYm9vbGVhbiBnc3RfbWF0cm9za2FfdHJhY2tfaW5pdF92aWRlb19jb250ZXh0
ICAgIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqKiBwX2NvbnRleHQpOwotZGlmZiAtLWdpdCBh
L2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jIGIvZ3N0L21hdHJvc2thL21hdHJv
c2thLXJlYWQtY29tbW9uLmMKLWluZGV4IDQxOWJhN2Y5NS4uZmZiMzkzYmY5IDEwMDY0NAotLS0t
IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKLSsrKyBiL2dzdC9tYXRyb3Nr
YS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCi1AQCAtMzksNiArMzksNyBAQAotIAotICNpbmNsdWRl
IDxnc3QvdGFnL3RhZy5oPgotICNpbmNsdWRlIDxnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5o
PgotKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RieXRld3JpdGVyLmg+Ci0gCi0gI2luY2x1ZGUgImx6
by5oIgotIAotQEAgLTI2Miw5ICsyNjMsOSBAQCBnc3RfbWF0cm9za2FfZGVjb2RlX2NvbnRlbnRf
ZW5jb2RpbmdzIChHQXJyYXkgKiBlbmNvZGluZ3MpCi0gICAgICAgICA9PSAwKQotICAgICAgIGNv
bnRpbnVlOwotIAotLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQgeWV0ICovCi0tICAg
IGlmIChlbmMtPnR5cGUgIT0gMCkKLS0gICAgICByZXR1cm4gR1NUX0ZMT1dfRVJST1I7Ci0rICAg
IC8qIE90aGVyIHRoYW4gRU5DT0RJTkdfQ09NUFJFU1NJT04gbm90IGhhbmRsZWQgaGVyZSAqLwot
KyAgICBpZiAoZW5jLT50eXBlICE9IEdTVF9NQVRST1NLQV9FTkNPRElOR19DT01QUkVTU0lPTikK
LSsgICAgICBjb250aW51ZTsKLSAKLSAgICAgaWYgKGkgKyAxID49IGVuY29kaW5ncy0+bGVuKQot
ICAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKLUBAIC0zMTIsOSArMzEzLDkgQEAgZ3N0X21h
dHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICogZGF0YV9v
dXQsCi0gICAgIGlmICgoZW5jLT5zY29wZSAmIHNjb3BlKSA9PSAwKQotICAgICAgIGNvbnRpbnVl
OwotIAotLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQgeWV0ICovCi0tICAgIGlmIChl
bmMtPnR5cGUgIT0gMCkgewotLSAgICAgIHJldCA9IEZBTFNFOwotKyAgICAvKiBFbmNyeXB0aW9u
IG5vdCBoYW5kbGVkIGhlcmUgKi8KLSsgICAgaWYgKGVuYy0+dHlwZSAhPSBHU1RfTUFUUk9TS0Ff
RU5DT0RJTkdfQ09NUFJFU1NJT04pIHsKLSsgICAgICByZXQgPSBUUlVFOwotICAgICAgIGJyZWFr
OwotICAgICB9Ci0gCi1AQCAtMzQ5LDYgKzM1MCwyMTEgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9k
YXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICogZGF0YV9vdXQsCi0gICByZXR1cm4g
cmV0OwotIH0KLSAKLSsvKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgcHJvdGVjdGlvbiBpbmZv
IG9mIEJsb2NrL1NpbXBsZUJsb2NrIGFuZCBleHRyYWN0cyB0aGUKLSsgKiBJViBhbmQgcGFydGl0
aW9uaW5nIGZvcm1hdCAoc3Vic2FtcGxlKSBpbmZvcm1hdGlvbi4KLSsgKiBTZXQgdGhvc2UgcGFy
c2VkIGluZm9ybWF0aW9uIGludG8gcHJvdGVjdGlvbiBpbmZvIHN0cnVjdHVyZSBAaW5mb19wcm90
ZWN0IHdoaWNoCi0rICogd2lsbCBiZSBhZGRlZCBpbiBwcm90ZWN0aW9uIG1ldGFkYXRhIG9mIHRo
ZSBHc3RidWZmZXIuCi0rICogVGhlIHN1YnNhbXBsZXMgZm9ybWF0IGZvbGxvd3MgdGhlIHNhbWUg
cHNzaCBib3ggZm9ybWF0IGluIENvbW1vbiBFbmNyeXB0aW9uIHNwZWM6Ci0rICogc3Vic2FtcGxl
IG51bWJlciArIGNsZWFyIHN1YnNhbXBsZSBzaXplICgxNmJpdCBiaWdlbmRpYW4pIHwgZW5jcnlw
dGVkIHN1YnNhbXBsZSBzaXplICgzMmJpdCBiaWdlbmRpYW4pIHwgLi4uCi0rICogQGVuY3J5cHRl
ZCBpcyBhbiBvdXRwdXQgYXJndW1lbnQ6IFRSVUUgaWYgdGhlIGN1cnJlbnQgQmxvY2svU2ltcGxl
QmxvY2sgaXMgZW5jcnlwdGVkIGVsc2UgRkFMU0UKLSsgKi8KLStnYm9vbGVhbgotK2dzdF9tYXRy
b3NrYV9wYXJzZV9wcm90ZWN0aW9uX21ldGEgKGdwb2ludGVyICogZGF0YV9vdXQsIGdzaXplICog
c2l6ZV9vdXQsCi0rICAgIEdzdFN0cnVjdHVyZSAqIGluZm9fcHJvdGVjdCwgZ2Jvb2xlYW4gKiBl
bmNyeXB0ZWQpCi0rewotKyAgZ3VpbnQ4ICpkYXRhOwotKyAgR3N0QnVmZmVyICpidWZfaXY7Ci0r
ICBndWludDggKmRhdGFfaXY7Ci0rICBndWludDggKnN1YnNhbXBsZXM7Ci0rICBndWludDggc2ln
bmFsX2J5dGU7Ci0rICBnaW50IGk7Ci0rICBHc3RCeXRlUmVhZGVyIHJlYWRlcjsKLSsKLSsgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsIChkYXRhX291dCAhPSBOVUxMICYmICpkYXRhX291dCAhPSBOVUxM
LCBGQUxTRSk7Ci0rICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2l6ZV9vdXQgIT0gTlVMTCwgRkFM
U0UpOwotKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGluZm9fcHJvdGVjdCAhPSBOVUxMLCBGQUxT
RSk7Ci0rICBnX3JldHVybl92YWxfaWZfZmFpbCAoZW5jcnlwdGVkICE9IE5VTEwsIEZBTFNFKTsK
LSsKLSsgICplbmNyeXB0ZWQgPSBGQUxTRTsKLSsgIGRhdGEgPSAqZGF0YV9vdXQ7Ci0rICBnc3Rf
Ynl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgZGF0YSwgKnNpemVfb3V0KTsKLSsKLSsgIC8qIFdl
Yk0gc3BlYzoKLSsgICAqIDQuNyBTaWduYWwgQnl0ZSBGb3JtYXQKLSsgICAqICAwIDEgMiAzIDQg
NSA2IDcKLSsgICAqICstKy0rLSstKy0rLSstKy0rCi0rICAgKiB8WHwgICBSU1YgICB8UHxFfAot
KyAgICogKy0rLSstKy0rLSstKy0rLSsKLSsgICAqCi0rICAgKiBFeHRlbnNpb24gYml0IChYKQot
KyAgICogSWYgc2V0LCBhbm90aGVyIHNpZ25hbCBieXRlIHdpbGwgZm9sbG93IHRoaXMgYnl0ZS4g
UmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24gKGN1cnJlbnRseSBNVVNUIGJlIHNldCB0byAw
KS4KLSsgICAqIFJTViBiaXRzIChSU1YpCi0rICAgKiBCaXRzIHJlc2VydmVkIGZvciBmdXR1cmUg
dXNlLiBNVVNUIGJlIHNldCB0byAwIGFuZCBNVVNUIGJlIGlnbm9yZWQuCi0rICAgKiBFbmNyeXB0
ZWQgYml0IChFKQotKyAgICogSWYgc2V0LCB0aGUgQmxvY2sgTVVTVCBjb250YWluIGFuIElWIGlt
bWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuIGVuY3J5cHRlZCBmcmFtZS4gSWYgbm90IHNldCwgdGhl
IEJsb2NrIE1VU1QgTk9UIGluY2x1ZGUgYW4gSVYgYW5kIHRoZSBmcmFtZSBNVVNUIGJlIHVuZW5j
cnlwdGVkLiBUaGUgdW5lbmNyeXB0ZWQgZnJhbWUgTVVTVCBpbW1lZGlhdGVseSBmb2xsb3cgdGhl
IFNpZ25hbCBCeXRlLgotKyAgICogUGFydGl0aW9uZWQgYml0IChQKQotKyAgICogVXNlZCB0byBp
bmRpY2F0ZSB0aGF0IHRoZSBzYW1wbGUgaGFzIHN1YnNhbXBsZSBwYXJ0aXRpb25zLiBJZiBzZXQs
IHRoZSBJViB3aWxsIGJlIGZvbGxvd2VkIGJ5IGEgbnVtX3BhcnRpdGlvbnMgYnl0ZSwgYW5kIG51
bV9wYXJ0aXRpb25zICogMzItYml0IHBhcnRpdGlvbiBvZmZzZXRzLiBUaGlzIGJpdCBjYW4gb25s
eSBiZSBzZXQgaWYgdGhlIEUgYml0IGlzIGFsc28gc2V0LgotKyAgICovCi0rICBpZiAoIWdzdF9i
eXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZzaWduYWxfYnl0ZSkpIHsKLSsgICAgR1NU
X0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgc2lnbmFsIGJ5dGUiKTsKLSsgICAgcmV0dXJuIEZB
TFNFOwotKyAgfQotKwotKyAgLyogVW5lbmNyeXB0ZWQgYnVmZmVyICovCi0rICBpZiAoIShzaWdu
YWxfYnl0ZSAmIEdTVF9NQVRST1NLQV9CTE9DS19FTkNSWVBURUQpKSB7Ci0rICAgIHJldHVybiBU
UlVFOwotKyAgfQotKwotKyAgLyogRW5jcnlwdGVkIGJ1ZmZlciAqLwotKyAgKmVuY3J5cHRlZCA9
IFRSVUU7Ci0rICAvKiBDcmVhdGUgSVYgYnVmZmVyICovCi0rICBpZiAoIWdzdF9ieXRlX3JlYWRl
cl9kdXBfZGF0YSAoJnJlYWRlciwgc2l6ZW9mIChndWludDY0KSwgJmRhdGFfaXYpKSB7Ci0rICAg
IEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhlIElWIGRhdGEiKTsKLSsgICAgcmV0dXJuIEZB
TFNFOwotKyAgfQotKyAgYnVmX2l2ID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoKGdwb2ludGVy
KSBkYXRhX2l2LCBzaXplb2YgKGd1aW50NjQpKTsKLSsgIGdzdF9zdHJ1Y3R1cmVfc2V0IChpbmZv
X3Byb3RlY3QsICJpdiIsIEdTVF9UWVBFX0JVRkZFUiwgYnVmX2l2LCBOVUxMKTsKLSsgIGdzdF9i
dWZmZXJfdW5yZWYgKGJ1Zl9pdik7Ci0rCi0rICAvKiBQYXJ0aXRpb25lZCBpbiBzdWJzYW1wbGUg
Ki8KLSsgIGlmIChzaWduYWxfYnl0ZSAmIEdTVF9NQVRST1NLQV9CTE9DS19QQVJUSVRJT05FRCkg
ewotKyAgICBndWludCBuYl9zdWJzYW1wbGU7Ci0rICAgIGd1aW50MzIgb2Zmc2V0ID0gMDsKLSsg
ICAgZ3VpbnQzMiBvZmZzZXRfcHJldjsKLSsgICAgZ3VpbnQzMiBlbmNyeXB0ZWRfYnl0ZXMgPSAw
OwotKyAgICBndWludDE2IGNsZWFyX2J5dGVzID0gMDsKLSsgICAgR3N0QnVmZmVyICpidWZfc3Vi
X3NhbXBsZTsKLSsgICAgZ3VpbnQ4IG5iX3BhcnQ7Ci0rICAgIEdzdEJ5dGVXcml0ZXIgd3JpdGVy
OwotKwotKyAgICAvKiBSZWFkIHRoZSBudW1iZXIgb2YgcGFydGl0aW9ucyAoMSBieXRlKSAqLwot
KyAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZuYl9wYXJ0KSkg
ewotKyAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhlIHBhcnRpdGlvbiBudW1iZXIi
KTsKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgICAgaWYgKG5iX3BhcnQgPT0g
MCkgewotKyAgICAgIEdTVF9FUlJPUiAoIlBhcnRpdGlvbmVkLCBidXQgdGhlIHN1YnNhbXBsZSBu
dW1iZXIgZXF1YWwgdG8gemVybyIpOwotKyAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgfQotKwot
KyAgICBuYl9zdWJzYW1wbGUgPSAobmJfcGFydCArIDIpID4+IDE7Ci0rCi0rICAgIGdzdF9zdHJ1
Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJzdWJzYW1wbGVfY291bnQiLCBHX1RZUEVfVUlOVCwK
LSsgICAgICAgIG5iX3N1YnNhbXBsZSwgTlVMTCk7Ci0rCi0rICAgIC8qIFdlYk0gU3BlYzoKLSsg
ICAgICoKLSsgICAgICogNC42IFN1YnNhbXBsZSBFbmNyeXB0ZWQgQmxvY2sgRm9ybWF0Ci0rICAg
ICAqCi0rICAgICAqIFRoZSBTdWJzYW1wbGUgRW5jcnlwdGVkIEJsb2NrIGZvcm1hdCBleHRlbmRz
IHRoZSBGdWxsLXNhbXBsZSBmb3JtYXQgYnkgc2V0dGluZyBhICJwYXJ0aXRpb25lZCIgKFApIGJp
dCBpbiB0aGUgU2lnbmFsIEJ5dGUuCi0rICAgICAqIElmIHRoaXMgYml0IGlzIHNldCwgdGhlIEVu
Y3J5cHRlZEJsb2NrIGhlYWRlciBzaGFsbCBpbmNsdWRlIGFuCi0rICAgICAqIDgtYml0IGludGVn
ZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIHNhbXBsZSBwYXJ0aXRpb25zIChkaXZpZGVycyBi
ZXR3ZWVuIGNsZWFyL2VuY3J5cHRlZCBzZWN0aW9ucyksCi0rICAgICAqIGFuZCBhIHNlcmllcyBv
ZiAzMi1iaXQgaW50ZWdlcnMgaW4gYmlnLWVuZGlhbiBlbmNvZGluZyBpbmRpY2F0aW5nIHRoZSBi
eXRlIG9mZnNldHMgb2Ygc3VjaCBwYXJ0aXRpb25zLgotKyAgICAgKgotKyAgICAgKiAgMCAgICAg
ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgICAgMwot
KyAgICAgKiAgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMg
NCA1IDYgNyA4IDkgMCAxCi0rICAgICAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCi0rICAgICAqIHwgIFNpZ25hbCBCeXRl
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0rICAg
ICAqICstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgIElWICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Ci0rICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0rICAgICAqIHwgICAgICAgICAgICAgICAr
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCi0rICAgICAq
IHwgICAgICAgICAgICAgICB8IG51bV9wYXJ0aXRpb24gfCAgICAgUGFydGl0aW9uIDAgb2Zmc2V0
IC0+ICAgICB8Ci0rICAgICAqIHwtKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy18Ci0rICAgICAqIHwgICAgIC0+IFBhcnRpdGlvbiAw
IG9mZnNldCAgICAgfCAgICAgICAgICAgICAgLi4uICAgICAgICAgICAgICB8Ci0rICAgICAqIHwt
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy18Ci0rICAgICAqIHwgICAgICAgICAgICAgLi4uICAgICAgICAgICAgICAgfCAgICAgUGFy
dGl0aW9uIG4tMSBvZmZzZXQgLT4gICB8Ci0rICAgICAqIHwtKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy18Ci0rICAgICAqIHwgICAg
IC0+IFBhcnRpdGlvbiBuLTEgb2Zmc2V0ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8Ci0rICAgICAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8Ci0rICAgICAqIHwgICAgICAgICAgICAgICAgICAgIENsZWFy
L2VuY3J5cHRlZCBzYW1wbGUgZGF0YSAgICAgICAgICAgICAgICB8Ci0rICAgICAqIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Ci0rICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8Ci0rICAgICAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCi0rICAgICAqCi0rICAgICAqIDQu
Ni4xIFNBTVBMRSBQQVJUSVRJT05TCi0rICAgICAqCi0rICAgICAqIFRoZSBzYW1wbGVzIHNoYWxs
IGJlIHBhcnRpdGlvbmVkIGludG8gYWx0ZXJuYXRpbmcgY2xlYXIgYW5kIGVuY3J5cHRlZCBzZWN0
aW9ucywKLSsgICAgICogYWx3YXlzIHN0YXJ0aW5nIHdpdGggYSBjbGVhciBzZWN0aW9uLgotKyAg
ICAgKiBHZW5lcmFsbHkgZm9yIG4gY2xlYXIvZW5jcnlwdGVkIHNlY3Rpb25zIHRoZXJlIHNoYWxs
IGJlIG4tMSBwYXJ0aXRpb24gb2Zmc2V0cy4KLSsgICAgICogSG93ZXZlciwgaWYgaXQgaXMgcmVx
dWlyZWQgdGhhdCB0aGUgZmlyc3Qgc2VjdGlvbiBiZSBlbmNyeXB0ZWQsIHRoZW4gdGhlIGZpcnN0
IHBhcnRpdGlvbiBzaGFsbCBiZSBhdCBieXRlIG9mZnNldCAwCi0rICAgICAqIChpbmRpY2F0aW5n
IGEgemVyby1zaXplIGNsZWFyIHNlY3Rpb24pLCBhbmQgdGhlcmUgc2hhbGwgYmUgbiBwYXJ0aXRp
b24gb2Zmc2V0cy4KLSsgICAgICogUGxlYXNlIHJlZmVyIHRvIHRoZSAiU2FtcGxlIEVuY3J5cHRp
b24iIGRlc2NyaXB0aW9uIG9mIHRoZSAiQ29tbW9uIEVuY3J5cHRpb24iCi0rICAgICAqIHNlY3Rp
b24gb2YgdGhlIFZQIENvZGVjIElTTyBNZWRpYSBGaWxlIEZvcm1hdCBCaW5kaW5nIFNwZWNpZmlj
YXRpb24gZm9yIG1vcmUKLSsgICAgICogZGV0YWlsIG9uIGhvdyBzdWJzYW1wbGUgZW5jcnlwdGlv
biBpcyBpbXBsZW1lbnRlZC4KLSsgICAgICovCi0rICAgIHN1YnNhbXBsZXMgPQotKyAgICAgICAg
Z19tYWxsb2MgKG5iX3N1YnNhbXBsZSAqIChzaXplb2YgKGd1aW50MTYpICsgc2l6ZW9mIChndWlu
dDMyKSkpOwotKwotKyAgICBnc3RfYnl0ZV93cml0ZXJfaW5pdF93aXRoX2RhdGEgKCZ3cml0ZXIs
IHN1YnNhbXBsZXMsCi0rICAgICAgICBuYl9zdWJzYW1wbGUgKiAoc2l6ZW9mIChndWludDE2KSAr
IHNpemVvZiAoZ3VpbnQzMikpLCBGQUxTRSk7Ci0rCi0rICAgIGZvciAoaSA9IDA7IGkgPD0gbmJf
cGFydDsgaSsrKSB7Ci0rICAgICAgb2Zmc2V0X3ByZXYgPSBvZmZzZXQ7Ci0rICAgICAgaWYgKGkg
PT0gbmJfcGFydCkgewotKyAgICAgICAgb2Zmc2V0ID0gZ3N0X2J5dGVfcmVhZGVyX2dldF9yZW1h
aW5pbmcgKCZyZWFkZXIpOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAoIWdzdF9ieXRl
X3JlYWRlcl9nZXRfdWludDMyX2JlICgmcmVhZGVyLCAmb2Zmc2V0KSkgewotKyAgICAgICAgICBH
U1RfRVJST1IgKCJFcnJvciByZWFkaW5nIHRoZSBwYXJ0aXRpb24gb2Zmc2V0Iik7Ci0rICAgICAg
ICAgIGdvdG8gcmVsZWFzZV9lcnI7Ci0rICAgICAgICB9Ci0rICAgICAgfQotKwotKyAgICAgIGlm
IChvZmZzZXQgPCBvZmZzZXRfcHJldikgewotKyAgICAgICAgR1NUX0VSUk9SICgiUGFydGl0aW9u
IG9mZnNldHMgc2hvdWxkIG5vdCBkZWNyZWFzZSIpOwotKyAgICAgICAgZ290byByZWxlYXNlX2Vy
cjsKLSsgICAgICB9Ci0rCi0rICAgICAgaWYgKGkgJSAyID09IDApIHsKLSsgICAgICAgIGlmICgo
b2Zmc2V0IC0gb2Zmc2V0X3ByZXYpICYgMHhGRkZGMDAwMCkgewotKyAgICAgICAgICBHU1RfRVJS
T1IKLSsgICAgICAgICAgICAgICgiVGhlIENsZWFyIFBhcnRpdGlvbiBleGNlZWQgNjRLQiBpbiBl
bmNyeXB0ZWQgc3Vic2FtcGxlIGZvcm1hdCIpOwotKyAgICAgICAgICBnb3RvIHJlbGVhc2VfZXJy
OwotKyAgICAgICAgfQotKyAgICAgICAgLyogV2Ugc2V0IHRoZSBDbGVhciBwYXJ0aXRpb24gc2l6
ZSBpbiAxNiBiaXRzLCBpbiBvcmRlciB0bwotKyAgICAgICAgICogZm9sbG93IHRoZSBzYW1lIGZv
cm1hdCBvZiB0aGUgYm94IFBTU0ggaW4gQ0VOQyBzcGVjICovCi0rICAgICAgICBjbGVhcl9ieXRl
cyA9IG9mZnNldCAtIG9mZnNldF9wcmV2OwotKyAgICAgICAgaWYgKGkgPT0gbmJfcGFydCkKLSsg
ICAgICAgICAgZW5jcnlwdGVkX2J5dGVzID0gMDsKLSsgICAgICB9IGVsc2UgewotKyAgICAgICAg
ZW5jcnlwdGVkX2J5dGVzID0gb2Zmc2V0IC0gb2Zmc2V0X3ByZXY7Ci0rICAgICAgfQotKwotKyAg
ICAgIGlmICgoaSAlIDIgPT0gMSkgfHwgKGkgPT0gbmJfcGFydCkpIHsKLSsgICAgICAgIGlmIChj
bGVhcl9ieXRlcyA9PSAwICYmIGVuY3J5cHRlZF9ieXRlcyA9PSAwKSB7Ci0rICAgICAgICAgIEdT
VF9FUlJPUiAoIkZvdW5kIDIgcGFydGl0aW9ucyB3aXRoIHRoZSBzYW1lIG9mZnNldHMuIik7Ci0r
ICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoIWdz
dF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlICgmd3JpdGVyLCBjbGVhcl9ieXRlcykpIHsKLSsg
ICAgICAgICAgR1NUX0VSUk9SICgiRXJyb3Igd3JpdGluZyB0aGUgbnVtYmVyIG9mIGNsZWFyIGJ5
dGVzIik7Ci0rICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7Ci0rICAgICAgICB9Ci0rICAgICAg
ICBpZiAoIWdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlICgmd3JpdGVyLCBlbmNyeXB0ZWRf
Ynl0ZXMpKSB7Ci0rICAgICAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHdyaXRpbmcgdGhlIG51bWJl
ciBvZiBlbmNyeXB0ZWQgYnl0ZXMiKTsKLSsgICAgICAgICAgZ290byByZWxlYXNlX2VycjsKLSsg
ICAgICAgIH0KLSsgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgYnVmX3N1Yl9zYW1wbGUgPQotKyAg
ICAgICAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoc3Vic2FtcGxlcywKLSsgICAgICAgIG5iX3N1
YnNhbXBsZSAqIChzaXplb2YgKGd1aW50MTYpICsgc2l6ZW9mIChndWludDMyKSkpOwotKyAgICBn
c3Rfc3RydWN0dXJlX3NldCAoaW5mb19wcm90ZWN0LCAic3Vic2FtcGxlcyIsIEdTVF9UWVBFX0JV
RkZFUiwKLSsgICAgICAgIGJ1Zl9zdWJfc2FtcGxlLCBOVUxMKTsKLSsgICAgZ3N0X2J1ZmZlcl91
bnJlZiAoYnVmX3N1Yl9zYW1wbGUpOwotKyAgfSBlbHNlIHsKLSsgICAgZ3N0X3N0cnVjdHVyZV9z
ZXQgKGluZm9fcHJvdGVjdCwgInN1YnNhbXBsZV9jb3VudCIsIEdfVFlQRV9VSU5ULCAwLCBOVUxM
KTsKLSsgIH0KLSsKLSsgIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSAoJnJlYWRlciwgMCwgKGNv
bnN0IGd1aW50OCAqKikgZGF0YV9vdXQpOwotKyAgKnNpemVfb3V0ID0gZ3N0X2J5dGVfcmVhZGVy
X2dldF9yZW1haW5pbmcgKCZyZWFkZXIpOwotKyAgcmV0dXJuIFRSVUU7Ci0rCi0rcmVsZWFzZV9l
cnI6Ci0rICBnX2ZyZWUgKHN1YnNhbXBsZXMpOwotKyAgcmV0dXJuIEZBTFNFOwotK30KLSsKLSBz
dGF0aWMgZ2ludAotIGdzdF9tYXRyb3NrYV9pbmRleF9jb21wYXJlIChHc3RNYXRyb3NrYUluZGV4
ICogaTEsIEdzdE1hdHJvc2thSW5kZXggKiBpMikKLSB7Ci1AQCAtMjc0NCw5ICsyOTUwLDExIEBA
IGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNrX2VuY29kaW5nIChHc3RNYXRyb3Nr
YVJlYWRDb21tb24gKiBjb21tb24sCi0gICAgICAgICAgICAgICBHX0dVSU5UNjRfRk9STUFULCBu
dW0pOwotICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKLSAgICAgICAgICAgYnJlYWs7
Ci0tICAgICAgICB9IGVsc2UgaWYgKG51bSAhPSAwKSB7Ci0rICAgICAgICB9Ci0rCi0rICAgICAg
ICBpZiAoKCFjb21tb24tPmlzX3dlYm0pICYmIChudW0gPT0gR1NUX01BVFJPU0tBX0VOQ09ESU5H
X0VOQ1JZUFRJT04pKSB7Ci0gICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+c2lu
a3BhZCwKLS0gICAgICAgICAgICAgICJFbmNyeXB0ZWQgdHJhY2tzIGFyZSBub3Qgc3VwcG9ydGVk
IHlldCIpOwotKyAgICAgICAgICAgICAgIkVuY3J5cHRlZCB0cmFja3MgYXJlIHN1cHBvcnRlZCBv
bmx5IGluIFdlYk0iKTsKLSAgICAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7Ci0gICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgfQotQEAgLTI4MTIsMTIgKzMwMjAsMTMyIEBAIGdzdF9tYXRy
b3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNrX2VuY29kaW5nIChHc3RNYXRyb3NrYVJlYWRDb21t
b24gKiBjb21tb24sCi0gICAgICAgICBicmVhazsKLSAgICAgICB9Ci0gCi0tICAgICAgY2FzZSBH
U1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ1JZUFRJT046Ci0tICAgICAgICBHU1RfRVJST1JfT0JK
RUNUIChjb21tb24tPnNpbmtwYWQsCi0tICAgICAgICAgICAgIkVuY3J5cHRlZCB0cmFja3Mgbm90
IHlldCBzdXBwb3J0ZWQiKTsKLS0gICAgICAgIGdzdF9lYm1sX3JlYWRfc2tpcCAoZWJtbCk7Ci0t
ICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKLSsgICAgICBjYXNlIEdTVF9NQVRST1NLQV9J
RF9DT05URU5URU5DUllQVElPTjp7Ci0rCi0rICAgICAgICBERUJVR19FTEVNRU5UX1NUQVJUIChj
b21tb24sIGVibWwsICJDb250ZW50RW5jcnlwdGlvbiIpOwotKwotKyAgICAgICAgaWYgKGVuYy50
eXBlICE9IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBUSU9OKSB7Ci0rICAgICAgICAgIEdT
VF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAotKyAgICAgICAgICAgICAgIlVuZXhw
ZWN0ZWQgdG8gaGF2ZSBDb250ZW50IEVuY3J5cHRpb24gYmVjYXVzZSBpdCBpc24ndCBlbmNyeXB0
aW9uIHR5cGUiKTsKLSsgICAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7Ci0rICAgICAgICAg
IGJyZWFrOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9yZWFk
X21hc3RlciAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0spCi0rICAgICAgICAgIGJyZWFrOwot
KwotKyAgICAgICAgd2hpbGUgKHJldCA9PSBHU1RfRkxPV19PSyAmJgotKyAgICAgICAgICAgIGdz
dF9lYm1sX3JlYWRfaGFzX3JlbWFpbmluZyAoZWJtbCwgMSwgVFJVRSkpIHsKLSsgICAgICAgICAg
aWYgKChyZXQgPSBnc3RfZWJtbF9wZWVrX2lkIChlYm1sLCAmaWQpKSAhPSBHU1RfRkxPV19PSykK
LSsgICAgICAgICAgICBicmVhazsKLSsKLSsgICAgICAgICAgc3dpdGNoIChpZCkgewotKyAgICAg
ICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRFTkNBTEdPOnsKLSsgICAgICAgICAg
ICAgIGd1aW50NjQgbnVtOwotKwotKyAgICAgICAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9y
ZWFkX3VpbnQgKGVibWwsICZpZCwgJm51bSkpICE9IEdTVF9GTE9XX09LKSB7Ci0rICAgICAgICAg
ICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgICAgaWYgKG51
bSA+IEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9BRVMpIHsKLSsgICAg
ICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLCAiSW52YWxpZCBD
b250ZW50RW5jQWxnbyAlIgotKyAgICAgICAgICAgICAgICAgICAgR19HVUlOVDY0X0ZPUk1BVCwg
bnVtKTsKLSsgICAgICAgICAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7Ci0rICAgICAgICAg
ICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAotKyAgICAgICAgICAgICAgICAgICJDb250ZW50RW5j
QWxnbzogJSIgR19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKLSsgICAgICAgICAgICAgIGVuYy5lbmNf
YWxnbyA9IG51bTsKLSsKLSsgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsg
ICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DQUVTU0VUVElOR1M6ewot
KwotKyAgICAgICAgICAgICAgREVCVUdfRUxFTUVOVF9TVEFSVCAoY29tbW9uLCBlYm1sLCAiQ29u
dGVudEVuY0FFU1NldHRpbmdzIik7Ci0rCi0rICAgICAgICAgICAgICBpZiAoKHJldCA9IGdzdF9l
Ym1sX3JlYWRfbWFzdGVyIChlYm1sLCAmaWQpKSAhPSBHU1RfRkxPV19PSykKLSsgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0rCi0rICAgICAgICAgICAgICB3aGlsZSAocmV0ID09IEdTVF9GTE9XX09L
ICYmCi0rICAgICAgICAgICAgICAgICAgZ3N0X2VibWxfcmVhZF9oYXNfcmVtYWluaW5nIChlYm1s
LCAxLCBUUlVFKSkgewotKyAgICAgICAgICAgICAgICBpZiAoKHJldCA9IGdzdF9lYm1sX3BlZWtf
aWQgKGVibWwsICZpZCkpICE9IEdTVF9GTE9XX09LKQotKyAgICAgICAgICAgICAgICAgIGJyZWFr
OwotKwotKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGlkKSB7Ci0rICAgICAgICAgICAgICAgICAg
Y2FzZSBHU1RfTUFUUk9TS0FfSURfQUVTU0VUVElOR1NDSVBIRVJNT0RFOnsKLSsgICAgICAgICAg
ICAgICAgICAgIGd1aW50NjQgbnVtOwotKwotKyAgICAgICAgICAgICAgICAgICAgaWYgKChyZXQg
PQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3RfZWJtbF9yZWFkX3VpbnQgKGVibWws
ICZpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW0pKSAhPSBHU1RfRkxP
V19PSykgewotKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAg
ICAgIH0KLSsgICAgICAgICAgICAgICAgICAgIGlmIChudW0gPiAzKSB7Ci0rICAgICAgICAgICAg
ICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwgIkludmFsaWQgQ2lw
aGVyIE1vZGUgJSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIEdfR1VJTlQ2NF9GT1JNQVQs
IG51bSk7Ci0rICAgICAgICAgICAgICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwotKyAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAg
ICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKLSsgICAg
ICAgICAgICAgICAgICAgICAgICAiQ29udGVudEVuY0FFU1NldHRpbmdzOiAlIiBHX0dVSU5UNjRf
Rk9STUFULCBudW0pOwotKyAgICAgICAgICAgICAgICAgICAgZW5jLmVuY19jaXBoZXJfbW9kZSA9
IG51bTsKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgICAgICAgIH0K
LSsgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotKyAgICAgICAgICAgICAgICAgICAgR1NUX1dB
Uk5JTkdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg
IlVua25vd24gQ29udGVudEVuY0FFU1NldHRpbmdzIHN1YmVsZW1lbnQgMHgleCAtIGlnbm9yaW5n
IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZCk7Ci0rICAgICAgICAgICAgICAgICAgICBy
ZXQgPSBnc3RfZWJtbF9yZWFkX3NraXAgKGVibWwpOwotKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg
IERFQlVHX0VMRU1FTlRfU1RPUCAoY29tbW9uLCBlYm1sLCAiQ29udGVudEVuY0FFU1NldHRpbmdz
IiwgcmV0KTsKLSsgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAg
ICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DS0VZSUQ6ewotKyAgICAgICAg
ICAgICAgZ3VpbnQ4ICpkYXRhOwotKyAgICAgICAgICAgICAgZ3VpbnQ2NCBzaXplOwotKyAgICAg
ICAgICAgICAgR3N0QnVmZmVyICprZXlJZF9idWY7Ci0rICAgICAgICAgICAgICBHc3RFdmVudCAq
ZXZlbnQ7Ci0rCi0rICAgICAgICAgICAgICBpZiAoKHJldCA9Ci0rICAgICAgICAgICAgICAgICAg
ICAgIGdzdF9lYm1sX3JlYWRfYmluYXJ5IChlYm1sLCAmaWQsICZkYXRhLAotKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgJnNpemUpKSAhPSBHU1RfRkxPV19PSykgewotKyAgICAgICAgICAgICAg
ICBicmVhazsKLSsgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1QgKGNvbW1vbi0+c2lua3BhZCwKLSsgICAgICAgICAgICAgICAgICAiQ29udGVudEVuY3J5cHQg
S2V5SUQgbGVuZ3RoIDogJSIgR19HVUlOVDY0X0ZPUk1BVCwgc2l6ZSk7Ci0rICAgICAgICAgICAg
ICBrZXlJZF9idWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChkYXRhLCBzaXplKTsKLSsKLSsg
ICAgICAgICAgICAgIC8qIFB1c2ggYW4gZXZlbnQgY29udGFpbmluZyB0aGUgS2V5IElEIGludG8g
dGhlIHF1ZXVlcyBvZiBhbGwgc3RyZWFtcy4gKi8KLSsgICAgICAgICAgICAgIC8qIHN5c3RlbV9p
ZCBmaWVsZCBpcyBzZXQgdG8gR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lEIGJl
Y2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRoZXIgaW4gV2ViTSBub3IgaW4gTWF0cm9za2Eg
c3BlYy4gKi8KLSsgICAgICAgICAgICAgIGV2ZW50ID0KLSsgICAgICAgICAgICAgICAgICBnc3Rf
ZXZlbnRfbmV3X3Byb3RlY3Rpb24KLSsgICAgICAgICAgICAgICAgICAoR1NUX1BST1RFQ1RJT05f
VU5TUEVDSUZJRURfU1lTVEVNX0lELCBrZXlJZF9idWYsCi0rICAgICAgICAgICAgICAgICAgIm1h
dHJvc2thZGVtdXgiKTsKLSsgICAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKGNvbW1vbi0+
c2lua3BhZCwKLSsgICAgICAgICAgICAgICAgICAiYWRkaW5nIHByb3RlY3Rpb24gZXZlbnQgZm9y
IHN0cmVhbSAlZCIsIGNvbnRleHQtPmluZGV4KTsKLSsgICAgICAgICAgICAgIGdfcXVldWVfcHVz
aF90YWlsICgmY29udGV4dC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSwgZXZlbnQpOwotKwotKyAg
ICAgICAgICAgICAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvID0KLSsgICAgICAgICAgICAgICAg
ICBnc3Rfc3RydWN0dXJlX25ldyAoImFwcGxpY2F0aW9uL3gtY2VuYyIsICJpdl9zaXplIiwKLSsg
ICAgICAgICAgICAgICAgICBHX1RZUEVfVUlOVCwgOCwgImVuY3J5cHRlZCIsIEdfVFlQRV9CT09M
RUFOLCBUUlVFLCAia2lkIiwKLSsgICAgICAgICAgICAgICAgICBHU1RfVFlQRV9CVUZGRVIsIGtl
eUlkX2J1ZiwgTlVMTCk7Ci0rCi0rICAgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmIChrZXlJ
ZF9idWYpOwotKyAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0rICAgICAgICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKGNvbW1vbi0+
c2lua3BhZCwKLSsgICAgICAgICAgICAgICAgICAiVW5rbm93biBDb250ZW50RW5jcnlwdGlvbiBz
dWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKLSsgICAgICAgICAgICAgIHJldCA9IGdz
dF9lYm1sX3JlYWRfc2tpcCAoZWJtbCk7Ci0rICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAg
ICAgfQotKyAgICAgICAgfQotKyAgICAgICAgREVCVUdfRUxFTUVOVF9TVE9QIChjb21tb24sIGVi
bWwsICJDb250ZW50RW5jcnlwdGlvbiIsIHJldCk7Ci0gICAgICAgICBicmVhazsKLSsgICAgICB9
Ci0gICAgICAgZGVmYXVsdDoKLSAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5z
aW5rcGFkLAotICAgICAgICAgICAgICJVbmtub3duIENvbnRlbnRFbmNvZGluZyBzdWJlbGVtZW50
IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKLWRpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9z
a2EtcmVhZC1jb21tb24uaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oCi1p
bmRleCBhNjI4MmQ2OTguLmUzM2VmOGVmNCAxMDA2NDQKLS0tLSBhL2dzdC9tYXRyb3NrYS9tYXRy
b3NrYS1yZWFkLWNvbW1vbi5oCi0rKysgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21t
b24uaAotQEAgLTEyMCw2ICsxMjAsOSBAQCB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0cm9za2FSZWFk
Q29tbW9uIHsKLSBHc3RGbG93UmV0dXJuIGdzdF9tYXRyb3NrYV9kZWNvZGVfY29udGVudF9lbmNv
ZGluZ3MgKEdBcnJheSAqIGVuY29kaW5ncyk7Ci0gZ2Jvb2xlYW4gZ3N0X21hdHJvc2thX2RlY29k
ZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICogZGF0YV9vdXQsCi0gICAgIGdz
aXplICogc2l6ZV9vdXQsIEdzdE1hdHJvc2thVHJhY2tFbmNvZGluZ1Njb3BlIHNjb3BlLCBnYm9v
bGVhbiBmcmVlKTsKLStnYm9vbGVhbgotK2dzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21l
dGEgKGdwb2ludGVyICogZGF0YV9vdXQsIGdzaXplICogc2l6ZV9vdXQsCi0rICAgIEdzdFN0cnVj
dHVyZSAqIGluZm9fcHJvdGVjdCwgZ2Jvb2xlYW4gKiBlbmNyeXB0ZWQpOwotIGdpbnQgZ3N0X21h
dHJvc2thX2luZGV4X3NlZWtfZmluZCAoR3N0TWF0cm9za2FJbmRleCAqIGkxLCBHc3RDbG9ja1Rp
bWUgKiB0aW1lLAotICAgICBncG9pbnRlciB1c2VyX2RhdGEpOwotIEdzdE1hdHJvc2thSW5kZXgg
KiBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fZG9faW5kZXhfc2VlayAoCi0tLSAKLTIuMTUuMAot
CmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAw
MTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5kYXRhLWFmdGVyLXVubWFwcGluZy5w
YXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMi1tYXRy
b3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNoCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDBmNDhkYzAxOTA0NmZhOTdiNTFhZWZhNTJj
Njg0MDU4MmJkZTUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMi1tYXRyb3Nr
ZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNoCisrKyAv
ZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLUZyb20gZGVmYWUzNTAzNTg2NjBlNTU3Yzc0ZTQx
YTRmZThhOGJiMzI3ZTljOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRoaWJhdWx0
IFNhdW5pZXIgPHRzYXVuaWVyQGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQsIDMgT2N0IDIwMTggMTc6
MzQ6NDkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbWF0cm9za2RlbXV4OiBkbyBub3QgdXNlIE1h
cEluZm8uZGF0YSBhZnRlciB1bm1hcHBpbmcKLQotQW5kIG1pbm9yIGdzdC1pbmRlbnRpbmcKLS0t
LQotIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jICAgICAgIHwgMjIgKysrKysrKysrKysr
Ky0tLS0tLS0tLQotIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jIHwgIDYgKysr
KysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQot
Ci1kaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMgYi9nc3QvbWF0cm9z
a2EvbWF0cm9za2EtZGVtdXguYwotaW5kZXggMWVmN2I0MmNjLi5iNjcxMTJjYzYgMTAwNjQ0Ci0t
LS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYwotKysrIGIvZ3N0L21hdHJvc2thL21h
dHJvc2thLWRlbXV4LmMKLUBAIC0zNzYsMTAgKzM3NiwxMiBAQCBnc3RfbWF0cm9za2FfZGVjb2Rl
X2J1ZmZlciAoR3N0TWF0cm9za2FUcmFja0NvbnRleHQgKiBjb250ZXh0LCBHc3RCdWZmZXIgKiBi
dWYpCi0gCi0gICBpZiAoZ3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChjb250ZXh0LT5lbmNvZGlu
Z3MsICZkYXRhLCAmc2l6ZSwKLSAgICAgICAgICAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5H
X1NDT1BFX0ZSQU1FLCBGQUxTRSkpIHsKLS0gICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1Ziwg
Jm1hcCk7Ci0gICAgIGlmIChkYXRhICE9IG1hcC5kYXRhKSB7Ci0rICAgICAgZ3N0X2J1ZmZlcl91
bm1hcCAob3V0X2J1ZiwgJm1hcCk7Ci0gICAgICAgZ3N0X2J1ZmZlcl91bnJlZiAob3V0X2J1Zik7
Ci0gICAgICAgb3V0X2J1ZiA9IGdzdF9idWZmZXJfbmV3X3dyYXBwZWQgKGRhdGEsIHNpemUpOwot
KyAgICB9IGVsc2UgewotKyAgICAgIGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOwot
ICAgICB9Ci0gICB9IGVsc2UgewotICAgICBHU1RfREVCVUcgKCJkZWNvZGUgZGF0YSBmYWlsZWQi
KTsKLUBAIC0zOTksMTEgKzQwMSwxMiBAQCBnc3RfbWF0cm9za2FfZGVjb2RlX2J1ZmZlciAoR3N0
TWF0cm9za2FUcmFja0NvbnRleHQgKiBjb250ZXh0LCBHc3RCdWZmZXIgKiBidWYpCi0gCi0gICAg
IGlmIChnc3RfbWF0cm9za2FfcGFyc2VfcHJvdGVjdGlvbl9tZXRhICgmZGF0YSwgJnNpemUsIGlu
Zm9fcHJvdGVjdCwKLSAgICAgICAgICAgICAmZW5jcnlwdGVkKSkgewotLSAgICAgIGdzdF9idWZm
ZXJfdW5tYXAgKG91dF9idWYsICZtYXApOwotICAgICAgIGlmIChkYXRhICE9IG1hcC5kYXRhKSB7
Ci0tICAgICAgICBHc3RCdWZmZXIgKnRtcF9idWYgPSBvdXRfYnVmOwotLSAgICAgICAgb3V0X2J1
ZiA9Ci0tICAgICAgICAgICAgZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbiAodG1wX2J1ZiwgR1NUX0JV
RkZFUl9DT1BZX0FMTCwKLSsgICAgICAgIEdzdEJ1ZmZlciAqdG1wX2J1ZjsKLSsKLSsgICAgICAg
IGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOwotKyAgICAgICAgdG1wX2J1ZiA9IG91
dF9idWY7Ci0rICAgICAgICBvdXRfYnVmID0gZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbiAodG1wX2J1
ZiwgR1NUX0JVRkZFUl9DT1BZX0FMTCwKLSAgICAgICAgICAgICBnc3RfYnVmZmVyX2dldF9zaXpl
ICh0bXBfYnVmKSAtIHNpemUsIHNpemUpOwotICAgICAgICAgZ3N0X2J1ZmZlcl91bnJlZiAodG1w
X2J1Zik7Ci0gICAgICAgICBpZiAoZW5jcnlwdGVkKQotQEAgLTQxMSw2ICs0MTQsNyBAQCBnc3Rf
bWF0cm9za2FfZGVjb2RlX2J1ZmZlciAoR3N0TWF0cm9za2FUcmFja0NvbnRleHQgKiBjb250ZXh0
LCBHc3RCdWZmZXIgKiBidWYpCi0gICAgICAgICBlbHNlCi0gICAgICAgICAgIGdzdF9zdHJ1Y3R1
cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKLSAgICAgICB9IGVsc2UgewotKyAgICAgICAgZ3N0X2J1
ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7Ci0gICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUg
KGluZm9fcHJvdGVjdCk7Ci0gICAgICAgfQotICAgICB9IGVsc2UgewotQEAgLTI3MDUsMTAgKzI3
MDksMTAgQEAgZ3N0X21hdHJvc2thX2RlbXV4X2hhbmRsZV9zZWVrX2V2ZW50IChHc3RNYXRyb3Nr
YURlbXV4ICogZGVtdXgsCi0gICAgKiB3b3VsZCBiZSBkZXRlcm1pbmVkIGFnYWluIHdoZW4gcGFy
c2luZywgYnV0IGFueXdheSAuLi4gKi8KLSAgIHNlZWtzZWdtZW50LmR1cmF0aW9uID0gZGVtdXgt
PmNvbW1vbi5zZWdtZW50LmR1cmF0aW9uOwotIAotLSAgZmx1c2ggPSAhICEoZmxhZ3MgJiBHU1Rf
U0VFS19GTEFHX0ZMVVNIKTsKLS0gIGtleXVuaXQgPSAhICEoZmxhZ3MgJiBHU1RfU0VFS19GTEFH
X0tFWV9VTklUKTsKLS0gIGFmdGVyID0gISAhKGZsYWdzICYgR1NUX1NFRUtfRkxBR19TTkFQX0FG
VEVSKTsKLS0gIGJlZm9yZSA9ICEgIShmbGFncyAmIEdTVF9TRUVLX0ZMQUdfU05BUF9CRUZPUkUp
OwotKyAgZmx1c2ggPSAhIShmbGFncyAmIEdTVF9TRUVLX0ZMQUdfRkxVU0gpOwotKyAga2V5dW5p
dCA9ICEhKGZsYWdzICYgR1NUX1NFRUtfRkxBR19LRVlfVU5JVCk7Ci0rICBhZnRlciA9ICEhKGZs
YWdzICYgR1NUX1NFRUtfRkxBR19TTkFQX0FGVEVSKTsKLSsgIGJlZm9yZSA9ICEhKGZsYWdzICYg
R1NUX1NFRUtfRkxBR19TTkFQX0JFRk9SRSk7Ci0gCi0gICAvKiBhbHdheXMgZG8gZnVsbCB1cGRh
dGUgaWYgZmx1c2hpbmcsCi0gICAgKiBvdGhlcndpc2UgcHJvYmxlbXMgbWlnaHQgYXJpc2UgZG93
bnN0cmVhbSB3aXRoIG1pc3Npbmcga2V5ZnJhbWVzIGV0YyAqLwotZGlmZiAtLWdpdCBhL2dzdC9t
YXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLXJl
YWQtY29tbW9uLmMKLWluZGV4IGZmYjM5M2JmOS4uMTIwODU1MDNhIDEwMDY0NAotLS0tIGEvZ3N0
L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKLSsrKyBiL2dzdC9tYXRyb3NrYS9tYXRy
b3NrYS1yZWFkLWNvbW1vbi5jCi1AQCAtMjA0Myw2ICsyMDQzLDggQEAgZ3N0X21hdHJvc2thX3Jl
YWRfY29tbW9uX3BhcnNlX21ldGFkYXRhX2lkX3NpbXBsZV90YWcgKEdzdE1hdHJvc2thUmVhZENv
bW1vbiAqCi0gICAgIGNvbnN0IGdjaGFyICptYXRyb3NrYV90YWduYW1lOwotICAgICBjb25zdCBn
Y2hhciAqZ3N0cmVhbWVyX3RhZ25hbWU7Ci0gICB9Ci0rCi0rICAvKiAqSU5ERU5ULU9GRiogKi8K
LSAgIHRhZ19jb252W10gPSB7Ci0gICAgIHsKLSAgICAgICAvKiBUaGUgZm9sbG93aW5nIGxpc3Qg
aGFzIHRoZSBfc2FtZV8gb3JkZXIgYXMgdGhlIG9uZSBpbiBNYXRyb3NrYSBzcGVjLiBQbGVhc2Us
IGRvbid0IG1lc3MgaXQgdXAuICovCi1AQCAtMjE3NywxMSArMjE3OSwxNCBAQCBnc3RfbWF0cm9z
a2FfcmVhZF9jb21tb25fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyAoR3N0TWF0cm9za2FS
ZWFkQ29tbW9uICoKLSAgICAgR1NUX01BVFJPU0tBX1RBR19JRF9MSUNFTlNFLCBHU1RfVEFHX0xJ
Q0VOU0V9LCB7ICAgIC8qIFRoZSBsaWNlbnNlIGFwcGxpZWQgdG8gdGhlIGNvbnRlbnQgKGxpa2Ug
Q3JlYXRpdmUgQ29tbW9ucyB2YXJpYW50cykuICovCi0gICAgIEdTVF9NQVRST1NLQV9UQUdfSURf
VEVSTVNfT0ZfVVNFLCBHU1RfVEFHX0xJQ0VOU0V9Ci0gICB9OwotKyAgLyogKklOREVOVC1PTiog
Ki8KLSAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QKLSAgIHsKLSAgICAgY29uc3QgZ2NoYXIgKm1hdHJv
c2thX3RhZ25hbWU7Ci0gICAgIGNvbnN0IGdjaGFyICpnc3RyZWFtZXJfdGFnbmFtZTsKLSAgIH0K
LSsKLSsgIC8qICpJTkRFTlQtT0ZGKiAqLwotICAgY2hpbGRfdGFnX2NvbnZbXSA9IHsKLSAgICAg
ewotICAgICAiVElUTEUvU09SVF9XSVRIPSIsIEdTVF9UQUdfVElUTEVfU09SVE5BTUV9LCB7Ci1A
QCAtMjE5OCw2ICsyMjAzLDcgQEAgZ3N0X21hdHJvc2thX3JlYWRfY29tbW9uX3BhcnNlX21ldGFk
YXRhX2lkX3NpbXBsZV90YWcgKEdzdE1hdHJvc2thUmVhZENvbW1vbiAqCi0gICAgICJMSUNFTlNF
L1VSTD0iLCBHU1RfVEFHX0xJQ0VOU0VfVVJJfSwgewotICAgICAiTElDRU5TRS9VUkw9IiwgR1NU
X1RBR19MSUNFTlNFX1VSSX0KLSAgIH07Ci0rICAvKiAqSU5ERU5ULU9OKiAqLwotICAgR3N0Rmxv
d1JldHVybiByZXQ7Ci0gICBndWludDMyIGlkOwotICAgZ2NoYXIgKnZhbHVlID0gTlVMTDsKLS0t
IAotMi4xNS4wCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVn
aW5zLWdvb2QtMDAxMy1Bdm9pZC13YXJuaW5nLXdoZW4tcmVwb3J0aW5nLWFib3V0LWRlY3J5cHRv
cnMucGF0Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMTMt
QXZvaWQtd2FybmluZy13aGVuLXJlcG9ydGluZy1hYm91dC1kZWNyeXB0b3JzLnBhdGNoCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTYyNmVkZDU3OTUxMDhjYzhjODIyOTY4NWUyOGU1
ZTc0OTg4ODdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMy1Bdm9pZC13YXJu
aW5nLXdoZW4tcmVwb3J0aW5nLWFib3V0LWRlY3J5cHRvcnMucGF0Y2gKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi1Gcm9tIDA1N2M1MDk5YmZlMTU3NmM1MmRjY2Q0MTczZWFlMmE5Nzhl
NjNhYjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxw
aGlsbkBpZ2FsaWEuY29tPgotRGF0ZTogRnJpLCAyMiBKdW4gMjAxOCAxNjowMDoxMSArMDEwMAot
U3ViamVjdDogW1BBVENIXSBxdGRlbXV4OiBBdm9pZCB3YXJuaW5nIHdoZW4gcmVwb3J0aW5nIGFi
b3V0IGRlY3J5cHRvcnMKLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dp
P2lkPTc5NjY1MgotLS0tCi0gZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA0ICsrKy0KLSAxIGZpbGUg
Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9n
c3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCBkN2M3YWI2
Y2IuLmRjMjU1ZThkNyAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9n
c3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTgxMjAsNyArODEyMCw5IEBAIGdzdF9xdGRlbXV4X3Jl
cXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0IChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgICBx
dGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAtIDEpOwotICAgR1NUX1RSQUNFX09C
SkVDVCAocXRkZW11eCwgImRldGVjdGVkICV1IHByb3RlY3Rpb24gc3lzdGVtcywgd2UgaGF2ZSAi
Ci0gICAgICAgImRlY3J5cHRvcnMgZm9yICV1IG9mIHRoZW0sIHJ1bm5pbmcgY29udGV4dCByZXF1
ZXN0IiwKLS0gICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiwgZ19zdHJ2
X2xlbmd0aCAoZmlsdGVyZWRfc3lzX2lkcykpOwotKyAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcy0+bGVuLAotKyAgICAgIGZpbHRlcmVkX3N5c19pZHMgPyBnX3N0cnZfbGVuZ3Ro
IChmaWx0ZXJlZF9zeXNfaWRzKSA6IDApOwotKwotIAotICAgaWYgKHN0cmVhbS0+cHJvdGVjdGlv
bl9zY2hlbWVfZXZlbnRfcXVldWUubGVuZ3RoKSB7Ci0gICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0
ZGVtdXgsICJ1c2luZyBzdHJlYW0gZXZlbnQgcXVldWUsIGxlbmd0aCAldSIsCi0tLSAKLTIuMTcu
MQotCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMTQtcHVsc2UtTWFyay1kZWZhdWx0LWRldmljZXMtYXMtZGVmYXVsdC5wYXRjaCBiL1Rvb2xz
L2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxNC1wdWxzZS1NYXJrLWRlZmF1
bHQtZGV2aWNlcy1hcy1kZWZhdWx0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0MzViNmQ3ZDk3Zjg0MmI2YzNiNWRmNzU4MmZhOGRmYWM4YzFjMzZiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtMDAxNC1wdWxzZS1NYXJrLWRlZmF1bHQtZGV2aWNlcy1hcy1kZWZh
dWx0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzE4ICswLDAgQEAKLUZyb20gMzJjODMzZWJi
NDJiOGU4ZjQ2YzVhNzJhMTZhODc0YmMwMGZjNTU1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
LUZyb206IFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGlnYWxpYS5jb20+Ci1EYXRlOiBNb24s
IDI2IE5vdiAyMDE4IDEzOjQ4OjU2IC0wMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIHB1bHNlOiBNYXJr
IGRlZmF1bHQgZGV2aWNlcyBhcyAiZGVmYXVsdCIKLQotLS0tCi0gZXh0L3B1bHNlL3B1bHNlZGV2
aWNlcHJvdmlkZXIuYyB8IDExNyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQotIGV4
dC9wdWxzZS9wdWxzZWRldmljZXByb3ZpZGVyLmggfCAgIDMgKwotIDIgZmlsZXMgY2hhbmdlZCwg
NzkgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvcHVs
c2UvcHVsc2VkZXZpY2Vwcm92aWRlci5jIGIvZXh0L3B1bHNlL3B1bHNlZGV2aWNlcHJvdmlkZXIu
YwotaW5kZXggYTE5NjRkYWIyLi45YjY2YTBlMzMgMTAwNjQ0Ci0tLS0gYS9leHQvcHVsc2UvcHVs
c2VkZXZpY2Vwcm92aWRlci5jCi0rKysgYi9leHQvcHVsc2UvcHVsc2VkZXZpY2Vwcm92aWRlci5j
Ci1AQCAtNDAsNyArNDAsNyBAQCBHU1RfREVCVUdfQ0FURUdPUllfRVhURVJOIChwdWxzZV9kZWJ1
Zyk7Ci0gCi0gc3RhdGljIEdzdERldmljZSAqZ3N0X3B1bHNlX2RldmljZV9uZXcgKGd1aW50IGlk
LAotICAgICBjb25zdCBnY2hhciAqIGRldmljZV9uYW1lLCBHc3RDYXBzICogY2FwcywgY29uc3Qg
Z2NoYXIgKiBpbnRlcm5hbF9uYW1lLAotLSAgICBHc3RQdWxzZURldmljZVR5cGUgdHlwZSwgR3N0
U3RydWN0dXJlICogcHJvcGVydGllcyk7Ci0rICAgIEdzdFB1bHNlRGV2aWNlVHlwZSB0eXBlLCBH
c3RTdHJ1Y3R1cmUgKiBwcm9wZXJ0aWVzLCBnYm9vbGVhbiBpc19kZWZhdWx0KTsKLSAKLSBHX0RF
RklORV9UWVBFIChHc3RQdWxzZURldmljZVByb3ZpZGVyLCBnc3RfcHVsc2VfZGV2aWNlX3Byb3Zp
ZGVyLAotICAgICBHU1RfVFlQRV9ERVZJQ0VfUFJPVklERVIpOwotQEAgLTY1LDYgKzY1LDEyIEBA
IGVudW0KLSB9OwotIAotIAotK3R5cGVkZWYgc3RydWN0Ci0rewotKyAgR0xpc3QgKmRldmljZXM7
Ci0rICBHc3RQdWxzZURldmljZVByb3ZpZGVyICpzZWxmOwotK30gTGlzdERldmljZXNEYXRhOwot
KwotIHN0YXRpYyB2b2lkCi0gZ3N0X3B1bHNlX2RldmljZV9wcm92aWRlcl9jbGFzc19pbml0IChH
c3RQdWxzZURldmljZVByb3ZpZGVyQ2xhc3MgKiBrbGFzcykKLSB7Ci1AQCAtMTE0LDYgKzEyMCw4
IEBAIGdzdF9wdWxzZV9kZXZpY2VfcHJvdmlkZXJfZmluYWxpemUgKEdPYmplY3QgKiBvYmplY3Qp
Ci0gCi0gICBnX2ZyZWUgKHNlbGYtPmNsaWVudF9uYW1lKTsKLSAgIGdfZnJlZSAoc2VsZi0+c2Vy
dmVyKTsKLSsgIGdfZnJlZSAoc2VsZi0+ZGVmYXVsdF9zaW5rX25hbWUpOwotKyAgZ19mcmVlIChz
ZWxmLT5kZWZhdWx0X3NvdXJjZV9uYW1lKTsKLSAKLSAgIEdfT0JKRUNUX0NMQVNTIChnc3RfcHVs
c2VfZGV2aWNlX3Byb3ZpZGVyX3BhcmVudF9jbGFzcyktPmZpbmFsaXplIChvYmplY3QpOwotIH0K
LUBAIC0xODYsNyArMTk0LDcgQEAgY29udGV4dF9zdGF0ZV9jYiAocGFfY29udGV4dCAqIGMsIHZv
aWQgKnVzZXJkYXRhKQotIH0KLSAKLSBzdGF0aWMgR3N0RGV2aWNlICoKLS1uZXdfc291cmNlIChj
b25zdCBwYV9zb3VyY2VfaW5mbyAqIGluZm8pCi0rbmV3X3NvdXJjZSAoR3N0UHVsc2VEZXZpY2VQ
cm92aWRlciAqIHNlbGYsIGNvbnN0IHBhX3NvdXJjZV9pbmZvICogaW5mbykKLSB7Ci0gICBHc3RD
YXBzICpjYXBzOwotICAgR3N0U3RydWN0dXJlICpwcm9wczsKLUBAIC0yMDAsMTEgKzIwOCwxMiBA
QCBuZXdfc291cmNlIChjb25zdCBwYV9zb3VyY2VfaW5mbyAqIGluZm8pCi0gICBwcm9wcyA9IGdz
dF9wdWxzZV9tYWtlX3N0cnVjdHVyZSAoaW5mby0+cHJvcGxpc3QpOwotIAotICAgcmV0dXJuIGdz
dF9wdWxzZV9kZXZpY2VfbmV3IChpbmZvLT5pbmRleCwgaW5mby0+ZGVzY3JpcHRpb24sCi0tICAg
ICAgY2FwcywgaW5mby0+bmFtZSwgR1NUX1BVTFNFX0RFVklDRV9UWVBFX1NPVVJDRSwgcHJvcHMp
OwotKyAgICAgIGNhcHMsIGluZm8tPm5hbWUsIEdTVF9QVUxTRV9ERVZJQ0VfVFlQRV9TT1VSQ0Us
IHByb3BzLAotKyAgICAgICFnX3N0cmNtcDAgKGluZm8tPm5hbWUsIHNlbGYtPmRlZmF1bHRfc291
cmNlX25hbWUpKTsKLSB9Ci0gCi0gc3RhdGljIEdzdERldmljZSAqCi0tbmV3X3NpbmsgKGNvbnN0
IHBhX3NpbmtfaW5mbyAqIGluZm8pCi0rbmV3X3NpbmsgKEdzdFB1bHNlRGV2aWNlUHJvdmlkZXIg
KiBzZWxmLCBjb25zdCBwYV9zaW5rX2luZm8gKiBpbmZvKQotIHsKLSAgIEdzdENhcHMgKmNhcHM7
Ci0gICBHc3RTdHJ1Y3R1cmUgKnByb3BzOwotQEAgLTIxOCw3ICsyMjcsOCBAQCBuZXdfc2luayAo
Y29uc3QgcGFfc2lua19pbmZvICogaW5mbykKLSAgIHByb3BzID0gZ3N0X3B1bHNlX21ha2Vfc3Ry
dWN0dXJlIChpbmZvLT5wcm9wbGlzdCk7Ci0gCi0gICByZXR1cm4gZ3N0X3B1bHNlX2RldmljZV9u
ZXcgKGluZm8tPmluZGV4LCBpbmZvLT5kZXNjcmlwdGlvbiwKLS0gICAgICBjYXBzLCBpbmZvLT5u
YW1lLCBHU1RfUFVMU0VfREVWSUNFX1RZUEVfU0lOSywgcHJvcHMpOwotKyAgICAgIGNhcHMsIGlu
Zm8tPm5hbWUsIEdTVF9QVUxTRV9ERVZJQ0VfVFlQRV9TSU5LLCBwcm9wcywKLSsgICAgICAhZ19z
dHJjbXAwIChpbmZvLT5uYW1lLCBzZWxmLT5kZWZhdWx0X3NpbmtfbmFtZSkpOwotIH0KLSAKLSBz
dGF0aWMgdm9pZAotQEAgLTIzMywxMiArMjQzLDI2IEBAIGdldF9zb3VyY2VfaW5mb19jYiAocGFf
Y29udGV4dCAqIGNvbnRleHQsCi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0gIGRldiA9IG5ld19z
b3VyY2UgKGluZm8pOwotKyAgZGV2ID0gbmV3X3NvdXJjZSAoc2VsZiwgaW5mbyk7Ci0gCi0gICBp
ZiAoZGV2KQotICAgICBnc3RfZGV2aWNlX3Byb3ZpZGVyX2RldmljZV9hZGQgKEdTVF9ERVZJQ0Vf
UFJPVklERVIgKHNlbGYpLCBkZXYpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2dldF9zZXJ2ZXJf
aW5mb19jYiAocGFfY29udGV4dCAqIGNvbnRleHQsIGNvbnN0IHBhX3NlcnZlcl9pbmZvICogaW5m
bywKLSsgICAgdm9pZCAqdXNlcmRhdGEpCi0rewotKyAgR3N0UHVsc2VEZXZpY2VQcm92aWRlciAq
c2VsZiA9IHVzZXJkYXRhOwotKwotKyAgZ19mcmVlIChzZWxmLT5kZWZhdWx0X3NpbmtfbmFtZSk7
Ci0rICBnX2ZyZWUgKHNlbGYtPmRlZmF1bHRfc291cmNlX25hbWUpOwotKyAgc2VsZi0+ZGVmYXVs
dF9zaW5rX25hbWUgPSBnX3N0cmR1cCAoaW5mby0+ZGVmYXVsdF9zaW5rX25hbWUpOwotKyAgc2Vs
Zi0+ZGVmYXVsdF9zb3VyY2VfbmFtZSA9IGdfc3RyZHVwIChpbmZvLT5kZWZhdWx0X3NvdXJjZV9u
YW1lKTsKLSsKLSsgIHBhX3RocmVhZGVkX21haW5sb29wX3NpZ25hbCAoc2VsZi0+bWFpbmxvb3As
IDApOwotK30KLSsKLSBzdGF0aWMgdm9pZAotIGdldF9zaW5rX2luZm9fY2IgKHBhX2NvbnRleHQg
KiBjb250ZXh0LAotICAgICBjb25zdCBwYV9zaW5rX2luZm8gKiBpbmZvLCBpbnQgZW9sLCB2b2lk
ICp1c2VyZGF0YSkKLUBAIC0yNTEsNyArMjc1LDcgQEAgZ2V0X3NpbmtfaW5mb19jYiAocGFfY29u
dGV4dCAqIGNvbnRleHQsCi0gICAgIHJldHVybjsKLSAgIH0KLSAKLS0gIGRldiA9IG5ld19zaW5r
IChpbmZvKTsKLSsgIGRldiA9IG5ld19zaW5rIChzZWxmLCBpbmZvKTsKLSAKLSAgIGlmIChkZXYp
Ci0gICAgIGdzdF9kZXZpY2VfcHJvdmlkZXJfZGV2aWNlX2FkZCAoR1NUX0RFVklDRV9QUk9WSURF
UiAoc2VsZiksIGRldik7Ci1AQCAtMzEyLDM0ICszMzYsMzggQEAgc3RhdGljIHZvaWQKLSBnZXRf
c291cmNlX2luZm9fbGlzdF9jYiAocGFfY29udGV4dCAqIGNvbnRleHQsIGNvbnN0IHBhX3NvdXJj
ZV9pbmZvICogaW5mbywKLSAgICAgaW50IGVvbCwgdm9pZCAqdXNlcmRhdGEpCi0gewotLSAgR0xp
c3QgKipkZXZpY2VzID0gdXNlcmRhdGE7Ci0rICBMaXN0RGV2aWNlc0RhdGEgKmRhdGEgPSB1c2Vy
ZGF0YTsKLSAKLSAgIGlmIChlb2wpCi0gICAgIHJldHVybjsKLSAKLS0gICpkZXZpY2VzID0gZ19s
aXN0X3ByZXBlbmQgKCpkZXZpY2VzLCBnc3Rfb2JqZWN0X3JlZl9zaW5rIChuZXdfc291cmNlIChp
bmZvKSkpOwotKyAgZGF0YS0+ZGV2aWNlcyA9Ci0rICAgICAgZ19saXN0X3ByZXBlbmQgKGRhdGEt
PmRldmljZXMsCi0rICAgICAgZ3N0X29iamVjdF9yZWZfc2luayAobmV3X3NvdXJjZSAoZGF0YS0+
c2VsZiwgaW5mbykpKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLSBnZXRfc2lua19pbmZvX2xpc3Rf
Y2IgKHBhX2NvbnRleHQgKiBjb250ZXh0LCBjb25zdCBwYV9zaW5rX2luZm8gKiBpbmZvLAotICAg
ICBpbnQgZW9sLCB2b2lkICp1c2VyZGF0YSkKLSB7Ci0tICBHTGlzdCAqKmRldmljZXMgPSB1c2Vy
ZGF0YTsKLSsgIExpc3REZXZpY2VzRGF0YSAqZGF0YSA9IHVzZXJkYXRhOwotIAotICAgaWYgKGVv
bCkKLSAgICAgcmV0dXJuOwotIAotLSAgKmRldmljZXMgPSBnX2xpc3RfcHJlcGVuZCAoKmRldmlj
ZXMsIGdzdF9vYmplY3RfcmVmX3NpbmsgKG5ld19zaW5rIChpbmZvKSkpOwotKyAgZGF0YS0+ZGV2
aWNlcyA9Ci0rICAgICAgZ19saXN0X3ByZXBlbmQgKGRhdGEtPmRldmljZXMsIGdzdF9vYmplY3Rf
cmVmX3NpbmsgKG5ld19zaW5rIChkYXRhLT5zZWxmLAotKyAgICAgICAgICAgICAgaW5mbykpKTsK
LSB9Ci0gCi0gc3RhdGljIEdMaXN0ICoKLSBnc3RfcHVsc2VfZGV2aWNlX3Byb3ZpZGVyX3Byb2Jl
IChHc3REZXZpY2VQcm92aWRlciAqIHByb3ZpZGVyKQotIHsKLSAgIEdzdFB1bHNlRGV2aWNlUHJv
dmlkZXIgKnNlbGYgPSBHU1RfUFVMU0VfREVWSUNFX1BST1ZJREVSIChwcm92aWRlcik7Ci0tICBH
TGlzdCAqZGV2aWNlcyA9IE5VTEw7Ci0gICBwYV9tYWlubG9vcCAqbSA9IE5VTEw7Ci0gICBwYV9j
b250ZXh0ICpjID0gTlVMTDsKLSAgIHBhX29wZXJhdGlvbiAqbzsKLSsgIExpc3REZXZpY2VzRGF0
YSBkYXRhID0geyBOVUxMLCBzZWxmIH07Ci0gCi0gICBpZiAoIShtID0gcGFfbWFpbmxvb3BfbmV3
ICgpKSkKLSAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMzc2LDcgKzQwNCw3IEBAIGdzdF9wdWxzZV9k
ZXZpY2VfcHJvdmlkZXJfcHJvYmUgKEdzdERldmljZVByb3ZpZGVyICogcHJvdmlkZXIpCi0gICB9
Ci0gICBHU1RfREVCVUdfT0JKRUNUIChzZWxmLCAiY29ubmVjdGVkIik7Ci0gCi0tICBvID0gcGFf
Y29udGV4dF9nZXRfc2lua19pbmZvX2xpc3QgKGMsIGdldF9zaW5rX2luZm9fbGlzdF9jYiwgJmRl
dmljZXMpOwotKyAgbyA9IHBhX2NvbnRleHRfZ2V0X3NpbmtfaW5mb19saXN0IChjLCBnZXRfc2lu
a19pbmZvX2xpc3RfY2IsICZkYXRhKTsKLSAgIHdoaWxlIChwYV9vcGVyYXRpb25fZ2V0X3N0YXRl
IChvKSA9PSBQQV9PUEVSQVRJT05fUlVOTklORyAmJgotICAgICAgIHBhX29wZXJhdGlvbl9nZXRf
c3RhdGUgKG8pID09IFBBX09QRVJBVElPTl9SVU5OSU5HKSB7Ci0gICAgIGlmIChwYV9tYWlubG9v
cF9pdGVyYXRlIChtLCBUUlVFLCBOVUxMKSA8IDApCi1AQCAtMzg0LDcgKzQxMiw3IEBAIGdzdF9w
dWxzZV9kZXZpY2VfcHJvdmlkZXJfcHJvYmUgKEdzdERldmljZVByb3ZpZGVyICogcHJvdmlkZXIp
Ci0gICB9Ci0gICBwYV9vcGVyYXRpb25fdW5yZWYgKG8pOwotIAotLSAgbyA9IHBhX2NvbnRleHRf
Z2V0X3NvdXJjZV9pbmZvX2xpc3QgKGMsIGdldF9zb3VyY2VfaW5mb19saXN0X2NiLCAmZGV2aWNl
cyk7Ci0rICBvID0gcGFfY29udGV4dF9nZXRfc291cmNlX2luZm9fbGlzdCAoYywgZ2V0X3NvdXJj
ZV9pbmZvX2xpc3RfY2IsICZkYXRhKTsKLSAgIHdoaWxlIChwYV9vcGVyYXRpb25fZ2V0X3N0YXRl
IChvKSA9PSBQQV9PUEVSQVRJT05fUlVOTklORyAmJgotICAgICAgIHBhX29wZXJhdGlvbl9nZXRf
c3RhdGUgKG8pID09IFBBX09QRVJBVElPTl9SVU5OSU5HKSB7Ci0gICAgIGlmIChwYV9tYWlubG9v
cF9pdGVyYXRlIChtLCBUUlVFLCBOVUxMKSA8IDApCi1AQCAtMzk1LDE4ICs0MjMsMzggQEAgZ3N0
X3B1bHNlX2RldmljZV9wcm92aWRlcl9wcm9iZSAoR3N0RGV2aWNlUHJvdmlkZXIgKiBwcm92aWRl
cikKLSAgIHBhX2NvbnRleHRfZGlzY29ubmVjdCAoYyk7Ci0gICBwYV9tYWlubG9vcF9mcmVlICht
KTsKLSAKLS0gIHJldHVybiBkZXZpY2VzOwotKyAgcmV0dXJuIGRhdGEuZGV2aWNlczsKLSAKLSBm
YWlsZWQ6Ci0gCi0gICByZXR1cm4gTlVMTDsKLSB9Ci0gCi0rc3RhdGljIGdib29sZWFuCi0rcnVu
X3B1bHNlX29wZXJhdGlvbiAoR3N0UHVsc2VEZXZpY2VQcm92aWRlciAqIHNlbGYsIHBhX29wZXJh
dGlvbiAqIG9wZXJhdGlvbikKLSt7Ci0rICBpZiAoIW9wZXJhdGlvbikKLSsgICAgcmV0dXJuIEZB
TFNFOwotKwotKyAgd2hpbGUgKHBhX29wZXJhdGlvbl9nZXRfc3RhdGUgKG9wZXJhdGlvbikgPT0g
UEFfT1BFUkFUSU9OX1JVTk5JTkcpIHsKLSsgICAgaWYgKCFQQV9DT05URVhUX0lTX0dPT0QgKHBh
X2NvbnRleHRfZ2V0X3N0YXRlICgoc2VsZi0+Y29udGV4dCkpKSkgewotKyAgICAgIHBhX29wZXJh
dGlvbl9jYW5jZWwgKG9wZXJhdGlvbik7Ci0rICAgICAgcGFfb3BlcmF0aW9uX3VucmVmIChvcGVy
YXRpb24pOwotKyAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgfQotKwotKyAgICBwYV90aHJlYWRl
ZF9tYWlubG9vcF93YWl0IChzZWxmLT5tYWlubG9vcCk7Ci0rICB9Ci0rCi0rICBwYV9vcGVyYXRp
b25fdW5yZWYgKG9wZXJhdGlvbik7Ci0rCi0rICByZXR1cm4gVFJVRTsKLSt9Ci0rCi0gc3RhdGlj
IGdib29sZWFuCi0gZ3N0X3B1bHNlX2RldmljZV9wcm92aWRlcl9zdGFydCAoR3N0RGV2aWNlUHJv
dmlkZXIgKiBwcm92aWRlcikKLSB7Ci0gICBHc3RQdWxzZURldmljZVByb3ZpZGVyICpzZWxmID0g
R1NUX1BVTFNFX0RFVklDRV9QUk9WSURFUiAocHJvdmlkZXIpOwotLSAgcGFfb3BlcmF0aW9uICpp
bml0aWFsX29wZXJhdGlvbjsKLSAKLSAgIGlmICghKHNlbGYtPm1haW5sb29wID0gcGFfdGhyZWFk
ZWRfbWFpbmxvb3BfbmV3ICgpKSkgewotICAgICBHU1RfRVJST1JfT0JKRUNUIChzZWxmLCAiQ291
bGQgbm90IGNyZWF0ZSBwdWxzZWF1ZGlvIG1haW5sb29wIik7Ci1AQCAtNDYyLDI3ICs1MTAsMTgg
QEAgZ3N0X3B1bHNlX2RldmljZV9wcm92aWRlcl9zdGFydCAoR3N0RGV2aWNlUHJvdmlkZXIgKiBw
cm92aWRlcikKLSAgIHBhX2NvbnRleHRfc3Vic2NyaWJlIChzZWxmLT5jb250ZXh0LAotICAgICAg
IFBBX1NVQlNDUklQVElPTl9NQVNLX1NPVVJDRSB8IFBBX1NVQlNDUklQVElPTl9NQVNLX1NJTkss
IE5VTEwsIE5VTEwpOwotIAotLSAgaW5pdGlhbF9vcGVyYXRpb24gPSBwYV9jb250ZXh0X2dldF9z
b3VyY2VfaW5mb19saXN0IChzZWxmLT5jb250ZXh0LAotLSAgICAgIGdldF9zb3VyY2VfaW5mb19j
Yiwgc2VsZik7Ci0tICB3aGlsZSAocGFfb3BlcmF0aW9uX2dldF9zdGF0ZSAoaW5pdGlhbF9vcGVy
YXRpb24pID09IFBBX09QRVJBVElPTl9SVU5OSU5HKSB7Ci0tICAgIGlmICghUEFfQ09OVEVYVF9J
U19HT09EIChwYV9jb250ZXh0X2dldF9zdGF0ZSAoKHNlbGYtPmNvbnRleHQpKSkpCi0tICAgICAg
Z290byBjYW5jZWxfYW5kX2ZhaWw7Ci0tCi0tICAgIHBhX3RocmVhZGVkX21haW5sb29wX3dhaXQg
KHNlbGYtPm1haW5sb29wKTsKLS0gIH0KLS0gIHBhX29wZXJhdGlvbl91bnJlZiAoaW5pdGlhbF9v
cGVyYXRpb24pOwotKyAgaWYgKCFydW5fcHVsc2Vfb3BlcmF0aW9uIChzZWxmLCBwYV9jb250ZXh0
X2dldF9zZXJ2ZXJfaW5mbyAoc2VsZi0+Y29udGV4dCwKLSsgICAgICAgICAgICAgIGdldF9zZXJ2
ZXJfaW5mb19jYiwgc2VsZikpKQotKyAgICBnb3RvIHVubG9ja19hbmRfZmFpbDsKLSAKLS0gIGlu
aXRpYWxfb3BlcmF0aW9uID0gcGFfY29udGV4dF9nZXRfc2lua19pbmZvX2xpc3QgKHNlbGYtPmNv
bnRleHQsCi0tICAgICAgZ2V0X3NpbmtfaW5mb19jYiwgc2VsZik7Ci0tICBpZiAoIWluaXRpYWxf
b3BlcmF0aW9uKQotKyAgaWYgKCFydW5fcHVsc2Vfb3BlcmF0aW9uIChzZWxmLAotKyAgICAgICAg
ICBwYV9jb250ZXh0X2dldF9zb3VyY2VfaW5mb19saXN0IChzZWxmLT5jb250ZXh0LCBnZXRfc291
cmNlX2luZm9fY2IsCi0rICAgICAgICAgICAgICBzZWxmKSkpCi0gICAgIGdvdG8gdW5sb2NrX2Fu
ZF9mYWlsOwotLSAgd2hpbGUgKHBhX29wZXJhdGlvbl9nZXRfc3RhdGUgKGluaXRpYWxfb3BlcmF0
aW9uKSA9PSBQQV9PUEVSQVRJT05fUlVOTklORykgewotLSAgICBpZiAoIVBBX0NPTlRFWFRfSVNf
R09PRCAocGFfY29udGV4dF9nZXRfc3RhdGUgKChzZWxmLT5jb250ZXh0KSkpKQotLSAgICAgIGdv
dG8gY2FuY2VsX2FuZF9mYWlsOwotIAotLSAgICBwYV90aHJlYWRlZF9tYWlubG9vcF93YWl0IChz
ZWxmLT5tYWlubG9vcCk7Ci0tICB9Ci0tICBwYV9vcGVyYXRpb25fdW5yZWYgKGluaXRpYWxfb3Bl
cmF0aW9uKTsKLSsgIGlmICghcnVuX3B1bHNlX29wZXJhdGlvbiAoc2VsZiwgcGFfY29udGV4dF9n
ZXRfc2lua19pbmZvX2xpc3QgKHNlbGYtPmNvbnRleHQsCi0rICAgICAgICAgICAgICBnZXRfc2lu
a19pbmZvX2NiLCBzZWxmKSkpCi0rICAgIGdvdG8gdW5sb2NrX2FuZF9mYWlsOwotIAotICAgcGFf
dGhyZWFkZWRfbWFpbmxvb3BfdW5sb2NrIChzZWxmLT5tYWlubG9vcCk7Ci0gCi1AQCAtNDk1LDEx
ICs1MzQsNiBAQCB1bmxvY2tfYW5kX2ZhaWw6Ci0gCi0gbWFpbmxvb3BfZmFpbGVkOgotICAgcmV0
dXJuIEZBTFNFOwotLQotLWNhbmNlbF9hbmRfZmFpbDoKLS0gIHBhX29wZXJhdGlvbl9jYW5jZWwg
KGluaXRpYWxfb3BlcmF0aW9uKTsKLS0gIHBhX29wZXJhdGlvbl91bnJlZiAoaW5pdGlhbF9vcGVy
YXRpb24pOwotLSAgZ290byB1bmxvY2tfYW5kX2ZhaWw7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1A
QCAtNjExLDcgKzY0NSw3IEBAIGdzdF9wdWxzZV9kZXZpY2VfcmVjb25maWd1cmVfZWxlbWVudCAo
R3N0RGV2aWNlICogZGV2aWNlLCBHc3RFbGVtZW50ICogZWxlbWVudCkKLSBzdGF0aWMgR3N0RGV2
aWNlICoKLSBnc3RfcHVsc2VfZGV2aWNlX25ldyAoZ3VpbnQgZGV2aWNlX2luZGV4LCBjb25zdCBn
Y2hhciAqIGRldmljZV9uYW1lLAotICAgICBHc3RDYXBzICogY2FwcywgY29uc3QgZ2NoYXIgKiBp
bnRlcm5hbF9uYW1lLCBHc3RQdWxzZURldmljZVR5cGUgdHlwZSwKLS0gICAgR3N0U3RydWN0dXJl
ICogcHJvcHMpCi0rICAgIEdzdFN0cnVjdHVyZSAqIHByb3BzLCBnYm9vbGVhbiBpc19kZWZhdWx0
KQotIHsKLSAgIEdzdFB1bHNlRGV2aWNlICpnc3RkZXY7Ci0gICBjb25zdCBnY2hhciAqZWxlbWVu
dCA9IE5VTEw7Ci1AQCAtNjM2LDcgKzY3MCw3IEBAIGdzdF9wdWxzZV9kZXZpY2VfbmV3IChndWlu
dCBkZXZpY2VfaW5kZXgsIGNvbnN0IGdjaGFyICogZGV2aWNlX25hbWUsCi0gICAgICAgYnJlYWs7
Ci0gICB9Ci0gCi0tCi0rICBnc3Rfc3RydWN0dXJlX3NldCAocHJvcHMsICJpcy1kZWZhdWx0Iiwg
R19UWVBFX0JPT0xFQU4sIGlzX2RlZmF1bHQsIE5VTEwpOwotICAgZ3N0ZGV2ID0gZ19vYmplY3Rf
bmV3IChHU1RfVFlQRV9QVUxTRV9ERVZJQ0UsCi0gICAgICAgImRpc3BsYXktbmFtZSIsIGRldmlj
ZV9uYW1lLCAiY2FwcyIsIGNhcHMsICJkZXZpY2UtY2xhc3MiLCBrbGFzcywKLSAgICAgICAiaW50
ZXJuYWwtbmFtZSIsIGludGVybmFsX25hbWUsICJwcm9wZXJ0aWVzIiwgcHJvcHMsIE5VTEwpOwot
QEAgLTY0NCw2ICs2NzgsNyBAQCBnc3RfcHVsc2VfZGV2aWNlX25ldyAoZ3VpbnQgZGV2aWNlX2lu
ZGV4LCBjb25zdCBnY2hhciAqIGRldmljZV9uYW1lLAotICAgZ3N0ZGV2LT50eXBlID0gdHlwZTsK
LSAgIGdzdGRldi0+ZGV2aWNlX2luZGV4ID0gZGV2aWNlX2luZGV4OwotICAgZ3N0ZGV2LT5lbGVt
ZW50ID0gZWxlbWVudDsKLSsgIGdzdGRldi0+aXNfZGVmYXVsdCA9IGlzX2RlZmF1bHQ7Ci0gCi0g
ICBnc3Rfc3RydWN0dXJlX2ZyZWUgKHByb3BzKTsKLSAgIGdzdF9jYXBzX3VucmVmIChjYXBzKTsK
LWRpZmYgLS1naXQgYS9leHQvcHVsc2UvcHVsc2VkZXZpY2Vwcm92aWRlci5oIGIvZXh0L3B1bHNl
L3B1bHNlZGV2aWNlcHJvdmlkZXIuaAotaW5kZXggMDg5MmFkNTg2Li43YmNkMWJjNDcgMTAwNjQ0
Ci0tLS0gYS9leHQvcHVsc2UvcHVsc2VkZXZpY2Vwcm92aWRlci5oCi0rKysgYi9leHQvcHVsc2Uv
cHVsc2VkZXZpY2Vwcm92aWRlci5oCi1AQCAtNTAsNiArNTAsOCBAQCBzdHJ1Y3QgX0dzdFB1bHNl
RGV2aWNlUHJvdmlkZXIgewotIAotICAgZ2NoYXIgKnNlcnZlcjsKLSAgIGdjaGFyICpjbGllbnRf
bmFtZTsKLSsgIGdjaGFyICpkZWZhdWx0X3NvdXJjZV9uYW1lOwotKyAgZ2NoYXIgKmRlZmF1bHRf
c2lua19uYW1lOwotIAotICAgcGFfdGhyZWFkZWRfbWFpbmxvb3AgKm1haW5sb29wOwotICAgcGFf
Y29udGV4dCAqY29udGV4dDsKLUBAIC04NCw2ICs4Niw3IEBAIHN0cnVjdCBfR3N0UHVsc2VEZXZp
Y2UgewotICAgR3N0UHVsc2VEZXZpY2VUeXBlIHR5cGU7Ci0gICBndWludCAgICAgICAgICAgICBk
ZXZpY2VfaW5kZXg7Ci0gICBnY2hhciAgICAgICAgICAgICppbnRlcm5hbF9uYW1lOwotKyAgZ2Jv
b2xlYW4gICAgICAgICBpc19kZWZhdWx0OwotICAgY29uc3QgZ2NoYXIgICAgICAqZWxlbWVudDsK
LSB9OwotIAotLS0gCi0yLjE5LjEKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC1zY2FsZXRlbXBvLUFkdmVydGlzZS1pbnRlcmxlYXZlZC1sYXlv
dXQtaW4tY2Fwcy10ZW1wLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtZ29vZC1zY2FsZXRlbXBvLUFkdmVydGlzZS1pbnRlcmxlYXZlZC1sYXlvdXQtaW4tY2Fwcy10
ZW1wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Y2E3Y2M1NzY1ODE5YzNmZTUxZjAzYmYzNWRmZTJiNWQ4
MGU5NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLXNjYWxldGVtcG8tQWR2ZXJ0aXNlLWludGVybGVhdmVkLWxheW91dC1pbi1jYXBz
LXRlbXAucGF0Y2gKQEAgLTAsMCArMSwzNiBAQAorRnJvbSA3YmUyYWE2ZjQyZDg5ZWU3ODRkNWJl
ZjFjMjczODdiZGE3MWYyY2M3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGhpbGlw
cGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwgMjMgQXByIDIwMTkgMTA6
MTA6MDEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gc2NhbGV0ZW1wbzogQWR2ZXJ0aXNlIGludGVy
bGVhdmVkIGxheW91dCBpbiBjYXBzIHRlbXBsYXRlcworCitTY2FsZXRlbXBvIGRvZXNuJ3Qgc3Vw
cG9ydCBub24taW50ZXJsZWF2ZWQgbGF5b3V0LiBOb3QgZXhwbGljaXRlbHkgc3RhdGluZyB0aGlz
Cit3b3VsZCB0cmlnZ2VyIGNyaXRpY2FsIHdhcm5pbmdzIGFuZCBhIGNhcHMgbmVnb3RpYXRpb24g
ZmFpbHVyZSB3aGVuIHNjYWxldGVtcG8KK2lzIHVzZWQgYXMgcGxheWJpbiBhdWRpby1maWx0ZXIu
CisKK1BhdGNoIHN1Z2dlc3RlZCBieSBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFk
YWtpc0Bjb2xsYWJvcmEuY29tPi4KKworaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2dz
dHJlYW1lci9nc3QtcGx1Z2lucy1nb29kL2lzc3Vlcy81OTEKKy0tLQorIGdzdC9hdWRpb2Z4L2dz
dHNjYWxldGVtcG8uYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9hdWRpb2Z4L2dzdHNjYWxldGVt
cG8uYyBiL2dzdC9hdWRpb2Z4L2dzdHNjYWxldGVtcG8uYworaW5kZXggM2E3MTk3MTlhLi44M2Vl
OGZlMjQgMTAwNjQ0CistLS0gYS9nc3QvYXVkaW9meC9nc3RzY2FsZXRlbXBvLmMKKysrKyBiL2dz
dC9hdWRpb2Z4L2dzdHNjYWxldGVtcG8uYworQEAgLTkzLDkgKzkzLDkgQEAgZW51bQorIAorICNk
ZWZpbmUgU1VQUE9SVEVEX0NBUFMgXAorIEdTVF9TVEFUSUNfQ0FQUyAoIFwKKy0gICAgR1NUX0FV
RElPX0NBUFNfTUFLRSAoR1NUX0FVRElPX05FIChGMzIpKSAiOyAiIFwKKy0gICAgR1NUX0FVRElP
X0NBUFNfTUFLRSAoR1NUX0FVRElPX05FIChGNjQpKSAiOyAiIFwKKy0gICAgR1NUX0FVRElPX0NB
UFNfTUFLRSAoR1NUX0FVRElPX05FIChTMTYpKSBcCisrICAgIEdTVF9BVURJT19DQVBTX01BS0Ug
KEdTVF9BVURJT19ORSAoRjMyKSkgIiwgbGF5b3V0PShzdHJpbmcpaW50ZXJsZWF2ZWQ7ICIgXAor
KyAgICBHU1RfQVVESU9fQ0FQU19NQUtFIChHU1RfQVVESU9fTkUgKEY2NCkpICIsIGxheW91dD0o
c3RyaW5nKWludGVybGVhdmVkOyAiIFwKKysgICAgR1NUX0FVRElPX0NBUFNfTUFLRSAoR1NUX0FV
RElPX05FIChTMTYpKSAiLCBsYXlvdXQ9KHN0cmluZylpbnRlcmxlYXZlZCIgXAorICkKKyAKKyBz
dGF0aWMgR3N0U3RhdGljUGFkVGVtcGxhdGUgc2lua190ZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFE
X1RFTVBMQVRFICgic2luayIsCistLSAKKzIuMjAuMQorCmRpZmYgLS1naXQgYS9Ub29scy9nc3Ry
ZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLUFkZC1hLW5ldy1kZWZpbml0
aW9uLWZvci11bnNwZWNpZmllZC1zeXN0LnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMv
Z3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1mb3ItdW5zcGVj
aWZpZWQtc3lzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI4ODQ0YzQ2
NTNmNmM0OTVkNzRiODg5ZjYzZDE5NTFkM2YyZmFiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXIt
MDAwMS1wcm90ZWN0aW9uLUFkZC1hLW5ldy1kZWZpbml0aW9uLWZvci11bnNwZWNpZmllZC1zeXN0
LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotRnJvbSAwNWEzZGEzNDdiM2I4
ZGJhZjQ3MDc5M2RjM2Y5ZWJiMjNlNmZjNjdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv
bTogWWFjaW5lIEJhbmRvdSA8eWFjaW5lLmJhbmRvdUBzb2Z0YXRob21lLmNvbT4KLURhdGU6IE1v
biwgMSBPY3QgMjAxOCAxMjoxMTo0NyArMDIwMAotU3ViamVjdDogW1BBVENIIDEvMl0gcHJvdGVj
dGlvbjogQWRkIGEgbmV3IGRlZmluaXRpb24gZm9yIHVuc3BlY2lmaWVkIHN5c3RlbQotIHByb3Rl
Y3Rpb24KLQotSW4gc29tZSBjYXNlcyB0aGUgc3lzdGVtIHByb3RlY3Rpb24gSUQgaXMgbm90IHBy
ZXNlbnQgaW4gdGhlIGNvbnRlbnRzCi1vciBpbiB0aGVpciBtZXRhZGF0YS4KLVRoaXMgZGVmaW5l
IGlzIHVzZWQgdG8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgInN5c3RlbV9pZCIgZmllbGQgaW4gR3N0
UHJvdGVjdGlvbkV2ZW50LAotd2l0aCB0aGlzIHZhbHVlLCB0aGUgYXBwbGljYXRpb24gd2lsbCB1
c2UgYW4gZXh0ZXJuYWwgaW5mb3JtYXRpb24gdG8gY2hvb3NlIHdoaWNoCi1wcm90ZWN0aW9uIHN5
c3RlbSB0byB1c2UuCi0KLUV4YW1wbGU6IFRoZSBtYXRyb3NrYWRlbXV4IHVzZXMgdGhpcyB2YWx1
ZSBpbiB0aGUgY2FzZSBvZiBlbmNyeXB0ZWQgV2ViTSwKLXRoZSBhcHBsaWNhdGlvbiB3aWxsIGNo
b29zZSB0aGUgYXBwcm9wcmlhdGUgcHJvdGVjdGlvbiBzeXN0ZW0gYmFzZWQgb24gdGhlIGluZm9y
bWF0aW9uCi1yZWNlaXZlZCB0aHJvdWdoIEVNRSBBUEkuCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25v
bWUub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcyMzEKLS0tLQotIGRvY3MvZ3N0L2dzdHJlYW1lci1z
ZWN0aW9ucy50eHQgfCAgMSArCi0gZ3N0L2dzdHByb3RlY3Rpb24uaCAgICAgICAgICAgICB8IDE4
ICsrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKQot
Ci1kaWZmIC0tZ2l0IGEvZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dCBiL2RvY3MvZ3N0
L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKLWluZGV4IDQ5MmM0ZDU5Mi4uZWNjNmIwNGU1IDEwMDY0
NAotLS0tIGEvZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAotKysrIGIvZG9jcy9nc3Qv
Z3N0cmVhbWVyLXNlY3Rpb25zLnR4dAotQEAgLTI1MDYsNiArMjUwNiw3IEBAIGdzdF9idWZmZXJf
Z2V0X3Byb3RlY3Rpb25fbWV0YQotIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0KLSBnc3Rf
cHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycwotIEdTVF9Q
Uk9URUNUSU9OX1NZU1RFTV9JRF9DQVBTX0ZJRUxECi0rR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJ
RURfU1lTVEVNX0lECi0gPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci0gR1NUX1BST1RFQ1RJT05fTUVU
QV9BUElfVFlQRQotIEdTVF9QUk9URUNUSU9OX01FVEFfSU5GTwotZGlmZiAtLWdpdCBhL2dzdC9n
c3Rwcm90ZWN0aW9uLmggYi9nc3QvZ3N0cHJvdGVjdGlvbi5oCi1pbmRleCBhNzY2OWVhYjMuLjBl
ZDg3ZTQyNyAxMDA2NDQKLS0tLSBhL2dzdC9nc3Rwcm90ZWN0aW9uLmgKLSsrKyBiL2dzdC9nc3Rw
cm90ZWN0aW9uLmgKLUBAIC0zNCw2ICszNCwyNCBAQCBHX0JFR0lOX0RFQ0xTCi0gICovCi0gI2Rl
ZmluZSBHU1RfUFJPVEVDVElPTl9TWVNURU1fSURfQ0FQU19GSUVMRCAicHJvdGVjdGlvbi1zeXN0
ZW0iCi0gCi0rLyoqCi0rICogR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lEOgot
KyAqCi0rICogVGhlIHByb3RlY3Rpb24gc3lzdGVtIHZhbHVlIG9mIHRoZSB1bnNwZWNpZmllZCBV
VUlELgotKyAqIEluIHNvbWUgY2FzZXMgdGhlIHN5c3RlbSBwcm90ZWN0aW9uIElEIGlzIG5vdCBw
cmVzZW50IGluIHRoZSBjb250ZW50cyBvciBpbiB0aGVpcgotKyAqIG1ldGFkYXRhLCBhcyBlbmNy
eXB0ZWQgV2ViTS4KLSsgKiBUaGlzIGRlZmluZSBpcyB1c2VkIHRvIHNldCB0aGUgdmFsdWUgb2Yg
dGhlICJzeXN0ZW1faWQiIGZpZWxkIGluIEdzdFByb3RlY3Rpb25FdmVudCwKLSsgKiB3aXRoIHRo
aXMgdmFsdWUsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVzZSBhbiBleHRlcm5hbCBpbmZvcm1hdGlv
biB0byBjaG9vc2Ugd2hpY2gKLSsgKiBwcm90ZWN0aW9uIHN5c3RlbSB0byB1c2UuCi0rICoKLSsg
KiBFeGFtcGxlOiBUaGUgbWF0cm9za2FkZW11eCB1c2VzIHRoaXMgdmFsdWUgaW4gdGhlIGNhc2Ug
b2YgZW5jcnlwdGVkIFdlYk0sCi0rICogdGhlIGFwcGxpY2F0aW9uIHdpbGwgY2hvb3NlIHRoZSBh
cHByb3ByaWF0ZSBwcm90ZWN0aW9uIHN5c3RlbSBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24KLSsg
KiByZWNlaXZlZCB0aHJvdWdoIEVNRSBBUEkuCi0rICoKLSsgKiBTaW5jZTogMS4xNgotKyAqLwot
KyNkZWZpbmUgR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lEICJ1bnNwZWNpZmll
ZC5nc3RyZWFtZXIub3JnIgotKwotIHR5cGVkZWYgc3RydWN0IF9Hc3RQcm90ZWN0aW9uTWV0YSBH
c3RQcm90ZWN0aW9uTWV0YTsKLSAvKioKLSAgKiBHc3RQcm90ZWN0aW9uTWV0YToKLS0tIAotMi4x
NS4wCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAy
LXByb3RlY3Rpb24tRml4LXRoZS1zdHJpbmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0
Y2ggYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMi1wcm90ZWN0aW9uLUZp
eC10aGUtc3RyaW5nLXRvLWRlZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmMzM0OGM5MmQ4OGQyNjIxMmIwMTE1YjEwZWQ3MTkyMWNiN2Q5
MWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L2dzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAyLXByb3RlY3Rpb24tRml4LXRoZS1zdHJp
bmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy
NyArMCwwIEBACi1Gcm9tIGI4OWIxODAyZGY0NDgyOWEwYzAzNGRiNTgwN2JjODkzYWQzYzc3NzQg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmll
ckBpZ2FsaWEuY29tPgotRGF0ZTogV2VkLCAzIE9jdCAyMDE4IDE4OjIzOjAxICswMjAwCi1TdWJq
ZWN0OiBbUEFUQ0ggMi8yXSBwcm90ZWN0aW9uOiBGaXggdGhlIHN0cmluZyB0byBkZWZpbmUgdW5z
cGVjaWZpZWQgc3lzdGVtCi0gaWQKLQotU2V0dGluZyBpdCB0byAidW5zcGVjaWZpZWQtc3lzdGVt
LWlkIi4KLS0tLQotIGdzdC9nc3Rwcm90ZWN0aW9uLmggfCAyICstCi0gMSBmaWxlIGNoYW5nZWQs
IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvZ3N0cHJv
dGVjdGlvbi5oIGIvZ3N0L2dzdHByb3RlY3Rpb24uaAotaW5kZXggMGVkODdlNDI3Li5mNzdhN2Jm
OTcgMTAwNjQ0Ci0tLS0gYS9nc3QvZ3N0cHJvdGVjdGlvbi5oCi0rKysgYi9nc3QvZ3N0cHJvdGVj
dGlvbi5oCi1AQCAtNTAsNyArNTAsNyBAQCBHX0JFR0lOX0RFQ0xTCi0gICoKLSAgKiBTaW5jZTog
MS4xNgotICAqLwotLSNkZWZpbmUgR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lE
ICJ1bnNwZWNpZmllZC5nc3RyZWFtZXIub3JnIgotKyNkZWZpbmUgR1NUX1BST1RFQ1RJT05fVU5T
UEVDSUZJRURfU1lTVEVNX0lEICJ1bnNwZWNpZmllZC1zeXN0ZW0taWQiCi0gCi0gdHlwZWRlZiBz
dHJ1Y3QgX0dzdFByb3RlY3Rpb25NZXRhIEdzdFByb3RlY3Rpb25NZXRhOwotIC8qKgotLS0gCi0y
LjE1LjAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL2d0
ay9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggNDgwZDhkMjNjYjQwZDQ2NjI1NmM2N2UwYWI2YmZlODky
ZDU4OWZmZC4uMjFiM2ZjMGM1ZWRhYTcwYzBlMmNmMTY1ZDJhZDQyYWQ1YjQyY2M0YyAxMDA2NDQK
LS0tIGEvVG9vbHMvZ3RrL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9ndGsvamhidWlsZC5t
b2R1bGVzCkBAIC01MTQsMTAgKzUxNCwxMCBAQAogCiAgIDxkaXN0dXRpbHMgaWQ9Im1lc29uIiBw
eXRob24zPSIxIj4KICAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi10YXJiYWxsIgotICAgICAgICAg
ICAgdmVyc2lvbj0iMC40OC4xIgorICAgICAgICAgICAgdmVyc2lvbj0iMC41MC4xIgogICAgICAg
ICAgICAgbW9kdWxlPSJtZXNvbmJ1aWxkL21lc29uL3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lv
bn0vbWVzb24tJHt2ZXJzaW9ufS50YXIuZ3oiCiAgICAgICAgICAgICBjaGVja291dGRpcj0ibWVz
b24tJHt2ZXJzaW9ufSIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1Njo0MjVkMTJlZGJiODE0OTgz
MTQ5MjZhZmE5M2EzZWIyZmNhNGNhNjkyOWNiZTBmOGFiZWI2YWI0NWQxZDlmYThmIi8+CisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6ZjY4ZjU2ZDYwYzgwYTc3ZGY4ZmMwOGZhMTAxNmJjNTgzMTYw
NWQ0NzE3YjYyMmM5NjIxMjU3MzI3MWUxNGVjYyIvPgogICA8L2Rpc3R1dGlscz4KIAogICA8YXV0
b3Rvb2xzIGlkPSJ4ZGctZGJ1cy1wcm94eSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4K
</data>
<flag name="review"
          id="384425"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="384429"
          type_id="3"
          status="-"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>