<?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>174350</bug_id>
          
          <creation_ts>2017-07-11 01:00:14 -0700</creation_ts>
          <short_desc>[WPE] Bump GStreamer packages in jhbuild.modules to 1.10.5</short_desc>
          <delta_ts>2017-07-11 07:59:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cturner</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1327398</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 01:00:14 -0700</bug_when>
    <thetext>[WPE] Bump GStreamer packages in jhbuild.modules to 1.10.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327399</commentid>
    <comment_count>1</comment_count>
      <attachid>315086</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 01:03:24 -0700</bug_when>
    <thetext>Created attachment 315086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327402</commentid>
    <comment_count>2</comment_count>
      <attachid>315086</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-07-11 02:48:30 -0700</bug_when>
    <thetext>Comment on attachment 315086
Patch

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

This should be applied for GTK+ port too.

&gt; Tools/ChangeLog:22
&gt; +        * wpe/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Added.
&gt; +        * wpe/patches/gst-plugins-good-0007-qtdemux-dont-check-pushbased-edts.patch: Added.
&gt; +        * wpe/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added.
&gt; +        * wpe/patches/gst-plugins-good-0009-qtdemux-select-the-preferred-protection-system-even-.patch: Added.

There&apos;s a new version of patch 6 that renders 9 useless and harmful. Please update 6 and remove 9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327404</commentid>
    <comment_count>3</comment_count>
      <attachid>315086</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-07-11 03:08:23 -0700</bug_when>
    <thetext>Comment on attachment 315086
Patch

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

&gt; Tools/ChangeLog:20
&gt; +        * wpe/patches/gst-plugins-good-0007-qtdemux-dont-check-pushbased-edts.patch: Added.

This patch is not needed upstream, at least yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327413</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 04:02:33 -0700</bug_when>
    <thetext>Will update the patch to bump to 1.10.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327440</commentid>
    <comment_count>5</comment_count>
      <attachid>315101</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 06:36:01 -0700</bug_when>
    <thetext>Created attachment 315101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327443</commentid>
    <comment_count>6</comment_count>
      <attachid>315101</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2017-07-11 06:43:32 -0700</bug_when>
    <thetext>Comment on attachment 315101
Patch

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

&gt; Tools/ChangeLog:9
&gt; +        to the 1.10.4 version. One gstreamer patch is added. The two gst-plugins-bad

1.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327444</commentid>
    <comment_count>7</comment_count>
      <attachid>315101</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-07-11 06:47:11 -0700</bug_when>
    <thetext>Comment on attachment 315101
Patch

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

&gt; Tools/ChangeLog:21
&gt; +        * wpe/patches/gst-plugins-good-0009-qtdemux-select-the-preferred-protection-system-even-.patch: Added.

Patch 0009 is not needed as functionality should be done already by 0006.

&gt; Tools/wpe/jhbuild.modules:211
&gt; +      &lt;patch file=&quot;gst-plugins-good-0009-qtdemux-select-the-preferred-protection-system-even-.patch&quot; strip=&quot;1&quot;/&gt;

Ditto.

&gt; Tools/wpe/patches/gst-plugins-good-0009-qtdemux-select-the-preferred-protection-system-even-.patch:5
&gt; +From 77f1ad95beb4cef6a45861e97916d6a84dc8690b Mon Sep 17 00:00:00 2001
&gt; +From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= &lt;eocanha@igalia.com&gt;
&gt; +Date: Mon, 15 May 2017 10:38:57 +0000
&gt; +Subject: [PATCH] qtdemux: select the preferred protection system even if not
&gt; + available

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327447</commentid>
    <comment_count>8</comment_count>
      <attachid>315105</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 06:52:21 -0700</bug_when>
    <thetext>Created attachment 315105
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327465</commentid>
    <comment_count>9</comment_count>
      <attachid>315105</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 07:59:28 -0700</bug_when>
    <thetext>Comment on attachment 315105
Patch for landing

Clearing flags on attachment: 315105

Committed r219329: &lt;http://trac.webkit.org/changeset/219329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327466</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-07-11 07:59:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315086</attachid>
            <date>2017-07-11 01:03:24 -0700</date>
            <delta_ts>2017-07-11 06:35:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174350-20170711100323.patch</filename>
            <type>text/plain</type>
            <size>55561</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZiMjhlOGYxZmZhYTM4NTg1M2M4NGZlNjg1MWRkODE5
YjQ2Y2QyNi4uZGY5OTgyZGNlZWJjYWJkY2M2YmQxZDRkN2UzODFmMjY1MmU2YjY2OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDE3LTA3LTExICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV1BFXSBCdW1wIEdTdHJlYW1lciBwYWNrYWdlcyBpbiBqaGJ1aWxkLm1vZHVsZXMg
dG8gMS4xMC40CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQzNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdW1wIHRoZSB2YXJpb3VzIEdTdHJlYW1lciBkZXBlbmRlbmNpZXMgbGlzdGVkIGluIFdQRSdz
IEpoYnVpbGQgbW9kdWxlcyBmaWxlCisgICAgICAgIHRvIHRoZSAxLjEwLjQgdmVyc2lvbi4gT25l
IGdzdHJlYW1lciBwYXRjaCBpcyBhZGRlZC4gVGhlIHR3byBnc3QtcGx1Z2lucy1iYWQKKyAgICAg
ICAgcGF0Y2hlcyBhcmUgcmVtb3ZlZC4gVGhlIHBhdGNoZXMgZm9yIGdzdC1wbHVnaW5zLWdvb2Qg
YXJlIHVwZGF0ZWQsIHJlbW92aW5nCisgICAgICAgIHRoZSBzdGFsZSBvbmVzIGFuZCBhZGRpbmcg
dGhlIGFkZGl0aW9uYWwgY2hhbmdlcyB0byBxdGRlbXV4IGFuZCBzb3VwaHR0cHNyYworICAgICAg
ICBlbGVtZW50cyB0aGF0IHdpbGwgaGVscCB3aXRoIHRoZSBFTUV2MyBkZXZlbG9wbWVudC4KKwor
ICAgICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6CisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2g6IFJlbW92
ZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRp
ZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDEtcXRkZW11eC1k
aXN0aW5ndWlzaC1URkRULXdpdGgtdmFsdWUtMC1mcm9tLW5vLVRGRFQtYS5wYXRjaDogQWRkZWQu
CisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3Jj
LWNvb2tpZS1qYXItYW5kLWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaDogQWRkZWQuCisgICAg
ICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRl
eHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdw
ZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNy1xdGRlbXV4LWRvbnQtY2hlY2stcHVzaGJh
c2VkLWVkdHMucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWdvb2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1p
bmZvLWluLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDktcXRkZW11eC1zZWxlY3QtdGhlLXByZWZlcnJlZC1wcm90ZWN0aW9uLXN5c3RlbS1l
dmVuLS5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBh
dGNoOiBSZW1vdmVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIHdwZS9wYXRj
aGVzL2dzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5
c3RlbS1pZHMucGF0Y2g6IEFkZGVkLgorCiAyMDE3LTA3LTEwICBKb2huIFdpbGFuZGVyICA8d2ls
YW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogUHJ1
bmUgc3RhdGlzdGljcyBpbiBvcmRlcnMgb2YgaW1wb3J0YW5jZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
d3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggM2Jj
YzFiYjg0ZTA4YzIyN2JkMzUzYzI0YmJiMGFiZTY5YjgwZmVkZS4uMGNmZDNlMjE1N2FkOTE1NjI5
N2U1ZjQxZmQ0ZTc0YjMwZGU4MTYwMiAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2poYnVpbGQubW9k
dWxlcworKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0xNzgsMTEgKzE3OCwxMCBA
QAogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9yYyIvPgogICAgIDwv
ZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7
dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0
cmVhbWVyL2dzdHJlYW1lci0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC40IgogICAg
ICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcy
MmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMx
MDciCi0gICAgICAgICAgICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4
Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQ
Uy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6NTBjMmY1YWY1MGE2Y2M2YzBhM2YzZWQ0M2JkZDhiNWUyYmZmMDBiYWNm
Yjc2NmQ0YmUxMzllYzA2ZDhiNTIxOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLTAw
MDEtcHJvdGVjdGlvbi1hZGRlZC1mdW5jdGlvbi10by1maWx0ZXItc3lzdGVtLWlkcy5wYXRjaCIg
c3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKQEAgLTE5MiwxMCAr
MTkxLDkgQEAKICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFt
ZXIiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdp
bnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjgu
MSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNl
LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjQiCiAgICAgICAgICAgICByZXBvPSJn
c3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6MTVhOWRlOTg1Y2QyNjVjMzQ0ZTM1
OWY1YjE5MzQ3ZGY0MDIxYjc2MTFlZDJjMmQ5MTkxN2NiOTAwZjJmYWQ2ZiIKLSAgICAgICAgICAg
IG1kNXN1bT0iNTQyMWVkZmViNzQ3OWQ1ZjU3NzZlOTE3YmEzMGUyNGUiLz4KKyAgICAgICAgICAg
IGhhc2g9InNoYTI1NjpmNmQyNDViNmIzZDRjYjczM2Y4MWViYjAyMTA3NGM1MjVlY2U4M2RiMGMx
MGU5MzI3OTRiMzM5YjhkOTM1ZWI3Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9
Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+CkBA
IC0yMDMsMTIgKzIwMSwxNSBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNl
Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CiAKLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdp
bnMtZ29vZC9nc3QtcGx1Z2lucy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjgu
MSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lucy1nb29k
LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjQiCiAgICAgICAgICAgICByZXBvPSJn
c3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5NGU4MmVh
ZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3MiIKLSAgICAgICAgICAg
IG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDciPgotICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIiBz
dHJpcD0iMSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0
ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCIgc3RyaXA9
IjEiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo4YTg2YzYxNDM0YThjNDQ2NjUzNjViZDBi
MzU1N2EwNDA5MzdkMWY0NGJmNjljYWVlNGU5ZWE4MTZjZTc0ZDdlIj4KKyAgICAgIDxwYXRjaCBm
aWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDEtcXRkZW11eC1kaXN0aW5ndWlzaC1URkRULXdpdGgt
dmFsdWUtMC1mcm9tLW5vLVRGRFQtYS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBm
aWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29va2llLWphci1hbmQtY29u
dGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9
ImdzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJl
ZC1wcm90ZWN0aW9uLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1w
bHVnaW5zLWdvb2QtMDAwNy1xdGRlbXV4LWRvbnQtY2hlY2stcHVzaGJhc2VkLWVkdHMucGF0Y2gi
IHN0cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0
ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gi
IHN0cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LXF0
ZGVtdXgtc2VsZWN0LXRoZS1wcmVmZXJyZWQtcHJvdGVjdGlvbi1zeXN0ZW0tZXZlbi0ucGF0Y2gi
IHN0cmlwPSIxIi8+CiAgICAgPC9icmFuY2g+CiAgIDwvYXV0b3Rvb2xzPgogCkBAIC0yMTYsMTIg
KzIxNyw5IEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBs
dWdpbnMtYmFzZSIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJn
c3QtcGx1Z2lucy1iYWQvZ3N0LXBsdWdpbnMtYmFkLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5z
LWJhZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC40IgogICAgICAgICAgICAgcmVw
bz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjBiYmQ1OGYzNjM3MzRmYzBj
NGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdiOTBiNGUxNWQwM2I3NTFjYTQwZjUiCi0gICAgICAg
ICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNkMTIyNjRmZTM0MTViZTJmNDUxIj4KLSAgICAgIDxw
YXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEu
MC5wYXRjaCIgc3RyaXA9IjEiLz4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQt
MDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9r
LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIzZGRhZTUwNmIz
YTIyM2I5NDg2OWEwZDNlZWEzZTlhMTJlODQ3Zjk0ZDJkMGUwYjk3MTAyY2UxM2VjZDY5NjYiPgog
ICAgIDwvYnJhbmNoPgogICA8L2F1dG90b29scz4KIApAQCAtMjI5LDEwICsyMjcsOSBAQAogICAg
IDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4K
ICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LWxpYmF2L2dzdC1s
aWJhdi0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgPGJyYW5jaCBtb2R1
bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAu
NCIKICAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1
Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdjZDdmYmFmYjBlOGFiMzk0Mzk0Y2I2ZDc1YTcw
MzAwYjM4OTMzIgotICAgICAgICAgICAgbWQ1c3VtPSI4NWYxYTA0NzYwNmNhOWUwODQ5M2Q3YjZi
NDJkZjQ2MiIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjZjYTBmZWNhNzVlM2Q0ODMxNWUw
N2YyMGVjMzdjZjYyNjBlZDFlOWRkZTU4ZGYzNTVmZWJkNTAxNjI0NjI2OGIiLz4KICAgPC9hdXRv
dG9vbHM+CiAKICAgPGNtYWtlIGlkPSJ3cGUiPgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3Bl
blNTTC0xLjEuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQxMDY0ZWQ1
ZTkxMzdmNjUxZjUxZjQzMDE2ZGMzNmNkZjgyMjc1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQt
MDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x
LDIzNiArMCwwIEBACi1Gcm9tIGU5Mzg5MzMxNjdjNDk0Y2RjYTQ0MzMzNGY2NThiMDJhMDNjNDQ4
NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYWlraSBVZW5vIDxkdWVub0ByZWRo
YXQuY29tPgotRGF0ZTogV2VkLCAyNiBPY3QgMjAxNiAxNDo1MTowMSArMDIwMAotU3ViamVjdDog
W1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5TU0wgMS4xLjAKLQotQ2hhbmdlcyBhcmU6Ci0KLS0g
VXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3Mgb3BhcXVlIGRhdGEgdHlwZXMuICBU
byBwcmVzZXJ2ZQotICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBkZWZpbmUgZmFsbGJhY2sgZGVm
aW5pdGlvbnMKLQotLSBSZW1vdmUgdGhlIHVzZSBvZiBpZGlvbSAicHF1ZXVlX3NpemUoc3NsLT5k
MS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQotICB0aGVyZSBpcyBubyByZXBsYWNlbWVudAotCi0t
IFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgUlNBX2dl
bmVyYXRlX2tleQotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzczNTQwCi0tLS0KLSBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDE1ICsrKysrKysr
Ci0gZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyAgfCA4NyArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25z
KCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRp
ZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotaW5kZXggOTVmYmI4My4u
YzFjOTYwMiAxMDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi0rKysg
Yi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotQEAgLTE5OSw3ICsxOTksMjIgQEAgaW5p
dF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYpCi0gICAgIHByaXYtPnByaXZh
dGVfa2V5ID0gTlVMTDsKLSAgICAgcmV0dXJuOwotICAgfQotKwotKyAgLyogWFhYOiBSU0FfZ2Vu
ZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJlY2F0ZWQgaW4gMC45LjggKi8KLSsjaWYgT1BFTlNT
TF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCi0gICByc2EgPSBSU0FfZ2VuZXJhdGVfa2V5
ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwpOwotKyNlbHNlCi0rICByc2EgPSBSU0FfbmV3ICgp
OwotKyAgaWYgKHJzYSAhPSBOVUxMKSB7Ci0rICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKLSsg
ICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQotKyAgICAgICAgJiYg
UlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgewotKyAgICAgIFJTQV9m
cmVlIChyc2EpOwotKyAgICAgIHJzYSA9IE5VTEw7Ci0rICAgIH0KLSsgICAgQk5fZnJlZSAoZSk7
Ci0rICB9Ci0rI2VuZGlmCi0gCi0gICBpZiAoIXJzYSkgewotICAgICBHU1RfV0FSTklOR19PQkpF
Q1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJhdGUgUlNBIik7Ci1kaWZmIC0tZ2l0IGEvZXh0L2R0
bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKLWlu
ZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0Ci0tLS0gYS9leHQvZHRscy9nc3RkdGxzY29ubmVj
dGlvbi5jCi0rKysgYi9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCi1AQCAtNDIsNiArNDIs
OCBAQAotICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5o
PgotIAotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsKLSBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElD
IChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnKTsKLSAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCBn
c3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCi0gR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKEdzdER0
bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25uZWN0aW9uLCBHX1RZUEVfT0JKRUNULAotQEAgLTIx
Niw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9maW5hbGl6ZSAoR09iamVjdCAqIGdv
YmplY3QpCi0gICBHX09CSkVDVF9DTEFTUyAoZ3N0X2R0bHNfY29ubmVjdGlvbl9wYXJlbnRfY2xh
c3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7Ci0gfQotIAotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVN
QkVSIDwgMHgxMDEwMDAwMUwKLStzdGF0aWMgdm9pZAotK0JJT19zZXRfZGF0YSAoQklPICogYmlv
LCB2b2lkICpwdHIpCi0rewotKyAgYmlvLT5wdHIgPSBwdHI7Ci0rfQotKwotK3N0YXRpYyB2b2lk
ICoKLStCSU9fZ2V0X2RhdGEgKEJJTyAqIGJpbykKLSt7Ci0rICByZXR1cm4gYmlvLT5wdHI7Ci0r
fQotKwotK3N0YXRpYyB2b2lkCi0rQklPX3NldF9zaHV0ZG93biAoQklPICogYmlvLCBpbnQgc2h1
dGRvd24pCi0rewotKyAgYmlvLT5zaHV0ZG93biA9IHNodXRkb3duOwotK30KLSsKLStzdGF0aWMg
dm9pZAotK0JJT19zZXRfaW5pdCAoQklPICogYmlvLCBpbnQgaW5pdCkKLSt7Ci0rICBiaW8tPmlu
aXQgPSBpbml0OwotK30KLSsKLStzdGF0aWMgWDUwOSAqCi0rWDUwOV9TVE9SRV9DVFhfZ2V0MF9j
ZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkKLSt7Ci0rICByZXR1cm4gY3R4LT5jZXJ0OwotK30K
LSsjZW5kaWYKLSsKLSBzdGF0aWMgdm9pZAotIGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3Bl
cnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAotICAgICBjb25zdCBHVmFsdWUg
KiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQotQEAgLTIzOSw3ICsyNzMsNyBAQCBnc3RfZHRs
c19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwKLSAgICAgICBwcml2LT5iaW8gPSBCSU9fbmV3IChCSU9fc19nc3RfZHRsc19jb25uZWN0aW9u
ICgpKTsKLSAgICAgICBnX3JldHVybl9pZl9mYWlsIChwcml2LT5iaW8pOwotIAotLSAgICAgIHBy
aXYtPmJpby0+cHRyID0gc2VsZjsKLSsgICAgICBCSU9fc2V0X2RhdGEgKHByaXYtPmJpbywgc2Vs
Zik7Ci0gICAgICAgU1NMX3NldF9iaW8gKHByaXYtPnNzbCwgcHJpdi0+YmlvLCBwcml2LT5iaW8p
OwotIAotICAgICAgIFNTTF9zZXRfdmVyaWZ5IChwcml2LT5zc2wsCi1AQCAtNTczLDYgKzYwNyw3
IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0
cikKLSAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfd3JpdGUgKHByaXYtPnNzbCkgPDwgMjApOwot
ICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9yZWFkIChwcml2LT5zc2wpIDw8IDI0KTsKLSAKLSsj
aWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCi0gICBHU1RfTE9HX09CSkVD
VCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0oJWQsJXA6JWQvJWQpICV4fCV4ICVzIiwKLSAgICAg
ICBzdHIsCi0gICAgICAgcHJpdi0+aXNfY2xpZW50ID8gImNsaWVudCIgOiAic2VydmVyIiwKLUBA
IC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBj
b25zdCBnY2hhciAqIHN0cikKLSAgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKLSAgICAg
ICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKLSAgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHBy
aXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7Ci0rI2Vsc2UKLSsg
IEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglcDolZC8lZCkgJXh8JXgg
JXMiLAotKyAgICAgIHN0ciwKLSsgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJz
ZXJ2ZXIiLAotKyAgICAgIHByaXYtPmJpb19idWZmZXIsCi0rICAgICAgcHJpdi0+YmlvX2J1ZmZl
cl9vZmZzZXQsCi0rICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9sZW4sCi0rICAgICAgc3RhdGVzLCBT
U0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVfc3RyaW5nX2xvbmcgKHByaXYtPnNz
bCkpOwotKyNlbmRpZgotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTczNyw3ICs3ODEsNyBAQCBv
cGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFgg
KiB4NTA5X2N0eCkKLSAgIHNlbGYgPSBTU0xfZ2V0X2V4X2RhdGEgKHNzbCwgY29ubmVjdGlvbl9l
eF9pbmRleCk7Ci0gICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lTX0RUTFNfQ09OTkVDVElP
TiAoc2VsZiksIEZBTFNFKTsKLSAKLS0gIHBlbSA9IF9nc3RfZHRsc194NTA5X3RvX3BlbSAoeDUw
OV9jdHgtPmNlcnQpOwotKyAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtIChYNTA5X1NUT1JF
X0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7Ci0gCi0gICBpZiAoIXBlbSkgewotICAgICBHU1Rf
V0FSTklOR19PQkpFQ1QgKHNlbGYsCi1AQCAtNzQ5LDcgKzc5Myw4IEBAIG9wZW5zc2xfdmVyaWZ5
X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQot
ICAgICAgIGdpbnQgbGVuOwotIAotICAgICAgIGxlbiA9Ci0tICAgICAgICAgIFg1MDlfTkFNRV9w
cmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJqZWN0X25hbWUgKHg1MDlfY3R4LT5jZXJ0KSwgMSwK
LSsgICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8sCi0rICAgICAgICAgIFg1MDlfZ2V0
X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpLCAxLAot
ICAgICAgICAgICBYTl9GTEFHX01VTFRJTElORSk7Ci0gICAgICAgQklPX3JlYWQgKGJpbywgYnVm
ZmVyLCBsZW4pOwotICAgICAgIGJ1ZmZlcltsZW5dID0gJ1wwJzsKLUBAIC03NzcsNiArODIyLDcg
QEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVf
Q1RYICogeDUwOV9jdHgpCi0gICAgICMjIyMjIyMjICAjIyMjICAjIyMjIyMjCi0gKi8KLSAKLSsj
aWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCi0gc3RhdGljIEJJT19NRVRI
T0QgY3VzdG9tX2Jpb19tZXRob2RzID0gewotICAgQklPX1RZUEVfQklPLAotICAgInN0cmVhbSIs
Ci1AQCAtNzk1LDExICs4NDEsMzQgQEAgQklPX3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9pZCkK
LSB7Ci0gICByZXR1cm4gJmN1c3RvbV9iaW9fbWV0aG9kczsKLSB9Ci0rI2Vsc2UKLStzdGF0aWMg
QklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRob2RzOwotKwotK3N0YXRpYyBCSU9fTUVUSE9EICoK
LStCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQotK3sKLSsgIGlmIChjdXN0b21fYmlv
X21ldGhvZHMgIT0gTlVMTCkKLSsgICAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKLSsKLSsg
IGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19tZXRoX25ldyAoQklPX1RZUEVfQklPLCAic3RyZWFt
Iik7Ci0rICBpZiAoY3VzdG9tX2Jpb19tZXRob2RzID09IE5VTEwKLSsgICAgICB8fCAhQklPX21l
dGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2Rfd3JpdGUpCi0rICAg
ICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2Rf
cmVhZCkKLSsgICAgICB8fCAhQklPX21ldGhfc2V0X2N0cmwgKGN1c3RvbV9iaW9fbWV0aG9kcywg
YmlvX21ldGhvZF9jdHJsKQotKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3JlYXRlIChjdXN0b21f
YmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3KQotKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfZGVz
dHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2ZyZWUpKSB7Ci0rICAgIEJJT19t
ZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9kcyk7Ci0rICAgIHJldHVybiBOVUxMOwotKyAgfQot
KwotKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKLSt9Ci0rI2VuZGlmCi0gCi0gc3RhdGlj
IGludAotIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50
IHNpemUpCi0gewotLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNU
SU9OIChiaW8tPnB0cik7Ci0rICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NP
Tk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Ci0gCi0gICBHU1RfTE9HX09CSkVDVCAoc2Vs
ZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUpOwotIAotQEAgLTgyNCw3ICs4OTMsNyBAQCBiaW9f
bWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNvbnN0IGNoYXIgKmRhdGEsIGludCBzaXplKQotIHN0
YXRpYyBpbnQKLSBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwg
aW50IHNpemUpCi0gewotLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05O
RUNUSU9OIChiaW8tPnB0cik7Ci0rICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExT
X0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Ci0gICBHc3REdGxzQ29ubmVjdGlvblBy
aXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OwotICAgZ3VpbnQgaW50ZXJuYWxfc2l6ZTsKLSAgIGdp
bnQgY29weV9zaXplOwotQEAgLTg2OCw3ICs5MzcsNyBAQCBiaW9fbWV0aG9kX3JlYWQgKEJJTyAq
IGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCi0gc3RhdGljIGxvbmcKLSBiaW9fbWV0
aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNtZCwgbG9uZyBhcmcxLCB2b2lkICphcmcyKQotIHsK
LS0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5w
dHIpOwotKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChC
SU9fZ2V0X2RhdGEgKGJpbykpOwotICAgR3N0RHRsc0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0g
c2VsZi0+cHJpdjsKLSAKLSAgIHN3aXRjaCAoY21kKSB7Ci1AQCAtOTE2LDggKzk4NSw4IEBAIGJp
b19tZXRob2RfbmV3IChCSU8gKiBiaW8pCi0gewotICAgR1NUX0xPR19PQkpFQ1QgKE5VTEwsICJC
SU86IG5ldyIpOwotIAotLSAgYmlvLT5zaHV0ZG93biA9IDA7Ci0tICBiaW8tPmluaXQgPSAxOwot
KyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAwKTsKLSsgIEJJT19zZXRfaW5pdCAoYmlvLCAxKTsK
LSAKLSAgIHJldHVybiAxOwotIH0KLUBAIC05MzAsNiArOTk5LDYgQEAgYmlvX21ldGhvZF9mcmVl
IChCSU8gKiBiaW8pCi0gICAgIHJldHVybiAwOwotICAgfQotIAotLSAgR1NUX0xPR19PQkpFQ1Qg
KEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKSwgIkJJTyBmcmVlIik7Ci0rICBHU1RfTE9H
X09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKSwgIkJJTyBm
cmVlIik7Ci0gICByZXR1cm4gMDsKLSB9Ci0tLSAKLTIuMTAuMgotCmRpZmYgLS1naXQgYS9Ub29s
cy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVy
cm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1p
bi1SU0FfZ2VuZXJhdGVfay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2
ODc3MzcwYzZmYjRjZDk1YmQ5MTJiMDI4ZWQzOWJmNGE1OGZhMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lu
cy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5l
cmF0ZV9rLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotRnJvbSAzYTA2OTE5
M2UyNTM2NGViZGFjYWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw
MQotRnJvbTogPT9VVEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNl
bnRyaWN1bGFyLmNvbT4KLURhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKLVN1
YmplY3Q6IFtQQVRDSF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNB
X2dlbmVyYXRlX2tleV9leCgpCi0gdXNhZ2UKLQotV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQg
Zm9yIE9wZW5TU0wgMS4xLgotCi1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzc0MzI4Ci0tLS0KLSBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysr
Ky0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0K
LWRpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jCi1pbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAotLS0tIGEv
ZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLSsrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0
aWZpY2F0ZS5jCi1AQCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHND
ZXJ0aWZpY2F0ZSAqIHNlbGYpCi0gICByc2EgPSBSU0FfbmV3ICgpOwotICAgaWYgKHJzYSAhPSBO
VUxMKSB7Ci0gICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKLS0gICAgaWYgKGUgIT0gTlVMTCAm
JiBCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQotLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9l
eCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgewotKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRf
d29yZCAoZSwgUlNBX0Y0KQotKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwg
MjA0OCwgZSwgTlVMTCkpIHsKLSAgICAgICBSU0FfZnJlZSAocnNhKTsKLSAgICAgICByc2EgPSBO
VUxMOwotICAgICB9Ci0tICAgIEJOX2ZyZWUgKGUpOwotKyAgICBpZiAoZSkKLSsgICAgICBCTl9m
cmVlIChlKTsKLSAgIH0KLSAjZW5kaWYKLSAKLS0tIAotMi4xMC4yCi0KZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4LWRpc3Rpbmd1aXNo
LVRGRFQtd2l0aC12YWx1ZS0wLWZyb20tbm8tVEZEVC1hLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtZGlzdGluZ3Vpc2gtVEZEVC13aXRoLXZh
bHVlLTAtZnJvbS1uby1URkRULWEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzY2YmI1Njc0NTYwMmUxNGVk
NjcyNzQ3ODExY2Y3YzhlMzVmZjVjNAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMS1xdGRlbXV4LWRpc3Rpbmd1aXNoLVRGRFQtd2l0aC12
YWx1ZS0wLWZyb20tbm8tVEZEVC1hLnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK0Zyb20gNDM1MTBk
MWIxYTE4NDNiZTRmMDdkOTZhMzAzNDg2YzMwY2JjYjY4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIwT2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/
PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorRGF0ZTogV2VkLCAyMiBNYXIgMjAxNyAxODoxODo0MCAr
MDAwMAorU3ViamVjdDogW1BBVENIXSBxdGRlbXV4OiBkaXN0aW5ndWlzaCBURkRUIHdpdGggdmFs
dWUgMCBmcm9tIG5vIFRGRFQgYXQgYWxsCisKK1RGRFRzIHdpdGggdGltZSAwIGFyZSBiZWluZyBp
Z25vcmVkIHNpbmNlIGNvbW1pdCAxZmMzZDQyZi4gVGhleSdyZQorbWlzdGFrZW4gd2l0aCB0aGUg
Y2FzZSBvZiBub3QgaGF2aW5nIFRGRFQsIGJ1dCB0aG9zZSB0d28gY2FzZXMKK211c3QgYmUgZGlz
dGluZ3Vpc2hlZCBpbiBzb21lIHdheS4KKworVGhpcyBwYXRjaCBwYXNzZXMgYW4gZXh0cmEgYm9v
bGVhbiBmbGFnIHdoZW4gdGhlIFRGRFQgaXMgcHJlc2VudC4KK1RoaXMgaXMgbm93IHRoZSBjb25k
aXRpb24gYmVpbmcgZXZhbHVhdGVkLCBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvcgorMCB0aW1lLgor
CitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNDEwCistLS0K
KyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDcgKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGlu
c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0
ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ZDMwNGJkLi44N2Y4ZjQyIDEw
MDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11
eC5jCitAQCAtMzAzOSw3ICszMDM5LDggQEAgc3RhdGljIGdib29sZWFuCisgcXRkZW11eF9wYXJz
ZV90cnVuIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0Qnl0ZVJlYWRlciAqIHRydW4sCisgICAg
IFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0sIGd1aW50MzIgZF9zYW1wbGVfZHVyYXRpb24sIGd1aW50
MzIgZF9zYW1wbGVfc2l6ZSwKKyAgICAgZ3VpbnQzMiBkX3NhbXBsZV9mbGFncywgZ2ludDY0IG1v
b2Zfb2Zmc2V0LCBnaW50NjQgbW9vZl9sZW5ndGgsCistICAgIGdpbnQ2NCAqIGJhc2Vfb2Zmc2V0
LCBnaW50NjQgKiBydW5uaW5nX29mZnNldCwgZ2ludDY0IGRlY29kZV90cykKKysgICAgZ2ludDY0
ICogYmFzZV9vZmZzZXQsIGdpbnQ2NCAqIHJ1bm5pbmdfb2Zmc2V0LCBnaW50NjQgZGVjb2RlX3Rz
LAorKyAgICBnYm9vbGVhbiBoYXNfdGZkdCkKKyB7CisgICBHc3RDbG9ja1RpbWUgZ3N0X3RzID0g
R1NUX0NMT0NLX1RJTUVfTk9ORTsKKyAgIGd1aW50NjQgdGltZXN0YW1wOworQEAgLTMyMDAsNyAr
MzIwMSw3IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdzdEJ5
dGVSZWFkZXIgKiB0cnVuLAorICAgICAgIC8qIElmIHRoaXMgaXMgYSBHU1RfRk9STUFUX0JZVEVT
IHN0cmVhbSBhbmQgdGhlcmUncyBhIHNpZ25pZmljYW50CisgICAgICAgICogZGlmZmVyZW5jZSAo
MSBzZWMuKSBiZXR3ZWVuIGRlY29kZV90cyBhbmQgdGltZXN0YW1wLCBwcmVmZXIgdGhlCisgICAg
ICAgICogZm9ybWVyICovCistICAgICAgaWYgKGRlY29kZV90cyAhPSAwICYmICFxdGRlbXV4LT51
cHN0cmVhbV9mb3JtYXRfaXNfdGltZQorKyAgICAgIGlmIChoYXNfdGZkdCAmJiAhcXRkZW11eC0+
dXBzdHJlYW1fZm9ybWF0X2lzX3RpbWUKKyAgICAgICAgICAgJiYgQUJTRElGRiAoZGVjb2RlX3Rz
LCB0aW1lc3RhbXApID4KKyAgICAgICAgICAgTUFYIChzdHJlYW0tPmR1cmF0aW9uX2xhc3RfbW9v
ZiAvIDIsCisgICAgICAgICAgICAgICBHU1RUSU1FX1RPX1FUU1RSRUFNVElNRSAoc3RyZWFtLCBH
U1RfU0VDT05EKSkpIHsKK0BAIC0zOTE5LDcgKzM5MjAsNyBAQCBxdGRlbXV4X3BhcnNlX21vb2Yg
KEdzdFFURGVtdXggKiBxdGRlbXV4LCBjb25zdCBndWludDggKiBidWZmZXIsIGd1aW50IGxlbmd0
aCwKKyAgICAgd2hpbGUgKHRydW5fbm9kZSkgeworICAgICAgIHF0ZGVtdXhfcGFyc2VfdHJ1biAo
cXRkZW11eCwgJnRydW5fZGF0YSwgc3RyZWFtLAorICAgICAgICAgICBkc19kdXJhdGlvbiwgZHNf
c2l6ZSwgZHNfZmxhZ3MsIG1vb2Zfb2Zmc2V0LCBsZW5ndGgsICZiYXNlX29mZnNldCwKKy0gICAg
ICAgICAgJnJ1bm5pbmdfb2Zmc2V0LCBkZWNvZGVfdGltZSk7CisrICAgICAgICAgICZydW5uaW5n
X29mZnNldCwgZGVjb2RlX3RpbWUsICh0ZmR0X25vZGUgIT0gTlVMTCkpOworICAgICAgIC8qIGl0
ZXJhdGUgYWxsIHNpYmxpbmdzICovCisgICAgICAgdHJ1bl9ub2RlID0gcXRkZW11eF90cmVlX2dl
dF9zaWJsaW5nX2J5X3R5cGVfZnVsbCAodHJ1bl9ub2RlLCBGT1VSQ0NfdHJ1biwKKyAgICAgICAg
ICAgJnRydW5fZGF0YSk7CistLSAKKzIuMS40CisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNS1zb3VwaHR0cHNyYy1jb29raWUtamFyLWFuZC1jb250
ZXh0LXF1ZXJ5LXN1cHBvcnQucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLTAwMDUtc291cGh0dHBzcmMtY29va2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg0ZWRiZDZmODNlZmViNjQ3YzdkMmJiM2ZiYWY1YTk1ZGNjN2Uw
ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMDUtc291cGh0dHBzcmMtY29va2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBh
dGNoCkBAIC0wLDAgKzEsMTIwIEBACitGcm9tIDhlMDNhNjNmZDU1ZjVhZTQ0Nzk5NDU3OTg5MGU4
NjMwYjI3ZjRhMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQaGlsaXBwZSBOb3Jt
YW5kIDxwaGlsbkBpZ2FsaWEuY29tPgorRGF0ZTogV2VkLCAyOCBPY3QgMjAxNSAxMjowMDowOSAr
MDEwMAorU3ViamVjdDogW1BBVENIIDIvM10gc291cGh0dHBzcmM6IGNvb2tpZSBqYXIgYW5kIGNv
bnRleHQgcXVlcnkgc3VwcG9ydAorCitVc2UgYSB2b2xhdGlsZSBDb29raWUgamFyIHRvIHN0b3Jl
IGNvb2tpZXMgYW5kIGhhbmRsZSB0aGUgY29udGV4dAorcXVlcnkgc28gdGhhdCBzZXNzaW9uIGRh
dGEgY2FuIGJlIHNoYXJlZCB3aXRoIG90aGVyIGVsZW1lbnRzIChsaWtlCithZGFwdGl2ZWRlbXV4
KS4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjMxNAor
LS0tCisgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYyB8IDQxICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tCisgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaCB8ICAxICsK
KyAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2Rp
ZmYgLS1naXQgYS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jIGIvZXh0L3NvdXAvZ3N0c291cGh0
dHBzcmMuYworaW5kZXggZmM3Y2JhNy4uMGQzZTg4NiAxMDA2NDQKKy0tLSBhL2V4dC9zb3VwL2dz
dHNvdXBodHRwc3JjLmMKKysrKyBiL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMKK0BAIC00ODIs
NiArNDgyLDcgQEAgZ3N0X3NvdXBfaHR0cF9zcmNfaW5pdCAoR3N0U291cEhUVFBTcmMgKiBzcmMp
CisgICBzcmMtPmNvb2tpZXMgPSBOVUxMOworICAgc3JjLT5pcmFkaW9fbW9kZSA9IERFRkFVTFRf
SVJBRElPX01PREU7CisgICBzcmMtPnNlc3Npb24gPSBOVUxMOworKyAgc3JjLT5jb29raWVfamFy
ID0gTlVMTDsKKyAgIHNyYy0+bXNnID0gTlVMTDsKKyAgIHNyYy0+dGltZW91dCA9IERFRkFVTFRf
VElNRU9VVDsKKyAgIHNyYy0+bG9nX2xldmVsID0gREVGQVVMVF9TT1VQX0xPR19MRVZFTDsKK0BA
IC05NDMsNiArOTQ0LDkgQEAgZ3N0X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl9vcGVuIChHc3RTb3Vw
SFRUUFNyYyAqIHNyYykKKyAgICAgc291cF9zZXNzaW9uX3JlbW92ZV9mZWF0dXJlX2J5X3R5cGUg
KHNyYy0+c2Vzc2lvbiwKKyAgICAgICAgIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIpOworIAor
KyAgc3JjLT5jb29raWVfamFyID0gc291cF9jb29raWVfamFyX25ldyAoKTsKKysgIHNvdXBfc2Vz
c2lvbl9hZGRfZmVhdHVyZSAoc3JjLT5zZXNzaW9uLAorKyAgICAgIFNPVVBfU0VTU0lPTl9GRUFU
VVJFIChzcmMtPmNvb2tpZV9qYXIpKTsKKyAgIHJldHVybiBUUlVFOworIH0KKyAKK0BAIC05NTgs
NiArOTYyLDExIEBAIGdzdF9zb3VwX2h0dHBfc3JjX3Nlc3Npb25fY2xvc2UgKEdzdFNvdXBIVFRQ
U3JjICogc3JjKQorICAgICBzcmMtPm1zZyA9IE5VTEw7CisgICB9CisgCisrICBpZiAoc3JjLT5j
b29raWVfamFyKSB7CisrICAgIGdfb2JqZWN0X3VucmVmIChzcmMtPmNvb2tpZV9qYXIpOworKyAg
ICBzcmMtPmNvb2tpZV9qYXIgPSBOVUxMOworKyAgfQorKworICAgaWYgKHNyYy0+c2Vzc2lvbikg
eworICAgICBzb3VwX3Nlc3Npb25fYWJvcnQgKHNyYy0+c2Vzc2lvbik7CisgICAgIGdfb2JqZWN0
X3VucmVmIChzcmMtPnNlc3Npb24pOworQEAgLTE0MjYsMTEgKzE0MzUsMTIgQEAgZ3N0X3NvdXBf
aHR0cF9zcmNfYnVpbGRfbWVzc2FnZSAoR3N0U291cEhUVFBTcmMgKiBzcmMsIGNvbnN0IGdjaGFy
ICogbWV0aG9kKQorICAgfQorICAgaWYgKHNyYy0+Y29va2llcykgeworICAgICBnY2hhciAqKmNv
b2tpZTsKKysgICAgU291cFVSSSAqdXJpID0gc291cF91cmlfbmV3IChzcmMtPmxvY2F0aW9uKTsK
KyAKKyAgICAgZm9yIChjb29raWUgPSBzcmMtPmNvb2tpZXM7ICpjb29raWUgIT0gTlVMTDsgY29v
a2llKyspIHsKKy0gICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKHNyYy0+bXNnLT5y
ZXF1ZXN0X2hlYWRlcnMsICJDb29raWUiLAorLSAgICAgICAgICAqY29va2llKTsKKysgICAgICBz
b3VwX2Nvb2tpZV9qYXJfc2V0X2Nvb2tpZSAoc3JjLT5jb29raWVfamFyLCB1cmksICpjb29raWUp
OworICAgICB9CisrICAgIHNvdXBfdXJpX2ZyZWUgKHVyaSk7CisgICB9CisgCisgICBzb3VwX21l
c3NhZ2Vfc2V0X2ZsYWdzIChzcmMtPm1zZywgU09VUF9NRVNTQUdFX09WRVJXUklURV9DSFVOS1Mg
fAorQEAgLTE5MTAsNiArMTkyMCwxMiBAQCBnc3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFz
ZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5ICogcXVlcnkpCisgICBnYm9vbGVhbiByZXQ7CisgICBHc3RT
Y2hlZHVsaW5nRmxhZ3MgZmxhZ3M7CisgICBnaW50IG1pbnNpemUsIG1heHNpemUsIGFsaWduOwor
KyAgR3N0Q29udGV4dCAqY29udGV4dDsKKysgIEdzdFN0cnVjdHVyZSAqY29udGV4dF9zdHJ1Y3R1
cmU7CisrICBjaGFyICpjb29raWU7CisrICBjb25zdCBnY2hhciAqY29va2llc1syXTsKKysgIGNv
bnN0IGdjaGFyICpjb250ZXh0X3R5cGU7CisrICBTb3VwVVJJICp1cmk7CisgCisgICBzd2l0Y2gg
KEdTVF9RVUVSWV9UWVBFIChxdWVyeSkpIHsKKyAgICAgY2FzZSBHU1RfUVVFUllfVVJJOgorQEAg
LTE5MjEsNiArMTkzNywyNyBAQCBnc3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFzZVNyYyAq
IGJzcmMsIEdzdFF1ZXJ5ICogcXVlcnkpCisgICAgICAgfQorICAgICAgIHJldCA9IFRSVUU7Cisg
ICAgICAgYnJlYWs7CisrICAgIGNhc2UgR1NUX1FVRVJZX0NPTlRFWFQ6CisrICAgICAgaWYgKGdz
dF9xdWVyeV9wYXJzZV9jb250ZXh0X3R5cGUgKHF1ZXJ5LCAmY29udGV4dF90eXBlKQorKyAgICAg
ICAgICAmJiAhZ19zdHJjbXAwIChjb250ZXh0X3R5cGUsICJodHRwLWhlYWRlcnMiKSkgeworKyAg
ICAgICAgdXJpID0gc291cF91cmlfbmV3IChzcmMtPmxvY2F0aW9uKTsKKysgICAgICAgIGNvb2tp
ZSA9IHNvdXBfY29va2llX2phcl9nZXRfY29va2llcyAoc3JjLT5jb29raWVfamFyLCB1cmksIFRS
VUUpOworKyAgICAgICAgY29udGV4dCA9IGdzdF9jb250ZXh0X25ldyAoImh0dHAtaGVhZGVycyIs
IEZBTFNFKTsKKysgICAgICAgIGdzdF9jb250ZXh0X21ha2Vfd3JpdGFibGUgKGNvbnRleHQpOwor
KyAgICAgICAgY29udGV4dF9zdHJ1Y3R1cmUgPSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1
cmUgKGNvbnRleHQpOworKyAgICAgICAgaWYgKGNvb2tpZSAhPSBOVUxMKSB7CisrICAgICAgICAg
IGNvb2tpZXNbMF0gPSBjb29raWU7CisrICAgICAgICAgIGNvb2tpZXNbMV0gPSBOVUxMOworKyAg
ICAgICAgICBnc3Rfc3RydWN0dXJlX3NldCAoY29udGV4dF9zdHJ1Y3R1cmUsICJjb29raWVzIiwg
R19UWVBFX1NUUlYsIGNvb2tpZXMsCisrICAgICAgICAgICAgICBOVUxMKTsKKysgICAgICAgICAg
Z19mcmVlIChjb29raWUpOworKyAgICAgICAgfQorKyAgICAgICAgZ3N0X3F1ZXJ5X3NldF9jb250
ZXh0IChxdWVyeSwgY29udGV4dCk7CisrICAgICAgICBzb3VwX3VyaV9mcmVlICh1cmkpOworKyAg
ICAgICAgcmV0ID0gVFJVRTsKKysgICAgICAgIGJyZWFrOworKyAgICAgIH0KKysKKyAgICAgZGVm
YXVsdDoKKyAgICAgICByZXQgPSBGQUxTRTsKKyAgICAgICBicmVhazsKK2RpZmYgLS1naXQgYS9l
eHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oIGIvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaAoraW5k
ZXggZGQwMTY1Ni4uOWM2YmI1YyAxMDA2NDQKKy0tLSBhL2V4dC9zb3VwL2dzdHNvdXBodHRwc3Jj
LmgKKysrKyBiL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmgKK0BAIC02MCw2ICs2MCw3IEBAIHN0
cnVjdCBfR3N0U291cEhUVFBTcmMgeworICAgZ2NoYXIgKnByb3h5X3B3OyAgICAgICAgICAgICAv
KiBBdXRoZW50aWNhdGlvbiB1c2VyIHBhc3N3b3JkIGZvciBwcm94eSBVUkkuICovCisgICBnY2hh
ciAqKmNvb2tpZXM7ICAgICAgICAgICAgIC8qIEhUVFAgcmVxdWVzdCBjb29raWVzLiAqLworICAg
U291cFNlc3Npb24gKnNlc3Npb247ICAgICAgICAvKiBBc3luYyBjb250ZXh0LiAqLworKyAgU291
cENvb2tpZUphciAqY29va2llX2phcjsgICAvKiBWb2xhdGlsZSBIVFRQIGNvb2tpZSBzdG9yYWdl
ICovCisgICBTb3VwTWVzc2FnZSAqbXNnOyAgICAgICAgICAgIC8qIFJlcXVlc3QgbWVzc2FnZS4g
Ki8KKyAgIEdzdEZsb3dSZXR1cm4gcmV0OyAgICAgICAgICAgLyogUmV0dXJuIGNvZGUgZnJvbSBj
YWxsYmFjay4gKi8KKyAgIGdpbnQgcmV0cnlfY291bnQ7ICAgICAgICAgICAgLyogTnVtYmVyIG9m
IHJldHJpZXMgc2luY2Ugd2UgcmVjZWl2ZWQgZGF0YSAqLworLS0gCisxLjguMy4yCisKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFk
ZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoIGIvVG9vbHMvd3BlL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJl
ZmVycmVkLXByb3RlY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU0YjkyYzc1YjY1OWMzOThjOTll
NTJjNTFjNGE3YTU1OWYxM2ZjYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJl
ZC1wcm90ZWN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMjg5IEBACitAQCAtLCArLCBAQCAKKyBnc3Qv
aXNvbXA0L3F0ZGVtdXguYyB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAgMSArCisgMiBmaWxl
cyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKy0tLSBhL2dzdC9p
c29tcDQvcXRkZW11eC5jCQorKysrIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMJCitAQCAtNTEzLDYg
KzUxMyw4IEBAIHN0YXRpYyBHc3RJbmRleCAqZ3N0X3F0ZGVtdXhfZ2V0X2luZGV4IChHc3RFbGVt
ZW50ICogZWxlbWVudCk7CisgI2VuZGlmCisgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIGdz
dF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsCisgICAgIEdzdFN0
YXRlQ2hhbmdlIHRyYW5zaXRpb24pOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X3NldF9jb250
ZXh0IChHc3RFbGVtZW50ICogZWxlbWVudCwKKysgICAgR3N0Q29udGV4dCAqIGNvbnRleHQpOwor
IHN0YXRpYyBnYm9vbGVhbiBxdGRlbXV4X3NpbmtfYWN0aXZhdGUgKEdzdFBhZCAqIHNpbmtwYWQs
IEdzdE9iamVjdCAqIHBhcmVudCk7Cisgc3RhdGljIGdib29sZWFuIHF0ZGVtdXhfc2lua19hY3Rp
dmF0ZV9tb2RlIChHc3RQYWQgKiBzaW5rcGFkLAorICAgICBHc3RPYmplY3QgKiBwYXJlbnQsIEdz
dFBhZE1vZGUgbW9kZSwgZ2Jvb2xlYW4gYWN0aXZlKTsKK0BAIC02MDIsNiArNjA0LDcgQEAgZ3N0
X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgICBnc3RlbGVt
ZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0
X2luZGV4KTsKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmdldF9pbmRleCA9IEdTVF9ERUJVR19GVU5D
UFRSIChnc3RfcXRkZW11eF9nZXRfaW5kZXgpOworICNlbmRpZgorKyAgZ3N0ZWxlbWVudF9jbGFz
cy0+c2V0X2NvbnRleHQgPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0X2NvbnRl
eHQpOworIAorICAgZ3N0X3RhZ19yZWdpc3Rlcl9tdXNpY2JyYWluel90YWdzICgpOworIAorQEAg
LTY2MCw2ICs2NjMsNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkK
KyAgIHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOworICAgcXRkZW11eC0+Y2Vu
Y19hdXhfc2FtcGxlX2NvdW50ID0gMDsKKyAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lk
cyA9IE5VTEw7CisrICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgPSBO
VUxMOworICAgZ19xdWV1ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSk7
CisgICBnc3Rfc2VnbWVudF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9USU1F
KTsKKyAgIHF0ZGVtdXgtPnRhZ19saXN0ID0gZ3N0X3RhZ19saXN0X25ld19lbXB0eSAoKTsKK0BA
IC0yMTEzLDYgKzIxMTcsMTAgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRl
bXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICAgIGdfcHRyX2FycmF5X2ZyZWUgKHF0ZGVtdXgtPnBy
b3RlY3Rpb25fc3lzdGVtX2lkcywgVFJVRSk7CisgICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9z
eXN0ZW1faWRzID0gTlVMTDsKKyAgICAgfQorKyAgICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3By
b3RlY3Rpb25fc3lzdGVtX2lkKSB7CisrICAgICAgZ19mcmVlIChxdGRlbXV4LT5wcmVmZXJyZWRf
cHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0
aW9uX3N5c3RlbV9pZCA9IE5VTEw7CisrICAgIH0KKyAgIH0gZWxzZSBpZiAocXRkZW11eC0+bXNz
X21vZGUpIHsKKyAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgtPmZsb3djb21i
aW5lcik7CisgICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7IG4rKykKK0BA
IC0yNTkwLDYgKzI1OTgsMjggQEAgZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50
ICogZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKKyB9CisgCisgc3RhdGljIHZv
aWQKKytnc3RfcXRkZW11eF9zZXRfY29udGV4dCAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdENv
bnRleHQgKiBjb250ZXh0KQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1V
WCAoZWxlbWVudCk7CisrCisrICBnX3JldHVybl9pZl9mYWlsIChHU1RfSVNfQ09OVEVYVCAoY29u
dGV4dCkpOworKworKyAgaWYgKGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUgKGNvbnRleHQs
CisrICAgICAgICAgICJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIikpIHsKKysg
ICAgY29uc3QgR3N0U3RydWN0dXJlICpzOworKworKyAgICBzID0gZ3N0X2NvbnRleHRfZ2V0X3N0
cnVjdHVyZSAoY29udGV4dCk7CisrICAgIGdfZnJlZSAocXRkZW11eC0+cHJlZmVycmVkX3Byb3Rl
Y3Rpb25fc3lzdGVtX2lkKTsKKysgICAgcXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lz
dGVtX2lkID0KKysgICAgICAgIGdfc3RyZHVwIChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcgKHMs
ICJkZWNyeXB0aW9uLXN5c3RlbS1pZCIpKTsKKysgICAgR1NUX0RFQlVHX09CSkVDVCAoZWxlbWVu
dCwgInNldCBwcmVmZXJyZWQgZGVjcnlwdGlvbiBzeXN0ZW0gdG8gJXMiLAorKyAgICAgICAgcXRk
ZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKTsKKysgIH0KKysKKysgIEdTVF9F
TEVNRU5UX0NMQVNTIChwYXJlbnRfY2xhc3MpLT5zZXRfY29udGV4dCAoZWxlbWVudCwgY29udGV4
dCk7CisrfQorKworK3N0YXRpYyB2b2lkCisgcXRkZW11eF9wYXJzZV9mdHlwIChHc3RRVERlbXV4
ICogcXRkZW11eCwgY29uc3QgZ3VpbnQ4ICogYnVmZmVyLCBnaW50IGxlbmd0aCkKKyB7CisgICAv
KiBjb3VudHMgYXMgaGVhZGVyIGRhdGEgKi8KK0BAIC0zODE5LDYgKzM4NDksOCBAQCBxdGRlbXV4
X3BhcnNlX3Bzc2ggKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9kZSAqIG5vZGUpCisgICBldmVu
dCA9IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAoc3lzaWRfc3RyaW5nLCBwc3NoLAorICAgICAg
IChwYXJlbnRfYm94X3R5cGUgPT0gRk9VUkNDX21vb3YpID8gImlzb2JtZmYvbW9vdiIgOiAiaXNv
Ym1mZi9tb29mIik7CisgICBmb3IgKGkgPSAwOyBpIDwgcXRkZW11eC0+bl9zdHJlYW1zOyArK2kp
IHsKKysgICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwKKysgICAgICAgICJhZGRpbmcgcHJv
dGVjdGlvbiBldmVudCBmb3Igc3RyZWFtICVkIGFuZCBzeXN0ZW0gJXMiLCBpLCBzeXNpZF9zdHJp
bmcpOworICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJnF0ZGVtdXgtPnN0cmVhbXNbaV0tPnByb3Rl
Y3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlLAorICAgICAgICAgZ3N0X2V2ZW50X3JlZiAoZXZlbnQp
KTsKKyAgIH0KK0BAIC01NTI5LDYgKzU1NjEsOCBAQCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRf
cHVzaF9idWZmZXIgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBHc3RFdmVudCAqZXZlbnQ7
CisgCisgICAgIHdoaWxlICgoZXZlbnQgPSBnX3F1ZXVlX3BvcF9oZWFkICgmc3RyZWFtLT5wcm90
ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSkpKSB7CisrICAgICAgR1NUX1RSQUNFX09CSkVDVCAo
c3RyZWFtLT5wYWQsICJwdXNoaW5nIHByb3RlY3Rpb24gZXZlbnQ6ICUiCisrICAgICAgICAgIEdT
VF9QVFJfRk9STUFULCBldmVudCk7CisgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0t
PnBhZCwgZXZlbnQpOworICAgICB9CisgCitAQCAtNzY4OCwxMSArNzcyMiwxNDEgQEAgcXRkZW11
eF9kb19hbGxvY2F0aW9uIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11eFN0cmVhbSAqIHN0
cmVhbSkKKyB9CisgCisgc3RhdGljIGdib29sZWFuCisrcGFkX3F1ZXJ5IChjb25zdCBHVmFsdWUg
KiBpdGVtLCBHVmFsdWUgKiB2YWx1ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3sKKysgIEdzdFBh
ZCAqcGFkID0gZ192YWx1ZV9nZXRfb2JqZWN0IChpdGVtKTsKKysgIEdzdFF1ZXJ5ICpxdWVyeSA9
IHVzZXJfZGF0YTsKKysgIGdib29sZWFuIHJlczsKKysKKysgIHJlcyA9IGdzdF9wYWRfcGVlcl9x
dWVyeSAocGFkLCBxdWVyeSk7CisrCisrICBpZiAocmVzKSB7CisrICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4gKHZhbHVlLCBUUlVFKTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKworKyAgR1NU
X0lORk9fT0JKRUNUIChwYWQsICJwYWQgcGVlciBxdWVyeSBmYWlsZWQiKTsKKysgIHJldHVybiBU
UlVFOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytnc3RfcXRkZW11eF9ydW5fcXVlcnkgKEdz
dEVsZW1lbnQgKiBlbGVtZW50LCBHc3RRdWVyeSAqIHF1ZXJ5LAorKyAgICBHc3RQYWREaXJlY3Rp
b24gZGlyZWN0aW9uKQorK3sKKysgIEdzdEl0ZXJhdG9yICppdDsKKysgIEdzdEl0ZXJhdG9yRm9s
ZEZ1bmN0aW9uIGZ1bmMgPSBwYWRfcXVlcnk7CisrICBHVmFsdWUgcmVzID0geyAwLCB9OworKwor
KyAgZ192YWx1ZV9pbml0ICgmcmVzLCBHX1RZUEVfQk9PTEVBTik7CisrICBnX3ZhbHVlX3NldF9i
b29sZWFuICgmcmVzLCBGQUxTRSk7CisrCisrICAvKiBBc2sgbmVpZ2hib3IgKi8KKysgIGlmIChk
aXJlY3Rpb24gPT0gR1NUX1BBRF9TUkMpCisrICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0ZV9z
cmNfcGFkcyAoZWxlbWVudCk7CisrICBlbHNlCisrICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0
ZV9zaW5rX3BhZHMgKGVsZW1lbnQpOworKworKyAgd2hpbGUgKGdzdF9pdGVyYXRvcl9mb2xkIChp
dCwgZnVuYywgJnJlcywgcXVlcnkpID09IEdTVF9JVEVSQVRPUl9SRVNZTkMpCisrICAgIGdzdF9p
dGVyYXRvcl9yZXN5bmMgKGl0KTsKKysKKysgIGdzdF9pdGVyYXRvcl9mcmVlIChpdCk7CisrCisr
ICByZXR1cm4gZ192YWx1ZV9nZXRfYm9vbGVhbiAoJnJlcyk7CisrfQorKworK3N0YXRpYyB2b2lk
CisrZ3N0X3F0ZGVtdXhfcmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKEdzdFFURGVtdXggKiBx
dGRlbXV4LAorKyAgICBRdERlbXV4U3RyZWFtICogc3RyZWFtKQorK3sKKysgIEdzdFF1ZXJ5ICpx
dWVyeTsKKysgIEdzdENvbnRleHQgKmN0eHQ7CisrICBHc3RFbGVtZW50ICplbGVtZW50ID0gR1NU
X0VMRU1FTlQgKHF0ZGVtdXgpOworKyAgR3N0U3RydWN0dXJlICpzdDsKKysgIGdjaGFyICoqZmls
dGVyZWRfc3lzX2lkczsKKysgIEdWYWx1ZSBldmVudF9saXN0ID0gR19WQUxVRV9JTklUOworKyAg
R0xpc3QgKndhbGs7CisrCisrICAvKiAxLiBDaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIGNv
bnRleHQuICovCisrICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lk
ICE9IE5VTEwpIHsKKysgICAgR1NUX0xPR19PQkpFQ1QgKGVsZW1lbnQsCisrICAgICAgICAiYWxy
ZWFkeSBoYXZlIHRoZSBwcm90ZWN0aW9uIGNvbnRleHQsIG5vIG5lZWQgdG8gcmVxdWVzdCBpdCBh
Z2FpbiIpOworKyAgICByZXR1cm47CisrICB9CisrCisrICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVt
dXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywgTlVMTCk7CisrICBmaWx0ZXJlZF9zeXNfaWRzID0g
Z3N0X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMgKAor
KyAgICAgIChjb25zdCBnY2hhciAqKikgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5w
ZGF0YSk7CisrICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcywKKysgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAt
IDEpOworKyAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgImRldGVjdGVkICV1IHByb3RlY3Rp
b24gc3lzdGVtcywgd2UgaGF2ZSAiCisrICAgICAgImRlY3J5cHRvcnMgZm9yICV1IG9mIHRoZW0s
IHJ1bm5pbmcgY29udGV4dCByZXF1ZXN0IiwKKysgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5
c3RlbV9pZHMtPmxlbiwgZ19zdHJ2X2xlbmd0aCAoZmlsdGVyZWRfc3lzX2lkcykpOworKworKyAg
aWYgKHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUubGVuZ3RoKSB7CisrICAg
IEdTVF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJ1c2luZyBzdHJlYW0gZXZlbnQgcXVldWUsIGxl
bmd0aCAldSIsCisrICAgICAgICBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVl
Lmxlbmd0aCk7CisrICAgIHdhbGsgPSBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1
ZXVlLnRhaWw7CisrICB9IGVsc2UgeworKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAi
dXNpbmcgZGVtdXhlciBldmVudCBxdWV1ZSwgbGVuZ3RoICV1IiwKKysgICAgICAgIHF0ZGVtdXgt
PnByb3RlY3Rpb25fZXZlbnRfcXVldWUubGVuZ3RoKTsKKysgICAgd2FsayA9IHF0ZGVtdXgtPnBy
b3RlY3Rpb25fZXZlbnRfcXVldWUudGFpbDsKKysgIH0KKysKKysgIGdfdmFsdWVfaW5pdCAoJmV2
ZW50X2xpc3QsIEdTVF9UWVBFX0xJU1QpOworKyAgZm9yICg7IHdhbGs7IHdhbGsgPSBnX2xpc3Rf
cHJldmlvdXMgKHdhbGspKSB7CisrICAgIEdWYWx1ZSAqZXZlbnRfdmFsdWUgPSBnX25ldzAgKEdW
YWx1ZSwgMSk7CisrICAgIGdfdmFsdWVfaW5pdCAoZXZlbnRfdmFsdWUsIEdTVF9UWVBFX0VWRU5U
KTsKKysgICAgZ192YWx1ZV9zZXRfYm94ZWQgKGV2ZW50X3ZhbHVlLCB3YWxrLT5kYXRhKTsKKysg
ICAgZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX2FuZF90YWtlX3ZhbHVlICgmZXZlbnRfbGlzdCwgZXZl
bnRfdmFsdWUpOworKyAgfQorKworKyAgLyogIDJhKSBRdWVyeSBkb3duc3RyZWFtIHdpdGggR1NU
X1FVRVJZX0NPTlRFWFQgZm9yIHRoZSBjb250ZXh0IGFuZAorKyAgICogICAgICBjaGVjayBpZiBk
b3duc3RyZWFtIGFscmVhZHkgaGFzIGEgY29udGV4dCBvZiB0aGUgc3BlY2lmaWMgdHlwZQorKyAg
ICogIDJiKSBRdWVyeSB1cHN0cmVhbSBhcyBhYm92ZS4KKysgICAqLworKyAgcXVlcnkgPSBnc3Rf
cXVlcnlfbmV3X2NvbnRleHQgKCJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIik7
CisrICBzdCA9IGdzdF9xdWVyeV93cml0YWJsZV9zdHJ1Y3R1cmUgKHF1ZXJ5KTsKKysgIGdzdF9z
dHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBFX1VJTlQsIHN0cmVhbS0+dHJhY2tf
aWQsCisrICAgICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwgZmls
dGVyZWRfc3lzX2lkcywgTlVMTCk7CisrICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJz
dHJlYW0tZW5jcnlwdGlvbi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7CisrICBpZiAoZ3N0X3F0ZGVt
dXhfcnVuX3F1ZXJ5IChlbGVtZW50LCBxdWVyeSwgR1NUX1BBRF9TUkMpKSB7CisrICAgIGdzdF9x
dWVyeV9wYXJzZV9jb250ZXh0IChxdWVyeSwgJmN0eHQpOworKyAgICBHU1RfSU5GT19PQkpFQ1Qg
KGVsZW1lbnQsICJmb3VuZCBjb250ZXh0ICglcCkgaW4gZG93bnN0cmVhbSBxdWVyeSIsIGN0eHQp
OworKyAgICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCAoZWxlbWVudCwgY3R4dCk7CisrICB9IGVs
c2UgaWYgKGdzdF9xdGRlbXV4X3J1bl9xdWVyeSAoZWxlbWVudCwgcXVlcnksIEdTVF9QQURfU0lO
SykpIHsKKysgICAgZ3N0X3F1ZXJ5X3BhcnNlX2NvbnRleHQgKHF1ZXJ5LCAmY3R4dCk7CisrICAg
IEdTVF9JTkZPX09CSkVDVCAoZWxlbWVudCwgImZvdW5kIGNvbnRleHQgKCVwKSBpbiB1cHN0cmVh
bSBxdWVyeSIsIGN0eHQpOworKyAgICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCAoZWxlbWVudCwg
Y3R4dCk7CisrICB9IGVsc2UgeworKyAgICAvKiAzKSBQb3N0IGEgR1NUX01FU1NBR0VfTkVFRF9D
T05URVhUIG1lc3NhZ2Ugb24gdGhlIGJ1cyB3aXRoCisrICAgICAqICAgIHRoZSByZXF1aXJlZCBj
b250ZXh0IHR5cGUgYW5kIGFmdGVyd2FyZHMgY2hlY2sgaWYgYQorKyAgICAgKiAgICB1c2FibGUg
Y29udGV4dCB3YXMgc2V0IG5vdyBhcyBpbiAxKS4gVGhlIG1lc3NhZ2UgY291bGQKKysgICAgICog
ICAgYmUgaGFuZGxlZCBieSB0aGUgcGFyZW50IGJpbnMgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZQor
KyAgICAgKiAgICBhcHBsaWNhdGlvbi4KKysgICAgICovCisrICAgIEdzdE1lc3NhZ2UgKm1zZzsK
KysKKysgICAgR1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAicG9zdGluZyBuZWVkIGNvbnRleHQg
bWVzc2FnZSIpOworKyAgICBtc2cgPSBnc3RfbWVzc2FnZV9uZXdfbmVlZF9jb250ZXh0IChHU1Rf
T0JKRUNUX0NBU1QgKGVsZW1lbnQpLAorKyAgICAgICAgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlv
bi1zeXN0ZW0taWQiKTsKKysgICAgc3QgPSAoR3N0U3RydWN0dXJlICopIGdzdF9tZXNzYWdlX2dl
dF9zdHJ1Y3R1cmUgKG1zZyk7CisrICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlk
IiwgR19UWVBFX1VJTlQsIHN0cmVhbS0+dHJhY2tfaWQsCisrICAgICAgICAic3RyZWFtLWVuY3J5
cHRpb24tc3lzdGVtcyIsIEdfVFlQRV9TVFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKKysg
ICAgZ3N0X3N0cnVjdHVyZV9zZXRfdmFsdWUgKHN0LCAic3RyZWFtLWVuY3J5cHRpb24tZXZlbnRz
IiwgJmV2ZW50X2xpc3QpOworKyAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UgKGVsZW1lbnQs
IG1zZyk7CisrICB9CisrCisrICBnX3N0cmZyZWV2IChmaWx0ZXJlZF9zeXNfaWRzKTsKKysgIGdf
dmFsdWVfdW5zZXQgKCZldmVudF9saXN0KTsKKysgIGdzdF9xdWVyeV91bnJlZiAocXVlcnkpOwor
K30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVk
X2NhcHMgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBRdERlbXV4U3RyZWFtICogc3RyZWFt
KQorIHsKKyAgIEdzdFN0cnVjdHVyZSAqczsKKy0gIGNvbnN0IGdjaGFyICpzZWxlY3RlZF9zeXN0
ZW07CisrICBjb25zdCBnY2hhciAqc2VsZWN0ZWRfc3lzdGVtID0gTlVMTDsKKyAKKyAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsIChxdGRlbXV4ICE9IE5VTEwsIEZBTFNFKTsKKyAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsIChzdHJlYW0gIT0gTlVMTCwgRkFMU0UpOworQEAgLTc3MDgsMTcgKzc4NzIsNDEg
QEAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERlbXV4ICogcXRk
ZW11eCwKKyAgICAgICAgICJjZW5jIHByb3RlY3Rpb24gc3lzdGVtIGluZm9ybWF0aW9uIGhhcyBi
ZWVuIGZvdW5kIik7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKy0gIGdfcHRyX2FycmF5X2Fk
ZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKKy0gIHNlbGVjdGVkX3N5
c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKChjb25zdCBnY2hhciAqKikKKy0g
ICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPnBkYXRhKTsKKy0gIGdfcHRyX2Fy
cmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLAorLSAgICAg
IHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+bGVuIC0gMSk7CisrCisrICBnc3RfcXRk
ZW11eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dCAocXRkZW11eCwgc3RyZWFtKTsKKysgIGlm
IChxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgIT0gTlVMTCkgeworKyAg
ICBjb25zdCBnY2hhciAqcHJlZmVycmVkX3N5c3RlbV9hcnJheVtdID0KKysgICAgICAgIHsgcXRk
ZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkLCBOVUxMIH07CisrCisrICAgIHNl
bGVjdGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKHByZWZlcnJlZF9z
eXN0ZW1fYXJyYXkpOworKworKyAgICBpZiAoc2VsZWN0ZWRfc3lzdGVtKSB7CisrICAgICAgR1NU
X1RSQUNFX09CSkVDVCAocXRkZW11eCwgInNlbGVjdGVkIHByZWZlcnJlZCBzeXN0ZW0gJXMiLAor
KyAgICAgICAgICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAg
ICB9IGVsc2UgeworKyAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAocXRkZW11eCwgImNvdWxkIG5v
dCBzZWxlY3QgcHJlZmVycmVkIHN5c3RlbSAlcyAiCisrICAgICAgICAgICJiZWNhdXNlIHRoZXJl
IGlzIG5vIGF2YWlsYWJsZSBkZWNyeXB0b3IiLAorKyAgICAgICAgICBxdGRlbXV4LT5wcmVmZXJy
ZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICB9CisrICB9CisrCisrICBpZiAoIXNlbGVj
dGVkX3N5c3RlbSkgeworKyAgICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVtdXgtPnByb3RlY3Rpb25f
c3lzdGVtX2lkcywgTlVMTCk7CisrICAgIHNlbGVjdGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9u
X3NlbGVjdF9zeXN0ZW0gKChjb25zdCBnY2hhciAqKikKKysgICAgICAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcy0+cGRhdGEpOworKyAgICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXgg
KHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywKKysgICAgICAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcy0+bGVuIC0gMSk7CisrICB9CisrCisgICBpZiAoIXNlbGVjdGVkX3N5
c3RlbSkgeworICAgICBHU1RfRVJST1JfT0JKRUNUIChxdGRlbXV4LCAic3RyZWFtIGlzIHByb3Rl
Y3RlZCwgYnV0IG5vICIKKyAgICAgICAgICJzdWl0YWJsZSBkZWNyeXB0b3IgZWxlbWVudCBoYXMg
YmVlbiBmb3VuZCIpOworICAgICByZXR1cm4gRkFMU0U7CisgICB9CisgCisrICBHU1RfREVCVUdf
T0JKRUNUIChxdGRlbXV4LCAic2VsZWN0ZWQgcHJvdGVjdGlvbiBzeXN0ZW0gaXMgJXMiLAorKyAg
ICAgIHNlbGVjdGVkX3N5c3RlbSk7CisrCisgICBzID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAo
c3RyZWFtLT5jYXBzLCAwKTsKKyAgIGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSAocywgImFw
cGxpY2F0aW9uL3gtY2VuYyIpKSB7CisgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLAorLS0tIGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmgJCisrKysgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAkKK0BAIC0x
NTQsNiArMTU0LDcgQEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKKyAgIGd1aW50NjQgY2VuY19hdXhf
aW5mb19vZmZzZXQ7CisgICBndWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMy
IGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKKysgIGdjaGFyICpwcmVmZXJyZWRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQ7CisgCisgCisgICAvKgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDA3LXF0ZGVtdXgtZG9udC1jaGVjay1wdXNoYmFzZWQtZWR0cy5wYXRj
aCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNy1xdGRlbXV4LWRvbnQt
Y2hlY2stcHVzaGJhc2VkLWVkdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI2ZjZlNDY3ODk2Y2FlZTBh
YzMzNmNkNjU4YmIyNWI1MGU1YWVjNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNy1xdGRlbXV4LWRvbnQtY2hlY2stcHVzaGJhc2VkLWVk
dHMucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysr
KyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitAQCAtODk3NSw3ICs4OTc1LDcgQEAKKyAKKyAgIC8q
IHB1c2ggYmFzZWQgZG9lcyBub3QgaGFuZGxlIHNlZ21lbnRzLCBzbyBhY3QgYWNjb3JkaW5nbHkg
aGVyZSwKKyAgICAqIGFuZCB3YXJuIGlmIGFwcGxpY2FibGUgKi8KKy0gIGlmICghcXRkZW11eC0+
cHVsbGJhc2VkICYmICFhbGxvd19wdXNoYmFzZWRfZWR0cykgeworKyAgaWYgKCFxdGRlbXV4LT5w
dWxsYmFzZWQgLyogJiYgIWFsbG93X3B1c2hiYXNlZF9lZHRzICovKSB7CisgICAgIEdTVF9XQVJO
SU5HX09CSkVDVCAocXRkZW11eCwgInN0cmVhbWluZzsgZGlzY2FyZGluZyBlZGl0IGxpc3Qgc2Vn
bWVudHMiKTsKKyAgICAgLyogcmVtb3ZlIGFuZCB1c2UgZGVmYXVsdCBvbmUgYmVsb3csIHdlIHN0
cmVhbSBsaWtlIGl0IGFueXdheSAqLworICAgICBnX2ZyZWUgKHN0cmVhbS0+c2VnbWVudHMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVt
dXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2ggYi9U
b29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDgtcXRkZW11eC1hbHNvLXB1c2gt
YnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTAy
MWNjYmMwNGUxMGM2NGViMWU0YWI5NjY5M2JiZjA4ODgwOTZkCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVtdXgtYWxzby1wdXNo
LWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gKQEAgLTAsMCArMSw1MCBA
QAorRnJvbSA3ODU1OWJjNWRiMzQ5NWYxMmIwMjg0ZTRiZTVmYzhiZmNkNzA0MWUyIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIw
R29uej1DMz1BMWxlej89IDxlb2NhbmhhQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDI0IEFwciAy
MDE3IDE3OjIyOjAyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIHF0ZGVtdXg6IGFsc28gcHVzaCBi
dWZmZXJzIHdpdGhvdXQgZW5jcnlwdGlvbiBpbmZvIGluc3RlYWQgb2YKKyBkcm9wcGluZyB0aGVt
CisKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgMjYgKysrKysrKysrKysrLS0tLS0tLS0t
LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0p
CisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11
eC5jCitpbmRleCA2YjBjODIwLi43YjcxMjM3IDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRl
bXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTQyMSwyMCArNTQyMSwxOCBA
QCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRfcHVzaF9idWZmZXIgKEdzdFFURGVtdXggKiBxdGRl
bXV4LAorICAgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0tPnBhZCwgZXZlbnQpOwor
ICAgICB9CisgCistICAgIGlmIChpbmZvLT5jcnlwdG9faW5mbyA9PSBOVUxMKSB7CistICAgICAg
R1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgImNlbmMgbWV0YWRhdGEgaGFzbid0IGJlZW4gcGFy
c2VkIHlldCIpOworLSAgICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7CistICAgICAgZ290byBl
eGl0OworLSAgICB9CistCistICAgIGluZGV4ID0gc3RyZWFtLT5zYW1wbGVfaW5kZXggLSAoc3Ry
ZWFtLT5uX3NhbXBsZXMgLSBpbmZvLT5jcnlwdG9faW5mby0+bGVuKTsKKy0gICAgaWYgKEdfTElL
RUxZIChpbmRleCA+PSAwICYmIGluZGV4IDwgaW5mby0+Y3J5cHRvX2luZm8tPmxlbikpIHsKKy0g
ICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBhcnJheSAqLworLSAgICAgIGNyeXB0b19pbmZv
ID0gZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCk7CistICAgICAg
Z19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCkgPSBOVUxMOworLSAg
ICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0YWNoaW5nIGNlbmMgbWV0YWRhdGEgWyV1
XSIsIGluZGV4KTsKKy0gICAgICBpZiAoIWNyeXB0b19pbmZvIHx8ICFnc3RfYnVmZmVyX2FkZF9w
cm90ZWN0aW9uX21ldGEgKGJ1ZiwgY3J5cHRvX2luZm8pKQorLSAgICAgICAgR1NUX0VSUk9SX09C
SkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2ggY2VuYyBtZXRhZGF0YSB0byBidWZmZXIi
KTsKKysgICAgaWYgKGluZm8tPmNyeXB0b19pbmZvID09IE5VTEwpCisrICAgICAgR1NUX0RFQlVH
X09CSkVDVCAocXRkZW11eCwgImNlbmMgbWV0YWRhdGEgaGFzbid0IGJlZW4gcGFyc2VkIHlldCwg
cHVzaGluZyBidWZmZXIgYXMgaWYgaXQgd2Fzbid0IGVuY3J5cHRlZCIpOworKyAgICBlbHNlIHsK
KysgICAgICBpbmRleCA9IHN0cmVhbS0+c2FtcGxlX2luZGV4IC0gKHN0cmVhbS0+bl9zYW1wbGVz
IC0gaW5mby0+Y3J5cHRvX2luZm8tPmxlbik7CisrICAgICAgaWYgKEdfTElLRUxZIChpbmRleCA+
PSAwICYmIGluZGV4IDwgaW5mby0+Y3J5cHRvX2luZm8tPmxlbikpIHsKKysgICAgICAgIC8qIHN0
ZWFsIHN0cnVjdHVyZSBmcm9tIGFycmF5ICovCisrICAgICAgICBjcnlwdG9faW5mbyA9IGdfcHRy
X2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpOworKyAgICAgICAgZ19wdHJf
YXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBpbmRleCkgPSBOVUxMOworKyAgICAgICAg
R1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICJhdHRhY2hpbmcgY2VuYyBtZXRhZGF0YSBbJXVdIiwg
aW5kZXgpOworKyAgICAgICAgaWYgKCFjcnlwdG9faW5mbyB8fCAhZ3N0X2J1ZmZlcl9hZGRfcHJv
dGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKKysgICAgICAgICAgR1NUX0VSUk9SX09C
SkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2ggY2VuYyBtZXRhZGF0YSB0byBidWZmZXIi
KTsKKysgICAgICB9CisgICAgIH0KKyAgIH0KKyAKKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQg
YS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDktcXRkZW11eC1zZWxlY3Qt
dGhlLXByZWZlcnJlZC1wcm90ZWN0aW9uLXN5c3RlbS1ldmVuLS5wYXRjaCBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOS1xdGRlbXV4LXNlbGVjdC10aGUtcHJlZmVycmVk
LXByb3RlY3Rpb24tc3lzdGVtLWV2ZW4tLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ODEzNjJjZjQ1NTRl
MzcyZGE0YWQzYzM5MTA1YWRjMzI4ZDE4YTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUv
cGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDktcXRkZW11eC1zZWxlY3QtdGhlLXByZWZlcnJl
ZC1wcm90ZWN0aW9uLXN5c3RlbS1ldmVuLS5wYXRjaApAQCAtMCwwICsxLDQwIEBACitGcm9tIDc3
ZjFhZDk1YmViNGNlZjZhNDU4NjFlOTc5MTZkNmE4NGRjODY5MGIgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1DMz1CMWE9MjBHb256PUMzPUEx
bGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IE1vbiwgMTUgTWF5IDIwMTcgMTA6Mzg6
NTcgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gcXRkZW11eDogc2VsZWN0IHRoZSBwcmVmZXJyZWQg
cHJvdGVjdGlvbiBzeXN0ZW0gZXZlbiBpZiBub3QKKyBhdmFpbGFibGUKKworLS0tCisgZ3N0L2lz
b21wNC9xdGRlbXV4LmMgfCAxMCArKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2Vy
dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmMKK2luZGV4IDdiNzEyMzcuLmJmYmMyYjUgMTAwNjQ0CistLS0gYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK0BAIC03NjgyLDEyICs3
NjgyLDIyIEBAIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9wcm90ZWN0ZWRfY2FwcyAoR3N0UVREZW11
eCAqIHF0ZGVtdXgsCisgICB9CisgCisgICBpZiAoIXNlbGVjdGVkX3N5c3RlbSkgeworKyAgICBH
U1RfV0FSTklOR19PQkpFQ1QocXRkZW11eCwgInNlbGVjdGluZyAlcyBhcyBwcmVmZXJyZWQgcHJv
dGVjdGlvbiBzeXN0ZW0gZXZlbiB0aG91Z2ggIgorKyAgICAgICAgICAgICJpdCB3YXNuJ3QgYW1v
bmcgdGhlIGF2YWlsYWJsZSBwcm90ZWN0aW9uIHN5c3RlbXMiLCBxdGRlbXV4LT5wcmVmZXJyZWRf
cHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICBjb25zdCBnY2hhciAqcHJlZmVycmVkX3N5c3Rl
bV9hcnJheVtdID0KKysgICAgICAgICAgICAgICAgeyBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVj
dGlvbl9zeXN0ZW1faWQsIE5VTEwgfTsKKysgICAgc2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3Rl
Y3Rpb25fc2VsZWN0X3N5c3RlbSAocHJlZmVycmVkX3N5c3RlbV9hcnJheSk7CisrICB9CisrCisr
ICAvKgorKyAgaWYgKCFzZWxlY3RlZF9zeXN0ZW0pIHsKKyAgICAgZ19wdHJfYXJyYXlfYWRkIChx
dGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOworICAgICBzZWxlY3RlZF9zeXN0
ZW0gPSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtICgoY29uc3QgZ2NoYXIgKiopCisgICAg
ICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPnBkYXRhKTsKKyAgICAgZ19wdHJf
YXJyYXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsCisgICAg
ICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAtIDEpOworICAgfQorKyAg
Ki8KKyAKKyAgIGlmICghc2VsZWN0ZWRfc3lzdGVtKSB7CisgICAgIEdTVF9FUlJPUl9PQkpFQ1Qg
KHF0ZGVtdXgsICJzdHJlYW0gaXMgcHJvdGVjdGVkLCBidXQgbm8gIgorLS0gCisxLjguMy4yCisK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0
ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVh
bXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2E2MGRiNDc3MmIyNzczYTIxY2QwMTM0MDRiNGJkZWViMTBkNmYxMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy93cGUvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3Qt
bW9vZi1mb3ItZnIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotRnJvbSAx
YTgxYmQ5MGQ0YTNlNTlkNjY2OWEwYmJmYTQ1NmYxZWQ0ZTVkYjQ4IE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQotRnJvbTogWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5j
b20+Ci1EYXRlOiBUaHUsIDcgQXByIDIwMTYgMTM6NTc6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRD
SF0gUmV2ZXJ0ICJxdGRlbXV4OiBleHBvc2Ugc3RyZWFtcyB3aXRoIGZpcnN0IG1vb2YgZm9yCi0g
ZnJhZ21lbnRlZCBmb3JtYXQiCi0KLVRoaXMgcmV2ZXJ0cyBjb21taXQgZDhiYjY2ODdlYTI1MTU3
MGMzMzEwMzgyNzlhNDNkNDQ4MTY3ZDZhZC4KLS0tLQotIGdzdC9pc29tcDQvcXRkZW11eC5jIHwg
NTQgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
IGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgLQotIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0
aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVt
dXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCi1pbmRleCAzOWJlMTYzLi45NjM2YjRiIDEwMDY0
NAotLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
Ci1AQCAtNjA5LDcgKzYwOSw2IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRl
bXV4KQotICAgcXRkZW11eC0+c3RhdGUgPSBRVERFTVVYX1NUQVRFX0lOSVRJQUw7Ci0gICBxdGRl
bXV4LT5wdWxsYmFzZWQgPSBGQUxTRTsKLSAgIHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCA9IEZB
TFNFOwotLSAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSAgIHF0ZGVtdXgt
Pm5lZWRlZGJ5dGVzID0gMTY7Ci0gICBxdGRlbXV4LT50b2Ryb3AgPSAwOwotICAgcXRkZW11eC0+
YWRhcHRlciA9IGdzdF9hZGFwdGVyX25ldyAoKTsKLUBAIC0yMDQ5LDcgKzIwNDgsNiBAQCBnc3Rf
cXRkZW11eF9yZXNldCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCi0gICAg
IGdzdF9jYXBzX3JlcGxhY2UgKCZxdGRlbXV4LT5tZWRpYV9jYXBzLCBOVUxMKTsKLSAgICAgcXRk
ZW11eC0+dGltZXNjYWxlID0gMDsKLSAgICAgcXRkZW11eC0+Z290X21vb3YgPSBGQUxTRTsKLS0g
ICAgcXRkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSAgIH0gZWxzZSBpZiAocXRk
ZW11eC0+bXNzX21vZGUpIHsKLSAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgt
PmZsb3djb21iaW5lcik7Ci0gICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7
IG4rKykKLUBAIC02MTA0LDcgKzYxMDIsNiBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIg
KEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCi0gICAgICAgICAgICAgJmZvdXJj
Yyk7Ci0gICAgICAgICBpZiAoZm91cmNjID09IEZPVVJDQ19tb292KSB7Ci0gICAgICAgICAgIGdp
bnQgbjsKLS0gICAgICAgICAgZ2Jvb2xlYW4gZ290X3NhbXBsZXMgPSBGQUxTRTsKLSAKLSAgICAg
ICAgICAgLyogaW4gdXN1YWwgZnJhZ21lbnRlZCBzZXR1cCB3ZSBjb3VsZCB0cnkgdG8gc2NhbiBm
b3IgbW9yZQotICAgICAgICAgICAgKiBhbmQgZW5kIHVwIGF0IHRoZSB0aGUgbW9vdiAoYWZ0ZXIg
bWRhdCkgYWdhaW4gKi8KLUBAIC02MTM2LDI3ICs2MTMzLDE5IEBAIGdzdF9xdGRlbXV4X3Byb2Nl
c3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKLSAgICAgICAg
ICAgICBxdGRlbXV4X25vZGVfZHVtcCAoZGVtdXgsIGRlbXV4LT5tb292X25vZGUpOwotICAgICAg
ICAgICAgIHF0ZGVtdXhfcGFyc2VfdHJlZSAoZGVtdXgpOwotICAgICAgICAgICAgIHF0ZGVtdXhf
cHJlcGFyZV9zdHJlYW1zIChkZW11eCk7Ci0rICAgICAgICAgICAgaWYgKCFkZW11eC0+Z290X21v
b3YpCi0rICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7Ci0rICAg
ICAgICAgICAgZWxzZSB7Ci0gCi0tICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4LT5u
X3N0cmVhbXM7IG4rKykgewotLSAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0g
ZGVtdXgtPnN0cmVhbXNbbl07Ci0tICAgICAgICAgICAgICBnb3Rfc2FtcGxlcyB8PSBzdHJlYW0t
PnN0YmxfaW5kZXggPj0gMDsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgaWYgKCFkZW11
eC0+ZnJhZ21lbnRlZCB8fCBnb3Rfc2FtcGxlcykgewotLSAgICAgICAgICAgICAgaWYgKCFkZW11
eC0+Z290X21vb3YpIHsKLS0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOwotLSAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgZm9yIChu
ID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgewotLSAgICAgICAgICAgICAgICAgIFF0
RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOwotLSAgICAgICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOwotLSAgICAg
ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKSB7Ci0rICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRl
bXV4LT5zdHJlYW1zW25dOwotKwotKyAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1
cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKLSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7Ci0tICAg
ICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLS0gICAgICAgICAg
ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gVFJV
RTsKLSAgICAgICAgICAgICB9Ci0gCi0gICAgICAgICAgICAgZGVtdXgtPmdvdF9tb292ID0gVFJV
RTsKLSsgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAo
ZGVtdXgpOwotIAotICAgICAgICAgICAgIC8qIGZyYWdtZW50ZWQgc3RyZWFtcyBoZWFkZXJzIHNo
b3VsZG4ndCBjb250YWluIGVkdHMgYXRvbXMgKi8KLSAgICAgICAgICAgICBpZiAoIWRlbXV4LT5m
cmFnbWVudGVkKSB7Ci1AQCAtNjE3NSw3ICs2MTY0LDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQotICAgICAgICAgICAg
IGd1aW50NjQgZGlzdCA9IDA7Ci0gICAgICAgICAgICAgR3N0Q2xvY2tUaW1lIHByZXZfcHRzOwot
ICAgICAgICAgICAgIGd1aW50NjQgcHJldl9vZmZzZXQ7Ci0tICAgICAgICAgICAgZ2ludCBuOwot
IAotICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBbbW9vZl0i
KTsKLSAKLUBAIC02MjA5LDI1ICs2MTk3LDE1IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRl
ciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKLSAgICAgICAgICAgICAgIHJl
dCA9IEdTVF9GTE9XX0VSUk9SOwotICAgICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICAg
ICAgIH0KLS0gICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMg
YWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAKLS0gICAgICAgICAg
ICAgKiBBbHNvLCBmcmFnbWVudGVkIGZvcm1hdCBuZWVkIHRvIGJlIGV4cG9zZWQgaWYgYSBtb292
IGhhdmUgbm8gdmFsaWQgc2FtcGxlIGRhdGEgKi8KLS0gICAgICAgICAgICBpZiAoZGVtdXgtPm1z
c19tb2RlIHx8IGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSkgewotLSAgICAgICAgICAgICAgaWYg
KCFkZW11eC0+ZXhwb3NlZCkgewotLSAgICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5n
X25ld3NlZ21lbnQpIHsKLS0gICAgICAgICAgICAgICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7Ci0t
ICAgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRf
VElNRSk7Ci0tICAgICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcg
cGVuZGluZ19uZXdzZWdtZW50Iik7Ci0tICAgICAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdf
bmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNlZ21lbnQpOwotLSAgICAgICAg
ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4
KTsKLS0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZvciAobiA9IDA7
IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAgICAgICAgICAgICBRdERlbXV4
U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLS0gICAgICAgICAgICAgICAgICBn
c3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsKLS0gICAgICAgICAg
ICAgICAgfQotKyAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFk
cyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292ICovCi0rICAgICAg
ICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSAmJiAhZGVtdXgtPmV4cG9zZWQpIHsKLSsgICAgICAg
ICAgICAgIGlmICghZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCkgewotKyAgICAgICAgICAgICAg
ICBHc3RTZWdtZW50IHNlZ21lbnQ7Ci0rICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQg
KCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOwotKyAgICAgICAgICAgICAgICBHU1RfREVCVUdf
T0JKRUNUIChkZW11eCwgIm5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKLSsgICAgICAgICAgICAg
ICAgZGVtdXgtPnBlbmRpbmdfbmV3c2VnbWVudCA9IGdzdF9ldmVudF9uZXdfc2VnbWVudCAoJnNl
Z21lbnQpOwotICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hl
Y2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKLS0gICAgICAgICAgICAgIGRlbXV4LT5w
ZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOwotKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vf
c3RyZWFtcyAoZGVtdXgpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIkRpc2NhcmRpbmcgW21vb2ZdIik7
Ci1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXgu
aAotaW5kZXggNjA2MTIxNS4uZWNmMGM2MyAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11
eC5oCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAotQEAgLTg5LDcgKzg5LDYgQEAgc3RydWN0
IF9Hc3RRVERlbXV4IHsKLSAgIGdib29sZWFuIHBvc3RlZF9yZWRpcmVjdDsKLSAKLSAgIC8qIHB1
c2ggYmFzZWQgdmFyaWFibGVzICovCi0tICBnYm9vbGVhbiBwZW5kaW5nX2NvbmZpZ3VyZTsKLSAg
IGd1aW50IG5lZWRlZGJ5dGVzOwotICAgZ3VpbnQgdG9kcm9wOwotICAgR3N0QWRhcHRlciAqYWRh
cHRlcjsKLS0tIAotMi44LjAucmMzCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2gK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlOWRkOTdmNzkxNmYwODczNzllMDhmYzY4
YWEwZGEyMTI5NThjNzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVj
b2RlLXRpbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotRnJvbSA0NmQz
ZTBmYWE5MjI2NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQotRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxl
ej89IDxlb2NhbmhhQGlnYWxpYS5jb20+Ci1EYXRlOiBUdWUsIDEwIE5vdiAyMDE1IDEzOjA5OjAw
ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUgdGltZSB3aGVuIGl0
J3Mgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQKLSB0aGFuIHRoZSB0aW1lIGluIHRoZSBsYXN0IHNh
bXBsZSBpZiBhbHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCi0KLWh0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKLS0tLQotIGdzdC9pc29tcDQvcXRkZW11
eC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKwotIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKwotIDIgZmlsZXMgY2hhbmdlZCwgNzMg
aW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3Qv
aXNvbXA0L3F0ZGVtdXguYwotaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2NDQKLS0tLSBhL2dz
dC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotQEAgLTUzNSw2
ICs1MzUsMTEgQEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3Byb3RlY3Rpb25fc3lz
dGVtX2lkIChHc3RRVERlbXV4ICogcXRkZW11eCwKLSAgICAgY29uc3QgZ2NoYXIgKiBpZCk7Ci0g
c3RhdGljIHZvaWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0cnVjdHVyZSAqIGdz
dHN0cnVjdHVyZSk7Ci0gCi0rc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAotKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOwotK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2dldF9wcm9w
ZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKLSsgICAgR1ZhbHVlICogdmFs
dWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKLSsKLSBzdGF0aWMgdm9pZAotIGdzdF9xdGRlbXV4X2Ns
YXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQotIHsKLUBAIC01NDYsOCArNTUxLDIx
IEBAIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQotIAot
ICAgcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChrbGFzcyk7Ci0gCi0r
ICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHk7
Ci0rICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9nZXRfcHJvcGVy
dHk7Ci0rCi0gICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVtdXhfZGlzcG9zZTsK
LSAKLSsgLyoqCi0rICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZkdDoKLSsgICAqCi0r
ICAgKiBSZXF1ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhlIFRGRFQgYXRvbSBz
YXlzIGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMuIERlZmF1bHRz
IHRvIEZBTFNFLgotKyAgICovCi0rICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn
b2JqZWN0X2NsYXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAotKyAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9yIFRGRFQiLAotKyAg
ICAgICAgICAiV2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMgYmUgcmVzcGVjdGVk
IGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMiLAotKyAgICAgICAg
ICBGQUxTRSwgR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7Ci0r
Ci0gICBnc3RlbGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUiAo
Z3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKTsKLSAjaWYgMAotICAgZ3N0ZWxlbWVudF9jbGFzcy0+
c2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7Ci1A
QCAtNjExLDYgKzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4
KQotICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7Ci0gICBxdGRlbXV4LT5j
ZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOwotICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1f
aWRzID0gTlVMTDsKLSsgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gRkFMU0U7Ci0gICBn
X3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKLSAgIGdzdF9z
ZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOwotICAgcXRk
ZW11eC0+Zmxvd2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOwotQEAgLTYzOSw2
ICs2NTgsNDIgQEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9iamVjdCkKLSB9Ci0g
Ci0gc3RhdGljIHZvaWQKLStnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsCi0rICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVj
ICogcHNwZWMpCi0rewotKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmpl
Y3QpOwotKwotKyAgc3dpdGNoIChwcm9wX2lkKSB7Ci0rICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9O
T1JfVEZEVDoKLSsgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOwotKyAgICAgIHF0ZGVt
dXgtPmFsd2F5c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUpOwotKyAg
ICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKLSsgICAgICBicmVhazsKLSsgICAgZGVm
YXVsdDoKLSsgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOwotKyAgICAgIGJyZWFrOwotKyAgfQotK30KLSsKLStzdGF0aWMgdm9p
ZAotK2dzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgR1ZhbHVlICogdmFsdWUsCi0rICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKLSt7Ci0rICBH
c3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7Ci0rCi0rICBzd2l0Y2gg
KHByb3BfaWQpIHsKLSsgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgotKyAgICAgIEdT
VF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7Ci0rICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFs
dWUsIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0KTsKLSsgICAgICBHU1RfT0JKRUNUX1VOTE9D
SyAocXRkZW11eCk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSsg
ICAgICBicmVhazsKLSsgIH0KLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSBnc3RfcXRkZW11eF9wb3N0
X25vX3BsYXlhYmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCi0gewotICAg
aWYgKHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCkgewotQEAgLTI5OTUsNiArMzA1MCwxNiBAQCBx
dGRlbXV4X3BhcnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICog
dHJ1biwKLSAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0u
dGltZXN0YW1wICsKLSAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVz
IC0gMV0uZHVyYXRpb247Ci0gCi0rICAgICAgLyogSWYgd2UncmUgYWx3YXlzIGhvbm9yaW5nIFRG
RFQgYW5kIHRoZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKLSsgICAgICAgKiBiZXR3
ZWVuIHRoZSBkZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBkZWNvZGVfdHMgKi8K
LSsgICAgICBpZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJVRQotKyAgICAgICAg
ICAmJiBhYnMgKGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgotKyAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgewotKyAgICAgICAgR1NUX0lO
Rk9fT0JKRUNUIChxdGRlbXV4LAotKyAgICAgICAgICAgICJkZWNvZGVfdHMgaXMgc2lnbmlmaWNh
bnRseSBkaWZmZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90cyIpOwotKyAgICAg
ICAgdGltZXN0YW1wID0gZGVjb2RlX3RzOwotKyAgICAgIH0KLSsKLSAgICAgICBnc3RfdHMgPSBR
VFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOwotICAgICAgIEdTVF9J
TkZPX09CSkVDVCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQK
LSAgICAgICAgICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1Mg
KGdzdF90cykpOwotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmgKLWluZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0Ci0tLS0gYS9nc3QvaXNv
bXA0L3F0ZGVtdXguaAotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLUBAIC0xNTQsMTIgKzE1
NCwyMCBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggewotICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3Np
emVzOwotICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7Ci0gCi0rICBnYm9vbGVhbiBh
bHdheXNfaG9ub3JfdGZkdDsKLSB9OwotIAotIHN0cnVjdCBfR3N0UVREZW11eENsYXNzIHsKLSAg
IEdzdEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7Ci0gfTsKLSAKLSsvKiBwcm9wcyAqLwotK2Vu
dW0KLSt7Ci0rICBQUk9QXzAsCi0rICBQUk9QX0FMV0FZU19IT05PUl9URkRUCi0rfTsKLSsKLSBH
VHlwZSBnc3RfcXRkZW11eF9nZXRfdHlwZSAodm9pZCk7Ci0gCi0gR19FTkRfREVDTFMKLS0tIAot
Mi42LjEKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJv
dGVjdGlvbi1hZGRlZC1mdW5jdGlvbi10by1maWx0ZXItc3lzdGVtLWlkcy5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8t
ZmlsdGVyLXN5c3RlbS1pZHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcyZWY2YzEzMmM2MzE0MDIyNDRm
NzI2MjczMGQ2ZGI0MTM4MWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3Rl
bS1pZHMucGF0Y2gKQEAgLTAsMCArMSw3NyBAQAorRnJvbSA3NzcyZWIzNTA1OTE2ODJiNmEzMTVj
OGE4N2E1ODEzMWY3MzFmMWQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGFiaWVy
IFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZhcmlzQGlnYWxpYS5jb20+CitEYXRlOiBXZWQsIDE5IE9j
dCAyMDE2IDE2OjQ0OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHByb3RlY3Rpb246IGFkZGVk
IGZ1bmN0aW9uIHRvIGZpbHRlciBzeXN0ZW0gaWRzCisKK2dzdF9wcm90ZWN0aW9uX2ZpbHRlcl9z
eXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3JzIHRha2VzIGFuIGFycmF5IG9mCitzdHJpbmdz
IGFuZCByZXR1cm5zIGEgbmV3IGFycmF5IG9mIHN0cmluZ3MgZmlsdGVyZWQgYnkgdGhlIGF2YWli
bGUKK2RlY3J5cHRvcnMgZm9yIHRoZW0gc28gdGhlIG9uZXMgeW91IGdldCBhcmUgdGhlIG9uZXMg
dGhhdCB5b3Ugc2hvdWxkIGJlCithYmxlIHRvIGRlY3J5cHQuCistLS0KKyBnc3QvZ3N0cHJvdGVj
dGlvbi5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2dz
dHByb3RlY3Rpb24uaCB8ICAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCsp
CisKK2RpZmYgLS1naXQgYS9nc3QvZ3N0cHJvdGVjdGlvbi5jIGIvZ3N0L2dzdHByb3RlY3Rpb24u
YworaW5kZXggOGVlNTJlYS4uMmQ3ZTVlMCAxMDA2NDQKKy0tLSBhL2dzdC9nc3Rwcm90ZWN0aW9u
LmMKKysrKyBiL2dzdC9nc3Rwcm90ZWN0aW9uLmMKK0BAIC0xOTEsNiArMTkxLDQyIEBAIGdzdF9w
cm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKGNvbnN0IGdjaGFyICoqIHN5c3RlbV9pZGVudGlmaWVy
cykKKyAgIHJldHVybiByZXR2YWw7CisgfQorIAorK2djaGFyICoqCisrZ3N0X3Byb3RlY3Rpb25f
ZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMgKGNvbnN0IGdjaGFyICoqCisr
ICAgIHN5c3RlbV9pZGVudGlmaWVycykKKyt7CisrICBHTGlzdCAqZGVjcnlwdG9ycywgKndhbGs7
CisrICBnY2hhciAqKnJldHZhbDsKKysgIGd1aW50IGkgPSAwLCBkZWNyeXB0b3JzX251bWJlcjsK
KysKKysgIGRlY3J5cHRvcnMgPQorKyAgICAgIGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRf
ZWxlbWVudHMgKEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNSWVBUT1IsCisrICAgICAgR1NU
X1JBTktfTUFSR0lOQUwpOworKworKyAgZGVjcnlwdG9yc19udW1iZXIgPSBnX2xpc3RfbGVuZ3Ro
IChkZWNyeXB0b3JzKTsKKysgIHJldHZhbCA9IGdfbmV3IChnY2hhciAqLCBkZWNyeXB0b3JzX251
bWJlciArIDEpOworKworKyAgR1NUX1RSQUNFICgiZm91bmQgJXUgZGVjcnl0b3JzIiwgZGVjcnlw
dG9yc19udW1iZXIpOworKworKyAgZm9yICh3YWxrID0gZGVjcnlwdG9yczsgd2Fsazsgd2FsayA9
IGdfbGlzdF9uZXh0ICh3YWxrKSkgeworKyAgICBHc3RFbGVtZW50RmFjdG9yeSAqZmFjdCA9IChH
c3RFbGVtZW50RmFjdG9yeSAqKSB3YWxrLT5kYXRhOworKworKyAgICBjb25zdCBjaGFyICpmb3Vu
ZF9zeXNfaWQgPQorKyAgICAgICAgZ3N0X3Byb3RlY3Rpb25fZmFjdG9yeV9jaGVjayAoZmFjdCwg
c3lzdGVtX2lkZW50aWZpZXJzKTsKKysgICAgR1NUX1RSQUNFICgiZmFjdG9yeSAlcyBpcyB2YWxp
ZCBmb3IgJXMiLCBHU1RfT0JKRUNUX05BTUUgKGZhY3QpLAorKyAgICAgICAgZm91bmRfc3lzX2lk
KTsKKysKKysgICAgaWYgKGZvdW5kX3N5c19pZCkgeworKyAgICAgIHJldHZhbFtpKytdID0gZ19z
dHJkdXAgKGZvdW5kX3N5c19pZCk7CisrICAgIH0KKysgIH0KKysgIHJldHZhbFtpXSA9IE5VTEw7
CisrCisrICBnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlIChkZWNyeXB0b3JzKTsKKysKKysg
IHJldHVybiByZXR2YWw7CisrfQorKworIHN0YXRpYyBjb25zdCBnY2hhciAqCisgZ3N0X3Byb3Rl
Y3Rpb25fZmFjdG9yeV9jaGVjayAoR3N0RWxlbWVudEZhY3RvcnkgKiBmYWN0LAorICAgICBjb25z
dCBnY2hhciAqKiBzeXN0ZW1faWRlbnRpZmllcnMpCitkaWZmIC0tZ2l0IGEvZ3N0L2dzdHByb3Rl
Y3Rpb24uaCBiL2dzdC9nc3Rwcm90ZWN0aW9uLmgKK2luZGV4IGYyZjU0YzQuLjk1OTc2YzUgMTAw
NjQ0CistLS0gYS9nc3QvZ3N0cHJvdGVjdGlvbi5oCisrKysgYi9nc3QvZ3N0cHJvdGVjdGlvbi5o
CitAQCAtNjYsNiArNjYsOCBAQCBHc3RQcm90ZWN0aW9uTWV0YSAqZ3N0X2J1ZmZlcl9hZGRfcHJv
dGVjdGlvbl9tZXRhIChHc3RCdWZmZXIgKiBidWZmZXIsCisgICAgIEdzdFN0cnVjdHVyZSAqIGlu
Zm8pOworIAorIGNvbnN0IGdjaGFyICpnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtIChjb25z
dCBnY2hhciAqKiBzeXN0ZW1faWRlbnRpZmllcnMpOworK2djaGFyICoqIGdzdF9wcm90ZWN0aW9u
X2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3JzICgKKysgICAgY29uc3QgZ2No
YXIgKiogc3lzdGVtX2lkZW50aWZpZXJzKTsKKyAKKyBHX0VORF9ERUNMUworICNlbmRpZiAvKiBf
X0dTVF9QUk9URUNUSU9OX01FVEFfSF9fICovCistLSAKKzIuMTAuMgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315101</attachid>
            <date>2017-07-11 06:36:01 -0700</date>
            <delta_ts>2017-07-11 06:52:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174350-20170711153559.patch</filename>
            <type>text/plain</type>
            <size>89888</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzI1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZiMjhlOGYxZmZhYTM4NTg1M2M4NGZlNjg1MWRkODE5
YjQ2Y2QyNi4uNGMzZDA4YzEwMWM4YjUyNGFlNWIwZWYxYTkxOGI5YTY4YTVjMzZiZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE3LTA3LTExICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV1BFXSBCdW1wIEdTdHJlYW1lciBwYWNrYWdlcyBpbiBqaGJ1aWxkLm1vZHVsZXMg
dG8gMS4xMC41CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQzNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdW1wIHRoZSB2YXJpb3VzIEdTdHJlYW1lciBkZXBlbmRlbmNpZXMgbGlzdGVkIGluIFdQRSdz
IEpoYnVpbGQgbW9kdWxlcyBmaWxlCisgICAgICAgIHRvIHRoZSAxLjEwLjQgdmVyc2lvbi4gT25l
IGdzdHJlYW1lciBwYXRjaCBpcyBhZGRlZC4gVGhlIHR3byBnc3QtcGx1Z2lucy1iYWQKKyAgICAg
ICAgcGF0Y2hlcyBhcmUgcmVtb3ZlZC4gVGhlIHBhdGNoZXMgZm9yIGdzdC1wbHVnaW5zLWdvb2Qg
YXJlIHVwZGF0ZWQsIHJlbW92aW5nCisgICAgICAgIHRoZSBzdGFsZSBvbmVzIGFuZCBhZGRpbmcg
dGhlIGFkZGl0aW9uYWwgY2hhbmdlcyB0byBxdGRlbXV4LCBzb3VwaHR0cHNyYyBhbmQKKyAgICAg
ICAgcnRwYmluIGVsZW1lbnRzIHRoYXQgd2lsbCBoZWxwIHdpdGggdGhlIEVNRXYzIGRldmVsb3Bt
ZW50LgorCisgICAgICAgICogd3BlL2poYnVpbGQubW9kdWxlczoKKyAgICAgICAgKiB3cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRj
aDogUmVtb3ZlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1k
dGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNo
OiBSZW1vdmVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1y
dHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5k
LWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVy
cmVkLXByb3RlY3Rpb24ucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlw
dGlvbi1pbmZvLWluLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDktcXRkZW11eC1zZWxlY3QtdGhlLXByZWZlcnJlZC1wcm90ZWN0aW9uLXN5
c3RlbS1ldmVuLS5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9y
LWZyLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIHdw
ZS9wYXRjaGVzL2dzdHJlYW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmls
dGVyLXN5c3RlbS1pZHMucGF0Y2g6IEFkZGVkLgorCiAyMDE3LTA3LTEwICBKb2huIFdpbGFuZGVy
ICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGlj
czogUHJ1bmUgc3RhdGlzdGljcyBpbiBvcmRlcnMgb2YgaW1wb3J0YW5jZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKaW5k
ZXggM2JjYzFiYjg0ZTA4YzIyN2JkMzUzYzI0YmJiMGFiZTY5YjgwZmVkZS4uNjY0YjFkNDI3NGQ1
NjdiY2IzZjlmOGM1MGY0NzI1YzIyZjFlMWMxYyAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2poYnVp
bGQubW9kdWxlcworKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0xNzgsMTEgKzE3
OCwxMCBAQAogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9Im9yYyIvPgog
ICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVh
bWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICA8YnJhbmNoIG1vZHVs
ZT0iZ3N0cmVhbWVyL2dzdHJlYW1lci0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4xMC41
IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hhMjU2
OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMy
N2U1ZTMxMDciCi0gICAgICAgICAgICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0
NGRjOTA4Ij4KLSAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNo
LWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6YmMwNjI0MzYwMDgxN2Y2MzcwMjlkYTI5ZDA4OWQ1OTA4ZDFk
MjY2NTQyZjY4YmY2NjI2YTEwYzVmMDVmMWYxZCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVh
bWVyLTAwMDEtcHJvdGVjdGlvbi1hZGRlZC1mdW5jdGlvbi10by1maWx0ZXItc3lzdGVtLWlkcy5w
YXRjaCIgc3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKQEAgLTE5
MiwxMCArMTkxLDkgQEAKICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJn
c3RyZWFtZXIiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0
LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1Z2lu
cy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjUiCiAgICAgICAgICAgICBy
ZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6MTVhOWRlOTg1Y2QyNjVj
MzQ0ZTM1OWY1YjE5MzQ3ZGY0MDIxYjc2MTFlZDJjMmQ5MTkxN2NiOTAwZjJmYWQ2ZiIKLSAgICAg
ICAgICAgIG1kNXN1bT0iNTQyMWVkZmViNzQ3OWQ1ZjU3NzZlOTE3YmEzMGUyNGUiLz4KKyAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjoxYzQwMWE3OWJkMWU0NTIxYzZlZjFiNjY1NzliZGRlZGQ5MTM2
ZTE2NGU1NDc5MmFhYjRiZmNmMzQ4NWJmOWE3Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRv
dG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dl
bmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRv
YyI+CkBAIC0yMDMsMTIgKzIwMSwxNCBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lu
cy1iYXNlIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CiAKLSAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0
LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lucy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtZ29vZC9nc3QtcGx1Z2lu
cy1nb29kLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjUiCiAgICAgICAgICAgICBy
ZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5
NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3MiIKLSAgICAg
ICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDciPgotICAgICAg
PHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBh
dGNoIiBzdHJpcD0iMSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2
ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiZTA1M2Y2ZWQ3MTZlZWI1MTdj
ZWMxNDhjZWM2MzdjZGNlNTcxYzZlMDRkNWMyMTQwOWUyODc2ZmI3NmM3NjM5Ij4KKyAgICAgIDxw
YXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1
cHBvcnQucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMt
Z29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5kLWNvbnRleHQtcXVlcnktc3VwcG9y
dC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29k
LTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRj
aCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDgt
cXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1pbi5wYXRj
aCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDkt
cXRkZW11eC1zZWxlY3QtdGhlLXByZWZlcnJlZC1wcm90ZWN0aW9uLXN5c3RlbS1ldmVuLS5wYXRj
aCIgc3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKQEAgLTIxNiwx
MiArMjE2LDkgQEAKICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3Qt
cGx1Z2lucy1iYXNlIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9
ImdzdC1wbHVnaW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNp
b249IjEuOC4xIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYWQvZ3N0LXBsdWdp
bnMtYmFkLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjEwLjUiCiAgICAgICAgICAgICBy
ZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZj
MGM0YTYyMGIyZDZmYjAxZDQyN2ZkYWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKLSAgICAg
ICAgICAgIG1kNXN1bT0iZTUwOGRhMmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgotICAgICAg
PHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEu
MS4wLnBhdGNoIiBzdHJpcD0iMSIvPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJh
ZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRl
X2sucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6YzU4MDYwNDBi
YjgzYjQzYmU4NmNlNTkyZTZhMTljNWQ4M2Q3Nzc2ZjdkOWY0MzRlYjRiOTExYzRlZmZmMzU3MyI+
CiAgICAgPC9icmFuY2g+CiAgIDwvYXV0b3Rvb2xzPgogCkBAIC0yMjksMTAgKzIyNiw5IEBACiAg
ICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIv
PgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0
LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZ3N0LWxpYmF2L2dzdC1saWJhdi0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS4x
MC41IgogICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgotICAgICAgICAgICAgaGFzaD0ic2hh
MjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYzNDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVh
NzAzMDBiMzg5MzMiCi0gICAgICAgICAgICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdi
NmI0MmRmNDYyIi8+CisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZTRkMmYzMTVmNDc4ZDQ3Mjgx
ZmJmZGZiZDU5MGE2M2QyMzcwNGNhMzc5MTFkNzE0MmQ1OTkyNjE2ZjRiMjhkMyIvPgogICA8L2F1
dG90b29scz4KIAogICA8Y21ha2UgaWQ9IndwZSI+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRj
aCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1P
cGVuU1NMLTEuMS4wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDEwNjRl
ZDVlOTEzN2Y2NTFmNTFmNDMwMTZkYzM2Y2RmODIyNzUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJh
ZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAg
LTEsMjM2ICswLDAgQEAKLUZyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0
NDg2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJl
ZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCi1TdWJqZWN0
OiBbUEFUQ0hdIGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAotCi1DaGFuZ2VzIGFyZToKLQot
LSBVc2UgdGhlIHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4g
IFRvIHByZXNlcnZlCi0gIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBk
ZWZpbml0aW9ucwotCi0tIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wt
PmQxLT5zZW50X21lc3NhZ2VzKSIsIHNpbmNlCi0gIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50Ci0K
LS0gVXNlIFJTQV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0Ff
Z2VuZXJhdGVfa2V5Ci0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NzM1NDAKLS0tLQotIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysr
KysKLSBleHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2Vy
dGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi1pbmRleCA5NWZiYjgz
Li5jMWM5NjAyIDEwMDY0NAotLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLSsr
KyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi1AQCAtMTk5LDcgKzE5OSwyMiBAQCBp
bml0X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKLSAgICAgcHJpdi0+cHJp
dmF0ZV9rZXkgPSBOVUxMOwotICAgICByZXR1cm47Ci0gICB9Ci0rCi0rICAvKiBYWFg6IFJTQV9n
ZW5lcmF0ZV9rZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLwotKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLSAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9r
ZXkgKDIwNDgsIFJTQV9GNCwgTlVMTCwgTlVMTCk7Ci0rI2Vsc2UKLSsgIHJzYSA9IFJTQV9uZXcg
KCk7Ci0rICBpZiAocnNhICE9IE5VTEwpIHsKLSsgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwot
KyAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCi0rICAgICAgICAm
JiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Ci0rICAgICAgUlNB
X2ZyZWUgKHJzYSk7Ci0rICAgICAgcnNhID0gTlVMTDsKLSsgICAgfQotKyAgICBCTl9mcmVlIChl
KTsKLSsgIH0KLSsjZW5kaWYKLSAKLSAgIGlmICghcnNhKSB7Ci0gICAgIEdTVF9XQVJOSU5HX09C
SkVDVCAoc2VsZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKLWRpZmYgLS1naXQgYS9leHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYwot
aW5kZXggMzZmNmQ2My4uNzI4ZjVhNyAxMDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25u
ZWN0aW9uLmMKLSsrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKLUBAIC00Miw2ICs0
Miw4IEBACi0gI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+Ci0gI2luY2x1ZGUgPG9wZW5zc2wvc3Ns
Lmg+Ci0gCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotIEdTVF9ERUJVR19DQVRFR09SWV9TVEFU
SUMgKGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcpOwotICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxU
IGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcKLSBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0
RHRsc0Nvbm5lY3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCi1AQCAt
MjE2LDYgKzIxOCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICog
Z29iamVjdCkKLSAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplIChnb2JqZWN0KTsKLSB9Ci0gCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9O
VU1CRVIgPCAweDEwMTAwMDAxTAotK3N0YXRpYyB2b2lkCi0rQklPX3NldF9kYXRhIChCSU8gKiBi
aW8sIHZvaWQgKnB0cikKLSt7Ci0rICBiaW8tPnB0ciA9IHB0cjsKLSt9Ci0rCi0rc3RhdGljIHZv
aWQgKgotK0JJT19nZXRfZGF0YSAoQklPICogYmlvKQotK3sKLSsgIHJldHVybiBiaW8tPnB0cjsK
LSt9Ci0rCi0rc3RhdGljIHZvaWQKLStCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBz
aHV0ZG93bikKLSt7Ci0rICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247Ci0rfQotKwotK3N0YXRp
YyB2b2lkCi0rQklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQotK3sKLSsgIGJpby0+
aW5pdCA9IGluaXQ7Ci0rfQotKwotK3N0YXRpYyBYNTA5ICoKLStYNTA5X1NUT1JFX0NUWF9nZXQw
X2NlcnQgKFg1MDlfU1RPUkVfQ1RYICogY3R4KQotK3sKLSsgIHJldHVybiBjdHgtPmNlcnQ7Ci0r
fQotKyNlbmRpZgotKwotIHN0YXRpYyB2b2lkCi0gZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJv
cGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCi0gICAgIGNvbnN0IEdWYWx1
ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNwZWMpCi1AQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9k
dGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9w
X2lkLAotICAgICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rp
b24gKCkpOwotICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7Ci0gCi0tICAgICAg
cHJpdi0+YmlvLT5wdHIgPSBzZWxmOwotKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBz
ZWxmKTsKLSAgICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJp
byk7Ci0gCi0gICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKLUBAIC01NzMsNiArNjA3
LDcgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICog
c3RyKQotICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7
Ci0gICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOwotIAot
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLSAgIEdTVF9MT0dfT0JK
RUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAotICAg
ICAgIHN0ciwKLSAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAot
QEAgLTU4MSw2ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYs
IGNvbnN0IGdjaGFyICogc3RyKQotICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAotICAg
ICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAotICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAo
cHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKLSsjZWxzZQot
KyAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwl
eCAlcyIsCi0rICAgICAgc3RyLAotKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDog
InNlcnZlciIsCi0rICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKLSsgICAgICBwcml2LT5iaW9fYnVm
ZmVyX29mZnNldCwKLSsgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKLSsgICAgICBzdGF0ZXMs
IFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+
c3NsKSk7Ci0rI2VuZGlmCi0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtNzM3LDcgKzc4MSw3IEBA
IG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NU
WCAqIHg1MDlfY3R4KQotICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9u
X2V4X2luZGV4KTsKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNU
SU9OIChzZWxmKSwgRkFMU0UpOwotIAotLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4
NTA5X2N0eC0+Y2VydCk7Ci0rICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RP
UkVfQ1RYX2dldDBfY2VydCAoeDUwOV9jdHgpKTsKLSAKLSAgIGlmICghcGVtKSB7Ci0gICAgIEdT
VF9XQVJOSU5HX09CSkVDVCAoc2VsZiwKLUBAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJp
ZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgp
Ci0gICAgICAgZ2ludCBsZW47Ci0gCi0gICAgICAgbGVuID0KLS0gICAgICAgICAgWDUwOV9OQU1F
X3ByaW50X2V4IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAx
LAotKyAgICAgICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKLSsgICAgICAgICAgWDUwOV9n
ZXRfc3ViamVjdF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEs
Ci0gICAgICAgICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKLSAgICAgICBCSU9fcmVhZCAoYmlvLCBi
dWZmZXIsIGxlbik7Ci0gICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOwotQEAgLTc3Nyw2ICs4MjIs
NyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9S
RV9DVFggKiB4NTA5X2N0eCkKLSAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKLSAqLwotIAot
KyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKLSBzdGF0aWMgQklPX01F
VEhPRCBjdXN0b21fYmlvX21ldGhvZHMgPSB7Ci0gICBCSU9fVFlQRV9CSU8sCi0gICAic3RyZWFt
IiwKLUBAIC03OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lk
KQotIHsKLSAgIHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOwotIH0KLSsjZWxzZQotK3N0YXRp
YyBCSU9fTUVUSE9EICpjdXN0b21fYmlvX21ldGhvZHM7Ci0rCi0rc3RhdGljIEJJT19NRVRIT0Qg
KgotK0JJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCi0rewotKyAgaWYgKGN1c3RvbV9i
aW9fbWV0aG9kcyAhPSBOVUxMKQotKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOwotKwot
KyAgY3VzdG9tX2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJl
YW0iKTsKLSsgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAotKyAgICAgIHx8ICFCSU9f
bWV0aF9zZXRfd3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKLSsg
ICAgICB8fCAhQklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhv
ZF9yZWFkKQotKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2Rz
LCBiaW9fbWV0aG9kX2N0cmwpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3Rv
bV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9uZXcpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9k
ZXN0cm95IChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKLSsgICAgQklP
X21ldGhfZnJlZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0rICB9
Ci0rCi0rICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOwotK30KLSsjZW5kaWYKLSAKLSBzdGF0
aWMgaW50Ci0gYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBp
bnQgc2l6ZSkKLSB7Ci0tICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5F
Q1RJT04gKGJpby0+cHRyKTsKLSsgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNf
Q09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKLSAKLSAgIEdTVF9MT0dfT0JKRUNUIChz
ZWxmLCAiQklPOiB3cml0aW5nICVkIiwgc2l6ZSk7Ci0gCi1AQCAtODI0LDcgKzg5Myw3IEBAIGJp
b19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCi0g
c3RhdGljIGludAotIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVy
LCBpbnQgc2l6ZSkKLSB7Ci0tICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NP
Tk5FQ1RJT04gKGJpby0+cHRyKTsKLSsgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RU
TFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKLSAgIEdzdER0bHNDb25uZWN0aW9u
UHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7Ci0gICBndWludCBpbnRlcm5hbF9zaXplOwotICAg
Z2ludCBjb3B5X3NpemU7Ci1AQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklP
ICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKLSBzdGF0aWMgbG9uZwotIGJpb19t
ZXRob2RfY3RybCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCi0g
ewotLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8t
PnB0cik7Ci0rICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KEJJT19nZXRfZGF0YSAoYmlvKSk7Ci0gICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYg
PSBzZWxmLT5wcml2OwotIAotICAgc3dpdGNoIChjbWQpIHsKLUBAIC05MTYsOCArOTg1LDggQEAg
YmlvX21ldGhvZF9uZXcgKEJJTyAqIGJpbykKLSB7Ci0gICBHU1RfTE9HX09CSkVDVCAoTlVMTCwg
IkJJTzogbmV3Iik7Ci0gCi0tICBiaW8tPnNodXRkb3duID0gMDsKLS0gIGJpby0+aW5pdCA9IDE7
Ci0rICBCSU9fc2V0X3NodXRkb3duIChiaW8sIDApOwotKyAgQklPX3NldF9pbml0IChiaW8sIDEp
OwotIAotICAgcmV0dXJuIDE7Ci0gfQotQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2Zy
ZWUgKEJJTyAqIGJpbykKLSAgICAgcmV0dXJuIDA7Ci0gICB9Ci0gCi0tICBHU1RfTE9HX09CSkVD
VCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKLSsgIEdTVF9M
T0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklP
IGZyZWUiKTsKLSAgIHJldHVybiAwOwotIH0KLS0tIAotMi4xMC4yCi0KZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgt
ZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NjY4NzczNzBjNmZiNGNkOTViZDkxMmIwMjhlZDM5YmY0YTU4ZmExLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVn
aW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dl
bmVyYXRlX2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDNhMDY5
MTkzZTI1MzY0ZWJkYWNhYzg2ZjRiMDMwMjJjMTUxZWEyOWMgTW9uIFNlcCAxNyAwMDowMDowMCAy
MDAxCi1Gcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5A
Y2VudHJpY3VsYXIuY29tPgotRGF0ZTogTW9uLCAxNCBOb3YgMjAxNiAxMTozMjoxNyArMDIwMAot
U3ViamVjdDogW1BBVENIXSBkdGxzY2VydGlmaWNhdGU6IEZpeCBlcnJvciBjaGVja2luZyBpbiBS
U0FfZ2VuZXJhdGVfa2V5X2V4KCkKLSB1c2FnZQotCi1XYXMgYnJva2VuIGR1cmluZyB0aGUgcG9y
dCBmb3IgT3BlblNTTCAxLjEuCi0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVn
LmNnaT9pZD03NzQzMjgKLS0tLQotIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgNyAr
KysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK
LQotZGlmZiAtLWdpdCBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIGIvZXh0L2R0bHMv
Z3N0ZHRsc2NlcnRpZmljYXRlLmMKLWluZGV4IGMxYzk2MDIuLmMyZDliYjIgMTAwNjQ0Ci0tLS0g
YS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotKysrIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMKLUBAIC0yMDcsMTIgKzIwNywxMyBAQCBpbml0X2dlbmVyYXRlZCAoR3N0RHRs
c0NlcnRpZmljYXRlICogc2VsZikKLSAgIHJzYSA9IFJTQV9uZXcgKCk7Ci0gICBpZiAocnNhICE9
IE5VTEwpIHsKLSAgICAgQklHTlVNICplID0gQk5fbmV3ICgpOwotLSAgICBpZiAoZSAhPSBOVUxM
ICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCi0tICAgICAgICAmJiBSU0FfZ2VuZXJhdGVfa2V5
X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Ci0rICAgIGlmIChlID09IE5VTEwgfHwgIUJOX3Nl
dF93b3JkIChlLCBSU0FfRjQpCi0rICAgICAgICB8fCAhUlNBX2dlbmVyYXRlX2tleV9leCAocnNh
LCAyMDQ4LCBlLCBOVUxMKSkgewotICAgICAgIFJTQV9mcmVlIChyc2EpOwotICAgICAgIHJzYSA9
IE5VTEw7Ci0gICAgIH0KLS0gICAgQk5fZnJlZSAoZSk7Ci0rICAgIGlmIChlKQotKyAgICAgIEJO
X2ZyZWUgKGUpOwotICAgfQotICNlbmRpZgotIAotLS0gCi0yLjEwLjIKLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDAzLXJ0cGJpbi1yZWNlaXZlLWJ1
bmRsZS1zdXBwb3J0LnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0w
MDAzLXJ0cGJpbi1yZWNlaXZlLWJ1bmRsZS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmODlj
ODE5OThiZGNhNWRlODQ4MjM1ZjEwMzExZmE3MzljOTdiYTcKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVu
ZGxlLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxMDE4IEBACitGcm9tIGRjZDNjZTk3NTFjZGVm
MGI1YWIxZmExMTgzNTVmOTJiZGZlODJjYjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgorRGF0ZTogV2VkLCAxNiBOb3Yg
MjAxNiAwODo1NjozNCArMDEwMAorU3ViamVjdDogW1BBVENIXSBydHBiaW46IHJlY2VpdmUgYnVu
ZGxlIHN1cHBvcnQKKworQSBuZXcgc2lnbmFsIG5hbWVkIG9uLWJ1bmRsZWQtc3NyYyBpcyBwcm92
aWRlZCBhbmQgY2FuIGJlCit1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0byByZWRpcmVjdCBhIHN0
cmVhbSB0byBhIGRpZmZlcmVudAorR3N0UnRwU2Vzc2lvbiBvciB0byBrZWVwIHRoZSBSVFggc3Ry
ZWFtIGdyb3VwZWQgd2l0aGluIHRoZQorR3N0UnRwU2Vzc2lvbiBvZiB0aGUgc2FtZSBtZWRpYSB0
eXBlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcyNzQw
CistLS0KKyBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMgfCAg
IDggKworIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jICAgICAgICAgICAgICAgICAgICB8IDU2
MiArKysrKysrKysrKysrKysrKystLS0tLS0tLQorIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5o
ICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0gICAg
ICAgICAgICAgICAgICAgICAgIHwgICA0ICsKKyB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdu
b3JlICAgICAgICAgICAgICAgfCAgIDEgKworIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJ1bmRs
ZS5jICAgICAgICAgICAgICB8IDM5MCArKysrKysrKysrKysrKysrKysKKyB0ZXN0cy9jaGVjay9t
ZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKworIHRlc3RzL2V4YW1wbGVz
L3J0cC8uZ2l0aWdub3JlICAgICAgICAgICAgICAgICB8ICAgMiArCisgdGVzdHMvZXhhbXBsZXMv
cnRwL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgIHwgIDEwICstCisgdGVzdHMvZXhhbXBsZXMv
cnRwL2NsaWVudC1ydHBidW5kbGUuYyAgICAgICAgIHwgMjY2ICsrKysrKysrKysrKworIHRlc3Rz
L2V4YW1wbGVzL3J0cC9zZXJ2ZXItcnRwYnVuZGxlLmMgICAgICAgICB8IDE3OSArKysrKysrKwor
IDExIGZpbGVzIGNoYW5nZWQsIDEyNjUgaW5zZXJ0aW9ucygrKSwgMTYwIGRlbGV0aW9ucygtKQor
IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9jaGVjay9lbGVtZW50cy9ydHBidW5kbGUuYworIGNy
ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9leGFtcGxlcy9ydHAvY2xpZW50LXJ0cGJ1bmRsZS5jCisg
Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2V4YW1wbGVzL3J0cC9zZXJ2ZXItcnRwYnVuZGxlLmMK
KworZGlmZiAtLWdpdCBhL2RvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuc2ln
bmFscyBiL2RvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMuc2lnbmFscworaW5k
ZXggM2RiMTdlOS4uNDRiYmRkYSAxMDA2NDQKKy0tLSBhL2RvY3MvcGx1Z2lucy9nc3QtcGx1Z2lu
cy1nb29kLXBsdWdpbnMuc2lnbmFscworKysrIGIvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdv
b2QtcGx1Z2lucy5zaWduYWxzCitAQCAtMzc1LDYgKzM3NSwxNCBAQCBndWludCAgYXJnMQorIDwv
U0lHTkFMPgorIAorIDxTSUdOQUw+CisrPE5BTUU+R3N0UnRwQmluOjpvbi1idW5kbGVkLXNzcmM8
L05BTUU+CisrPFJFVFVSTlM+Z3VpbnQ8L1JFVFVSTlM+CisrPEZMQUdTPmw8L0ZMQUdTPgorK0dz
dFJ0cEJpbiAqZ3N0cnRwYmluCisrZ3VpbnQgIGFyZzEKKys8L1NJR05BTD4KKysKKys8U0lHTkFM
PgorIDxOQU1FPkdzdFJ0cEppdHRlckJ1ZmZlcjo6Y2xlYXItcHQtbWFwPC9OQU1FPgorIDxSRVRV
Uk5TPnZvaWQ8L1JFVFVSTlM+CisgPEZMQUdTPmxhPC9GTEFHUz4KK2RpZmYgLS1naXQgYS9nc3Qv
cnRwbWFuYWdlci9nc3RydHBiaW4uYyBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jCitpbmRl
eCA2NDhhZGI5Li5mNThkZTAxIDEwMDY0NAorLS0tIGEvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmlu
LmMKKysrKyBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jCitAQCAtNTMsNiArNTMsMTMgQEAK
KyAgKiBTU1JDIGluIHRoZSBSVFAgcGFja2V0cyB0byBpdHMgb3duIFNTUkMgYW5kIHdpbCBmb3J3
YXJkIHRoZSBwYWNrZXRzIG9uIHRoZQorICAqIHNlbmRfcnRwX3NyY19cJXUgcGFkIGFmdGVyIHVw
ZGF0aW5nIGl0cyBpbnRlcm5hbCBzdGF0ZS4KKyAgKgorKyAqICNHc3RSdHBCaW4gY2FuIGFsc28g
ZGVtdWx0aXBsZXggaW5jb21pbmcgYnVuZGxlZCBzdHJlYW1zLiBUaGUgZmlyc3QKKysgKiAjR3N0
UnRwU2Vzc2lvbiB3aWxsIGhhdmUgYSAjR3N0UnRwU3NyY0RlbXV4IGVsZW1lbnQgc3BsaXR0aW5n
IHRoZSBzdHJlYW1zCisrICogYmFzZWQgb24gdGhlaXIgU1NSQyBhbmQgcG90ZW50aWFsbHkgZGlz
cGF0Y2hlZCB0byBhIGRpZmZlcmVudCAjR3N0UnRwU2Vzc2lvbi4KKysgKiBCZWNhdXNlIHJldHJh
bnNtaXNzaW9uIFNTUkNzIG5lZWQgdG8gYmUgbWVyZ2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcg
bWVkaWEKKysgKiBzdHJlYW0gdGhlICNHc3RSdHBCaW46Om9uLWJ1bmRsZWQtc3NyYyBzaWduYWwg
aXMgZW1pdHRlZCBzbyB0aGF0IHRoZQorKyAqIGFwcGxpY2F0aW9uIGNhbiBmaW5kIG91dCB0byB3
aGljaCBzZXNzaW9uIHRoZSBTU1JDIGJlbG9uZ3MuCisrICoKKyAgKiBUaGUgc2Vzc2lvbiBtYW5h
Z2VyIG5lZWRzIHRoZSBjbG9jay1yYXRlIG9mIHRoZSBwYXlsb2FkIHR5cGVzIGl0IGlzIGhhbmRs
aW5nCisgICogYW5kIHdpbGwgc2lnbmFsIHRoZSAjR3N0UnRwU2Vzc2lvbjo6cmVxdWVzdC1wdC1t
YXAgc2lnbmFsIHdoZW4gaXQgbmVlZHMgc3VjaCBhCisgICogbWFwcGluZy4gT25lIGNhbiBjbGVh
ciB0aGUgY2FjaGVkIHZhbHVlcyB3aXRoIHRoZSAjR3N0UnRwU2Vzc2lvbjo6Y2xlYXItcHQtbWFw
CitAQCAtMjc2LDYgKzI4Myw4IEBAIGVudW0KKyAgIFNJR05BTF9PTl9ORVdfU0VOREVSX1NTUkMs
CisgICBTSUdOQUxfT05fU0VOREVSX1NTUkNfQUNUSVZFLAorIAorKyAgU0lHTkFMX09OX0JVTkRM
RURfU1NSQywKKysKKyAgIExBU1RfU0lHTkFMCisgfTsKKyAKK0BAIC0zNjIsNiArMzcxLDE0IEBA
IHN0YXRpYyB2b2lkIHJlbW92ZV9zZW5kX3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBC
aW5TZXNzaW9uICogc2Vzc2lvbik7Cisgc3RhdGljIHZvaWQgcmVtb3ZlX3J0Y3AgKEdzdFJ0cEJp
biAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pOworIHN0YXRpYyB2b2lkIGZy
ZWVfY2xpZW50IChHc3RSdHBCaW5DbGllbnQgKiBjbGllbnQsIEdzdFJ0cEJpbiAqIGJpbik7Cisg
c3RhdGljIHZvaWQgZnJlZV9zdHJlYW0gKEdzdFJ0cEJpblN0cmVhbSAqIHN0cmVhbSwgR3N0UnRw
QmluICogYmluKTsKKytzdGF0aWMgR3N0UnRwQmluU2Vzc2lvbiAqY3JlYXRlX3Nlc3Npb24gKEdz
dFJ0cEJpbiAqIHJ0cGJpbiwgZ2ludCBpZCk7Cisrc3RhdGljIEdzdFBhZCAqY29tcGxldGVfc2Vz
c2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sCisrICAgIEdzdFJ0cEJpblNlc3Npb24gKiBz
ZXNzaW9uLCBnYm9vbGVhbiBidW5kbGVfZGVtdXhlcl9uZWVkZWQpOworK3N0YXRpYyB2b2lkCisr
Y29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5T
ZXNzaW9uICogc2Vzc2lvbiwKKysgICAgZ3VpbnQgc2Vzc2lkKTsKKytzdGF0aWMgR3N0UGFkICpj
b21wbGV0ZV9zZXNzaW9uX3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwKKysgICAgR3N0UnRwQmlu
U2Vzc2lvbiAqIHNlc3Npb24sIGd1aW50IHNlc3NpZCwgZ2Jvb2xlYW4gYnVuZGxlX2RlbXV4ZXJf
bmVlZGVkKTsKKyAKKyAvKiBNYW5hZ2VzIHRoZSBSVFAgc3RyZWFtIGZvciBvbmUgU1NSQy4KKyAg
KgorQEAgLTQyOCw2ICs0NDUsMTIgQEAgc3RydWN0IF9Hc3RSdHBCaW5TZXNzaW9uCisgICBndWxv
bmcgZGVtdXhfbmV3cGFkX3NpZzsKKyAgIGd1bG9uZyBkZW11eF9wYWRyZW1vdmVkX3NpZzsKKyAK
KysgIC8qIEJ1bmRsaW5nIHN1cHBvcnQgKi8KKysgIEdzdEVsZW1lbnQgKnJ0cF9mdW5uZWw7Cisr
ICBHc3RFbGVtZW50ICpydGNwX2Z1bm5lbDsKKysgIEdzdEVsZW1lbnQgKmJ1bmRsZV9kZW11eDsK
KysgIGd1bG9uZyBidW5kbGVfZGVtdXhfbmV3cGFkX3NpZzsKKysKKyAgIEdNdXRleCBsb2NrOwor
IAorICAgLyogbGlzdCBvZiBHc3RSdHBCaW5TdHJlYW0gKi8KK0BAIC02MjksNiArNjUyLDk2IEBA
IHNzcmNfZGVtdXhfcGFkX3JlbW92ZWQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBzc3Jj
LCBHc3RQYWQgKiBwYWQsCisgICBHU1RfUlRQX0JJTl9VTkxPQ0sgKHJ0cGJpbik7CisgfQorIAor
K3N0YXRpYyB2b2lkCisrbmV3X2J1bmRsZWRfc3NyY19wYWRfZm91bmQgKEdzdEVsZW1lbnQgKiBl
bGVtZW50LCBndWludCBzc3JjLCBHc3RQYWQgKiBwYWQsCisrICAgIEdzdFJ0cEJpblNlc3Npb24g
KiBzZXNzaW9uKQorK3sKKysgIEdWYWx1ZSByZXN1bHQgPSBHX1ZBTFVFX0lOSVQ7CisrICBHVmFs
dWUgcGFyYW1zWzJdID0geyBHX1ZBTFVFX0lOSVQsIEdfVkFMVUVfSU5JVCB9OworKyAgZ3VpbnQg
c2Vzc2lvbl9pZCA9IDA7CisrICBHc3RSdHBCaW5TZXNzaW9uICp0YXJnZXRfc2Vzc2lvbiA9IE5V
TEw7CisrICBHc3RSdHBCaW4gKnJ0cGJpbiA9IHNlc3Npb24tPmJpbjsKKysgIGdjaGFyICpuYW1l
OworKyAgR3N0UGFkICpzcmNfcGFkOworKyAgR3N0UGFkICpyZWN2X3J0cF9zaW5rID0gTlVMTDsK
KysgIEdzdFBhZCAqcmVjdl9ydGNwX3NpbmsgPSBOVUxMOworKyAgR3N0UGFkTGlua1JldHVybiBy
ZXQ7CisrCisrICBHU1RfUlRQX0JJTl9EWU5fTE9DSyAocnRwYmluKTsKKysgIEdTVF9ERUJVR19P
QkpFQ1QgKHJ0cGJpbiwgIm5ldyBidW5kbGVkIFNTUkMgcGFkICUwOHgsICVzOiVzIiwgc3NyYywK
KysgICAgICBHU1RfREVCVUdfUEFEX05BTUUgKHBhZCkpOworKworKyAgZ192YWx1ZV9pbml0ICgm
cmVzdWx0LCBHX1RZUEVfVUlOVCk7CisrICBnX3ZhbHVlX2luaXQgKCZwYXJhbXNbMF0sIEdTVF9U
WVBFX0VMRU1FTlQpOworKyAgZ192YWx1ZV9zZXRfb2JqZWN0ICgmcGFyYW1zWzBdLCBydHBiaW4p
OworKyAgZ192YWx1ZV9pbml0ICgmcGFyYW1zWzFdLCBHX1RZUEVfVUlOVCk7CisrICBnX3ZhbHVl
X3NldF91aW50ICgmcGFyYW1zWzFdLCBzc3JjKTsKKysKKysgIGdfc2lnbmFsX2VtaXR2IChwYXJh
bXMsCisrICAgICAgZ3N0X3J0cF9iaW5fc2lnbmFsc1tTSUdOQUxfT05fQlVORExFRF9TU1JDXSwg
MCwgJnJlc3VsdCk7CisrICBnX3ZhbHVlX3Vuc2V0ICgmcGFyYW1zWzBdKTsKKysKKysgIHNlc3Np
b25faWQgPSBnX3ZhbHVlX2dldF91aW50ICgmcmVzdWx0KTsKKysgIGlmIChzZXNzaW9uX2lkID09
IDApIHsKKysgICAgdGFyZ2V0X3Nlc3Npb24gPSBzZXNzaW9uOworKyAgfSBlbHNlIHsKKysgICAg
dGFyZ2V0X3Nlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKHJ0cGJpbiwgKGdpbnQpIHNlc3Np
b25faWQpOworKyAgICBpZiAoIXRhcmdldF9zZXNzaW9uKSB7CisrICAgICAgdGFyZ2V0X3Nlc3Np
b24gPSBjcmVhdGVfc2Vzc2lvbiAocnRwYmluLCBzZXNzaW9uX2lkKTsKKysgICAgfQorKyAgICBp
ZiAoIXRhcmdldF9zZXNzaW9uLT5yZWN2X3J0cF9zaW5rKSB7CisrICAgICAgcmVjdl9ydHBfc2lu
ayA9IGNvbXBsZXRlX3Nlc3Npb25fc2luayAocnRwYmluLCB0YXJnZXRfc2Vzc2lvbiwgRkFMU0Up
OworKyAgICB9CisrCisrICAgIGlmICghdGFyZ2V0X3Nlc3Npb24tPnJlY3ZfcnRwX3NyYykKKysg
ICAgICBjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChydHBiaW4sIHRhcmdldF9zZXNzaW9uLCBz
ZXNzaW9uX2lkKTsKKysKKysgICAgaWYgKCF0YXJnZXRfc2Vzc2lvbi0+cmVjdl9ydGNwX3Npbmsp
IHsKKysgICAgICByZWN2X3J0Y3Bfc2luayA9CisrICAgICAgICAgIGNvbXBsZXRlX3Nlc3Npb25f
cnRjcCAocnRwYmluLCB0YXJnZXRfc2Vzc2lvbiwgc2Vzc2lvbl9pZCwgRkFMU0UpOworKyAgICB9
CisrICB9CisrCisrICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJBc3NpZ25pbmcgYnVuZGxl
ZCBzc3JjICV1IHRvIHNlc3Npb24gJXUiLCBzc3JjLAorKyAgICAgIHNlc3Npb25faWQpOworKwor
KyAgaWYgKCFyZWN2X3J0cF9zaW5rKSB7CisrICAgIHJlY3ZfcnRwX3NpbmsgPQorKyAgICAgICAg
Z3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkICh0YXJnZXRfc2Vzc2lvbi0+cnRwX2Z1bm5lbCwg
InNpbmtfJXUiKTsKKysgIH0KKysKKysgIGlmICghcmVjdl9ydGNwX3NpbmspIHsKKysgICAgcmVj
dl9ydGNwX3NpbmsgPQorKyAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkICh0YXJn
ZXRfc2Vzc2lvbi0+cnRjcF9mdW5uZWwsICJzaW5rXyV1Iik7CisrICB9CisrCisrICBuYW1lID0g
Z19zdHJkdXBfcHJpbnRmICgic3JjXyV1Iiwgc3NyYyk7CisrICBzcmNfcGFkID0gZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQgKGVsZW1lbnQsIG5hbWUpOworKyAgcmV0ID0gZ3N0X3BhZF9saW5r
IChzcmNfcGFkLCByZWN2X3J0cF9zaW5rKTsKKysgIGdfZnJlZSAobmFtZSk7CisrICBnc3Rfb2Jq
ZWN0X3VucmVmIChzcmNfcGFkKTsKKysgIGdzdF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRwX3Npbmsp
OworKyAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0spIHsKKysgICAgZ193YXJuaW5nCisrICAg
ICAgICAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgYnVuZGxlIGRlbXV4ZXIgdG8gcmVjZWl2ZSBy
dHAgZnVubmVsIGZvciBzZXNzaW9uICV1IiwKKysgICAgICAgIHNlc3Npb25faWQpOworKyAgfQor
KworKyAgbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0Y3Bfc3JjXyV1Iiwgc3NyYyk7CisrICBz
cmNfcGFkID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGVsZW1lbnQsIG5hbWUpOworKyAg
Z3N0X3BhZF9saW5rIChzcmNfcGFkLCByZWN2X3J0Y3Bfc2luayk7CisrICBnX2ZyZWUgKG5hbWUp
OworKyAgZ3N0X29iamVjdF91bnJlZiAoc3JjX3BhZCk7CisrICBnc3Rfb2JqZWN0X3VucmVmIChy
ZWN2X3J0Y3Bfc2luayk7CisrICBpZiAocmV0ICE9IEdTVF9QQURfTElOS19PSykgeworKyAgICBn
X3dhcm5pbmcKKysgICAgICAgICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBidW5kbGUgZGVtdXhl
ciB0byByZWNlaXZlIHJ0Y3Agc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLAorKyAgICAgICAgc2Vz
c2lvbl9pZCk7CisrICB9CisrCisrICBHU1RfUlRQX0JJTl9EWU5fVU5MT0NLIChydHBiaW4pOwor
K30KKysKKyAvKiBjcmVhdGUgYSBzZXNzaW9uIHdpdGggdGhlIGdpdmVuIGlkLiAgTXVzdCBiZSBj
YWxsZWQgd2l0aCBSVFBfQklOX0xPQ0sgKi8KKyBzdGF0aWMgR3N0UnRwQmluU2Vzc2lvbiAqCisg
Y3JlYXRlX3Nlc3Npb24gKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgZ2ludCBpZCkKK0BAIC02NDksNiAr
NzYyLDEwIEBAIGNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4gKiBydHBiaW4sIGdpbnQgaWQpCisg
ICBzZXNzLT5iaW4gPSBydHBiaW47CisgICBzZXNzLT5zZXNzaW9uID0gc2Vzc2lvbjsKKyAgIHNl
c3MtPmRlbXV4ID0gZGVtdXg7CisrCisrICBzZXNzLT5ydHBfZnVubmVsID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlICgiZnVubmVsIiwgTlVMTCk7CisrICBzZXNzLT5ydGNwX2Z1bm5lbCA9IGdz
dF9lbGVtZW50X2ZhY3RvcnlfbWFrZSAoImZ1bm5lbCIsIE5VTEwpOworKworICAgc2Vzcy0+cHRt
YXAgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAgKEdE
ZXN0cm95Tm90aWZ5KSBnc3RfY2Fwc191bnJlZik7CisgICBydHBiaW4tPnNlc3Npb25zID0gZ19z
bGlzdF9wcmVwZW5kIChydHBiaW4tPnNlc3Npb25zLCBzZXNzKTsKK0BAIC02OTYsNiArODEzLDgg
QEAgY3JlYXRlX3Nlc3Npb24gKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgZ2ludCBpZCkKKyAKKyAgIGdz
dF9iaW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIHNlc3Npb24pOworICAgZ3N0X2Jpbl9h
ZGQgKEdTVF9CSU5fQ0FTVCAocnRwYmluKSwgZGVtdXgpOworKyAgZ3N0X2Jpbl9hZGQgKEdTVF9C
SU5fQ0FTVCAocnRwYmluKSwgc2Vzcy0+cnRwX2Z1bm5lbCk7CisrICBnc3RfYmluX2FkZCAoR1NU
X0JJTl9DQVNUIChydHBiaW4pLCBzZXNzLT5ydGNwX2Z1bm5lbCk7CisgCisgICBHU1RfT0JKRUNU
X0xPQ0sgKHJ0cGJpbik7CisgICB0YXJnZXQgPSBHU1RfU1RBVEVfVEFSR0VUIChydHBiaW4pOwor
QEAgLTcwNCw2ICs4MjMsOCBAQCBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBn
aW50IGlkKQorICAgLyogY2hhbmdlIHN0YXRlIG9ubHkgdG8gd2hhdCdzIG5lZWRlZCAqLworICAg
Z3N0X2VsZW1lbnRfc2V0X3N0YXRlIChkZW11eCwgdGFyZ2V0KTsKKyAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZSAoc2Vzc2lvbiwgdGFyZ2V0KTsKKysgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSAoc2Vz
cy0+cnRwX2Z1bm5lbCwgdGFyZ2V0KTsKKysgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSAoc2Vzcy0+
cnRjcF9mdW5uZWwsIHRhcmdldCk7CisgCisgICByZXR1cm4gc2VzczsKKyAKK0BAIC04MDcsNyAr
OTI4LDcgQEAgZ2V0X3B0X21hcCAoR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sIGd1aW50IHB0
KQorICAgR1ZhbHVlIHJldCA9IHsgMCB9OworICAgR1ZhbHVlIGFyZ3NbM10gPSB7IHswfSwgezB9
LCB7MH0gfTsKKyAKKy0gIEdTVF9ERUJVRyAoInNlYXJjaGluZyBwdCAlZCBpbiBjYWNoZSIsIHB0
KTsKKysgIEdTVF9ERUJVRyAoInNlYXJjaGluZyBwdCAldSBpbiBjYWNoZSIsIHB0KTsKKyAKKyAg
IEdTVF9SVFBfU0VTU0lPTl9MT0NLIChzZXNzaW9uKTsKKyAKK0BAIC04MjAsNyArOTQxLDcgQEAg
Z2V0X3B0X21hcCAoR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24sIGd1aW50IHB0KQorIAorICAg
YmluID0gc2Vzc2lvbi0+YmluOworIAorLSAgR1NUX0RFQlVHICgiZW1pdGluZyBzaWduYWwgZm9y
IHB0ICVkIGluIHNlc3Npb24gJWQiLCBwdCwgc2Vzc2lvbi0+aWQpOworKyAgR1NUX0RFQlVHICgi
ZW1pdGluZyBzaWduYWwgZm9yIHB0ICV1IGluIHNlc3Npb24gJXUiLCBwdCwgc2Vzc2lvbi0+aWQp
OworIAorICAgLyogbm90IGluIGNhY2hlLCBzZW5kIHNpZ25hbCB0byByZXF1ZXN0IGNhcHMgKi8K
KyAgIGdfdmFsdWVfaW5pdCAoJmFyZ3NbMF0sIEdTVF9UWVBFX0VMRU1FTlQpOworQEAgLTg1Niw3
ICs5NzcsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQg
cHQpCisgICBpZiAoIWNhcHMpCisgICAgIGdvdG8gbm9fY2FwczsKKyAKKy0gIEdTVF9ERUJVRyAo
ImNhY2hpbmcgcHQgJWQgYXMgJSIgR1NUX1BUUl9GT1JNQVQsIHB0LCBjYXBzKTsKKysgIEdTVF9E
RUJVRyAoImNhY2hpbmcgcHQgJXUgYXMgJSIgR1NUX1BUUl9GT1JNQVQsIHB0LCBjYXBzKTsKKyAK
KyAgIC8qIHN0b3JlIGluIGNhY2hlLCB0YWtlIGFkZGl0aW9uYWwgcmVmICovCisgICBnX2hhc2hf
dGFibGVfaW5zZXJ0IChzZXNzaW9uLT5wdG1hcCwgR0lOVF9UT19QT0lOVEVSIChwdCksCitAQCAt
OTQ3LDcgKzEwNjgsNyBAQCBnc3RfcnRwX2Jpbl9nZXRfc2Vzc2lvbiAoR3N0UnRwQmluICogYmlu
LCBndWludCBzZXNzaW9uX2lkKQorICAgR3N0RWxlbWVudCAqcmV0ID0gTlVMTDsKKyAKKyAgIEdT
VF9SVFBfQklOX0xPQ0sgKGJpbik7CistICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2
aW5nIEdzdFJ0cFNlc3Npb24sIGluZGV4OiAlZCIsIHNlc3Npb25faWQpOworKyAgR1NUX0RFQlVH
X09CSkVDVCAoYmluLCAicmV0cmlldmluZyBHc3RSdHBTZXNzaW9uLCBpbmRleDogJXUiLCBzZXNz
aW9uX2lkKTsKKyAgIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKGJpbiwgKGdpbnQpIHNl
c3Npb25faWQpOworICAgaWYgKHNlc3Npb24pIHsKKyAgICAgcmV0ID0gZ3N0X29iamVjdF9yZWYg
KHNlc3Npb24tPnNlc3Npb24pOworQEAgLTk2NCw3ICsxMDg1LDcgQEAgZ3N0X3J0cF9iaW5fZ2V0
X2ludGVybmFsX3Nlc3Npb24gKEdzdFJ0cEJpbiAqIGJpbiwgZ3VpbnQgc2Vzc2lvbl9pZCkKKyAg
IEdzdFJ0cEJpblNlc3Npb24gKnNlc3Npb247CisgCisgICBHU1RfUlRQX0JJTl9MT0NLIChiaW4p
OworLSAgR1NUX0RFQlVHX09CSkVDVCAoYmluLCAicmV0cmlldmluZyBpbnRlcm5hbCBSVFBTZXNz
aW9uIG9iamVjdCwgaW5kZXg6ICVkIiwKKysgIEdTVF9ERUJVR19PQkpFQ1QgKGJpbiwgInJldHJp
ZXZpbmcgaW50ZXJuYWwgUlRQU2Vzc2lvbiBvYmplY3QsIGluZGV4OiAldSIsCisgICAgICAgc2Vz
c2lvbl9pZCk7CisgICBzZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5X2lkIChiaW4sIChnaW50KSBz
ZXNzaW9uX2lkKTsKKyAgIGlmIChzZXNzaW9uKSB7CitAQCAtMjE5NCw2ICsyMzE1LDI5IEBAIGdz
dF9ydHBfYmluX2NsYXNzX2luaXQgKEdzdFJ0cEJpbkNsYXNzICoga2xhc3MpCisgICAgICAgICAg
IG9uX3NlbmRlcl9zc3JjX2FjdGl2ZSksIE5VTEwsIE5VTEwsIGdfY2Nsb3N1cmVfbWFyc2hhbF9n
ZW5lcmljLAorICAgICAgIEdfVFlQRV9OT05FLCAyLCBHX1RZUEVfVUlOVCwgR19UWVBFX1VJTlQp
OworIAorKworKyAgLyoqCisrICAgKiBHc3RSdHBCaW46Om9uLWJ1bmRsZWQtc3NyYzoKKysgICAq
IEBydHBiaW46IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAorKyAgICogQHNz
cmM6IHRoZSBidW5kbGVkIFNTUkMKKysgICAqCisrICAgKiBOb3RpZnkgb2YgYSBuZXcgaW5jb21p
bmcgYnVuZGxlZCBTU1JDLiBJZiBubyBoYW5kbGVyIGlzIGNvbm5lY3RlZCB0byB0aGUKKysgICAq
IHNpZ25hbCB0aGVuIHRoZSAjR3N0UnRwU2Vzc2lvbiBjcmVhdGVkIGZvciB0aGUgcmVjdl9ydHBf
c2lua19cJXUKKysgICAqIHJlcXVlc3QgcGFkIHdpbGwgYmUgbWFuYWdpbmcgdGhpcyBuZXcgU1NS
Qy4gSG93ZXZlciBpZiB0aGVyZSBpcyBhIGhhbmRsZXIKKysgICAqIGNvbm5lY3RlZCB0aGVuIHRo
ZSBhcHBsaWNhdGlvbiBjYW4gZGVjaWRlZCB0byBkaXNwYXRjaCB0aGlzIG5ldyBzdHJlYW0gdG8K
KysgICAqIGFub3RoZXIgc2Vzc2lvbiBieSBwcm92aWRpbmcgaXRzIElEIGFzIHJldHVybiB2YWx1
ZSBvZiB0aGUgaGFuZGxlci4gVGhpcworKyAgICogY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwg
dG8ga2VlcCByZXRyYW5zbWlzc2lvbiBTU1JDcyBncm91cGVkIHdpdGggdGhlCisrICAgKiBzZXNz
aW9uIGZvciB3aGljaCB0aGV5IGhhbmRsZSByZXRyYW5zbWlzc2lvbi4KKysgICAqCisrICAgKiBT
aW5jZTogMS4xMgorKyAgICovCisrICBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05BTF9PTl9CVU5E
TEVEX1NTUkNdID0KKysgICAgICBnX3NpZ25hbF9uZXcgKCJvbi1idW5kbGVkLXNzcmMiLCBHX1RZ
UEVfRlJPTV9DTEFTUyAoa2xhc3MpLAorKyAgICAgIEdfU0lHTkFMX1JVTl9MQVNULCBHX1NUUlVD
VF9PRkZTRVQgKEdzdFJ0cEJpbkNsYXNzLAorKyAgICAgICAgICBvbl9idW5kbGVkX3NzcmMpLCBO
VUxMLCBOVUxMLAorKyAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9nZW5lcmljLCBHX1RZUEVfVUlO
VCwgMSwgR19UWVBFX1VJTlQpOworKworKworICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSAoZ29iamVjdF9jbGFzcywgUFJPUF9TREVTLAorICAgICAgIGdfcGFyYW1fc3BlY19ib3hl
ZCAoInNkZXMiLCAiU0RFUyIsCisgICAgICAgICAgICJUaGUgU0RFUyBpdGVtcyBvZiB0aGlzIHNl
c3Npb24iLAorQEAgLTMwMjEsNyArMzE2NSw3IEBAIG5ld19wYXlsb2FkX2ZvdW5kIChHc3RFbGVt
ZW50ICogZWxlbWVudCwgZ3VpbnQgcHQsIEdzdFBhZCAqIHBhZCwKKyAKKyAgIHJ0cGJpbiA9IHN0
cmVhbS0+YmluOworIAorLSAgR1NUX0RFQlVHICgibmV3IHBheWxvYWQgcGFkICVkIiwgcHQpOwor
KyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibmV3IHBheWxvYWQgcGFkICV1IiwgcHQpOwor
IAorICAgR1NUX1JUUF9CSU5fU0hVVERPV05fTE9DSyAocnRwYmluLCBzaHV0ZG93bik7CisgCitA
QCAtMzA3OCw3ICszMjIyLDcgQEAgcHRfbWFwX3JlcXVlc3RlZCAoR3N0RWxlbWVudCAqIGVsZW1l
bnQsIGd1aW50IHB0LCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAKKyAgIHJ0cGJpbiA9
IHNlc3Npb24tPmJpbjsKKyAKKy0gIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgInBheWxvYWQg
bWFwIHJlcXVlc3RlZCBmb3IgcHQgJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LAorKyAgR1NUX0RFQlVH
X09CSkVDVCAocnRwYmluLCAicGF5bG9hZCBtYXAgcmVxdWVzdGVkIGZvciBwdCAldSBpbiBzZXNz
aW9uICV1IiwgcHQsCisgICAgICAgc2Vzc2lvbi0+aWQpOworIAorICAgY2FwcyA9IGdldF9wdF9t
YXAgKHNlc3Npb24sIHB0KTsKK0BAIC0zMDk5LDcgKzMyNDMsNyBAQCBzdGF0aWMgdm9pZAorIHBh
eWxvYWRfdHlwZV9jaGFuZ2UgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBwdCwgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCisgeworICAgR1NUX0RFQlVHX09CSkVDVCAoc2Vzc2lvbi0+
YmluLAorLSAgICAgICJlbWl0aW5nIHNpZ25hbCBmb3IgcHQgdHlwZSBjaGFuZ2VkIHRvICVkIGlu
IHNlc3Npb24gJWQiLCBwdCwKKysgICAgICAiZW1pdGluZyBzaWduYWwgZm9yIHB0IHR5cGUgY2hh
bmdlZCB0byAldSBpbiBzZXNzaW9uICV1IiwgcHQsCisgICAgICAgc2Vzc2lvbi0+aWQpOworIAor
ICAgZ19zaWduYWxfZW1pdCAoc2Vzc2lvbi0+YmluLCBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05B
TF9QQVlMT0FEX1RZUEVfQ0hBTkdFXSwKK0BAIC0zMjQ2LDE1ICszMzkwLDQyIEBAIG5vX3N0cmVh
bToKKyAgIH0KKyB9CisgCistc3RhdGljIGdib29sZWFuCistY29tcGxldGVfc2Vzc2lvbl9zaW5r
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorK3N0YXRp
YyB2b2lkCisrc2Vzc2lvbl9tYXliZV9jcmVhdGVfYnVuZGxlX2RlbXV4ZXIgKEdzdFJ0cEJpblNl
c3Npb24gKiBzZXNzaW9uKQorK3sKKysgIEdzdFJ0cEJpbiAqcnRwYmluOworKworKyAgaWYgKHNl
c3Npb24tPmJ1bmRsZV9kZW11eCkKKysgICAgcmV0dXJuOworKworKyAgcnRwYmluID0gc2Vzc2lv
bi0+YmluOworKyAgaWYgKGdfc2lnbmFsX2hhc19oYW5kbGVyX3BlbmRpbmcgKHJ0cGJpbiwKKysg
ICAgICAgICAgZ3N0X3J0cF9iaW5fc2lnbmFsc1tTSUdOQUxfT05fQlVORExFRF9TU1JDXSwgMCwg
VFJVRSkpIHsKKysgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiQWRkaW5nIGEgYnVuZGxl
IFNTUkMgZGVtdXhlciB0byBzZXNzaW9uICV1IiwKKysgICAgICAgIHNlc3Npb24tPmlkKTsKKysg
ICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgicnRw
c3NyY2RlbXV4IiwgTlVMTCk7CisrICAgIHNlc3Npb24tPmJ1bmRsZV9kZW11eF9uZXdwYWRfc2ln
ID0gZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LAorKyAgICAgICAgIm5l
dy1zc3JjLXBhZCIsIChHQ2FsbGJhY2spIG5ld19idW5kbGVkX3NzcmNfcGFkX2ZvdW5kLCBzZXNz
aW9uKTsKKysKKysgICAgZ3N0X2Jpbl9hZGQgKEdTVF9CSU5fQ0FTVCAocnRwYmluKSwgc2Vzc2lv
bi0+YnVuZGxlX2RlbXV4KTsKKysgICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVu
dCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KTsKKysgIH0gZWxzZSB7CisrICAgIEdTVF9ERUJVR19P
QkpFQ1QgKHJ0cGJpbiwKKysgICAgICAgICJObyBoYW5kbGVyIGZvciB0aGUgb24tYnVuZGxlZC1z
c3JjIHNpZ25hbCBzbyBubyBuZWVkIGZvciBhIGJ1bmRsZSBTU1JDIGRlbXV4ZXIgaW4gc2Vzc2lv
biAldSIsCisrICAgICAgICBzZXNzaW9uLT5pZCk7CisrICB9CisrfQorKworK3N0YXRpYyBHc3RQ
YWQgKgorK2NvbXBsZXRlX3Nlc3Npb25fc2luayAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBC
aW5TZXNzaW9uICogc2Vzc2lvbiwKKysgICAgZ2Jvb2xlYW4gYnVuZGxlX2RlbXV4ZXJfbmVlZGVk
KQorIHsKKy0gIGdjaGFyICpnbmFtZTsKKyAgIGd1aW50IHNlc3NpZCA9IHNlc3Npb24tPmlkOwor
ICAgR3N0UGFkICpyZWN2X3J0cF9zaW5rOworKyAgR3N0UGFkICpmdW5uZWxfc3JjOworICAgR3N0
RWxlbWVudCAqZGVjb2RlcjsKKy0gIEdzdEVsZW1lbnRDbGFzcyAqa2xhc3M7CistICBHc3RQYWRU
ZW1wbGF0ZSAqdGVtcGw7CisrCisrICBnX2Fzc2VydCAoIXNlc3Npb24tPnJlY3ZfcnRwX3Npbmsp
OworIAorICAgLyogZ2V0IHJlY3ZfcnRwIHBhZCBhbmQgc3RvcmUgKi8KKyAgIHNlc3Npb24tPnJl
Y3ZfcnRwX3NpbmsgPQorQEAgLTMyNjUsNiArMzQzNiw5IEBAIGNvbXBsZXRlX3Nlc3Npb25fc2lu
ayAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAgIGdf
c2lnbmFsX2Nvbm5lY3QgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmssICJub3RpZnk6OmNhcHMiLAor
ICAgICAgIChHQ2FsbGJhY2spIGNhcHNfY2hhbmdlZCwgc2Vzc2lvbik7CisgCisrICBpZiAoYnVu
ZGxlX2RlbXV4ZXJfbmVlZGVkKQorKyAgICBzZXNzaW9uX21heWJlX2NyZWF0ZV9idW5kbGVfZGVt
dXhlciAoc2Vzc2lvbik7CisrCisgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJyZXF1ZXN0
aW5nIFJUUCBkZWNvZGVyIik7CisgICBkZWNvZGVyID0gc2Vzc2lvbl9yZXF1ZXN0X2VsZW1lbnQg
KHNlc3Npb24sIFNJR05BTF9SRVFVRVNUX1JUUF9ERUNPREVSKTsKKyAgIGlmIChkZWNvZGVyKSB7
CitAQCAtMzI4Miw3ICszNDU2LDE0IEBAIGNvbXBsZXRlX3Nlc3Npb25fc2luayAoR3N0UnRwQmlu
ICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAgICAgaWYgKGRlY3NyYyA9
PSBOVUxMKQorICAgICAgIGdvdG8gZGVjX3NyY19mYWlsZWQ7CisgCistICAgIHJldCA9IGdzdF9w
YWRfbGluayAoZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rKTsKKysgICAgaWYgKHNlc3Np
b24tPmJ1bmRsZV9kZW11eCkgeworKyAgICAgIEdzdFBhZCAqZGVtdXhfc2luazsKKysgICAgICBk
ZW11eF9zaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmJ1bmRsZV9k
ZW11eCwgInNpbmsiKTsKKysgICAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgZGVtdXhf
c2luayk7CisrICAgICAgZ3N0X29iamVjdF91bnJlZiAoZGVtdXhfc2luayk7CisrICAgIH0gZWxz
ZSB7CisrICAgICAgcmV0ID0gZ3N0X3BhZF9saW5rIChkZWNzcmMsIHNlc3Npb24tPnJlY3ZfcnRw
X3NpbmspOworKyAgICB9CisgICAgIGdzdF9vYmplY3RfdW5yZWYgKGRlY3NyYyk7CisgCisgICAg
IGlmIChyZXQgIT0gR1NUX1BBRF9MSU5LX09LKQorQEAgLTMyOTAsODEgKzM0NzEsNTQgQEAgY29t
cGxldGVfc2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24g
KiBzZXNzaW9uKQorIAorICAgfSBlbHNlIHsKKyAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmlu
LCAibm8gUlRQIGRlY29kZXIgZ2l2ZW4iKTsKKy0gICAgcmVjdl9ydHBfc2luayA9IGdzdF9vYmpl
Y3RfcmVmIChzZXNzaW9uLT5yZWN2X3J0cF9zaW5rKTsKKysgICAgaWYgKHNlc3Npb24tPmJ1bmRs
ZV9kZW11eCkgeworKyAgICAgIHJlY3ZfcnRwX3NpbmsgPQorKyAgICAgICAgICBnc3RfZWxlbWVu
dF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAic2luayIpOworKyAgICB9
IGVsc2UgeworKyAgICAgIHJlY3ZfcnRwX3NpbmsgPQorKyAgICAgICAgICBnc3RfZWxlbWVudF9n
ZXRfcmVxdWVzdF9wYWQgKHNlc3Npb24tPnJ0cF9mdW5uZWwsICJzaW5rXyV1Iik7CisrICAgIH0K
KyAgIH0KKyAKKy0gIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImdob3N0aW5nIHNlc3Npb24g
c2luayBwYWQiKTsKKy0gIGtsYXNzID0gR1NUX0VMRU1FTlRfR0VUX0NMQVNTIChydHBiaW4pOwor
LSAgZ25hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJyZWN2X3J0cF9zaW5rXyV1Iiwgc2Vzc2lkKTsK
Ky0gIHRlbXBsID0gZ3N0X2VsZW1lbnRfY2xhc3NfZ2V0X3BhZF90ZW1wbGF0ZSAoa2xhc3MsICJy
ZWN2X3J0cF9zaW5rXyV1Iik7CistICBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0ID0KKy0g
ICAgICBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlIChnbmFtZSwgcmVjdl9ydHBfc2lu
aywgdGVtcGwpOworLSAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7CistICBnc3Rf
cGFkX3NldF9hY3RpdmUgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QsIFRSVUUpOworLSAg
Z3N0X2VsZW1lbnRfYWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FTVCAocnRwYmluKSwgc2Vzc2lvbi0+
cmVjdl9ydHBfc2lua19naG9zdCk7CistICBnX2ZyZWUgKGduYW1lKTsKKysgIGZ1bm5lbF9zcmMg
PSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+cnRwX2Z1bm5lbCwgInNyYyIp
OworKyAgZ3N0X3BhZF9saW5rIChmdW5uZWxfc3JjLCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rKTsK
KysgIGdzdF9vYmplY3RfdW5yZWYgKGZ1bm5lbF9zcmMpOworIAorLSAgcmV0dXJuIFRSVUU7Cisr
ICByZXR1cm4gcmVjdl9ydHBfc2luazsKKyAKKyAgIC8qIEVSUk9SUyAqLworIHBhZF9mYWlsZWQ6
CisgICB7CisgICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHJl
Y3ZfcnRwX3NpbmsgcGFkIik7CistICAgIHJldHVybiBGQUxTRTsKKysgICAgcmV0dXJuIE5VTEw7
CisgICB9CisgZGVjX3NpbmtfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7
CistICAgIHJldHVybiBGQUxTRTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8g
Z2V0IGRlY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworKyAgICByZXR1
cm4gTlVMTDsKKyAgIH0KKyBkZWNfc3JjX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNl
c3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNy
YyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICBnc3Rfb2JqZWN0X3VucmVmIChy
ZWN2X3J0cF9zaW5rKTsKKy0gICAgcmV0dXJuIEZBTFNFOworKyAgICByZXR1cm4gTlVMTDsKKyAg
IH0KKyBkZWNfbGlua19mYWlsZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFp
bGVkIHRvIGxpbmsgcnRwIGRlY29kZXIgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0cCBkZWNvZGVyIGZvciBzZXNzaW9u
ICV1Iiwgc2Vzc2lkKTsKKyAgICAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7Cist
ICAgIHJldHVybiBGQUxTRTsKKysgICAgcmV0dXJuIE5VTEw7CisgICB9CisgfQorIAorLS8qIENy
ZWF0ZSBhIHBhZCBmb3IgcmVjZWl2aW5nIFJUUCBmb3IgdGhlIHNlc3Npb24gaW4gQG5hbWUuIE11
c3QgYmUgY2FsbGVkIHdpdGgKKy0gKiBSVFBfQklOX0xPQ0suCistICovCistc3RhdGljIEdzdFBh
ZCAqCistY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRl
ICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKKytzdGF0aWMgdm9pZAorK2NvbXBsZXRlX3Nl
c3Npb25fcmVjZWl2ZXIgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNl
c3Npb24sCisrICAgIGd1aW50IHNlc3NpZCkKKyB7CistICBndWludCBzZXNzaWQ7CisgICBHc3RF
bGVtZW50ICphdXg7CisgICBHc3RQYWQgKnJlY3ZfcnRwX3NyYzsKKy0gIEdzdFJ0cEJpblNlc3Np
b24gKnNlc3Npb247CistCistICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Npb24gbnVtYmVyICovCist
ICBpZiAobmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3ZfcnRwX3NpbmtfJXUiLCAm
c2Vzc2lkKSAhPSAxKQorLSAgICBnb3RvIG5vX25hbWU7CistCistICBHU1RfREVCVUdfT0JKRUNU
IChydHBiaW4sICJmaW5kaW5nIHNlc3Npb24gJWQiLCBzZXNzaWQpOworIAorLSAgLyogZ2V0IG9y
IGNyZWF0ZSBzZXNzaW9uICovCistICBzZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5X2lkIChydHBi
aW4sIHNlc3NpZCk7CistICBpZiAoIXNlc3Npb24pIHsKKy0gICAgR1NUX0RFQlVHX09CSkVDVCAo
cnRwYmluLCAiY3JlYXRpbmcgc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CistICAgIC8qIGNyZWF0ZSBz
ZXNzaW9uIG5vdyAqLworLSAgICBzZXNzaW9uID0gY3JlYXRlX3Nlc3Npb24gKHJ0cGJpbiwgc2Vz
c2lkKTsKKy0gICAgaWYgKHNlc3Npb24gPT0gTlVMTCkKKy0gICAgICBnb3RvIGNyZWF0ZV9lcnJv
cjsKKy0gIH0KKy0KKy0gIC8qIGNoZWNrIGlmIHBhZCB3YXMgcmVxdWVzdGVkICovCistICBpZiAo
c2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCAhPSBOVUxMKQorLSAgICByZXR1cm4gc2Vzc2lv
bi0+cmVjdl9ydHBfc2lua19naG9zdDsKKy0KKy0gIC8qIHNldHVwIHRoZSBzZXNzaW9uIHNpbmsg
cGFkICovCistICBpZiAoIWNvbXBsZXRlX3Nlc3Npb25fc2luayAocnRwYmluLCBzZXNzaW9uKSkK
Ky0gICAgZ290byBzZXNzaW9uX3NpbmtfZmFpbGVkOworKyAgZ19hc3NlcnQgKCFzZXNzaW9uLT5y
ZWN2X3J0cF9zcmMpOworIAorICAgc2Vzc2lvbi0+cmVjdl9ydHBfc3JjID0KKyAgICAgICBnc3Rf
ZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lvbi0+c2Vzc2lvbiwgInJlY3ZfcnRwX3NyYyIp
OworQEAgLTMzODEsNyArMzUzNSw3IEBAIGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRw
YmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCisgCisgICAg
IEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImxpbmtpbmcgQVVYIHJlY2VpdmVyIik7CisgCist
ICAgIHBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgic2lua18lZCIsIHNlc3NpZCk7CisrICAgIHBu
YW1lID0gZ19zdHJkdXBfcHJpbnRmICgic2lua18ldSIsIHNlc3NpZCk7CisgICAgIGF1eHNpbmsg
PSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoYXV4LCBwbmFtZSk7CisgICAgIGdfZnJlZSAo
cG5hbWUpOworICAgICBpZiAoYXV4c2luayA9PSBOVUxMKQorQEAgLTMzOTQsNyArMzU0OCw3IEBA
IGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRl
bXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCisgCisgICAgIC8qIHRoaXMgY2FuIGJlIE5VTEwgd2hl
biB0aGlzIEFVWCBlbGVtZW50IGlzIG5vdCB0byBiZSBsaW5rZWQgdG8KKyAgICAgICogYW4gU1NS
QyBkZW11eGVyICovCistICAgIHBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgic3JjXyVkIiwgc2Vz
c2lkKTsKKysgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzcmNfJXUiLCBzZXNzaWQpOwor
ICAgICByZWN2X3J0cF9zcmMgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoYXV4LCBwbmFt
ZSk7CisgICAgIGdfZnJlZSAocG5hbWUpOworICAgfSBlbHNlIHsKK0BAIC0zNDA4LDggKzM1NjIs
OCBAQCBjcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUg
KiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQorICAgICBzaW5rZHBhZCA9IGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5kZW11eCwgInNpbmsiKTsKKyAgICAgR1NUX0RFQlVH
X09CSkVDVCAocnRwYmluLCAibGlua2luZyBkZW11eGVyIFJUUCBzaW5rIHBhZCIpOworICAgICBn
c3RfcGFkX2xpbmtfZnVsbCAocmVjdl9ydHBfc3JjLCBzaW5rZHBhZCwgR1NUX1BBRF9MSU5LX0NI
RUNLX05PVEhJTkcpOworLSAgICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0cF9zcmMpOworICAg
ICBnc3Rfb2JqZWN0X3VucmVmIChzaW5rZHBhZCk7CisrICAgIGdzdF9vYmplY3RfdW5yZWYgKHJl
Y3ZfcnRwX3NyYyk7CisgCisgICAgIC8qIGNvbm5lY3QgdG8gdGhlIG5ldy1zc3JjLXBhZCBzaWdu
YWwgb2YgdGhlIFNTUkMgZGVtdXhlciAqLworICAgICBzZXNzaW9uLT5kZW11eF9uZXdwYWRfc2ln
ID0gZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+ZGVtdXgsCitAQCAtMzQxNyw2ICszNTcxLDcx
IEBAIGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAq
IHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCisgICAgIHNlc3Npb24tPmRlbXV4X3BhZHJlbW92
ZWRfc2lnID0gZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+ZGVtdXgsCisgICAgICAgICAicmVt
b3ZlZC1zc3JjLXBhZCIsIChHQ2FsbGJhY2spIHNzcmNfZGVtdXhfcGFkX3JlbW92ZWQsIHNlc3Np
b24pOworICAgfQorKworKyAgcmV0dXJuOworKworK3BhZF9mYWlsZWQ6CisrICB7CisrICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHJlY3ZfcnRwX3NyYyBwYWQi
KTsKKysgICAgcmV0dXJuOworKyAgfQorK2F1eF9zaW5rX2ZhaWxlZDoKKysgIHsKKysgICAgZ193
YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7CisrICAgIHJldHVybjsKKysgIH0KKythdXhfbGlua19mYWlsZWQ6CisrICB7
CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgQVVYIHBhZCB0byBzZXNz
aW9uICV1Iiwgc2Vzc2lkKTsKKysgICAgcmV0dXJuOworKyAgfQorK30KKysKKysvKiBDcmVhdGUg
YSBwYWQgZm9yIHJlY2VpdmluZyBSVFAgZm9yIHRoZSBzZXNzaW9uIGluIEBuYW1lLiBNdXN0IGJl
IGNhbGxlZCB3aXRoCisrICogUlRQX0JJTl9MT0NLLgorKyAqLworK3N0YXRpYyBHc3RQYWQgKgor
K2NyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRl
bXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCisreworKyAgZ3VpbnQgc2Vzc2lkOworKyAgR3N0UnRw
QmluU2Vzc2lvbiAqc2Vzc2lvbjsKKysgIEdzdFBhZCAqcmVjdl9ydHBfc2luazsKKysKKysgIC8q
IGZpcnN0IGdldCB0aGUgc2Vzc2lvbiBudW1iZXIgKi8KKysgIGlmIChuYW1lID09IE5VTEwgfHwg
c3NjYW5mIChuYW1lLCAicmVjdl9ydHBfc2lua18ldSIsICZzZXNzaWQpICE9IDEpCisrICAgIGdv
dG8gbm9fbmFtZTsKKysKKysgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRpbmcgc2Vz
c2lvbiAldSIsIHNlc3NpZCk7CisrCisrICAvKiBnZXQgb3IgY3JlYXRlIHNlc3Npb24gKi8KKysg
IHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKKysgIGlmICgh
c2Vzc2lvbikgeworKyAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNz
aW9uICV1Iiwgc2Vzc2lkKTsKKysgICAgLyogY3JlYXRlIHNlc3Npb24gbm93ICovCisrICAgIHNl
c3Npb24gPSBjcmVhdGVfc2Vzc2lvbiAocnRwYmluLCBzZXNzaWQpOworKyAgICBpZiAoc2Vzc2lv
biA9PSBOVUxMKQorKyAgICAgIGdvdG8gY3JlYXRlX2Vycm9yOworKyAgfQorKworKyAgLyogY2hl
Y2sgaWYgcGFkIHdhcyByZXF1ZXN0ZWQgKi8KKysgIGlmIChzZXNzaW9uLT5yZWN2X3J0cF9zaW5r
X2dob3N0ICE9IE5VTEwpCisrICAgIHJldHVybiBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0
OworKworKyAgLyogc2V0dXAgdGhlIHNlc3Npb24gc2luayBwYWQgKi8KKysgIHJlY3ZfcnRwX3Np
bmsgPSBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKHJ0cGJpbiwgc2Vzc2lvbiwgVFJVRSk7CisrICBp
ZiAoIXJlY3ZfcnRwX3NpbmspCisrICAgIGdvdG8gc2Vzc2lvbl9zaW5rX2ZhaWxlZDsKKysKKysK
KysgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImdob3N0aW5nIHNlc3Npb24gc2luayBwYWQi
KTsKKysgIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QgPQorKyAgICAgIGdzdF9naG9zdF9w
YWRfbmV3X2Zyb21fdGVtcGxhdGUgKG5hbWUsIHJlY3ZfcnRwX3NpbmssIHRlbXBsKTsKKysgIGdz
dF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRwX3NpbmspOworKyAgZ3N0X3BhZF9zZXRfYWN0aXZlIChz
ZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0LCBUUlVFKTsKKysgIGdzdF9lbGVtZW50X2FkZF9w
YWQgKEdTVF9FTEVNRU5UX0NBU1QgKHJ0cGJpbiksIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hv
c3QpOworKworKyAgY29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAocnRwYmluLCBzZXNzaW9uLCBz
ZXNzaWQpOworKworICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3Q7CisgCisg
ICAvKiBFUlJPUlMgKi8KK0BAIC0zNDM1LDIxICszNjU0LDYgQEAgc2Vzc2lvbl9zaW5rX2ZhaWxl
ZDoKKyAgICAgLyogd2FybmluZyBhbHJlYWR5IGRvbmUgKi8KKyAgICAgcmV0dXJuIE5VTEw7Cisg
ICB9CistcGFkX2ZhaWxlZDoKKy0gIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IHNlc3Npb24gcmVjdl9ydHBfc3JjIHBhZCIpOworLSAgICByZXR1cm4gTlVMTDsKKy0g
IH0KKy1hdXhfc2lua19mYWlsZWQ6CistICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFp
bGVkIHRvIGdldCBBVVggc2luayBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworLSAgICBy
ZXR1cm4gTlVMTDsKKy0gIH0KKy1hdXhfbGlua19mYWlsZWQ6CistICB7CistICAgIGdfd2Fybmlu
ZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgQVVYIHBhZCB0byBzZXNzaW9uICVkIiwgc2Vzc2lk
KTsKKy0gICAgcmV0dXJuIE5VTEw7CistICB9CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMzQ2
Myw2ICszNjY3LDExIEBAIHJlbW92ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RS
dHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0
IChzZXNzaW9uLT5kZW11eCwgc2Vzc2lvbi0+ZGVtdXhfcGFkcmVtb3ZlZF9zaWcpOworICAgICBz
ZXNzaW9uLT5kZW11eF9wYWRyZW1vdmVkX3NpZyA9IDA7CisgICB9CisrICBpZiAoc2Vzc2lvbi0+
YnVuZGxlX2RlbXV4X25ld3BhZF9zaWcpIHsKKysgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25u
ZWN0IChzZXNzaW9uLT5idW5kbGVfZGVtdXgsCisrICAgICAgICBzZXNzaW9uLT5idW5kbGVfZGVt
dXhfbmV3cGFkX3NpZyk7CisrICAgIHNlc3Npb24tPmJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnID0g
MDsKKysgIH0KKyAgIGlmIChzZXNzaW9uLT5yZWN2X3J0cF9zcmMpIHsKKyAgICAgZ3N0X29iamVj
dF91bnJlZiAoc2Vzc2lvbi0+cmVjdl9ydHBfc3JjKTsKKyAgICAgc2Vzc2lvbi0+cmVjdl9ydHBf
c3JjID0gTlVMTDsKK0BAIC0zNDgwLDM3ICszNjg5LDE0IEBAIHJlbW92ZV9yZWN2X3J0cCAoR3N0
UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAgIH0KKyB9Cisg
CistLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRDUCBmb3IgdGhlIHNlc3Npb24gaW4g
QG5hbWUuIE11c3QgYmUgY2FsbGVkIHdpdGgKKy0gKiBSVFBfQklOX0xPQ0suCistICovCisgc3Rh
dGljIEdzdFBhZCAqCistY3JlYXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQ
YWRUZW1wbGF0ZSAqIHRlbXBsLAorLSAgICBjb25zdCBnY2hhciAqIG5hbWUpCisrY29tcGxldGVf
c2Vzc2lvbl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNz
aW9uLAorKyAgICBndWludCBzZXNzaWQsIGdib29sZWFuIGJ1bmRsZV9kZW11eGVyX25lZWRlZCkK
KyB7CistICBndWludCBzZXNzaWQ7CisgICBHc3RFbGVtZW50ICpkZWNvZGVyOworLSAgR3N0UnRw
QmluU2Vzc2lvbiAqc2Vzc2lvbjsKKy0gIEdzdFBhZCAqc2lua2RwYWQsICpkZWNzaW5rOworLQor
LSAgLyogZmlyc3QgZ2V0IHRoZSBzZXNzaW9uIG51bWJlciAqLworLSAgaWYgKG5hbWUgPT0gTlVM
TCB8fCBzc2NhbmYgKG5hbWUsICJyZWN2X3J0Y3Bfc2lua18ldSIsICZzZXNzaWQpICE9IDEpCist
ICAgIGdvdG8gbm9fbmFtZTsKKy0KKy0gIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRp
bmcgc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CistCistICAvKiBnZXQgb3IgY3JlYXRlIHRoZSBzZXNz
aW9uICovCistICBzZXNzaW9uID0gZmluZF9zZXNzaW9uX2J5X2lkIChydHBiaW4sIHNlc3NpZCk7
CistICBpZiAoIXNlc3Npb24pIHsKKy0gICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiY3Jl
YXRpbmcgc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CistICAgIC8qIGNyZWF0ZSBzZXNzaW9uIG5vdyAq
LworLSAgICBzZXNzaW9uID0gY3JlYXRlX3Nlc3Npb24gKHJ0cGJpbiwgc2Vzc2lkKTsKKy0gICAg
aWYgKHNlc3Npb24gPT0gTlVMTCkKKy0gICAgICBnb3RvIGNyZWF0ZV9lcnJvcjsKKy0gIH0KKy0K
Ky0gIC8qIGNoZWNrIGlmIHBhZCB3YXMgcmVxdWVzdGVkICovCistICBpZiAoc2Vzc2lvbi0+cmVj
dl9ydGNwX3NpbmtfZ2hvc3QgIT0gTlVMTCkKKy0gICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRj
cF9zaW5rX2dob3N0OworKyAgR3N0UGFkICpzaW5rZHBhZDsKKysgIEdzdFBhZCAqZGVjc2luayA9
IE5VTEw7CisrICBHc3RQYWQgKmZ1bm5lbF9zcmM7CisgCisgICAvKiBnZXQgcmVjdl9ydHAgcGFk
IGFuZCBzdG9yZSAqLworICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2V0dGluZyBSVENQ
IHNpbmsgcGFkIik7CitAQCAtMzUxOSw2ICszNzA1LDkgQEAgY3JlYXRlX3JlY3ZfcnRjcCAoR3N0
UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLAorICAgaWYgKHNlc3Npb24t
PnJlY3ZfcnRjcF9zaW5rID09IE5VTEwpCisgICAgIGdvdG8gcGFkX2ZhaWxlZDsKKyAKKysgIGlm
IChidW5kbGVfZGVtdXhlcl9uZWVkZWQpCisrICAgIHNlc3Npb25fbWF5YmVfY3JlYXRlX2J1bmRs
ZV9kZW11eGVyIChzZXNzaW9uKTsKKysKKyAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImdl
dHRpbmcgUlRDUCBkZWNvZGVyIik7CisgICBkZWNvZGVyID0gc2Vzc2lvbl9yZXF1ZXN0X2VsZW1l
bnQgKHNlc3Npb24sIFNJR05BTF9SRVFVRVNUX1JUQ1BfREVDT0RFUik7CisgICBpZiAoZGVjb2Rl
cikgeworQEAgLTM1MzUsMTQgKzM3MjQsMjYgQEAgY3JlYXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmlu
ICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLAorICAgICBpZiAoZGVjc3JjID09IE5V
TEwpCisgICAgICAgZ290byBkZWNfc3JjX2ZhaWxlZDsKKyAKKy0gICAgcmV0ID0gZ3N0X3BhZF9s
aW5rIChkZWNzcmMsIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rKTsKKysgICAgaWYgKHNlc3Npb24t
PmJ1bmRsZV9kZW11eCkgeworKyAgICAgIEdzdFBhZCAqZGVtdXhfc2luazsKKysgICAgICBkZW11
eF9zaW5rID0KKysgICAgICAgICAgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24t
PmJ1bmRsZV9kZW11eCwgInJ0Y3Bfc2luayIpOworKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAo
ZGVjc3JjLCBkZW11eF9zaW5rKTsKKysgICAgICBnc3Rfb2JqZWN0X3VucmVmIChkZW11eF9zaW5r
KTsKKysgICAgfSBlbHNlIHsKKysgICAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vz
c2lvbi0+cmVjdl9ydGNwX3NpbmspOworKyAgICB9CisgICAgIGdzdF9vYmplY3RfdW5yZWYgKGRl
Y3NyYyk7CisgCisgICAgIGlmIChyZXQgIT0gR1NUX1BBRF9MSU5LX09LKQorICAgICAgIGdvdG8g
ZGVjX2xpbmtfZmFpbGVkOworICAgfSBlbHNlIHsKKyAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRw
YmluLCAibm8gUlRDUCBkZWNvZGVyIGdpdmVuIik7CistICAgIGRlY3NpbmsgPSBnc3Rfb2JqZWN0
X3JlZiAoc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmspOworKyAgICBpZiAoc2Vzc2lvbi0+YnVuZGxl
X2RlbXV4KSB7CisrICAgICAgZGVjc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChz
ZXNzaW9uLT5idW5kbGVfZGVtdXgsICJydGNwX3NpbmsiKTsKKysgICAgfSBlbHNlIHsKKysgICAg
ICBkZWNzaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkIChzZXNzaW9uLT5ydGNwX2Z1
bm5lbCwgInNpbmtfJXUiKTsKKysgICAgfQorICAgfQorIAorICAgLyogZ2V0IHNyY3BhZCwgbGlu
ayB0byBTU1JDRGVtdXggKi8KK0BAIC0zNTU2LDI2ICszNzU3LDEyIEBAIGNyZWF0ZV9yZWN2X3J0
Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwKKyAgIGdzdF9w
YWRfbGlua19mdWxsIChzZXNzaW9uLT5zeW5jX3NyYywgc2lua2RwYWQsIEdTVF9QQURfTElOS19D
SEVDS19OT1RISU5HKTsKKyAgIGdzdF9vYmplY3RfdW5yZWYgKHNpbmtkcGFkKTsKKyAKKy0gIHNl
c3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0ID0KKy0gICAgICBnc3RfZ2hvc3RfcGFkX25ld19m
cm9tX3RlbXBsYXRlIChuYW1lLCBkZWNzaW5rLCB0ZW1wbCk7CistICBnc3Rfb2JqZWN0X3VucmVm
IChkZWNzaW5rKTsKKy0gIGdzdF9wYWRfc2V0X2FjdGl2ZSAoc2Vzc2lvbi0+cmVjdl9ydGNwX3Np
bmtfZ2hvc3QsIFRSVUUpOworLSAgZ3N0X2VsZW1lbnRfYWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FT
VCAocnRwYmluKSwKKy0gICAgICBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCk7CisrICBm
dW5uZWxfc3JjID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPnJ0Y3BfZnVu
bmVsLCAic3JjIik7CisrICBnc3RfcGFkX2xpbmsgKGZ1bm5lbF9zcmMsIHNlc3Npb24tPnJlY3Zf
cnRjcF9zaW5rKTsKKysgIGdzdF9vYmplY3RfdW5yZWYgKGZ1bm5lbF9zcmMpOworIAorLSAgcmV0
dXJuIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0OworKyAgcmV0dXJuIGRlY3Npbms7Cisg
CistICAvKiBFUlJPUlMgKi8KKy1ub19uYW1lOgorLSAgeworLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGludmFsaWQgbmFtZSBnaXZlbiIpOworLSAgICByZXR1cm4gTlVMTDsKKy0gIH0KKy1jcmVh
dGVfZXJyb3I6CistICB7CistICAgIC8qIGNyZWF0ZV9zZXNzaW9uIGFscmVhZHkgd2FybmVkICov
CistICAgIHJldHVybiBOVUxMOworLSAgfQorIHBhZF9mYWlsZWQ6CisgICB7CisgICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNzaW9uIHJ0Y3Bfc2luayBwYWQiKTsKK0BA
IC0zNTgzLDI1ICszNzcwLDgyIEBAIHBhZF9mYWlsZWQ6CisgICB9CisgZGVjX3NpbmtfZmFpbGVk
OgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBz
aW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lk
KTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgZGVjX3NyY19mYWlsZWQ6CisgICB7CistICAg
IGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNyYyBwYWQgZm9yIHNl
c3Npb24gJWQiLCBzZXNzaWQpOworLSAgICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5rKTsKKy0g
ICAgcmV0dXJuIE5VTEw7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBk
ZWNvZGVyIHNyYyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworKyAgICBnb3RvIGNsZWFu
dXA7CisgICB9CisgZGVjX2xpbmtfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBsaW5rIHJ0Y3AgZGVjb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7
CistICAgIGdzdF9vYmplY3RfdW5yZWYgKGRlY3NpbmspOworLSAgICByZXR1cm4gTlVMTDsKKysg
ICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBydGNwIGRlY29kZXIgZm9yIHNl
c3Npb24gJXUiLCBzZXNzaWQpOworKyAgICBnb3RvIGNsZWFudXA7CisgICB9Cisgc3JjX3BhZF9m
YWlsZWQ6CisgICB7CisgICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBzZXNz
aW9uIHN5bmNfc3JjIHBhZCIpOworLSAgICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5rKTsKKysg
IH0KKysKKytjbGVhbnVwOgorKyAgZ3N0X29iamVjdF91bnJlZiAoZGVjc2luayk7CisrICByZXR1
cm4gTlVMTDsKKyt9CisrCisrLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRDUCBmb3Ig
dGhlIHNlc3Npb24gaW4gQG5hbWUuIE11c3QgYmUgY2FsbGVkIHdpdGgKKysgKiBSVFBfQklOX0xP
Q0suCisrICovCisrc3RhdGljIEdzdFBhZCAqCisrY3JlYXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmlu
ICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLAorKyAgICBjb25zdCBnY2hhciAqIG5h
bWUpCisreworKyAgZ3VpbnQgc2Vzc2lkOworKyAgR3N0UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsK
KysgIEdzdFBhZCAqZGVjc2luayA9IE5VTEw7CisrCisrICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Np
b24gbnVtYmVyICovCisrICBpZiAobmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3Zf
cnRjcF9zaW5rXyV1IiwgJnNlc3NpZCkgIT0gMSkKKysgICAgZ290byBub19uYW1lOworKworKyAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZmluZGluZyBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsK
KysKKysgIC8qIGdldCBvciBjcmVhdGUgdGhlIHNlc3Npb24gKi8KKysgIHNlc3Npb24gPSBmaW5k
X3Nlc3Npb25fYnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKKysgIGlmICghc2Vzc2lvbikgeworKyAg
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICV1Iiwgc2Vzc2lk
KTsKKysgICAgLyogY3JlYXRlIHNlc3Npb24gbm93ICovCisrICAgIHNlc3Npb24gPSBjcmVhdGVf
c2Vzc2lvbiAocnRwYmluLCBzZXNzaWQpOworKyAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQorKyAg
ICAgIGdvdG8gY3JlYXRlX2Vycm9yOworKyAgfQorKworKyAgLyogY2hlY2sgaWYgcGFkIHdhcyBy
ZXF1ZXN0ZWQgKi8KKysgIGlmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCAhPSBOVUxM
KQorKyAgICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7CisrCisrICBkZWNz
aW5rID0gY29tcGxldGVfc2Vzc2lvbl9ydGNwIChydHBiaW4sIHNlc3Npb24sIHNlc3NpZCwgVFJV
RSk7CisrICBpZiAoIWRlY3NpbmspCisrICAgIGdvdG8gY3JlYXRlX2Vycm9yOworKworKyAgc2Vz
c2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3QgPQorKyAgICAgIGdzdF9naG9zdF9wYWRfbmV3X2Zy
b21fdGVtcGxhdGUgKG5hbWUsIGRlY3NpbmssIHRlbXBsKTsKKysgIGdzdF9vYmplY3RfdW5yZWYg
KGRlY3NpbmspOworKyAgZ3N0X3BhZF9zZXRfYWN0aXZlIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lu
a19naG9zdCwgVFJVRSk7CisrICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1RfRUxFTUVOVF9DQVNU
IChydHBiaW4pLAorKyAgICAgIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0KTsKKysKKysg
IHJldHVybiBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdDsKKysKKysgIC8qIEVSUk9SUyAq
LworK25vX25hbWU6CisrICB7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogaW52YWxpZCBuYW1l
IGdpdmVuIik7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorK2NyZWF0ZV9lcnJvcjoKKysgIHsK
KysgICAgLyogY3JlYXRlX3Nlc3Npb24gYWxyZWFkeSB3YXJuZWQgKi8KKyAgICAgcmV0dXJuIE5V
TEw7CisgICB9CisgfQorQEAgLTM2NTEsNyArMzg5NSw3IEBAIGNvbXBsZXRlX3Nlc3Npb25fc3Jj
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorICAgICBH
c3RQYWRMaW5rUmV0dXJuIHJldDsKKyAKKyAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAi
bGlua2luZyBSVFAgZW5jb2RlciIpOworLSAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0
cF9zcmNfJWQiLCBzZXNzaWQpOworKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0cF9z
cmNfJXUiLCBzZXNzaWQpOworICAgICBlbmNzcmMgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZCAoZW5jb2RlciwgZW5hbWUpOworICAgICBnX2ZyZWUgKGVuYW1lKTsKKyAKK0BAIC0zNjYwLDcg
KzM5MDQsNyBAQCBjb21wbGV0ZV9zZXNzaW9uX3NyYyAoR3N0UnRwQmluICogcnRwYmluLCBHc3RS
dHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyAKKyAgICAgc2VuZF9ydHBfc3JjID0gZW5jc3JjOwor
IAorLSAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0cF9zaW5rXyVkIiwgc2Vzc2lkKTsK
KysgICAgZW5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJydHBfc2lua18ldSIsIHNlc3NpZCk7Cisg
ICAgIGVuY3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZW5jb2RlciwgZW5hbWUp
OworICAgICBnX2ZyZWUgKGVuYW1lKTsKKyAgICAgaWYgKGVuY3NpbmsgPT0gTlVMTCkKK0BAIC0z
Njk0LDIzICszOTM4LDIzIEBAIGNvbXBsZXRlX3Nlc3Npb25fc3JjIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorICAgLyogRVJST1JTICovCisgbm9fc3Jj
cGFkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgcnRwIHNv
dXJjZSBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBnZXQgcnRwIHNvdXJjZSBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQp
OworICAgICByZXR1cm4gRkFMU0U7CisgICB9CisgZW5jX3NyY19mYWlsZWQ6CisgICB7CistICAg
IGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNl
c3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgZW5jb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJu
IEZBTFNFOworICAgfQorIGVuY19zaW5rX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJWQiLCBz
ZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZW5jb2RlciBz
aW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisgICAgIGdzdF9vYmplY3RfdW5yZWYg
KHNlbmRfcnRwX3NyYyk7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKyBlbmNfbGlua19mYWls
ZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGVu
Y29kZXIgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBsaW5rIHJ0cCBlbmNvZGVyIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAg
ICAgZ3N0X29iamVjdF91bnJlZiAoc2VuZF9ydHBfc3JjKTsKKyAgICAgcmV0dXJuIEZBTFNFOwor
ICAgfQorQEAgLTM3NzIsMjIgKzQwMTYsMjIgQEAgY3JlYXRlX2Vycm9yOgorICAgfQorIGV4aXN0
aW5nX3Nlc3Npb246CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogc2Vzc2lvbiAlZCBp
cyBhbHJlYWR5IGEgc2VuZGVyIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBz
ZXNzaW9uICV1IGlzIGFscmVhZHkgYSBzZW5kZXIiLCBzZXNzaWQpOworICAgICByZXR1cm4gRkFM
U0U7CisgICB9CisgcGFkX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBm
YWlsZWQgdG8gZ2V0IHNlc3Npb24gcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAg
Z193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcGFkIGZvciBzZXNzaW9u
ICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJuIEZBTFNFOworICAgfQorIGF1eF9saW5rX2ZhaWxl
ZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVggZm9y
IHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0
byBsaW5rIEFVWCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisgICAgIHJldHVybiBGQUxTRTsK
KyAgIH0KKyBzZXNzaW9uX3NyY19mYWlsZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGNvbXBsZXRlIEFVWCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAg
IGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGNvbXBsZXRlIEFVWCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKyB9CitAQCAtMzg0Nyw3ICs0
MDkxLDcgQEAgY3JlYXRlX3NlbmRfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBs
YXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKKyAgICAgaWYgKCFzZXR1cF9hdXhfc2Vu
ZGVyIChydHBiaW4sIHNlc3Npb24sIGF1eCkpCisgICAgICAgZ290byBhdXhfc2Vzc2lvbl9mYWls
ZWQ7CisgCistICAgIHBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgic2lua18lZCIsIHNlc3NpZCk7
CisrICAgIHBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgic2lua18ldSIsIHNlc3NpZCk7CisgICAg
IHNlbmRfcnRwX3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoYXV4LCBwbmFtZSk7
CisgICAgIGdfZnJlZSAocG5hbWUpOworIAorQEAgLTM4ODcsMjcgKzQxMzEsMjcgQEAgY3JlYXRl
X2Vycm9yOgorICAgfQorIGV4aXN0aW5nX3Nlc3Npb246CisgICB7CistICAgIGdfd2FybmluZyAo
InJ0cGJpbjogc2Vzc2lvbiAlZCBpcyBhbHJlYWR5IGluIHVzZSIsIHNlc3NpZCk7CisrICAgIGdf
d2FybmluZyAoInJ0cGJpbjogc2Vzc2lvbiAldSBpcyBhbHJlYWR5IGluIHVzZSIsIHNlc3NpZCk7
CisgICAgIHJldHVybiBOVUxMOworICAgfQorIGF1eF9zZXNzaW9uX2ZhaWxlZDoKKyAgIHsKKy0g
ICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vz
c2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBBVVggc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICByZXR1cm4gTlVM
TDsKKyAgIH0KKyBhdXhfc2lua19mYWlsZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGdldCBBVVggc2luayBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOwor
KyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZvciBz
ZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgcGFkX2ZhaWxl
ZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24g
cGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBm
YWlsZWQgdG8gZ2V0IHNlc3Npb24gcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAg
cmV0dXJuIE5VTEw7CisgICB9Cisgc2Vzc2lvbl9zcmNfZmFpbGVkOgorICAgeworLSAgICBnX3dh
cm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBzZXR1cCBzb3VyY2UgcGFkcyBmb3Igc2Vzc2lvbiAl
ZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIHNldHVwIHNv
dXJjZSBwYWRzIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJuIE5VTEw7Cisg
ICB9CisgfQorQEAgLTM5NzgsMTMgKzQyMjIsMTMgQEAgY3JlYXRlX3J0Y3AgKEdzdFJ0cEJpbiAq
IHJ0cGJpbiwgR3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQorIAor
ICAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5raW5nIFJUQ1AgZW5jb2RlciIpOwor
IAorLSAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0Y3Bfc3JjXyVkIiwgc2Vzc2lkKTsK
KysgICAgZW5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJydGNwX3NyY18ldSIsIHNlc3NpZCk7Cisg
ICAgIGVuY3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7
CisgICAgIGdfZnJlZSAoZW5hbWUpOworICAgICBpZiAoZW5jc3JjID09IE5VTEwpCisgICAgICAg
Z290byBlbmNfc3JjX2ZhaWxlZDsKKyAKKy0gICAgZW5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJy
dGNwX3NpbmtfJWQiLCBzZXNzaWQpOworKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0
Y3Bfc2lua18ldSIsIHNlc3NpZCk7CisgICAgIGVuY3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfc3Rh
dGljX3BhZCAoZW5jb2RlciwgZW5hbWUpOworICAgICBnX2ZyZWUgKGVuYW1lKTsKKyAgICAgaWYg
KGVuY3NpbmsgPT0gTlVMTCkKK0BAIC00MDIxLDIzICs0MjY1LDIzIEBAIG5vX3Nlc3Npb246Cisg
ICB9CisgcGFkX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IHJ0Y3AgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5n
ICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHJ0Y3AgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lk
KTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgZW5jX3NyY19mYWlsZWQ6CisgICB7CistICAg
IGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNl
c3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgZW5jb2RlciBzcmMgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJu
IE5VTEw7CisgICB9CisgZW5jX3NpbmtfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJy
dHBiaW46IGZhaWxlZCB0byBnZXQgZW5jb2RlciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNl
c3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNp
bmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgZ3N0X29iamVjdF91bnJlZiAo
ZW5jc3JjKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgZW5jX2xpbmtfZmFpbGVkOgorICAg
eworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0Y3AgZW5jb2RlciBm
b3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVk
IHRvIGxpbmsgcnRjcCBlbmNvZGVyIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgZ3N0
X29iamVjdF91bnJlZiAoZW5jc3JjKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CitkaWZmIC0t
Z2l0IGEvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmggYi9nc3QvcnRwbWFuYWdlci9nc3RydHBi
aW4uaAoraW5kZXggZmIxM2E0Ny4uMzg0Yjc2ZCAxMDA2NDQKKy0tLSBhL2dzdC9ydHBtYW5hZ2Vy
L2dzdHJ0cGJpbi5oCisrKysgYi9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaAorQEAgLTEyNyw2
ICsxMjcsOCBAQCBzdHJ1Y3QgX0dzdFJ0cEJpbkNsYXNzIHsKKyAKKyAgIHZvaWQgICAgICgqb25f
bmV3X3NlbmRlcl9zc3JjKSAgICAgIChHc3RSdHBCaW4gKnJ0cGJpbiwgZ3VpbnQgc2Vzc2lvbiwg
Z3VpbnQzMiBzc3JjKTsKKyAgIHZvaWQgICAgICgqb25fc2VuZGVyX3NzcmNfYWN0aXZlKSAgIChH
c3RSdHBCaW4gKnJ0cGJpbiwgZ3VpbnQgc2Vzc2lvbiwgZ3VpbnQzMiBzc3JjKTsKKysKKysgIGd1
aW50ICAgICgqb25fYnVuZGxlZF9zc3JjKSAgICAgICAgIChHc3RSdHBCaW4gKnJ0cGJpbiwgZ3Vp
bnQgc3NyYyk7CisgfTsKKyAKKyBHVHlwZSBnc3RfcnRwX2Jpbl9nZXRfdHlwZSAodm9pZCk7CmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0
dHBzcmMtY29va2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXIt
YW5kLWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGVkYmQ2ZjgzZWZl
YjY0N2M3ZDJiYjNmYmFmNWE5NWRjYzdlMGVhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tpZS1qYXItYW5k
LWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaApAQCAtMCwwICsxLDEyMCBAQAorRnJvbSA4ZTAz
YTYzZmQ1NWY1YWU0NDc5OTQ1Nzk4OTBlODYzMGIyN2Y0YTFiIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQorRnJvbTogUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KK0RhdGU6IFdl
ZCwgMjggT2N0IDIwMTUgMTI6MDA6MDkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzNdIHNvdXBo
dHRwc3JjOiBjb29raWUgamFyIGFuZCBjb250ZXh0IHF1ZXJ5IHN1cHBvcnQKKworVXNlIGEgdm9s
YXRpbGUgQ29va2llIGphciB0byBzdG9yZSBjb29raWVzIGFuZCBoYW5kbGUgdGhlIGNvbnRleHQK
K3F1ZXJ5IHNvIHRoYXQgc2Vzc2lvbiBkYXRhIGNhbiBiZSBzaGFyZWQgd2l0aCBvdGhlciBlbGVt
ZW50cyAobGlrZQorYWRhcHRpdmVkZW11eCkuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MjYzMTQKKy0tLQorIGV4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMg
fCA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIGV4dC9zb3Vw
L2dzdHNvdXBodHRwc3JjLmggfCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25z
KCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L3NvdXAvZ3N0c291cGh0dHBz
cmMuYyBiL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMKK2luZGV4IGZjN2NiYTcuLjBkM2U4ODYg
MTAwNjQ0CistLS0gYS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5jCisrKysgYi9leHQvc291cC9n
c3Rzb3VwaHR0cHNyYy5jCitAQCAtNDgyLDYgKzQ4Miw3IEBAIGdzdF9zb3VwX2h0dHBfc3JjX2lu
aXQgKEdzdFNvdXBIVFRQU3JjICogc3JjKQorICAgc3JjLT5jb29raWVzID0gTlVMTDsKKyAgIHNy
Yy0+aXJhZGlvX21vZGUgPSBERUZBVUxUX0lSQURJT19NT0RFOworICAgc3JjLT5zZXNzaW9uID0g
TlVMTDsKKysgIHNyYy0+Y29va2llX2phciA9IE5VTEw7CisgICBzcmMtPm1zZyA9IE5VTEw7Cisg
ICBzcmMtPnRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVQ7CisgICBzcmMtPmxvZ19sZXZlbCA9IERF
RkFVTFRfU09VUF9MT0dfTEVWRUw7CitAQCAtOTQzLDYgKzk0NCw5IEBAIGdzdF9zb3VwX2h0dHBf
c3JjX3Nlc3Npb25fb3BlbiAoR3N0U291cEhUVFBTcmMgKiBzcmMpCisgICAgIHNvdXBfc2Vzc2lv
bl9yZW1vdmVfZmVhdHVyZV9ieV90eXBlIChzcmMtPnNlc3Npb24sCisgICAgICAgICBTT1VQX1RZ
UEVfQ09OVEVOVF9ERUNPREVSKTsKKyAKKysgIHNyYy0+Y29va2llX2phciA9IHNvdXBfY29va2ll
X2phcl9uZXcgKCk7CisrICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUgKHNyYy0+c2Vzc2lvbiwK
KysgICAgICBTT1VQX1NFU1NJT05fRkVBVFVSRSAoc3JjLT5jb29raWVfamFyKSk7CisgICByZXR1
cm4gVFJVRTsKKyB9CisgCitAQCAtOTU4LDYgKzk2MiwxMSBAQCBnc3Rfc291cF9odHRwX3NyY19z
ZXNzaW9uX2Nsb3NlIChHc3RTb3VwSFRUUFNyYyAqIHNyYykKKyAgICAgc3JjLT5tc2cgPSBOVUxM
OworICAgfQorIAorKyAgaWYgKHNyYy0+Y29va2llX2phcikgeworKyAgICBnX29iamVjdF91bnJl
ZiAoc3JjLT5jb29raWVfamFyKTsKKysgICAgc3JjLT5jb29raWVfamFyID0gTlVMTDsKKysgIH0K
KysKKyAgIGlmIChzcmMtPnNlc3Npb24pIHsKKyAgICAgc291cF9zZXNzaW9uX2Fib3J0IChzcmMt
PnNlc3Npb24pOworICAgICBnX29iamVjdF91bnJlZiAoc3JjLT5zZXNzaW9uKTsKK0BAIC0xNDI2
LDExICsxNDM1LDEyIEBAIGdzdF9zb3VwX2h0dHBfc3JjX2J1aWxkX21lc3NhZ2UgKEdzdFNvdXBI
VFRQU3JjICogc3JjLCBjb25zdCBnY2hhciAqIG1ldGhvZCkKKyAgIH0KKyAgIGlmIChzcmMtPmNv
b2tpZXMpIHsKKyAgICAgZ2NoYXIgKipjb29raWU7CisrICAgIFNvdXBVUkkgKnVyaSA9IHNvdXBf
dXJpX25ldyAoc3JjLT5sb2NhdGlvbik7CisgCisgICAgIGZvciAoY29va2llID0gc3JjLT5jb29r
aWVzOyAqY29va2llICE9IE5VTEw7IGNvb2tpZSsrKSB7CistICAgICAgc291cF9tZXNzYWdlX2hl
YWRlcnNfYXBwZW5kIChzcmMtPm1zZy0+cmVxdWVzdF9oZWFkZXJzLCAiQ29va2llIiwKKy0gICAg
ICAgICAgKmNvb2tpZSk7CisrICAgICAgc291cF9jb29raWVfamFyX3NldF9jb29raWUgKHNyYy0+
Y29va2llX2phciwgdXJpLCAqY29va2llKTsKKyAgICAgfQorKyAgICBzb3VwX3VyaV9mcmVlICh1
cmkpOworICAgfQorIAorICAgc291cF9tZXNzYWdlX3NldF9mbGFncyAoc3JjLT5tc2csIFNPVVBf
TUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktTIHwKK0BAIC0xOTEwLDYgKzE5MjAsMTIgQEAgZ3N0X3Nv
dXBfaHR0cF9zcmNfcXVlcnkgKEdzdEJhc2VTcmMgKiBic3JjLCBHc3RRdWVyeSAqIHF1ZXJ5KQor
ICAgZ2Jvb2xlYW4gcmV0OworICAgR3N0U2NoZWR1bGluZ0ZsYWdzIGZsYWdzOworICAgZ2ludCBt
aW5zaXplLCBtYXhzaXplLCBhbGlnbjsKKysgIEdzdENvbnRleHQgKmNvbnRleHQ7CisrICBHc3RT
dHJ1Y3R1cmUgKmNvbnRleHRfc3RydWN0dXJlOworKyAgY2hhciAqY29va2llOworKyAgY29uc3Qg
Z2NoYXIgKmNvb2tpZXNbMl07CisrICBjb25zdCBnY2hhciAqY29udGV4dF90eXBlOworKyAgU291
cFVSSSAqdXJpOworIAorICAgc3dpdGNoIChHU1RfUVVFUllfVFlQRSAocXVlcnkpKSB7CisgICAg
IGNhc2UgR1NUX1FVRVJZX1VSSToKK0BAIC0xOTIxLDYgKzE5MzcsMjcgQEAgZ3N0X3NvdXBfaHR0
cF9zcmNfcXVlcnkgKEdzdEJhc2VTcmMgKiBic3JjLCBHc3RRdWVyeSAqIHF1ZXJ5KQorICAgICAg
IH0KKyAgICAgICByZXQgPSBUUlVFOworICAgICAgIGJyZWFrOworKyAgICBjYXNlIEdTVF9RVUVS
WV9DT05URVhUOgorKyAgICAgIGlmIChnc3RfcXVlcnlfcGFyc2VfY29udGV4dF90eXBlIChxdWVy
eSwgJmNvbnRleHRfdHlwZSkKKysgICAgICAgICAgJiYgIWdfc3RyY21wMCAoY29udGV4dF90eXBl
LCAiaHR0cC1oZWFkZXJzIikpIHsKKysgICAgICAgIHVyaSA9IHNvdXBfdXJpX25ldyAoc3JjLT5s
b2NhdGlvbik7CisrICAgICAgICBjb29raWUgPSBzb3VwX2Nvb2tpZV9qYXJfZ2V0X2Nvb2tpZXMg
KHNyYy0+Y29va2llX2phciwgdXJpLCBUUlVFKTsKKysgICAgICAgIGNvbnRleHQgPSBnc3RfY29u
dGV4dF9uZXcgKCJodHRwLWhlYWRlcnMiLCBGQUxTRSk7CisrICAgICAgICBnc3RfY29udGV4dF9t
YWtlX3dyaXRhYmxlIChjb250ZXh0KTsKKysgICAgICAgIGNvbnRleHRfc3RydWN0dXJlID0gZ3N0
X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlIChjb250ZXh0KTsKKysgICAgICAgIGlmIChjb29r
aWUgIT0gTlVMTCkgeworKyAgICAgICAgICBjb29raWVzWzBdID0gY29va2llOworKyAgICAgICAg
ICBjb29raWVzWzFdID0gTlVMTDsKKysgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKGNvbnRl
eHRfc3RydWN0dXJlLCAiY29va2llcyIsIEdfVFlQRV9TVFJWLCBjb29raWVzLAorKyAgICAgICAg
ICAgICAgTlVMTCk7CisrICAgICAgICAgIGdfZnJlZSAoY29va2llKTsKKysgICAgICAgIH0KKysg
ICAgICAgIGdzdF9xdWVyeV9zZXRfY29udGV4dCAocXVlcnksIGNvbnRleHQpOworKyAgICAgICAg
c291cF91cmlfZnJlZSAodXJpKTsKKysgICAgICAgIHJldCA9IFRSVUU7CisrICAgICAgICBicmVh
azsKKysgICAgICB9CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmV0ID0gRkFMU0U7CisgICAg
ICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaCBiL2V4dC9z
b3VwL2dzdHNvdXBodHRwc3JjLmgKK2luZGV4IGRkMDE2NTYuLjljNmJiNWMgMTAwNjQ0CistLS0g
YS9leHQvc291cC9nc3Rzb3VwaHR0cHNyYy5oCisrKysgYi9leHQvc291cC9nc3Rzb3VwaHR0cHNy
Yy5oCitAQCAtNjAsNiArNjAsNyBAQCBzdHJ1Y3QgX0dzdFNvdXBIVFRQU3JjIHsKKyAgIGdjaGFy
ICpwcm94eV9wdzsgICAgICAgICAgICAgLyogQXV0aGVudGljYXRpb24gdXNlciBwYXNzd29yZCBm
b3IgcHJveHkgVVJJLiAqLworICAgZ2NoYXIgKipjb29raWVzOyAgICAgICAgICAgICAvKiBIVFRQ
IHJlcXVlc3QgY29va2llcy4gKi8KKyAgIFNvdXBTZXNzaW9uICpzZXNzaW9uOyAgICAgICAgLyog
QXN5bmMgY29udGV4dC4gKi8KKysgIFNvdXBDb29raWVKYXIgKmNvb2tpZV9qYXI7ICAgLyogVm9s
YXRpbGUgSFRUUCBjb29raWUgc3RvcmFnZSAqLworICAgU291cE1lc3NhZ2UgKm1zZzsgICAgICAg
ICAgICAvKiBSZXF1ZXN0IG1lc3NhZ2UuICovCisgICBHc3RGbG93UmV0dXJuIHJldDsgICAgICAg
ICAgIC8qIFJldHVybiBjb2RlIGZyb20gY2FsbGJhY2suICovCisgICBnaW50IHJldHJ5X2NvdW50
OyAgICAgICAgICAgIC8qIE51bWJlciBvZiByZXRyaWVzIHNpbmNlIHdlIHJlY2VpdmVkIGRhdGEg
Ki8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDYtcXRkZW11eC1hZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVj
dGlvbi5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRl
bXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBkZGZlY2U0MmYwN2Y1YWUwZmUyZDVlN2QyZGJmOTgyYzdmYTUzOTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDYtcXRkZW11eC1h
ZGQtY29udGV4dC1mb3ItYS1wcmVmZXJyZWQtcHJvdGVjdGlvbi5wYXRjaApAQCAtMCwwICsxLDMy
OSBAQAorRnJvbSA5ZDcyMDFjYTc2ZTc4NzVjZGRkMTA2ZGYwNmI0ZDc2MzdjMDI1NDY1IE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgPGNhbHZh
cmlzQGlnYWxpYS5jb20+CitEYXRlOiBXZWQsIDIxIEp1biAyMDE3IDE3OjU5OjIxICswMjAwCitT
dWJqZWN0OiBbUEFUQ0ggMi8zXSBxdGRlbXV4OiBhZGQgY29udGV4dCBmb3IgYSBwcmVmZXJyZWQg
cHJvdGVjdGlvbgorCitxdGRlbXV4IHNlbGVjdGVkIHRoZSBmaXJzdCBzeXN0ZW0gY29ycmVzcG9u
ZGluZyB0byBhIHdvcmtpbmcgR1N0cmVhbWVyCitkZWNyeXB0b3IuIFdpdGggdGhpcyBjaGFuZ2Us
IGJlZm9yZSBzZWxlY3RpbmcgdGhhdCBkZWNyeXB0b3IsIHF0ZGVtdXgKK3dpbGwgY2hlY2sgaWYg
aXQgaGFzIGNvbnRleHQgKGEgcHJlZmVycmVkIGRlY3J5cHRvciBpZCkgYW5kIGlmIG5vdCwgaXQK
K3dpbGwgcmVxdWVzdCBpdC4KKworVGhlIHJlcXVlc3QgaW5jbHVkZXMgdHJhY2staWQsIGF2YWls
YWJsZSBrZXkgc3lzdGVtIGlkcyBmb3IgdGhlCithdmFpbGFibGUgZGVjcnlwdG9ycyBhbmQgZXZl
biB0aGUgZXZlbnRzIHNvIHRoYXQgdGhlIGluaXQgZGF0YSBpcworYWNjZXNzaWJsZS4KKworW2Vv
Y2FuaGFAaWdhbGlhLmNvbTogc2VsZWN0IHRoZSBwcmVmZXJyZWQgcHJvdGVjdGlvbiBzeXN0ZW0g
ZXZlbiBpZiBub3QgYXZhaWxhYmxlXQorCitUZXN0ICI0LiBDbGVhcktleVZpZGVvIiBpbiBZb3VU
dWJlIGxlYW5iYWNrIEVNRSBjb25mb3JtYW5jZSB0ZXN0cyAyMDE2IGZvcgorSC4yNjRbMV0gdXNl
cyBhIG1lZGlhIGZpbGVbMl0gd2l0aCBjZW5jIGVuY3J5cHRpb24gd2hpY2ggZW1iZWRzICdwc3No
JyBib3hlcword2l0aCB0aGUgaW5pdCBkYXRhIGZvciB0aGUgUGxheXJlYWR5IGFuZCBXaWRldmlu
ZSBlbmNyeXB0aW9uIHN5c3RlbXMsIGJ1dCBub3QKK2ZvciB0aGUgQ2xlYXJLZXkgZW5jcnlwdGlv
biBzeXN0ZW0gKGFzIGRlZmluZWQgYnkgdGhlIEVNRXYwLjFiIHNwZWNbM10gYW5kIHdpdGgKK3Ro
ZSBlbmNyeXB0aW9uIHN5c3RlbSBpZCBkZWZpbmVkIGluIFs0XSkuCisKK0luc3RlYWQsIHRoZSBD
bGVhcktleSBlbmNyeXB0aW9uIHN5c3RlbSBpcyBtYW51YWxseSBzZWxlY3RlZCBieSB0aGUgd2Vi
IHBhZ2UKK2NvZGUgKGV2ZW4gaWYgbm90IG9yaWdpbmFsbHkgZGV0ZWN0ZWQgYnkgcXRkZW11eCkg
YW5kIHRoZSBwcm9wZXIgZGVjcnlwdGlvbiBrZXkKK2lzIGRpc3BhdGNoZWQgdG8gdGhlIGRlY3J5
cHRvciwgd2hpY2ggY2FuIHRoZW4gZGVjcnlwdCB0aGUgdmlkZW8gc3VjY2Vzc2Z1bGx5LgorCitb
MV0gaHR0cDovL3l0LWRhc2gtbXNlLXRlc3QuY29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5j
b20vdW5pdC10ZXN0cy8yMDE2Lmh0bWw/dGVzdF90eXBlPWVuY3J5cHRlZG1lZGlhLXRlc3Qmd2Vi
bT1mYWxzZQorWzJdIGh0dHA6Ly95dC1kYXNoLW1zZS10ZXN0LmNvbW1vbmRhdGFzdG9yYWdlLmdv
b2dsZWFwaXMuY29tL3VuaXQtdGVzdHMvbWVkaWEvY2FyX2NlbmMtMjAxMjA4MjctODYubXA0Citb
M10gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2VtZS12MC4xYi9l
bmNyeXB0ZWQtbWVkaWEvZW5jcnlwdGVkLW1lZGlhLmh0bWwjc2ltcGxlLWRlY3J5cHRpb24tY2xl
YXIta2V5CitbNF0gaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9p
ZD0yNDAyNyNjMgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzcwMTA3CistLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDIwMCArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXgu
aCB8ICAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv
bnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5jIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmMKK2luZGV4IDBhNDFiMjZmMi4uYWU1N2JkZjliIDEwMDY0NAorLS0tIGEvZ3N0L2lz
b21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTEzLDYgKzUx
Myw4IEBAIHN0YXRpYyBHc3RJbmRleCAqZ3N0X3F0ZGVtdXhfZ2V0X2luZGV4IChHc3RFbGVtZW50
ICogZWxlbWVudCk7CisgI2VuZGlmCisgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIGdzdF9x
dGRlbXV4X2NoYW5nZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsCisgICAgIEdzdFN0YXRl
Q2hhbmdlIHRyYW5zaXRpb24pOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X3NldF9jb250ZXh0
IChHc3RFbGVtZW50ICogZWxlbWVudCwKKysgICAgR3N0Q29udGV4dCAqIGNvbnRleHQpOworIHN0
YXRpYyBnYm9vbGVhbiBxdGRlbXV4X3NpbmtfYWN0aXZhdGUgKEdzdFBhZCAqIHNpbmtwYWQsIEdz
dE9iamVjdCAqIHBhcmVudCk7Cisgc3RhdGljIGdib29sZWFuIHF0ZGVtdXhfc2lua19hY3RpdmF0
ZV9tb2RlIChHc3RQYWQgKiBzaW5rcGFkLAorICAgICBHc3RPYmplY3QgKiBwYXJlbnQsIEdzdFBh
ZE1vZGUgbW9kZSwgZ2Jvb2xlYW4gYWN0aXZlKTsKK0BAIC02MDIsNiArNjA0LDcgQEAgZ3N0X3F0
ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgICBnc3RlbGVtZW50
X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0X2lu
ZGV4KTsKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmdldF9pbmRleCA9IEdTVF9ERUJVR19GVU5DUFRS
IChnc3RfcXRkZW11eF9nZXRfaW5kZXgpOworICNlbmRpZgorKyAgZ3N0ZWxlbWVudF9jbGFzcy0+
c2V0X2NvbnRleHQgPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0X2NvbnRleHQp
OworIAorICAgZ3N0X3RhZ19yZWdpc3Rlcl9tdXNpY2JyYWluel90YWdzICgpOworIAorQEAgLTY2
MCw2ICs2NjMsNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAg
IHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOworICAgcXRkZW11eC0+Y2VuY19h
dXhfc2FtcGxlX2NvdW50ID0gMDsKKyAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcyA9
IE5VTEw7CisrICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgPSBOVUxM
OworICAgZ19xdWV1ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSk7Cisg
ICBnc3Rfc2VnbWVudF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsK
KyAgIHF0ZGVtdXgtPnRhZ19saXN0ID0gZ3N0X3RhZ19saXN0X25ld19lbXB0eSAoKTsKK0BAIC0y
MTEzLDYgKzIxMTcsMTAgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4
LCBnYm9vbGVhbiBoYXJkKQorICAgICAgIGdfcHRyX2FycmF5X2ZyZWUgKHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcywgVFJVRSk7CisgICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0
ZW1faWRzID0gTlVMTDsKKyAgICAgfQorKyAgICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3Rl
Y3Rpb25fc3lzdGVtX2lkKSB7CisrICAgICAgZ19mcmVlIChxdGRlbXV4LT5wcmVmZXJyZWRfcHJv
dGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9u
X3N5c3RlbV9pZCA9IE5VTEw7CisrICAgIH0KKyAgIH0gZWxzZSBpZiAocXRkZW11eC0+bXNzX21v
ZGUpIHsKKyAgICAgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQgKHF0ZGVtdXgtPmZsb3djb21iaW5l
cik7CisgICAgIGZvciAobiA9IDA7IG4gPCBxdGRlbXV4LT5uX3N0cmVhbXM7IG4rKykKK0BAIC0y
NTkwLDYgKzI1OTgsMjggQEAgZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICog
ZWxlbWVudCwgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKKyB9CisgCisgc3RhdGljIHZvaWQK
Kytnc3RfcXRkZW11eF9zZXRfY29udGV4dCAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdENvbnRl
eHQgKiBjb250ZXh0KQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAo
ZWxlbWVudCk7CisrCisrICBnX3JldHVybl9pZl9mYWlsIChHU1RfSVNfQ09OVEVYVCAoY29udGV4
dCkpOworKworKyAgaWYgKGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUgKGNvbnRleHQsCisr
ICAgICAgICAgICJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIikpIHsKKysgICAg
Y29uc3QgR3N0U3RydWN0dXJlICpzOworKworKyAgICBzID0gZ3N0X2NvbnRleHRfZ2V0X3N0cnVj
dHVyZSAoY29udGV4dCk7CisrICAgIGdfZnJlZSAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rp
b25fc3lzdGVtX2lkKTsKKysgICAgcXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVt
X2lkID0KKysgICAgICAgIGdfc3RyZHVwIChnc3Rfc3RydWN0dXJlX2dldF9zdHJpbmcgKHMsICJk
ZWNyeXB0aW9uLXN5c3RlbS1pZCIpKTsKKysgICAgR1NUX0RFQlVHX09CSkVDVCAoZWxlbWVudCwg
InNldCBwcmVmZXJyZWQgZGVjcnlwdGlvbiBzeXN0ZW0gdG8gJXMiLAorKyAgICAgICAgcXRkZW11
eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKTsKKysgIH0KKysKKysgIEdTVF9FTEVN
RU5UX0NMQVNTIChwYXJlbnRfY2xhc3MpLT5zZXRfY29udGV4dCAoZWxlbWVudCwgY29udGV4dCk7
CisrfQorKworK3N0YXRpYyB2b2lkCisgcXRkZW11eF9wYXJzZV9mdHlwIChHc3RRVERlbXV4ICog
cXRkZW11eCwgY29uc3QgZ3VpbnQ4ICogYnVmZmVyLCBnaW50IGxlbmd0aCkKKyB7CisgICAvKiBj
b3VudHMgYXMgaGVhZGVyIGRhdGEgKi8KK0BAIC0zODE5LDYgKzM4NDksOCBAQCBxdGRlbXV4X3Bh
cnNlX3Bzc2ggKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHTm9kZSAqIG5vZGUpCisgICBldmVudCA9
IGdzdF9ldmVudF9uZXdfcHJvdGVjdGlvbiAoc3lzaWRfc3RyaW5nLCBwc3NoLAorICAgICAgIChw
YXJlbnRfYm94X3R5cGUgPT0gRk9VUkNDX21vb3YpID8gImlzb2JtZmYvbW9vdiIgOiAiaXNvYm1m
Zi9tb29mIik7CisgICBmb3IgKGkgPSAwOyBpIDwgcXRkZW11eC0+bl9zdHJlYW1zOyArK2kpIHsK
KysgICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwKKysgICAgICAgICJhZGRpbmcgcHJvdGVj
dGlvbiBldmVudCBmb3Igc3RyZWFtICVkIGFuZCBzeXN0ZW0gJXMiLCBpLCBzeXNpZF9zdHJpbmcp
OworICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJnF0ZGVtdXgtPnN0cmVhbXNbaV0tPnByb3RlY3Rp
b25fc2NoZW1lX2V2ZW50X3F1ZXVlLAorICAgICAgICAgZ3N0X2V2ZW50X3JlZiAoZXZlbnQpKTsK
KyAgIH0KK0BAIC01NTI5LDYgKzU1NjEsOCBAQCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRfcHVz
aF9idWZmZXIgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBHc3RFdmVudCAqZXZlbnQ7Cisg
CisgICAgIHdoaWxlICgoZXZlbnQgPSBnX3F1ZXVlX3BvcF9oZWFkICgmc3RyZWFtLT5wcm90ZWN0
aW9uX3NjaGVtZV9ldmVudF9xdWV1ZSkpKSB7CisrICAgICAgR1NUX1RSQUNFX09CSkVDVCAoc3Ry
ZWFtLT5wYWQsICJwdXNoaW5nIHByb3RlY3Rpb24gZXZlbnQ6ICUiCisrICAgICAgICAgIEdTVF9Q
VFJfRk9STUFULCBldmVudCk7CisgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChzdHJlYW0tPnBh
ZCwgZXZlbnQpOworICAgICB9CisgCitAQCAtNzY4OCwxMSArNzcyMiwxNDEgQEAgcXRkZW11eF9k
b19hbGxvY2F0aW9uIChHc3RRVERlbXV4ICogcXRkZW11eCwgUXREZW11eFN0cmVhbSAqIHN0cmVh
bSkKKyB9CisgCisgc3RhdGljIGdib29sZWFuCisrcGFkX3F1ZXJ5IChjb25zdCBHVmFsdWUgKiBp
dGVtLCBHVmFsdWUgKiB2YWx1ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3sKKysgIEdzdFBhZCAq
cGFkID0gZ192YWx1ZV9nZXRfb2JqZWN0IChpdGVtKTsKKysgIEdzdFF1ZXJ5ICpxdWVyeSA9IHVz
ZXJfZGF0YTsKKysgIGdib29sZWFuIHJlczsKKysKKysgIHJlcyA9IGdzdF9wYWRfcGVlcl9xdWVy
eSAocGFkLCBxdWVyeSk7CisrCisrICBpZiAocmVzKSB7CisrICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4gKHZhbHVlLCBUUlVFKTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKworKyAgR1NUX0lO
Rk9fT0JKRUNUIChwYWQsICJwYWQgcGVlciBxdWVyeSBmYWlsZWQiKTsKKysgIHJldHVybiBUUlVF
OworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytnc3RfcXRkZW11eF9ydW5fcXVlcnkgKEdzdEVs
ZW1lbnQgKiBlbGVtZW50LCBHc3RRdWVyeSAqIHF1ZXJ5LAorKyAgICBHc3RQYWREaXJlY3Rpb24g
ZGlyZWN0aW9uKQorK3sKKysgIEdzdEl0ZXJhdG9yICppdDsKKysgIEdzdEl0ZXJhdG9yRm9sZEZ1
bmN0aW9uIGZ1bmMgPSBwYWRfcXVlcnk7CisrICBHVmFsdWUgcmVzID0geyAwLCB9OworKworKyAg
Z192YWx1ZV9pbml0ICgmcmVzLCBHX1RZUEVfQk9PTEVBTik7CisrICBnX3ZhbHVlX3NldF9ib29s
ZWFuICgmcmVzLCBGQUxTRSk7CisrCisrICAvKiBBc2sgbmVpZ2hib3IgKi8KKysgIGlmIChkaXJl
Y3Rpb24gPT0gR1NUX1BBRF9TUkMpCisrICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNf
cGFkcyAoZWxlbWVudCk7CisrICBlbHNlCisrICAgIGl0ID0gZ3N0X2VsZW1lbnRfaXRlcmF0ZV9z
aW5rX3BhZHMgKGVsZW1lbnQpOworKworKyAgd2hpbGUgKGdzdF9pdGVyYXRvcl9mb2xkIChpdCwg
ZnVuYywgJnJlcywgcXVlcnkpID09IEdTVF9JVEVSQVRPUl9SRVNZTkMpCisrICAgIGdzdF9pdGVy
YXRvcl9yZXN5bmMgKGl0KTsKKysKKysgIGdzdF9pdGVyYXRvcl9mcmVlIChpdCk7CisrCisrICBy
ZXR1cm4gZ192YWx1ZV9nZXRfYm9vbGVhbiAoJnJlcyk7CisrfQorKworK3N0YXRpYyB2b2lkCisr
Z3N0X3F0ZGVtdXhfcmVxdWVzdF9wcm90ZWN0aW9uX2NvbnRleHQgKEdzdFFURGVtdXggKiBxdGRl
bXV4LAorKyAgICBRdERlbXV4U3RyZWFtICogc3RyZWFtKQorK3sKKysgIEdzdFF1ZXJ5ICpxdWVy
eTsKKysgIEdzdENvbnRleHQgKmN0eHQ7CisrICBHc3RFbGVtZW50ICplbGVtZW50ID0gR1NUX0VM
RU1FTlQgKHF0ZGVtdXgpOworKyAgR3N0U3RydWN0dXJlICpzdDsKKysgIGdjaGFyICoqZmlsdGVy
ZWRfc3lzX2lkczsKKysgIEdWYWx1ZSBldmVudF9saXN0ID0gR19WQUxVRV9JTklUOworKyAgR0xp
c3QgKndhbGs7CisrCisrICAvKiAxLiBDaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIGNvbnRl
eHQuICovCisrICBpZiAocXRkZW11eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkICE9
IE5VTEwpIHsKKysgICAgR1NUX0xPR19PQkpFQ1QgKGVsZW1lbnQsCisrICAgICAgICAiYWxyZWFk
eSBoYXZlIHRoZSBwcm90ZWN0aW9uIGNvbnRleHQsIG5vIG5lZWQgdG8gcmVxdWVzdCBpdCBhZ2Fp
biIpOworKyAgICByZXR1cm47CisrICB9CisrCisrICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVtdXgt
PnByb3RlY3Rpb25fc3lzdGVtX2lkcywgTlVMTCk7CisrICBmaWx0ZXJlZF9zeXNfaWRzID0gZ3N0
X3Byb3RlY3Rpb25fZmlsdGVyX3N5c3RlbXNfYnlfYXZhaWxhYmxlX2RlY3J5cHRvcnMgKAorKyAg
ICAgIChjb25zdCBnY2hhciAqKikgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5wZGF0
YSk7CisrICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lz
dGVtX2lkcywKKysgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPmxlbiAtIDEp
OworKyAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgImRldGVjdGVkICV1IHByb3RlY3Rpb24g
c3lzdGVtcywgd2UgaGF2ZSAiCisrICAgICAgImRlY3J5cHRvcnMgZm9yICV1IG9mIHRoZW0sIHJ1
bm5pbmcgY29udGV4dCByZXF1ZXN0IiwKKysgICAgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3Rl
bV9pZHMtPmxlbiwgZ19zdHJ2X2xlbmd0aCAoZmlsdGVyZWRfc3lzX2lkcykpOworKworKyAgaWYg
KHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUubGVuZ3RoKSB7CisrICAgIEdT
VF9UUkFDRV9PQkpFQ1QgKHF0ZGVtdXgsICJ1c2luZyBzdHJlYW0gZXZlbnQgcXVldWUsIGxlbmd0
aCAldSIsCisrICAgICAgICBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlLmxl
bmd0aCk7CisrICAgIHdhbGsgPSBzdHJlYW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVl
LnRhaWw7CisrICB9IGVsc2UgeworKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAidXNp
bmcgZGVtdXhlciBldmVudCBxdWV1ZSwgbGVuZ3RoICV1IiwKKysgICAgICAgIHF0ZGVtdXgtPnBy
b3RlY3Rpb25fZXZlbnRfcXVldWUubGVuZ3RoKTsKKysgICAgd2FsayA9IHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fZXZlbnRfcXVldWUudGFpbDsKKysgIH0KKysKKysgIGdfdmFsdWVfaW5pdCAoJmV2ZW50
X2xpc3QsIEdTVF9UWVBFX0xJU1QpOworKyAgZm9yICg7IHdhbGs7IHdhbGsgPSBnX2xpc3RfcHJl
dmlvdXMgKHdhbGspKSB7CisrICAgIEdWYWx1ZSAqZXZlbnRfdmFsdWUgPSBnX25ldzAgKEdWYWx1
ZSwgMSk7CisrICAgIGdfdmFsdWVfaW5pdCAoZXZlbnRfdmFsdWUsIEdTVF9UWVBFX0VWRU5UKTsK
KysgICAgZ192YWx1ZV9zZXRfYm94ZWQgKGV2ZW50X3ZhbHVlLCB3YWxrLT5kYXRhKTsKKysgICAg
Z3N0X3ZhbHVlX2xpc3RfYXBwZW5kX2FuZF90YWtlX3ZhbHVlICgmZXZlbnRfbGlzdCwgZXZlbnRf
dmFsdWUpOworKyAgfQorKworKyAgLyogIDJhKSBRdWVyeSBkb3duc3RyZWFtIHdpdGggR1NUX1FV
RVJZX0NPTlRFWFQgZm9yIHRoZSBjb250ZXh0IGFuZAorKyAgICogICAgICBjaGVjayBpZiBkb3du
c3RyZWFtIGFscmVhZHkgaGFzIGEgY29udGV4dCBvZiB0aGUgc3BlY2lmaWMgdHlwZQorKyAgICog
IDJiKSBRdWVyeSB1cHN0cmVhbSBhcyBhYm92ZS4KKysgICAqLworKyAgcXVlcnkgPSBnc3RfcXVl
cnlfbmV3X2NvbnRleHQgKCJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIik7Cisr
ICBzdCA9IGdzdF9xdWVyeV93cml0YWJsZV9zdHJ1Y3R1cmUgKHF1ZXJ5KTsKKysgIGdzdF9zdHJ1
Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwgR19UWVBFX1VJTlQsIHN0cmVhbS0+dHJhY2tfaWQs
CisrICAgICAgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiLCBHX1RZUEVfU1RSViwgZmlsdGVy
ZWRfc3lzX2lkcywgTlVMTCk7CisrICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJzdHJl
YW0tZW5jcnlwdGlvbi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7CisrICBpZiAoZ3N0X3F0ZGVtdXhf
cnVuX3F1ZXJ5IChlbGVtZW50LCBxdWVyeSwgR1NUX1BBRF9TUkMpKSB7CisrICAgIGdzdF9xdWVy
eV9wYXJzZV9jb250ZXh0IChxdWVyeSwgJmN0eHQpOworKyAgICBHU1RfSU5GT19PQkpFQ1QgKGVs
ZW1lbnQsICJmb3VuZCBjb250ZXh0ICglcCkgaW4gZG93bnN0cmVhbSBxdWVyeSIsIGN0eHQpOwor
KyAgICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCAoZWxlbWVudCwgY3R4dCk7CisrICB9IGVsc2Ug
aWYgKGdzdF9xdGRlbXV4X3J1bl9xdWVyeSAoZWxlbWVudCwgcXVlcnksIEdTVF9QQURfU0lOSykp
IHsKKysgICAgZ3N0X3F1ZXJ5X3BhcnNlX2NvbnRleHQgKHF1ZXJ5LCAmY3R4dCk7CisrICAgIEdT
VF9JTkZPX09CSkVDVCAoZWxlbWVudCwgImZvdW5kIGNvbnRleHQgKCVwKSBpbiB1cHN0cmVhbSBx
dWVyeSIsIGN0eHQpOworKyAgICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCAoZWxlbWVudCwgY3R4
dCk7CisrICB9IGVsc2UgeworKyAgICAvKiAzKSBQb3N0IGEgR1NUX01FU1NBR0VfTkVFRF9DT05U
RVhUIG1lc3NhZ2Ugb24gdGhlIGJ1cyB3aXRoCisrICAgICAqICAgIHRoZSByZXF1aXJlZCBjb250
ZXh0IHR5cGUgYW5kIGFmdGVyd2FyZHMgY2hlY2sgaWYgYQorKyAgICAgKiAgICB1c2FibGUgY29u
dGV4dCB3YXMgc2V0IG5vdyBhcyBpbiAxKS4gVGhlIG1lc3NhZ2UgY291bGQKKysgICAgICogICAg
YmUgaGFuZGxlZCBieSB0aGUgcGFyZW50IGJpbnMgb2YgdGhlIGVsZW1lbnQgYW5kIHRoZQorKyAg
ICAgKiAgICBhcHBsaWNhdGlvbi4KKysgICAgICovCisrICAgIEdzdE1lc3NhZ2UgKm1zZzsKKysK
KysgICAgR1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAicG9zdGluZyBuZWVkIGNvbnRleHQgbWVz
c2FnZSIpOworKyAgICBtc2cgPSBnc3RfbWVzc2FnZV9uZXdfbmVlZF9jb250ZXh0IChHU1RfT0JK
RUNUX0NBU1QgKGVsZW1lbnQpLAorKyAgICAgICAgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1z
eXN0ZW0taWQiKTsKKysgICAgc3QgPSAoR3N0U3RydWN0dXJlICopIGdzdF9tZXNzYWdlX2dldF9z
dHJ1Y3R1cmUgKG1zZyk7CisrICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzdCwgInRyYWNrLWlkIiwg
R19UWVBFX1VJTlQsIHN0cmVhbS0+dHJhY2tfaWQsCisrICAgICAgICAic3RyZWFtLWVuY3J5cHRp
b24tc3lzdGVtcyIsIEdfVFlQRV9TVFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKKysgICAg
Z3N0X3N0cnVjdHVyZV9zZXRfdmFsdWUgKHN0LCAic3RyZWFtLWVuY3J5cHRpb24tZXZlbnRzIiwg
JmV2ZW50X2xpc3QpOworKyAgICBnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UgKGVsZW1lbnQsIG1z
Zyk7CisrICB9CisrCisrICBnX3N0cmZyZWV2IChmaWx0ZXJlZF9zeXNfaWRzKTsKKysgIGdfdmFs
dWVfdW5zZXQgKCZldmVudF9saXN0KTsKKysgIGdzdF9xdWVyeV91bnJlZiAocXVlcnkpOworK30K
KysKKytzdGF0aWMgZ2Jvb2xlYW4KKyBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVkX2Nh
cHMgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBRdERlbXV4U3RyZWFtICogc3RyZWFtKQor
IHsKKyAgIEdzdFN0cnVjdHVyZSAqczsKKy0gIGNvbnN0IGdjaGFyICpzZWxlY3RlZF9zeXN0ZW07
CisrICBjb25zdCBnY2hhciAqc2VsZWN0ZWRfc3lzdGVtID0gTlVMTDsKKyAKKyAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChxdGRlbXV4ICE9IE5VTEwsIEZBTFNFKTsKKyAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChzdHJlYW0gIT0gTlVMTCwgRkFMU0UpOworQEAgLTc3MDgsMTcgKzc4NzIsNDEgQEAg
Z3N0X3F0ZGVtdXhfY29uZmlndXJlX3Byb3RlY3RlZF9jYXBzIChHc3RRVERlbXV4ICogcXRkZW11
eCwKKyAgICAgICAgICJjZW5jIHByb3RlY3Rpb24gc3lzdGVtIGluZm9ybWF0aW9uIGhhcyBiZWVu
IGZvdW5kIik7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKy0gIGdfcHRyX2FycmF5X2FkZCAo
cXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKKy0gIHNlbGVjdGVkX3N5c3Rl
bSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKChjb25zdCBnY2hhciAqKikKKy0gICAg
ICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMtPnBkYXRhKTsKKy0gIGdfcHRyX2FycmF5
X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLAorLSAgICAgIHF0
ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+bGVuIC0gMSk7CisrCisrICBnc3RfcXRkZW11
eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dCAocXRkZW11eCwgc3RyZWFtKTsKKysgIGlmIChx
dGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgIT0gTlVMTCkgeworKyAgICBj
b25zdCBnY2hhciAqcHJlZmVycmVkX3N5c3RlbV9hcnJheVtdID0KKysgICAgICAgIHsgcXRkZW11
eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkLCBOVUxMIH07CisrCisrICAgIHNlbGVj
dGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKHByZWZlcnJlZF9zeXN0
ZW1fYXJyYXkpOworKworKyAgICBpZiAoc2VsZWN0ZWRfc3lzdGVtKSB7CisrICAgICAgR1NUX1RS
QUNFX09CSkVDVCAocXRkZW11eCwgInNlbGVjdGVkIHByZWZlcnJlZCBzeXN0ZW0gJXMiLAorKyAg
ICAgICAgICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICB9
IGVsc2UgeworKyAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAocXRkZW11eCwgImNvdWxkIG5vdCBz
ZWxlY3QgcHJlZmVycmVkIHN5c3RlbSAlcyAiCisrICAgICAgICAgICJiZWNhdXNlIHRoZXJlIGlz
IG5vIGF2YWlsYWJsZSBkZWNyeXB0b3IiLAorKyAgICAgICAgICBxdGRlbXV4LT5wcmVmZXJyZWRf
cHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICB9CisrICB9CisrCisrICBpZiAoIXNlbGVjdGVk
X3N5c3RlbSkgeworKyAgICBnX3B0cl9hcnJheV9hZGQgKHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lz
dGVtX2lkcywgTlVMTCk7CisrICAgIHNlbGVjdGVkX3N5c3RlbSA9IGdzdF9wcm90ZWN0aW9uX3Nl
bGVjdF9zeXN0ZW0gKChjb25zdCBnY2hhciAqKikKKysgICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rp
b25fc3lzdGVtX2lkcy0+cGRhdGEpOworKyAgICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXggKHF0
ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcywKKysgICAgICAgIHF0ZGVtdXgtPnByb3RlY3Rp
b25fc3lzdGVtX2lkcy0+bGVuIC0gMSk7CisrICB9CisrCisgICBpZiAoIXNlbGVjdGVkX3N5c3Rl
bSkgeworICAgICBHU1RfRVJST1JfT0JKRUNUIChxdGRlbXV4LCAic3RyZWFtIGlzIHByb3RlY3Rl
ZCwgYnV0IG5vICIKKyAgICAgICAgICJzdWl0YWJsZSBkZWNyeXB0b3IgZWxlbWVudCBoYXMgYmVl
biBmb3VuZCIpOworICAgICByZXR1cm4gRkFMU0U7CisgICB9CisgCisrICBHU1RfREVCVUdfT0JK
RUNUIChxdGRlbXV4LCAic2VsZWN0ZWQgcHJvdGVjdGlvbiBzeXN0ZW0gaXMgJXMiLAorKyAgICAg
IHNlbGVjdGVkX3N5c3RlbSk7CisrCisgICBzID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoc3Ry
ZWFtLT5jYXBzLCAwKTsKKyAgIGlmICghZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSAocywgImFwcGxp
Y2F0aW9uL3gtY2VuYyIpKSB7CisgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLAorZGlmZiAtLWdp
dCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IGVi
ZDcyNTg3MS4uYjNkNjRhNGU4IDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmgKKysr
KyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtMTU0LDYgKzE1NCw3IEBAIHN0cnVjdCBfR3N0
UVREZW11eCB7CisgICBndWludDY0IGNlbmNfYXV4X2luZm9fb2Zmc2V0OworICAgZ3VpbnQ4ICpj
ZW5jX2F1eF9pbmZvX3NpemVzOworICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7Cisr
ICBnY2hhciAqcHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkOworIAorIAorICAgLyoKKy0t
IAorMi4xMS4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZv
LWluLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVt
dXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8taW4ucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTUwMjFjY2JjMDRlMTBjNjRlYjFlNGFiOTY2OTNiYmYwODg4MDk2ZAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOC1xdGRl
bXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoCkBA
IC0wLDAgKzEsNTAgQEAKK0Zyb20gNzg1NTliYzVkYjM0OTVmMTJiMDI4NGU0YmU1ZmM4YmZjZDcw
NDFlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIw
T2NhPUMzPUIxYT0yMEdvbno9QzM9QTFsZXo/PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorRGF0ZTog
TW9uLCAyNCBBcHIgMjAxNyAxNzoyMjowMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBxdGRlbXV4
OiBhbHNvIHB1c2ggYnVmZmVycyB3aXRob3V0IGVuY3J5cHRpb24gaW5mbyBpbnN0ZWFkIG9mCisg
ZHJvcHBpbmcgdGhlbQorCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDI2ICsrKysrKysr
KysrKy0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDE0
IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3Qv
aXNvbXA0L3F0ZGVtdXguYworaW5kZXggNmIwYzgyMC4uN2I3MTIzNyAxMDA2NDQKKy0tLSBhL2dz
dC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTU0MjEs
MjAgKzU0MjEsMTggQEAgZ3N0X3F0ZGVtdXhfZGVjb3JhdGVfYW5kX3B1c2hfYnVmZmVyIChHc3RR
VERlbXV4ICogcXRkZW11eCwKKyAgICAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5w
YWQsIGV2ZW50KTsKKyAgICAgfQorIAorLSAgICBpZiAoaW5mby0+Y3J5cHRvX2luZm8gPT0gTlVM
TCkgeworLSAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJjZW5jIG1ldGFkYXRhIGhh
c24ndCBiZWVuIHBhcnNlZCB5ZXQiKTsKKy0gICAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOwor
LSAgICAgIGdvdG8gZXhpdDsKKy0gICAgfQorLQorLSAgICBpbmRleCA9IHN0cmVhbS0+c2FtcGxl
X2luZGV4IC0gKHN0cmVhbS0+bl9zYW1wbGVzIC0gaW5mby0+Y3J5cHRvX2luZm8tPmxlbik7Cist
ICAgIGlmIChHX0xJS0VMWSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGluZm8tPmNyeXB0b19pbmZv
LT5sZW4pKSB7CistICAgICAgLyogc3RlYWwgc3RydWN0dXJlIGZyb20gYXJyYXkgKi8KKy0gICAg
ICBjcnlwdG9faW5mbyA9IGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5k
ZXgpOworLSAgICAgIGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgp
ID0gTlVMTDsKKy0gICAgICBHU1RfTE9HX09CSkVDVCAocXRkZW11eCwgImF0dGFjaGluZyBjZW5j
IG1ldGFkYXRhIFsldV0iLCBpbmRleCk7CistICAgICAgaWYgKCFjcnlwdG9faW5mbyB8fCAhZ3N0
X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkKKy0gICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJmYWlsZWQgdG8gYXR0YWNoIGNlbmMgbWV0YWRh
dGEgdG8gYnVmZmVyIik7CisrICAgIGlmIChpbmZvLT5jcnlwdG9faW5mbyA9PSBOVUxMKQorKyAg
ICAgIEdTVF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJjZW5jIG1ldGFkYXRhIGhhc24ndCBiZWVu
IHBhcnNlZCB5ZXQsIHB1c2hpbmcgYnVmZmVyIGFzIGlmIGl0IHdhc24ndCBlbmNyeXB0ZWQiKTsK
KysgICAgZWxzZSB7CisrICAgICAgaW5kZXggPSBzdHJlYW0tPnNhbXBsZV9pbmRleCAtIChzdHJl
YW0tPm5fc2FtcGxlcyAtIGluZm8tPmNyeXB0b19pbmZvLT5sZW4pOworKyAgICAgIGlmIChHX0xJ
S0VMWSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGluZm8tPmNyeXB0b19pbmZvLT5sZW4pKSB7Cisr
ICAgICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBhcnJheSAqLworKyAgICAgICAgY3J5cHRv
X2luZm8gPSBnX3B0cl9hcnJheV9pbmRleCAoaW5mby0+Y3J5cHRvX2luZm8sIGluZGV4KTsKKysg
ICAgICAgIGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywgaW5kZXgpID0gTlVM
TDsKKysgICAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0YWNoaW5nIGNlbmMgbWV0
YWRhdGEgWyV1XSIsIGluZGV4KTsKKysgICAgICAgIGlmICghY3J5cHRvX2luZm8gfHwgIWdzdF9i
dWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSAoYnVmLCBjcnlwdG9faW5mbykpCisrICAgICAgICAg
IEdTVF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJmYWlsZWQgdG8gYXR0YWNoIGNlbmMgbWV0YWRh
dGEgdG8gYnVmZmVyIik7CisrICAgICAgfQorICAgICB9CisgICB9CisgCistLSAKKzEuOC4zLjIK
KwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LXF0
ZGVtdXgtc2VsZWN0LXRoZS1wcmVmZXJyZWQtcHJvdGVjdGlvbi1zeXN0ZW0tZXZlbi0ucGF0Y2gg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDktcXRkZW11eC1zZWxlY3Qt
dGhlLXByZWZlcnJlZC1wcm90ZWN0aW9uLXN5c3RlbS1ldmVuLS5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NzgxMzYyY2Y0NTU0ZTM3MmRhNGFkM2MzOTEwNWFkYzMyOGQxOGE0Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LXF0ZGVtdXgtc2VsZWN0
LXRoZS1wcmVmZXJyZWQtcHJvdGVjdGlvbi1zeXN0ZW0tZXZlbi0ucGF0Y2gKQEAgLTAsMCArMSw0
MCBAQAorRnJvbSA3N2YxYWQ5NWJlYjRjZWY2YTQ1ODYxZTk3OTE2ZDZhODRkYzg2OTBiIE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFh
PTIwR29uej1DMz1BMWxlej89IDxlb2NhbmhhQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE1IE1h
eSAyMDE3IDEwOjM4OjU3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIHF0ZGVtdXg6IHNlbGVjdCB0
aGUgcHJlZmVycmVkIHByb3RlY3Rpb24gc3lzdGVtIGV2ZW4gaWYgbm90CisgYXZhaWxhYmxlCisK
Ky0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgMTAgKysrKysrKysrKworIDEgZmlsZSBjaGFu
Z2VkLCAxMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXgu
YyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA3YjcxMjM3Li5iZmJjMmI1IDEwMDY0NAor
LS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitA
QCAtNzY4MiwxMiArNzY4MiwyMiBAQCBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVkX2Nh
cHMgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgfQorIAorICAgaWYgKCFzZWxlY3RlZF9zeXN0
ZW0pIHsKKysgICAgR1NUX1dBUk5JTkdfT0JKRUNUKHF0ZGVtdXgsICJzZWxlY3RpbmcgJXMgYXMg
cHJlZmVycmVkIHByb3RlY3Rpb24gc3lzdGVtIGV2ZW4gdGhvdWdoICIKKysgICAgICAgICAgICAi
aXQgd2Fzbid0IGFtb25nIHRoZSBhdmFpbGFibGUgcHJvdGVjdGlvbiBzeXN0ZW1zIiwgcXRkZW11
eC0+cHJlZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkKTsKKysgICAgY29uc3QgZ2NoYXIgKnBy
ZWZlcnJlZF9zeXN0ZW1fYXJyYXlbXSA9CisrICAgICAgICAgICAgICAgIHsgcXRkZW11eC0+cHJl
ZmVycmVkX3Byb3RlY3Rpb25fc3lzdGVtX2lkLCBOVUxMIH07CisrICAgIHNlbGVjdGVkX3N5c3Rl
bSA9IGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0gKHByZWZlcnJlZF9zeXN0ZW1fYXJyYXkp
OworKyAgfQorKworKyAgLyoKKysgIGlmICghc2VsZWN0ZWRfc3lzdGVtKSB7CisgICAgIGdfcHRy
X2FycmF5X2FkZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKKyAgICAg
c2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoKGNvbnN0IGdj
aGFyICoqKQorICAgICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5wZGF0YSk7
CisgICAgIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0
ZW1faWRzLAorICAgICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAx
KTsKKyAgIH0KKysgICovCisgCisgICBpZiAoIXNlbGVjdGVkX3N5c3RlbSkgeworICAgICBHU1Rf
RVJST1JfT0JKRUNUIChxdGRlbXV4LCAic3RyZWFtIGlzIHByb3RlY3RlZCwgYnV0IG5vICIKKy0t
IAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4
LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNhNjBkYjQ3NzJiMjc3M2EyMWNkMDEzNDA0YjRiZGVlYjEwZDZm
MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFt
cy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICsw
LDAgQEAKLUZyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0OCBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgotRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICswMjAwCi1T
dWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0aCBmaXJz
dCBtb29mIGZvcgotIGZyYWdtZW50ZWQgZm9ybWF0IgotCi1UaGlzIHJldmVydHMgY29tbWl0IGQ4
YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCi0tLS0KLSBnc3QvaXNvbXA0
L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KLSAyIGZpbGVzIGNoYW5n
ZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0
L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggMzliZTE2My4u
OTYzNmI0YiAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguYwotQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RR
VERlbXV4ICogcXRkZW11eCkKLSAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFURV9JTklU
SUFMOwotICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7Ci0gICBxdGRlbXV4LT5wb3N0ZWRf
cmVkaXJlY3QgPSBGQUxTRTsKLS0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
Ci0gICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OwotICAgcXRkZW11eC0+dG9kcm9wID0gMDsK
LSAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7Ci1AQCAtMjA0OSw3ICsy
MDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVh
biBoYXJkKQotICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2FwcywgTlVM
TCk7Ci0gICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7Ci0gICAgIHF0ZGVtdXgtPmdvdF9tb292
ID0gRkFMU0U7Ci0tICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7Ci0gICB9
IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7Ci0gICAgIGdzdF9mbG93X2NvbWJpbmVyX3Jl
c2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOwotICAgICBmb3IgKG4gPSAwOyBuIDwgcXRkZW11
eC0+bl9zdHJlYW1zOyBuKyspCi1AQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVtdXhfcHJv
Y2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQotICAgICAg
ICAgICAgICZmb3VyY2MpOwotICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9vdikgewot
ICAgICAgICAgICBnaW50IG47Ci0tICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVzID0gRkFM
U0U7Ci0gCi0gICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2UgY291bGQg
dHJ5IHRvIHNjYW4gZm9yIG1vcmUKLSAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0aGUgdGhl
IG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCi1AQCAtNjEzNiwyNyArNjEzMywxOSBAQCBnc3Rf
cXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9y
Y2UpCi0gICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+bW9vdl9u
b2RlKTsKLSAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKLSAgICAgICAg
ICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOwotKyAgICAgICAgICAgIGlmICgh
ZGVtdXgtPmdvdF9tb292KQotKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOwotKyAgICAgICAgICAgIGVsc2UgewotIAotLSAgICAgICAgICAgIGZvciAobiA9IDA7
IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAgICAgICAgIFF0RGVtdXhTdHJl
YW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOwotLSAgICAgICAgICAgICAgZ290X3NhbXBs
ZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg
ICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKLS0gICAgICAgICAg
ICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7Ci0tICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhw
b3NlX3N0cmVhbXMgKGRlbXV4KTsKLS0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg
ICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAg
ICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLS0g
ICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3Ry
ZWFtKTsKLS0gICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8
IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgewotKyAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFt
ICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLSsKLSsgICAgICAgICAgICAgICAgZ3N0X3F0
ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7Ci0gICAgICAgICAgICAgICB9
Ci0tICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAo
ZGVtdXgpOwotLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2Nv
bmZpZ3VyZSA9IFRSVUU7Ci0gICAgICAgICAgICAgfQotIAotICAgICAgICAgICAgIGRlbXV4LT5n
b3RfbW9vdiA9IFRSVUU7Ci0rICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5k
aW5nX3NlZ21lbnQgKGRlbXV4KTsKLSAKLSAgICAgICAgICAgICAvKiBmcmFnbWVudGVkIHN0cmVh
bXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCi0gICAgICAgICAgICAg
aWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgewotQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdzdF9xdGRl
bXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkK
LSAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOwotICAgICAgICAgICAgIEdzdENsb2NrVGlt
ZSBwcmV2X3B0czsKLSAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OwotLSAgICAgICAg
ICAgIGdpbnQgbjsKLSAKLSAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIlBh
cnNpbmcgW21vb2ZdIik7Ci0gCi1AQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRkZW11eF9w
cm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCi0gICAg
ICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKLSAgICAgICAgICAgICAgIGdvdG8gZG9u
ZTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhw
b3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3Yg
Ci0tICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBiZSBleHBv
c2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCi0tICAgICAgICAgICAg
aWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsKLS0gICAg
ICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKLS0gICAgICAgICAgICAgICAgaWYgKCFk
ZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7Ci0tICAgICAgICAgICAgICAgICAgR3N0U2VnbWVu
dCBzZWdtZW50OwotLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZzZWdtZW50
LCBHU1RfRk9STUFUX1RJTUUpOwotLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qg
KGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOwotLSAgICAgICAgICAgICAgICAgIGRl
bXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50
KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9z
dHJlYW1zIChkZW11eCk7Ci0tICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg
ICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7Ci0tICAgICAgICAgICAg
ICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07Ci0tICAgICAg
ICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7
Ci0tICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBl
eHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9v
diAqLwotKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5leHBvc2Vk
KSB7Ci0rICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQpIHsKLSsg
ICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OwotKyAgICAgICAgICAgICAgICBnc3Rf
c2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKLSsgICAgICAgICAgICAg
ICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50Iik7Ci0r
ICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3
X3NlZ21lbnQgKCZzZWdtZW50KTsKLSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgIGdz
dF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7Ci0tICAgICAgICAg
ICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSsgICAgICAgICAgICAgIHF0
ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJEaXNjYXJk
aW5nIFttb29mXSIpOwotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lz
b21wNC9xdGRlbXV4LmgKLWluZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0Ci0tLS0gYS9nc3Qv
aXNvbXA0L3F0ZGVtdXguaAotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLUBAIC04OSw3ICs4
OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7Ci0gICBnYm9vbGVhbiBwb3N0ZWRfcmVkaXJlY3Q7
Ci0gCi0gICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLwotLSAgZ2Jvb2xlYW4gcGVuZGluZ19j
b25maWd1cmU7Ci0gICBndWludCBuZWVkZWRieXRlczsKLSAgIGd1aW50IHRvZHJvcDsKLSAgIEdz
dEFkYXB0ZXIgKmFkYXB0ZXI7Ci0tLSAKLTIuOC4wLnJjMwotCmRpZmYgLS1naXQgYS9Ub29scy93
cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRj
aCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTlkZDk3Zjc5MTZm
MDg3Mzc5ZTA4ZmM2OGFhMGRhMjEyOTU4Yzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAg
QEAKLUZyb20gNDZkM2UwZmFhOTIyNjQzMDk0YTVlNDZhMzJlNGY4MmY3NzRhZTc3MiBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIwT2NhPUMzPUIxYT0y
MEdvbno9QzM9QTFsZXo/PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgotRGF0ZTogVHVlLCAxMCBOb3Yg
MjAxNSAxMzowOTowMCArMDEwMAotU3ViamVjdDogW1BBVENIXSBVc2UgdGhlIHRmZHQgZGVjb2Rl
IHRpbWUgd2hlbiBpdCdzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50Ci0gdGhhbiB0aGUgdGltZSBp
biB0aGUgbGFzdCBzYW1wbGUgaWYgYWx3YXlzLWhvbm9yLXRmZHQgaXMgZW5hYmxlZAotCi1odHRw
czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MjMwCi0tLS0KLSBnc3Qv
aXNvbXA0L3F0ZGVtdXguYyB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKLSBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxICsKLSAyIGZpbGVz
IGNoYW5nZWQsIDczIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IDg4MDU5NWUuLmQ4YjU0ZjAgMTAw
NjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4
LmMKLUBAIC01MzUsNiArNTM1LDExIEBAIHN0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2FwcGVuZF9w
cm90ZWN0aW9uX3N5c3RlbV9pZCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgIGNvbnN0IGdj
aGFyICogaWQpOwotIHN0YXRpYyB2b2lkIHF0ZGVtdXhfZ3N0X3N0cnVjdHVyZV9mcmVlIChHc3RT
dHJ1Y3R1cmUgKiBnc3RzdHJ1Y3R1cmUpOwotIAotK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X3Nl
dF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKLSsgICAgY29uc3Qg
R1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKLStzdGF0aWMgdm9pZCBnc3RfcXRk
ZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCi0rICAg
IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Ci0rCi0gc3RhdGljIHZvaWQKLSBn
c3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3MgKiBrbGFzcykKLSB7Ci1AQCAt
NTQ2LDggKzU1MSwyMSBAQCBnc3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3Mg
KiBrbGFzcykKLSAKLSAgIHBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAo
a2xhc3MpOwotIAotKyAgZ29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVtdXhf
c2V0X3Byb3BlcnR5OwotKyAgZ29iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVt
dXhfZ2V0X3Byb3BlcnR5OwotKwotICAgZ29iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IGdzdF9xdGRl
bXV4X2Rpc3Bvc2U7Ci0gCi0rIC8qKgotKyAgICogR3N0UXREZW11eDo6YWx3YXlzLWhvbm9yLXRm
ZHQ6Ci0rICAgKgotKyAgICogUmVxdWVzdHMgdGhlIGRlbXV4ZXIgdG8gcmVzcGVjdCB3aGF0IHRo
ZSBURkRUIGF0b20gc2F5cyBpbiBvcmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3Rh
bXBzLiBEZWZhdWx0cyB0byBGQUxTRS4KLSsgICAqLwotKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eSAoZ29iamVjdF9jbGFzcywgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVCwKLSsgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbiAoImFsd2F5cy1ob25vci10ZmR0IiwgIkFsd2F5cyBob25v
ciBURkRUIiwKLSsgICAgICAgICAgIldoZW4gZW5hYmxlZCwgVEZEVCBhdG9tIHdpbGwgYWx3YXlz
IGJlIHJlc3BlY3RlZCBpbiBvcmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3RhbXBz
IiwKLSsgICAgICAgICAgRkFMU0UsIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNf
U1RSSU5HUykpOwotKwotICAgZ3N0ZWxlbWVudF9jbGFzcy0+Y2hhbmdlX3N0YXRlID0gR1NUX0RF
QlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSk7Ci0gI2lmIDAKLSAgIGdzdGVs
ZW1lbnRfY2xhc3MtPnNldF9pbmRleCA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9z
ZXRfaW5kZXgpOwotQEAgLTYxMSw2ICs2MjksNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERl
bXV4ICogcXRkZW11eCkKLSAgIHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOwot
ICAgcXRkZW11eC0+Y2VuY19hdXhfc2FtcGxlX2NvdW50ID0gMDsKLSAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcyA9IE5VTEw7Ci0rICBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9
IEZBTFNFOwotICAgZ19xdWV1ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1
ZSk7Ci0gICBnc3Rfc2VnbWVudF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9U
SU1FKTsKLSAgIHF0ZGVtdXgtPmZsb3djb21iaW5lciA9IGdzdF9mbG93X2NvbWJpbmVyX25ldyAo
KTsKLUBAIC02MzksNiArNjU4LDQyIEBAIGdzdF9xdGRlbXV4X2Rpc3Bvc2UgKEdPYmplY3QgKiBv
YmplY3QpCi0gfQotIAotIHN0YXRpYyB2b2lkCi0rZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAotKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQotK3sKLSsgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1Rf
UVRERU1VWCAob2JqZWN0KTsKLSsKLSsgIHN3aXRjaCAocHJvcF9pZCkgewotKyAgICBjYXNlIFBS
T1BfQUxXQVlTX0hPTk9SX1RGRFQ6Ci0rICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsK
LSsgICAgICBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4g
KHZhbHVlKTsKLSsgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAocXRkZW11eCk7Ci0rICAgICAgYnJl
YWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZ
X0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSsgICAgICBicmVhazsKLSsgIH0KLSt9Ci0r
Ci0rc3RhdGljIHZvaWQKLStnc3RfcXRkZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqIHZhbHVlLAotKyAgICBHUGFyYW1TcGVjICogcHNw
ZWMpCi0rewotKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmplY3QpOwot
KwotKyAgc3dpdGNoIChwcm9wX2lkKSB7Ci0rICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9OT1JfVEZE
VDoKLSsgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOwotKyAgICAgIGdfdmFsdWVfc2V0
X2Jvb2xlYW4gKHZhbHVlLCBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCk7Ci0rICAgICAgR1NU
X09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0Ogot
KyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lk
LCBwc3BlYyk7Ci0rICAgICAgYnJlYWs7Ci0rICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0gZ3N0
X3F0ZGVtdXhfcG9zdF9ub19wbGF5YWJsZV9zdHJlYW1fZXJyb3IgKEdzdFFURGVtdXggKiBxdGRl
bXV4KQotIHsKLSAgIGlmIChxdGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QpIHsKLUBAIC0yOTk1LDYg
KzMwNTAsMTYgQEAgcXRkZW11eF9wYXJzZV90cnVuIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0
Qnl0ZVJlYWRlciAqIHRydW4sCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5f
c2FtcGxlcyAtIDFdLnRpbWVzdGFtcCArCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJl
YW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uOwotIAotKyAgICAgIC8qIElmIHdlJ3JlIGFsd2F5
cyBob25vcmluZyBURkRUIGFuZCB0aGVyZSdzIGEgc2lnbmlmaWNhdGl2ZSBkaWZmZXJlbmNlCi0r
ICAgICAgICogYmV0d2VlbiB0aGUgZGVjb2RlX3RzIGFuZCB0aGUgdGltZXN0YW1wLCBwcmVmZXIg
ZGVjb2RlX3RzICovCi0rICAgICAgaWYgKHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID09IFRS
VUUKLSsgICAgICAgICAgJiYgYWJzIChkZWNvZGVfdHMgLSB0aW1lc3RhbXApID4KLSsgICAgICAg
ICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0uZHVyYXRpb24pIHsKLSsg
ICAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwKLSsgICAgICAgICAgICAiZGVjb2RlX3Rz
IGlzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IGZyb20gdGltZXN0YW1wLCB1c2luZyBkZWNvZGVf
dHMiKTsKLSsgICAgICAgIHRpbWVzdGFtcCA9IGRlY29kZV90czsKLSsgICAgICB9Ci0rCi0gICAg
ICAgZ3N0X3RzID0gUVRTVFJFQU1USU1FX1RPX0dTVFRJTUUgKHN0cmVhbSwgdGltZXN0YW1wKTsK
LSAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsICJmaXJzdCBzYW1wbGUgdHMgJSIgR1NU
X1RJTUVfRk9STUFUCi0gICAgICAgICAgICIgKGV4dGVuZHMgcHJldmlvdXMgc2FtcGxlcykiLCBH
U1RfVElNRV9BUkdTIChnc3RfdHMpKTsKLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXgu
aCBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1pbmRleCA1M2JkMDcxLi5lY2YwYzYzIDEwMDY0NAot
LS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1A
QCAtMTU0LDEyICsxNTQsMjAgQEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKLSAgIGd1aW50OCAqY2Vu
Y19hdXhfaW5mb19zaXplczsKLSAgIGd1aW50MzIgY2VuY19hdXhfc2FtcGxlX2NvdW50OwotIAot
KyAgZ2Jvb2xlYW4gYWx3YXlzX2hvbm9yX3RmZHQ7Ci0gfTsKLSAKLSBzdHJ1Y3QgX0dzdFFURGVt
dXhDbGFzcyB7Ci0gICBHc3RFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwotIH07Ci0gCi0rLyog
cHJvcHMgKi8KLStlbnVtCi0rewotKyAgUFJPUF8wLAotKyAgUFJPUF9BTFdBWVNfSE9OT1JfVEZE
VAotK307Ci0rCi0gR1R5cGUgZ3N0X3F0ZGVtdXhfZ2V0X3R5cGUgKHZvaWQpOwotIAotIEdfRU5E
X0RFQ0xTCi0tLSAKLTIuNi4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdHJl
YW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3RlbS1pZHMu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVk
LWZ1bmN0aW9uLXRvLWZpbHRlci1zeXN0ZW0taWRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MmVmNmMx
MzJjNjMxNDAyMjQ0ZjcyNjI3MzBkNmRiNDEzODFkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVkLWZ1bmN0aW9uLXRv
LWZpbHRlci1zeXN0ZW0taWRzLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKK0Zyb20gNzc3MmViMzUw
NTkxNjgyYjZhMzE1YzhhODdhNTgxMzFmNzMxZjFkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
K0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0
ZTogV2VkLCAxOSBPY3QgMjAxNiAxNjo0NDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBwcm90
ZWN0aW9uOiBhZGRlZCBmdW5jdGlvbiB0byBmaWx0ZXIgc3lzdGVtIGlkcworCitnc3RfcHJvdGVj
dGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycyB0YWtlcyBhbiBhcnJh
eSBvZgorc3RyaW5ncyBhbmQgcmV0dXJucyBhIG5ldyBhcnJheSBvZiBzdHJpbmdzIGZpbHRlcmVk
IGJ5IHRoZSBhdmFpYmxlCitkZWNyeXB0b3JzIGZvciB0aGVtIHNvIHRoZSBvbmVzIHlvdSBnZXQg
YXJlIHRoZSBvbmVzIHRoYXQgeW91IHNob3VsZCBiZQorYWJsZSB0byBkZWNyeXB0LgorLS0tCisg
Z3N0L2dzdHByb3RlY3Rpb24uYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKworIGdzdC9nc3Rwcm90ZWN0aW9uLmggfCAgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgMzgg
aW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2dzdHByb3RlY3Rpb24uYyBiL2dzdC9n
c3Rwcm90ZWN0aW9uLmMKK2luZGV4IDhlZTUyZWEuLjJkN2U1ZTAgMTAwNjQ0CistLS0gYS9nc3Qv
Z3N0cHJvdGVjdGlvbi5jCisrKysgYi9nc3QvZ3N0cHJvdGVjdGlvbi5jCitAQCAtMTkxLDYgKzE5
MSw0MiBAQCBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtIChjb25zdCBnY2hhciAqKiBzeXN0
ZW1faWRlbnRpZmllcnMpCisgICByZXR1cm4gcmV0dmFsOworIH0KKyAKKytnY2hhciAqKgorK2dz
dF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3JzIChjb25z
dCBnY2hhciAqKgorKyAgICBzeXN0ZW1faWRlbnRpZmllcnMpCisreworKyAgR0xpc3QgKmRlY3J5
cHRvcnMsICp3YWxrOworKyAgZ2NoYXIgKipyZXR2YWw7CisrICBndWludCBpID0gMCwgZGVjcnlw
dG9yc19udW1iZXI7CisrCisrICBkZWNyeXB0b3JzID0KKysgICAgICBnc3RfZWxlbWVudF9mYWN0
b3J5X2xpc3RfZ2V0X2VsZW1lbnRzIChHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9S
LAorKyAgICAgIEdTVF9SQU5LX01BUkdJTkFMKTsKKysKKysgIGRlY3J5cHRvcnNfbnVtYmVyID0g
Z19saXN0X2xlbmd0aCAoZGVjcnlwdG9ycyk7CisrICByZXR2YWwgPSBnX25ldyAoZ2NoYXIgKiwg
ZGVjcnlwdG9yc19udW1iZXIgKyAxKTsKKysKKysgIEdTVF9UUkFDRSAoImZvdW5kICV1IGRlY3J5
dG9ycyIsIGRlY3J5cHRvcnNfbnVtYmVyKTsKKysKKysgIGZvciAod2FsayA9IGRlY3J5cHRvcnM7
IHdhbGs7IHdhbGsgPSBnX2xpc3RfbmV4dCAod2FsaykpIHsKKysgICAgR3N0RWxlbWVudEZhY3Rv
cnkgKmZhY3QgPSAoR3N0RWxlbWVudEZhY3RvcnkgKikgd2Fsay0+ZGF0YTsKKysKKysgICAgY29u
c3QgY2hhciAqZm91bmRfc3lzX2lkID0KKysgICAgICAgIGdzdF9wcm90ZWN0aW9uX2ZhY3Rvcnlf
Y2hlY2sgKGZhY3QsIHN5c3RlbV9pZGVudGlmaWVycyk7CisrICAgIEdTVF9UUkFDRSAoImZhY3Rv
cnkgJXMgaXMgdmFsaWQgZm9yICVzIiwgR1NUX09CSkVDVF9OQU1FIChmYWN0KSwKKysgICAgICAg
IGZvdW5kX3N5c19pZCk7CisrCisrICAgIGlmIChmb3VuZF9zeXNfaWQpIHsKKysgICAgICByZXR2
YWxbaSsrXSA9IGdfc3RyZHVwIChmb3VuZF9zeXNfaWQpOworKyAgICB9CisrICB9CisrICByZXR2
YWxbaV0gPSBOVUxMOworKworKyAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSAoZGVjcnlw
dG9ycyk7CisrCisrICByZXR1cm4gcmV0dmFsOworK30KKysKKyBzdGF0aWMgY29uc3QgZ2NoYXIg
KgorIGdzdF9wcm90ZWN0aW9uX2ZhY3RvcnlfY2hlY2sgKEdzdEVsZW1lbnRGYWN0b3J5ICogZmFj
dCwKKyAgICAgY29uc3QgZ2NoYXIgKiogc3lzdGVtX2lkZW50aWZpZXJzKQorZGlmZiAtLWdpdCBh
L2dzdC9nc3Rwcm90ZWN0aW9uLmggYi9nc3QvZ3N0cHJvdGVjdGlvbi5oCitpbmRleCBmMmY1NGM0
Li45NTk3NmM1IDEwMDY0NAorLS0tIGEvZ3N0L2dzdHByb3RlY3Rpb24uaAorKysrIGIvZ3N0L2dz
dHByb3RlY3Rpb24uaAorQEAgLTY2LDYgKzY2LDggQEAgR3N0UHJvdGVjdGlvbk1ldGEgKmdzdF9i
dWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSAoR3N0QnVmZmVyICogYnVmZmVyLAorICAgICBHc3RT
dHJ1Y3R1cmUgKiBpbmZvKTsKKyAKKyBjb25zdCBnY2hhciAqZ3N0X3Byb3RlY3Rpb25fc2VsZWN0
X3N5c3RlbSAoY29uc3QgZ2NoYXIgKiogc3lzdGVtX2lkZW50aWZpZXJzKTsKKytnY2hhciAqKiBn
c3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycyAoCisr
ICAgIGNvbnN0IGdjaGFyICoqIHN5c3RlbV9pZGVudGlmaWVycyk7CisgCisgR19FTkRfREVDTFMK
KyAjZW5kaWYgLyogX19HU1RfUFJPVEVDVElPTl9NRVRBX0hfXyAqLworLS0gCisyLjEwLjIKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315105</attachid>
            <date>2017-07-11 06:52:21 -0700</date>
            <delta_ts>2017-07-11 06:52:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-174350-20170711155219.patch</filename>
            <type>text/plain</type>
            <size>87722</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzI3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZiMjhlOGYxZmZhYTM4NTg1M2M4NGZlNjg1MWRkODE5
YjQ2Y2QyNi4uOTQ5YzlkNjg1YzUyODIwODkwZTFlY2E4ZDUyOTYzNWZjY2Q5MTk5MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE3LTA3LTExICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV1BFXSBCdW1wIEdTdHJlYW1lciBwYWNrYWdlcyBpbiBqaGJ1aWxkLm1vZHVsZXMg
dG8gMS4xMC41CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQzNTAKKworICAgICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmlndWV6LUNhbHZhci4K
KworICAgICAgICBCdW1wIHRoZSB2YXJpb3VzIEdTdHJlYW1lciBkZXBlbmRlbmNpZXMgbGlzdGVk
IGluIFdQRSdzIEpoYnVpbGQgbW9kdWxlcyBmaWxlCisgICAgICAgIHRvIHRoZSAxLjEwLjUgdmVy
c2lvbi4gT25lIGdzdHJlYW1lciBwYXRjaCBpcyBhZGRlZC4gVGhlIHR3byBnc3QtcGx1Z2lucy1i
YWQKKyAgICAgICAgcGF0Y2hlcyBhcmUgcmVtb3ZlZC4gVGhlIHBhdGNoZXMgZm9yIGdzdC1wbHVn
aW5zLWdvb2QgYXJlIHVwZGF0ZWQsIHJlbW92aW5nCisgICAgICAgIHRoZSBzdGFsZSBvbmVzIGFu
ZCBhZGRpbmcgdGhlIGFkZGl0aW9uYWwgY2hhbmdlcyB0byBxdGRlbXV4LCBzb3VwaHR0cHNyYyBh
bmQKKyAgICAgICAgcnRwYmluIGVsZW1lbnRzIHRoYXQgd2lsbCBoZWxwIHdpdGggdGhlIEVNRXYz
IGRldmVsb3BtZW50LgorCisgICAgICAgICogd3BlL2poYnVpbGQubW9kdWxlczoKKyAgICAgICAg
KiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3BlblNTTC0x
LjEuMC5wYXRjaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0
ZV9rLnBhdGNoOiBSZW1vdmVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtMDAwMy1ydHBiaW4tcmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaDogQWRkZWQuCisgICAg
ICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA1LXNvdXBodHRwc3JjLWNvb2tp
ZS1qYXItYW5kLWNvbnRleHQtcXVlcnktc3VwcG9ydC5wYXRjaDogQWRkZWQuCisgICAgICAgICog
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9y
LWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhv
dXQtZW5jcnlwdGlvbi1pbmZvLWluLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmly
c3QtbW9vZi1mb3ItZnIucGF0Y2g6IFJlbW92ZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2g6IFJlbW92ZWQuCisg
ICAgICAgICogd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1hZGRlZC1mdW5j
dGlvbi10by1maWx0ZXItc3lzdGVtLWlkcy5wYXRjaDogQWRkZWQuCisKIDIwMTctMDctMTAgIEpv
aG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2UgTG9h
ZCBTdGF0aXN0aWNzOiBQcnVuZSBzdGF0aXN0aWNzIGluIG9yZGVycyBvZiBpbXBvcnRhbmNlCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQu
bW9kdWxlcwppbmRleCAzYmNjMWJiODRlMDhjMjI3YmQzNTNjMjRiYmIwYWJlNjliODBmZWRlLi5h
MzQ5YzliNzg5NWVjYTgxNmFkZDQ5YjU4ZWEyYTBiNmE2NzQ2M2ExIDEwMDY0NAotLS0gYS9Ub29s
cy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAg
LTE3OCwxMSArMTc4LDEwIEBACiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2Fn
ZT0ib3JjIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJl
YW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgIDxi
cmFuY2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJz
aW9uPSIxLjEwLjUiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAgICBo
YXNoPSJzaGEyNTY6NWEzNzIyZmI5MzAyZGQ5NzdjMTdjZWQ0MjQwMjkzZGM3NzdjYjcxNmRjOThj
OGNjYTYzZDc1YzI3ZTVlMzEwNyIKLSAgICAgICAgICAgIG1kNXN1bT0iNzExYWRhNzliNjNlNDdh
Yzk2YWRiNGU1NDQ0ZGM5MDgiPgotICAgICAgPHBhdGNoIGZpbGU9ImdzdHJlYW1lci10eXBlZmlu
ZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaCIgc3RyaXA9
IjEiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiYzA2MjQzNjAwODE3ZjYzNzAyOWRhMjlk
MDg5ZDU5MDhkMWQyNjY1NDJmNjhiZjY2MjZhMTBjNWYwNWYxZjFkIj4KKyAgICAgIDxwYXRjaCBm
aWxlPSJnc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVkLWZ1bmN0aW9uLXRvLWZpbHRlci1z
eXN0ZW0taWRzLnBhdGNoIiBzdHJpcD0iMSIvPgogICAgIDwvYnJhbmNoPgogICA8L2F1dG90b29s
cz4KIApAQCAtMTkyLDEwICsxOTEsOSBAQAogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdHJlYW1lciIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2gg
bW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIu
eHoiIHZlcnNpb249IjEuOC4xIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1iYXNl
L2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKICAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxNWE5
ZGU5ODVjZDI2NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkxOTE3Y2I5MDBmMmZh
ZDZmIgotICAgICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3NmU5MTdiYTMwZTI0
ZSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjFjNDAxYTc5YmQxZTQ1MjFjNmVmMWI2NjU3
OWJkZGVkZDkxMzZlMTY0ZTU0NzkyYWFiNGJmY2YzNDg1YmY5YTciLz4KICAgPC9hdXRvdG9vbHM+
CiAKICAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtZ29vZCIgYXV0b2dlbi1zaD0iY29uZmln
dXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1zb3VwIC0tZGlz
YWJsZS1ndGstZG9jIj4KQEAgLTIwMywxMiArMjAxLDEzIEBACiAgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhc2UiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KIAotICAgIDxicmFuY2gg
bW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIu
eHoiIHZlcnNpb249IjEuOC4xIgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29k
L2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKICAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1NjoyMTAz
ZTE3OTIxZDY3ODk0ZTgyZWFmZGQ2NGZiOWIwNjUxODU5OTk1MmZkOTNlNjI1YmZiYzgzZmZlYWQw
OTcyIgotICAgICAgICAgICAgbWQ1c3VtPSIzZWFiZTcyNzc2ODFiOWJlZjhhNjRjMzEyZGUwM2Q0
NyI+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVj
b2RlLXRpbWUucGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdp
bnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9y
LWZyLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmJlMDUzZjZl
ZDcxNmVlYjUxN2NlYzE0OGNlYzYzN2NkY2U1NzFjNmUwNGQ1YzIxNDA5ZTI4NzZmYjc2Yzc2Mzki
PgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMy1ydHBiaW4tcmVjZWl2
ZS1idW5kbGUtc3VwcG9ydC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJn
c3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29va2llLWphci1hbmQtY29udGV4dC1x
dWVyeS1zdXBwb3J0LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1w
bHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90
ZWN0aW9uLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5z
LWdvb2QtMDAwOC1xdGRlbXV4LWFsc28tcHVzaC1idWZmZXJzLXdpdGhvdXQtZW5jcnlwdGlvbi1p
bmZvLWluLnBhdGNoIiBzdHJpcD0iMSIvPgogICAgIDwvYnJhbmNoPgogICA8L2F1dG90b29scz4K
IApAQCAtMjE2LDEyICsyMTUsOSBAQAogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBh
Y2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KLSAgICA8YnJh
bmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRh
ci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJh
ZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuMTAuNSIKICAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKLSAgICAgICAgICAgIGhhc2g9InNoYTI1NjowYmJk
NThmMzYzNzM0ZmMwYzRhNjIwYjJkNmZiMDFkNDI3ZmRhZmRiZGE3YjkwYjRlMTVkMDNiNzUxY2E0
MGY1IgotICAgICAgICAgICAgbWQ1c3VtPSJlNTA4ZGEyYThhNWMzZDEyMjY0ZmUzNDE1YmUyZjQ1
MSI+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRv
LU9wZW5TU0wtMS4xLjAucGF0Y2giIHN0cmlwPSIxIi8+Ci0gICAgICA8cGF0Y2ggZmlsZT0iZ3N0
LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1S
U0FfZ2VuZXJhdGVfay5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1
NjpjNTgwNjA0MGJiODNiNDNiZTg2Y2U1OTJlNmExOWM1ZDgzZDc3NzZmN2Q5ZjQzNGViNGI5MTFj
NGVmZmYzNTczIj4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKQEAgLTIyOSwxMCAr
MjI1LDkgQEAKICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1
Z2lucy1iYXNlIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCBtb2R1bGU9Imdz
dC1saWJhdi9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAg
IDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2
ZXJzaW9uPSIxLjEwLjUiCiAgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCi0gICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6NDRhNDkxMDhjMzUzMWI1YWM0ZjM0NmEyMjQ3Y2Q3ZmJhZmIwZThhYjM5
NDM5NGNiNmQ3NWE3MDMwMGIzODkzMyIKLSAgICAgICAgICAgIG1kNXN1bT0iODVmMWEwNDc2MDZj
YTllMDg0OTNkN2I2YjQyZGY0NjIiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplNGQyZjMx
NWY0NzhkNDcyODFmYmZkZmJkNTkwYTYzZDIzNzA0Y2EzNzkxMWQ3MTQyZDU5OTI2MTZmNGIyOGQz
Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxjbWFrZSBpZD0id3BlIj4KZGlmZiAtLWdpdCBhL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NM
LTEuMS4wLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRs
cy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVkMTA2NGVkNWU5MTM3ZjY1MWY1MWY0MzAxNmRjMzZjZGY4MjI3NTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMzYgKzAsMCBAQAotRnJvbSBlOTM4OTMzMTY3YzQ5NGNkY2E0NDMzMzRm
NjU4YjAyYTAzYzQ0ODZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGFpa2kgVWVu
byA8ZHVlbm9AcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjYgT2N0IDIwMTYgMTQ6NTE6MDEgKzAy
MDAKLVN1YmplY3Q6IFtQQVRDSF0gZHRsczogcG9ydCB0byBPcGVuU1NMIDEuMS4wCi0KLUNoYW5n
ZXMgYXJlOgotCi0tIFVzZSB0aGUgd3JhcHBlciBmdW5jdGlvbnMgdG8gYWNjZXNzIG9wYXF1ZSBk
YXRhIHR5cGVzLiAgVG8gcHJlc2VydmUKLSAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgZGVmaW5l
IGZhbGxiYWNrIGRlZmluaXRpb25zCi0KLS0gUmVtb3ZlIHRoZSB1c2Ugb2YgaWRpb20gInBxdWV1
ZV9zaXplKHNzbC0+ZDEtPnNlbnRfbWVzc2FnZXMpIiwgc2luY2UKLSAgdGhlcmUgaXMgbm8gcmVw
bGFjZW1lbnQKLQotLSBVc2UgUlNBX2dlbmVyYXRlX2tleV9leCBpbnN0ZWFkIG9mIHRoZSBkZXBy
ZWNhdGVkIFJTQV9nZW5lcmF0ZV9rZXkKLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hv
d19idWcuY2dpP2lkPTc3MzU0MAotLS0tCi0gZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMg
fCAxNSArKysrKysrKwotIGV4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMgIHwgODcgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwg
OTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2V4dC9kdGxz
L2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLWlu
ZGV4IDk1ZmJiODMuLmMxYzk2MDIgMTAwNjQ0Ci0tLS0gYS9leHQvZHRscy9nc3RkdGxzY2VydGlm
aWNhdGUuYwotKysrIGIvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKLUBAIC0xOTksNyAr
MTk5LDIyIEBAIGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQotICAg
ICBwcml2LT5wcml2YXRlX2tleSA9IE5VTEw7Ci0gICAgIHJldHVybjsKLSAgIH0KLSsKLSsgIC8q
IFhYWDogUlNBX2dlbmVyYXRlX2tleSBpcyBhY3R1YWxseSBkZXByZWNhdGVkIGluIDAuOS44ICov
Ci0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAotICAgcnNhID0gUlNB
X2dlbmVyYXRlX2tleSAoMjA0OCwgUlNBX0Y0LCBOVUxMLCBOVUxMKTsKLSsjZWxzZQotKyAgcnNh
ID0gUlNBX25ldyAoKTsKLSsgIGlmIChyc2EgIT0gTlVMTCkgewotKyAgICBCSUdOVU0gKmUgPSBC
Tl9uZXcgKCk7Ci0rICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkK
LSsgICAgICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsK
LSsgICAgICBSU0FfZnJlZSAocnNhKTsKLSsgICAgICByc2EgPSBOVUxMOwotKyAgICB9Ci0rICAg
IEJOX2ZyZWUgKGUpOwotKyAgfQotKyNlbmRpZgotIAotICAgaWYgKCFyc2EpIHsKLSAgICAgR1NU
X1dBUk5JTkdfT0JKRUNUIChzZWxmLCAiZmFpbGVkIHRvIGdlbmVyYXRlIFJTQSIpOwotZGlmZiAt
LWdpdCBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMgYi9leHQvZHRscy9nc3RkdGxzY29u
bmVjdGlvbi5jCi1pbmRleCAzNmY2ZDYzLi43MjhmNWE3IDEwMDY0NAotLS0tIGEvZXh0L2R0bHMv
Z3N0ZHRsc2Nvbm5lY3Rpb24uYwotKysrIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYwot
QEAgLTQyLDYgKzQyLDggQEAKLSAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLSAjaW5jbHVkZSA8
b3BlbnNzbC9zc2wuaD4KLSAKLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0gR1NUX0RFQlVHX0NB
VEVHT1JZX1NUQVRJQyAoZ3N0X2R0bHNfY29ubmVjdGlvbl9kZWJ1Zyk7Ci0gI2RlZmluZSBHU1Rf
Q0FUX0RFRkFVTFQgZ3N0X2R0bHNfY29ubmVjdGlvbl9kZWJ1ZwotIEdfREVGSU5FX1RZUEVfV0lU
SF9DT0RFIChHc3REdGxzQ29ubmVjdGlvbiwgZ3N0X2R0bHNfY29ubmVjdGlvbiwgR19UWVBFX09C
SkVDVCwKLUBAIC0yMTYsNiArMjE4LDM4IEBAIGdzdF9kdGxzX2Nvbm5lY3Rpb25fZmluYWxpemUg
KEdPYmplY3QgKiBnb2JqZWN0KQotICAgR19PQkpFQ1RfQ0xBU1MgKGdzdF9kdGxzX2Nvbm5lY3Rp
b25fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKGdvYmplY3QpOwotIH0KLSAKLSsjaWYgT1BFTlNT
TF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCi0rc3RhdGljIHZvaWQKLStCSU9fc2V0X2Rh
dGEgKEJJTyAqIGJpbywgdm9pZCAqcHRyKQotK3sKLSsgIGJpby0+cHRyID0gcHRyOwotK30KLSsK
LStzdGF0aWMgdm9pZCAqCi0rQklPX2dldF9kYXRhIChCSU8gKiBiaW8pCi0rewotKyAgcmV0dXJu
IGJpby0+cHRyOwotK30KLSsKLStzdGF0aWMgdm9pZAotK0JJT19zZXRfc2h1dGRvd24gKEJJTyAq
IGJpbywgaW50IHNodXRkb3duKQotK3sKLSsgIGJpby0+c2h1dGRvd24gPSBzaHV0ZG93bjsKLSt9
Ci0rCi0rc3RhdGljIHZvaWQKLStCSU9fc2V0X2luaXQgKEJJTyAqIGJpbywgaW50IGluaXQpCi0r
ewotKyAgYmlvLT5pbml0ID0gaW5pdDsKLSt9Ci0rCi0rc3RhdGljIFg1MDkgKgotK1g1MDlfU1RP
UkVfQ1RYX2dldDBfY2VydCAoWDUwOV9TVE9SRV9DVFggKiBjdHgpCi0rewotKyAgcmV0dXJuIGN0
eC0+Y2VydDsKLSt9Ci0rI2VuZGlmCi0rCi0gc3RhdGljIHZvaWQKLSBnc3RfZHRsc19jb25uZWN0
aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKLSAgICAg
Y29uc3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKLUBAIC0yMzksNyArMjcz
LDcgQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3Qs
IGd1aW50IHByb3BfaWQsCi0gICAgICAgcHJpdi0+YmlvID0gQklPX25ldyAoQklPX3NfZ3N0X2R0
bHNfY29ubmVjdGlvbiAoKSk7Ci0gICAgICAgZ19yZXR1cm5faWZfZmFpbCAocHJpdi0+YmlvKTsK
LSAKLS0gICAgICBwcml2LT5iaW8tPnB0ciA9IHNlbGY7Ci0rICAgICAgQklPX3NldF9kYXRhIChw
cml2LT5iaW8sIHNlbGYpOwotICAgICAgIFNTTF9zZXRfYmlvIChwcml2LT5zc2wsIHByaXYtPmJp
bywgcHJpdi0+YmlvKTsKLSAKLSAgICAgICBTU0xfc2V0X3ZlcmlmeSAocHJpdi0+c3NsLAotQEAg
LTU3Myw2ICs2MDcsNyBAQCBsb2dfc3RhdGUgKEdzdER0bHNDb25uZWN0aW9uICogc2VsZiwgY29u
c3QgZ2NoYXIgKiBzdHIpCi0gICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50X3dyaXRlIChwcml2LT5z
c2wpIDw8IDIwKTsKLSAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfcmVhZCAocHJpdi0+c3NsKSA8
PCAyNCk7Ci0gCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAotICAg
R1NUX0xPR19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVkLCVwOiVkLyVkKSAleHwl
eCAlcyIsCi0gICAgICAgc3RyLAotICAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDog
InNlcnZlciIsCi1AQCAtNTgxLDYgKzYxNiwxNSBAQCBsb2dfc3RhdGUgKEdzdER0bHNDb25uZWN0
aW9uICogc2VsZiwgY29uc3QgZ2NoYXIgKiBzdHIpCi0gICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9v
ZmZzZXQsCi0gICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9sZW4sCi0gICAgICAgc3RhdGVzLCBTU0xf
Z2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVfc3RyaW5nX2xvbmcgKHByaXYtPnNzbCkp
OwotKyNlbHNlCi0rICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0oJXA6
JWQvJWQpICV4fCV4ICVzIiwKLSsgICAgICBzdHIsCi0rICAgICAgcHJpdi0+aXNfY2xpZW50ID8g
ImNsaWVudCIgOiAic2VydmVyIiwKLSsgICAgICBwcml2LT5iaW9fYnVmZmVyLAotKyAgICAgIHBy
aXYtPmJpb19idWZmZXJfb2Zmc2V0LAotKyAgICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAotKyAg
ICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmluZ19s
b25nIChwcml2LT5zc2wpKTsKLSsjZW5kaWYKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC03Mzcs
NyArNzgxLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1
MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCi0gICBzZWxmID0gU1NMX2dldF9leF9kYXRhIChzc2ws
IGNvbm5lY3Rpb25fZXhfaW5kZXgpOwotICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKEdTVF9JU19E
VExTX0NPTk5FQ1RJT04gKHNlbGYpLCBGQUxTRSk7Ci0gCi0tICBwZW0gPSBfZ3N0X2R0bHNfeDUw
OV90b19wZW0gKHg1MDlfY3R4LT5jZXJ0KTsKLSsgIHBlbSA9IF9nc3RfZHRsc194NTA5X3RvX3Bl
bSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpOwotIAotICAgaWYgKCFwZW0p
IHsKLSAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChzZWxmLAotQEAgLTc0OSw3ICs3OTMsOCBAQCBv
cGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFgg
KiB4NTA5X2N0eCkKLSAgICAgICBnaW50IGxlbjsKLSAKLSAgICAgICBsZW4gPQotLSAgICAgICAg
ICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywgWDUwOV9nZXRfc3ViamVjdF9uYW1lICh4NTA5X2N0
eC0+Y2VydCksIDEsCi0rICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLAotKyAgICAg
ICAgICBYNTA5X2dldF9zdWJqZWN0X25hbWUgKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2VydCAoeDUw
OV9jdHgpKSwgMSwKLSAgICAgICAgICAgWE5fRkxBR19NVUxUSUxJTkUpOwotICAgICAgIEJJT19y
ZWFkIChiaW8sIGJ1ZmZlciwgbGVuKTsKLSAgICAgICBidWZmZXJbbGVuXSA9ICdcMCc7Ci1AQCAt
Nzc3LDYgKzgyMiw3IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29r
LCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQotICAgICAjIyMjIyMjIyAgIyMjIyAgIyMjIyMj
IwotICovCi0gCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAotIHN0
YXRpYyBCSU9fTUVUSE9EIGN1c3RvbV9iaW9fbWV0aG9kcyA9IHsKLSAgIEJJT19UWVBFX0JJTywK
LSAgICJzdHJlYW0iLAotQEAgLTc5NSwxMSArODQxLDM0IEBAIEJJT19zX2dzdF9kdGxzX2Nvbm5l
Y3Rpb24gKHZvaWQpCi0gewotICAgcmV0dXJuICZjdXN0b21fYmlvX21ldGhvZHM7Ci0gfQotKyNl
bHNlCi0rc3RhdGljIEJJT19NRVRIT0QgKmN1c3RvbV9iaW9fbWV0aG9kczsKLSsKLStzdGF0aWMg
QklPX01FVEhPRCAqCi0rQklPX3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9pZCkKLSt7Ci0rICBp
ZiAoY3VzdG9tX2Jpb19tZXRob2RzICE9IE5VTEwpCi0rICAgIHJldHVybiBjdXN0b21fYmlvX21l
dGhvZHM7Ci0rCi0rICBjdXN0b21fYmlvX21ldGhvZHMgPSBCSU9fbWV0aF9uZXcgKEJJT19UWVBF
X0JJTywgInN0cmVhbSIpOwotKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyA9PSBOVUxMCi0rICAg
ICAgfHwgIUJJT19tZXRoX3NldF93cml0ZSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9k
X3dyaXRlKQotKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfcmVhZCAoY3VzdG9tX2Jpb19tZXRob2Rz
LCBiaW9fbWV0aG9kX3JlYWQpCi0rICAgICAgfHwgIUJJT19tZXRoX3NldF9jdHJsIChjdXN0b21f
YmlvX21ldGhvZHMsIGJpb19tZXRob2RfY3RybCkKLSsgICAgICB8fCAhQklPX21ldGhfc2V0X2Ny
ZWF0ZSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX25ldykKLSsgICAgICB8fCAhQklP
X21ldGhfc2V0X2Rlc3Ryb3kgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9mcmVlKSkg
ewotKyAgICBCSU9fbWV0aF9mcmVlIChjdXN0b21fYmlvX21ldGhvZHMpOwotKyAgICByZXR1cm4g
TlVMTDsKLSsgIH0KLSsKLSsgIHJldHVybiBjdXN0b21fYmlvX21ldGhvZHM7Ci0rfQotKyNlbmRp
ZgotIAotIHN0YXRpYyBpbnQKLSBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNvbnN0IGNo
YXIgKmRhdGEsIGludCBzaXplKQotIHsKLS0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NU
X0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOwotKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYg
PSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOwotIAotICAgR1NUX0xP
R19PQkpFQ1QgKHNlbGYsICJCSU86IHdyaXRpbmcgJWQiLCBzaXplKTsKLSAKLUBAIC04MjQsNyAr
ODkzLDcgQEAgYmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBp
bnQgc2l6ZSkKLSBzdGF0aWMgaW50Ci0gYmlvX21ldGhvZF9yZWFkIChCSU8gKiBiaW8sIGNoYXIg
Km91dF9idWZmZXIsIGludCBzaXplKQotIHsKLS0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0g
R1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOwotKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOwotICAgR3N0RHRs
c0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKLSAgIGd1aW50IGludGVybmFs
X3NpemU7Ci0gICBnaW50IGNvcHlfc2l6ZTsKLUBAIC04NjgsNyArOTM3LDcgQEAgYmlvX21ldGhv
ZF9yZWFkIChCSU8gKiBiaW8sIGNoYXIgKm91dF9idWZmZXIsIGludCBzaXplKQotIHN0YXRpYyBs
b25nCi0gYmlvX21ldGhvZF9jdHJsIChCSU8gKiBiaW8sIGludCBjbWQsIGxvbmcgYXJnMSwgdm9p
ZCAqYXJnMikKLSB7Ci0tICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5F
Q1RJT04gKGJpby0+cHRyKTsKLSsgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNf
Q09OTkVDVElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKLSAgIEdzdER0bHNDb25uZWN0aW9uUHJp
dmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7Ci0gCi0gICBzd2l0Y2ggKGNtZCkgewotQEAgLTkxNiw4
ICs5ODUsOCBAQCBiaW9fbWV0aG9kX25ldyAoQklPICogYmlvKQotIHsKLSAgIEdTVF9MT0dfT0JK
RUNUIChOVUxMLCAiQklPOiBuZXciKTsKLSAKLS0gIGJpby0+c2h1dGRvd24gPSAwOwotLSAgYmlv
LT5pbml0ID0gMTsKLSsgIEJJT19zZXRfc2h1dGRvd24gKGJpbywgMCk7Ci0rICBCSU9fc2V0X2lu
aXQgKGJpbywgMSk7Ci0gCi0gICByZXR1cm4gMTsKLSB9Ci1AQCAtOTMwLDYgKzk5OSw2IEBAIGJp
b19tZXRob2RfZnJlZSAoQklPICogYmlvKQotICAgICByZXR1cm4gMDsKLSAgIH0KLSAKLS0gIEdT
VF9MT0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0ciksICJCSU8gZnJlZSIp
OwotKyAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAo
YmlvKSksICJCSU8gZnJlZSIpOwotICAgcmV0dXJuIDA7Ci0gfQotLS0gCi0yLjEwLjIKLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRp
ZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaCBiL1Rvb2xz
L3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJy
b3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM2Njg3NzM3MGM2ZmI0Y2Q5NWJkOTEyYjAyOGVkMzliZjRhNThmYTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2lu
Zy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LUZyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIwMzAyMmMxNTFlYTI5YyBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0g
PHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+Ci1EYXRlOiBNb24sIDE0IE5vdiAyMDE2IDExOjMy
OjE3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGR0bHNjZXJ0aWZpY2F0ZTogRml4IGVycm9yIGNo
ZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQotIHVzYWdlCi0KLVdhcyBicm9rZW4gZHVy
aW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KLQotaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5v
cmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAotLS0tCi0gZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmlj
YXRlLmMgfCA3ICsrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRl
bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMg
Yi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYwotaW5kZXggYzFjOTYwMi4uYzJkOWJiMiAx
MDA2NDQKLS0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCi0rKysgYi9leHQvZHRs
cy9nc3RkdGxzY2VydGlmaWNhdGUuYwotQEAgLTIwNywxMiArMjA3LDEzIEBAIGluaXRfZ2VuZXJh
dGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQotICAgcnNhID0gUlNBX25ldyAoKTsKLSAg
IGlmIChyc2EgIT0gTlVMTCkgewotICAgICBCSUdOVU0gKmUgPSBCTl9uZXcgKCk7Ci0tICAgIGlm
IChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKLS0gICAgICAgICYmIFJTQV9n
ZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKLSsgICAgaWYgKGUgPT0gTlVM
TCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKLSsgICAgICAgIHx8ICFSU0FfZ2VuZXJhdGVf
a2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7Ci0gICAgICAgUlNBX2ZyZWUgKHJzYSk7Ci0g
ICAgICAgcnNhID0gTlVMTDsKLSAgICAgfQotLSAgICBCTl9mcmVlIChlKTsKLSsgICAgaWYgKGUp
Ci0rICAgICAgQk5fZnJlZSAoZSk7Ci0gICB9Ci0gI2VuZGlmCi0gCi0tLSAKLTIuMTAuMgotCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDMtcnRwYmlu
LXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1nb29kLTAwMDMtcnRwYmluLXJlY2VpdmUtYnVuZGxlLXN1cHBvcnQucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmY4OWM4MTk5OGJkY2E1ZGU4NDgyMzVmMTAzMTFmYTczOWM5N2JhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwMy1ydHBiaW4t
cmVjZWl2ZS1idW5kbGUtc3VwcG9ydC5wYXRjaApAQCAtMCwwICsxLDEwMTggQEAKK0Zyb20gZGNk
M2NlOTc1MWNkZWYwYjVhYjFmYTExODM1NWY5MmJkZmU4MmNiMyBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKK0Zyb206IFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CitEYXRlOiBX
ZWQsIDE2IE5vdiAyMDE2IDA4OjU2OjM0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHJ0cGJpbjog
cmVjZWl2ZSBidW5kbGUgc3VwcG9ydAorCitBIG5ldyBzaWduYWwgbmFtZWQgb24tYnVuZGxlZC1z
c3JjIGlzIHByb3ZpZGVkIGFuZCBjYW4gYmUKK3VzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHRvIHJl
ZGlyZWN0IGEgc3RyZWFtIHRvIGEgZGlmZmVyZW50CitHc3RSdHBTZXNzaW9uIG9yIHRvIGtlZXAg
dGhlIFJUWCBzdHJlYW0gZ3JvdXBlZCB3aXRoaW4gdGhlCitHc3RSdHBTZXNzaW9uIG9mIHRoZSBz
YW1lIG1lZGlhIHR5cGUuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzI3NDAKKy0tLQorIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1nb29kLXBsdWdpbnMu
c2lnbmFscyB8ICAgOCArCisgZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMgICAgICAgICAgICAg
ICAgICAgIHwgNTYyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tCisgZ3N0L3J0cG1hbmFnZXIv
Z3N0cnRwYmluLmggICAgICAgICAgICAgICAgICAgIHwgICAyICsKKyB0ZXN0cy9jaGVjay9NYWtl
ZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKworIHRlc3RzL2NoZWNrL2VsZW1l
bnRzLy5naXRpZ25vcmUgICAgICAgICAgICAgICB8ICAgMSArCisgdGVzdHMvY2hlY2svZWxlbWVu
dHMvcnRwYnVuZGxlLmMgICAgICAgICAgICAgIHwgMzkwICsrKysrKysrKysrKysrKysrKworIHRl
c3RzL2NoZWNrL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCisgdGVz
dHMvZXhhbXBsZXMvcnRwLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgIHwgICAyICsKKyB0ZXN0
cy9leGFtcGxlcy9ydHAvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgfCAgMTAgKy0KKyB0ZXN0
cy9leGFtcGxlcy9ydHAvY2xpZW50LXJ0cGJ1bmRsZS5jICAgICAgICAgfCAyNjYgKysrKysrKysr
KysrCisgdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1ydHBidW5kbGUuYyAgICAgICAgIHwgMTc5
ICsrKysrKysrCisgMTEgZmlsZXMgY2hhbmdlZCwgMTI2NSBpbnNlcnRpb25zKCspLCAxNjAgZGVs
ZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2NoZWNrL2VsZW1lbnRzL3J0cGJ1
bmRsZS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2V4YW1wbGVzL3J0cC9jbGllbnQtcnRw
YnVuZGxlLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZXhhbXBsZXMvcnRwL3NlcnZlci1y
dHBidW5kbGUuYworCitkaWZmIC0tZ2l0IGEvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2Qt
cGx1Z2lucy5zaWduYWxzIGIvZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5z
aWduYWxzCitpbmRleCAzZGIxN2U5Li40NGJiZGRhIDEwMDY0NAorLS0tIGEvZG9jcy9wbHVnaW5z
L2dzdC1wbHVnaW5zLWdvb2QtcGx1Z2lucy5zaWduYWxzCisrKysgYi9kb2NzL3BsdWdpbnMvZ3N0
LXBsdWdpbnMtZ29vZC1wbHVnaW5zLnNpZ25hbHMKK0BAIC0zNzUsNiArMzc1LDE0IEBAIGd1aW50
ICBhcmcxCisgPC9TSUdOQUw+CisgCisgPFNJR05BTD4KKys8TkFNRT5Hc3RSdHBCaW46Om9uLWJ1
bmRsZWQtc3NyYzwvTkFNRT4KKys8UkVUVVJOUz5ndWludDwvUkVUVVJOUz4KKys8RkxBR1M+bDwv
RkxBR1M+CisrR3N0UnRwQmluICpnc3RydHBiaW4KKytndWludCAgYXJnMQorKzwvU0lHTkFMPgor
KworKzxTSUdOQUw+CisgPE5BTUU+R3N0UnRwSml0dGVyQnVmZmVyOjpjbGVhci1wdC1tYXA8L05B
TUU+CisgPFJFVFVSTlM+dm9pZDwvUkVUVVJOUz4KKyA8RkxBR1M+bGE8L0ZMQUdTPgorZGlmZiAt
LWdpdCBhL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5jIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRw
YmluLmMKK2luZGV4IDY0OGFkYjkuLmY1OGRlMDEgMTAwNjQ0CistLS0gYS9nc3QvcnRwbWFuYWdl
ci9nc3RydHBiaW4uYworKysrIGIvZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmMKK0BAIC01Myw2
ICs1MywxMyBAQAorICAqIFNTUkMgaW4gdGhlIFJUUCBwYWNrZXRzIHRvIGl0cyBvd24gU1NSQyBh
bmQgd2lsIGZvcndhcmQgdGhlIHBhY2tldHMgb24gdGhlCisgICogc2VuZF9ydHBfc3JjX1wldSBw
YWQgYWZ0ZXIgdXBkYXRpbmcgaXRzIGludGVybmFsIHN0YXRlLgorICAqCisrICogI0dzdFJ0cEJp
biBjYW4gYWxzbyBkZW11bHRpcGxleCBpbmNvbWluZyBidW5kbGVkIHN0cmVhbXMuIFRoZSBmaXJz
dAorKyAqICNHc3RSdHBTZXNzaW9uIHdpbGwgaGF2ZSBhICNHc3RSdHBTc3JjRGVtdXggZWxlbWVu
dCBzcGxpdHRpbmcgdGhlIHN0cmVhbXMKKysgKiBiYXNlZCBvbiB0aGVpciBTU1JDIGFuZCBwb3Rl
bnRpYWxseSBkaXNwYXRjaGVkIHRvIGEgZGlmZmVyZW50ICNHc3RSdHBTZXNzaW9uLgorKyAqIEJl
Y2F1c2UgcmV0cmFuc21pc3Npb24gU1NSQ3MgbmVlZCB0byBiZSBtZXJnZWQgd2l0aCB0aGUgY29y
cmVzcG9uZGluZyBtZWRpYQorKyAqIHN0cmVhbSB0aGUgI0dzdFJ0cEJpbjo6b24tYnVuZGxlZC1z
c3JjIHNpZ25hbCBpcyBlbWl0dGVkIHNvIHRoYXQgdGhlCisrICogYXBwbGljYXRpb24gY2FuIGZp
bmQgb3V0IHRvIHdoaWNoIHNlc3Npb24gdGhlIFNTUkMgYmVsb25ncy4KKysgKgorICAqIFRoZSBz
ZXNzaW9uIG1hbmFnZXIgbmVlZHMgdGhlIGNsb2NrLXJhdGUgb2YgdGhlIHBheWxvYWQgdHlwZXMg
aXQgaXMgaGFuZGxpbmcKKyAgKiBhbmQgd2lsbCBzaWduYWwgdGhlICNHc3RSdHBTZXNzaW9uOjpy
ZXF1ZXN0LXB0LW1hcCBzaWduYWwgd2hlbiBpdCBuZWVkcyBzdWNoIGEKKyAgKiBtYXBwaW5nLiBP
bmUgY2FuIGNsZWFyIHRoZSBjYWNoZWQgdmFsdWVzIHdpdGggdGhlICNHc3RSdHBTZXNzaW9uOjpj
bGVhci1wdC1tYXAKK0BAIC0yNzYsNiArMjgzLDggQEAgZW51bQorICAgU0lHTkFMX09OX05FV19T
RU5ERVJfU1NSQywKKyAgIFNJR05BTF9PTl9TRU5ERVJfU1NSQ19BQ1RJVkUsCisgCisrICBTSUdO
QUxfT05fQlVORExFRF9TU1JDLAorKworICAgTEFTVF9TSUdOQUwKKyB9OworIAorQEAgLTM2Miw2
ICszNzEsMTQgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX3NlbmRfcnRwIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKTsKKyBzdGF0aWMgdm9pZCByZW1vdmVfcnRj
cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbik7Cisgc3Rh
dGljIHZvaWQgZnJlZV9jbGllbnQgKEdzdFJ0cEJpbkNsaWVudCAqIGNsaWVudCwgR3N0UnRwQmlu
ICogYmluKTsKKyBzdGF0aWMgdm9pZCBmcmVlX3N0cmVhbSAoR3N0UnRwQmluU3RyZWFtICogc3Ry
ZWFtLCBHc3RSdHBCaW4gKiBiaW4pOworK3N0YXRpYyBHc3RSdHBCaW5TZXNzaW9uICpjcmVhdGVf
c2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlkKTsKKytzdGF0aWMgR3N0UGFkICpj
b21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwKKysgICAgR3N0UnRwQmlu
U2Vzc2lvbiAqIHNlc3Npb24sIGdib29sZWFuIGJ1bmRsZV9kZW11eGVyX25lZWRlZCk7Cisrc3Rh
dGljIHZvaWQKKytjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChHc3RSdHBCaW4gKiBydHBiaW4s
IEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAorKyAgICBndWludCBzZXNzaWQpOworK3N0YXRp
YyBHc3RQYWQgKmNvbXBsZXRlX3Nlc3Npb25fcnRjcCAoR3N0UnRwQmluICogcnRwYmluLAorKyAg
ICBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQgc2Vzc2lkLCBnYm9vbGVhbiBidW5k
bGVfZGVtdXhlcl9uZWVkZWQpOworIAorIC8qIE1hbmFnZXMgdGhlIFJUUCBzdHJlYW0gZm9yIG9u
ZSBTU1JDLgorICAqCitAQCAtNDI4LDYgKzQ0NSwxMiBAQCBzdHJ1Y3QgX0dzdFJ0cEJpblNlc3Np
b24KKyAgIGd1bG9uZyBkZW11eF9uZXdwYWRfc2lnOworICAgZ3Vsb25nIGRlbXV4X3BhZHJlbW92
ZWRfc2lnOworIAorKyAgLyogQnVuZGxpbmcgc3VwcG9ydCAqLworKyAgR3N0RWxlbWVudCAqcnRw
X2Z1bm5lbDsKKysgIEdzdEVsZW1lbnQgKnJ0Y3BfZnVubmVsOworKyAgR3N0RWxlbWVudCAqYnVu
ZGxlX2RlbXV4OworKyAgZ3Vsb25nIGJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnOworKworICAgR011
dGV4IGxvY2s7CisgCisgICAvKiBsaXN0IG9mIEdzdFJ0cEJpblN0cmVhbSAqLworQEAgLTYyOSw2
ICs2NTIsOTYgQEAgc3NyY19kZW11eF9wYWRfcmVtb3ZlZCAoR3N0RWxlbWVudCAqIGVsZW1lbnQs
IGd1aW50IHNzcmMsIEdzdFBhZCAqIHBhZCwKKyAgIEdTVF9SVFBfQklOX1VOTE9DSyAocnRwYmlu
KTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytuZXdfYnVuZGxlZF9zc3JjX3BhZF9mb3VuZCAoR3N0
RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50IHNzcmMsIEdzdFBhZCAqIHBhZCwKKysgICAgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCisreworKyAgR1ZhbHVlIHJlc3VsdCA9IEdfVkFMVUVfSU5J
VDsKKysgIEdWYWx1ZSBwYXJhbXNbMl0gPSB7IEdfVkFMVUVfSU5JVCwgR19WQUxVRV9JTklUIH07
CisrICBndWludCBzZXNzaW9uX2lkID0gMDsKKysgIEdzdFJ0cEJpblNlc3Npb24gKnRhcmdldF9z
ZXNzaW9uID0gTlVMTDsKKysgIEdzdFJ0cEJpbiAqcnRwYmluID0gc2Vzc2lvbi0+YmluOworKyAg
Z2NoYXIgKm5hbWU7CisrICBHc3RQYWQgKnNyY19wYWQ7CisrICBHc3RQYWQgKnJlY3ZfcnRwX3Np
bmsgPSBOVUxMOworKyAgR3N0UGFkICpyZWN2X3J0Y3Bfc2luayA9IE5VTEw7CisrICBHc3RQYWRM
aW5rUmV0dXJuIHJldDsKKysKKysgIEdTVF9SVFBfQklOX0RZTl9MT0NLIChydHBiaW4pOworKyAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibmV3IGJ1bmRsZWQgU1NSQyBwYWQgJTA4eCwgJXM6
JXMiLCBzc3JjLAorKyAgICAgIEdTVF9ERUJVR19QQURfTkFNRSAocGFkKSk7CisrCisrICBnX3Zh
bHVlX2luaXQgKCZyZXN1bHQsIEdfVFlQRV9VSU5UKTsKKysgIGdfdmFsdWVfaW5pdCAoJnBhcmFt
c1swXSwgR1NUX1RZUEVfRUxFTUVOVCk7CisrICBnX3ZhbHVlX3NldF9vYmplY3QgKCZwYXJhbXNb
MF0sIHJ0cGJpbik7CisrICBnX3ZhbHVlX2luaXQgKCZwYXJhbXNbMV0sIEdfVFlQRV9VSU5UKTsK
KysgIGdfdmFsdWVfc2V0X3VpbnQgKCZwYXJhbXNbMV0sIHNzcmMpOworKworKyAgZ19zaWduYWxf
ZW1pdHYgKHBhcmFtcywKKysgICAgICBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05BTF9PTl9CVU5E
TEVEX1NTUkNdLCAwLCAmcmVzdWx0KTsKKysgIGdfdmFsdWVfdW5zZXQgKCZwYXJhbXNbMF0pOwor
KworKyAgc2Vzc2lvbl9pZCA9IGdfdmFsdWVfZ2V0X3VpbnQgKCZyZXN1bHQpOworKyAgaWYgKHNl
c3Npb25faWQgPT0gMCkgeworKyAgICB0YXJnZXRfc2Vzc2lvbiA9IHNlc3Npb247CisrICB9IGVs
c2UgeworKyAgICB0YXJnZXRfc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCAo
Z2ludCkgc2Vzc2lvbl9pZCk7CisrICAgIGlmICghdGFyZ2V0X3Nlc3Npb24pIHsKKysgICAgICB0
YXJnZXRfc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3Npb25faWQpOworKyAg
ICB9CisrICAgIGlmICghdGFyZ2V0X3Nlc3Npb24tPnJlY3ZfcnRwX3NpbmspIHsKKysgICAgICBy
ZWN2X3J0cF9zaW5rID0gY29tcGxldGVfc2Vzc2lvbl9zaW5rIChydHBiaW4sIHRhcmdldF9zZXNz
aW9uLCBGQUxTRSk7CisrICAgIH0KKysKKysgICAgaWYgKCF0YXJnZXRfc2Vzc2lvbi0+cmVjdl9y
dHBfc3JjKQorKyAgICAgIGNvbXBsZXRlX3Nlc3Npb25fcmVjZWl2ZXIgKHJ0cGJpbiwgdGFyZ2V0
X3Nlc3Npb24sIHNlc3Npb25faWQpOworKworKyAgICBpZiAoIXRhcmdldF9zZXNzaW9uLT5yZWN2
X3J0Y3Bfc2luaykgeworKyAgICAgIHJlY3ZfcnRjcF9zaW5rID0KKysgICAgICAgICAgY29tcGxl
dGVfc2Vzc2lvbl9ydGNwIChydHBiaW4sIHRhcmdldF9zZXNzaW9uLCBzZXNzaW9uX2lkLCBGQUxT
RSk7CisrICAgIH0KKysgIH0KKysKKysgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgIkFzc2ln
bmluZyBidW5kbGVkIHNzcmMgJXUgdG8gc2Vzc2lvbiAldSIsIHNzcmMsCisrICAgICAgc2Vzc2lv
bl9pZCk7CisrCisrICBpZiAoIXJlY3ZfcnRwX3NpbmspIHsKKysgICAgcmVjdl9ydHBfc2luayA9
CisrICAgICAgICBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgKHRhcmdldF9zZXNzaW9uLT5y
dHBfZnVubmVsLCAic2lua18ldSIpOworKyAgfQorKworKyAgaWYgKCFyZWN2X3J0Y3Bfc2luaykg
eworKyAgICByZWN2X3J0Y3Bfc2luayA9CisrICAgICAgICBnc3RfZWxlbWVudF9nZXRfcmVxdWVz
dF9wYWQgKHRhcmdldF9zZXNzaW9uLT5ydGNwX2Z1bm5lbCwgInNpbmtfJXUiKTsKKysgIH0KKysK
KysgIG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzcmNfJXUiLCBzc3JjKTsKKysgIHNyY19wYWQg
PSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZWxlbWVudCwgbmFtZSk7CisrICByZXQgPSBn
c3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3ZfcnRwX3NpbmspOworKyAgZ19mcmVlIChuYW1lKTsK
KysgIGdzdF9vYmplY3RfdW5yZWYgKHNyY19wYWQpOworKyAgZ3N0X29iamVjdF91bnJlZiAocmVj
dl9ydHBfc2luayk7CisrICBpZiAocmV0ICE9IEdTVF9QQURfTElOS19PSykgeworKyAgICBnX3dh
cm5pbmcKKysgICAgICAgICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBidW5kbGUgZGVtdXhlciB0
byByZWNlaXZlIHJ0cCBmdW5uZWwgZm9yIHNlc3Npb24gJXUiLAorKyAgICAgICAgc2Vzc2lvbl9p
ZCk7CisrICB9CisrCisrICBuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zcmNfJXUiLCBz
c3JjKTsKKysgIHNyY19wYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoZWxlbWVudCwg
bmFtZSk7CisrICBnc3RfcGFkX2xpbmsgKHNyY19wYWQsIHJlY3ZfcnRjcF9zaW5rKTsKKysgIGdf
ZnJlZSAobmFtZSk7CisrICBnc3Rfb2JqZWN0X3VucmVmIChzcmNfcGFkKTsKKysgIGdzdF9vYmpl
Y3RfdW5yZWYgKHJlY3ZfcnRjcF9zaW5rKTsKKysgIGlmIChyZXQgIT0gR1NUX1BBRF9MSU5LX09L
KSB7CisrICAgIGdfd2FybmluZworKyAgICAgICAgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIGJ1
bmRsZSBkZW11eGVyIHRvIHJlY2VpdmUgcnRjcCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsCisr
ICAgICAgICBzZXNzaW9uX2lkKTsKKysgIH0KKysKKysgIEdTVF9SVFBfQklOX0RZTl9VTkxPQ0sg
KHJ0cGJpbik7CisrfQorKworIC8qIGNyZWF0ZSBhIHNlc3Npb24gd2l0aCB0aGUgZ2l2ZW4gaWQu
ICBNdXN0IGJlIGNhbGxlZCB3aXRoIFJUUF9CSU5fTE9DSyAqLworIHN0YXRpYyBHc3RSdHBCaW5T
ZXNzaW9uICoKKyBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlkKQor
QEAgLTY0OSw2ICs3NjIsMTAgQEAgY3JlYXRlX3Nlc3Npb24gKEdzdFJ0cEJpbiAqIHJ0cGJpbiwg
Z2ludCBpZCkKKyAgIHNlc3MtPmJpbiA9IHJ0cGJpbjsKKyAgIHNlc3MtPnNlc3Npb24gPSBzZXNz
aW9uOworICAgc2Vzcy0+ZGVtdXggPSBkZW11eDsKKysKKysgIHNlc3MtPnJ0cF9mdW5uZWwgPSBn
c3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJmdW5uZWwiLCBOVUxMKTsKKysgIHNlc3MtPnJ0Y3Bf
ZnVubmVsID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlICgiZnVubmVsIiwgTlVMTCk7CisrCisg
ICBzZXNzLT5wdG1hcCA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoTlVMTCwgTlVMTCwgTlVMTCwK
KyAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9jYXBzX3VucmVmKTsKKyAgIHJ0cGJpbi0+c2Vz
c2lvbnMgPSBnX3NsaXN0X3ByZXBlbmQgKHJ0cGJpbi0+c2Vzc2lvbnMsIHNlc3MpOworQEAgLTY5
Niw2ICs4MTMsOCBAQCBjcmVhdGVfc2Vzc2lvbiAoR3N0UnRwQmluICogcnRwYmluLCBnaW50IGlk
KQorIAorICAgZ3N0X2Jpbl9hZGQgKEdTVF9CSU5fQ0FTVCAocnRwYmluKSwgc2Vzc2lvbik7Cisg
ICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBkZW11eCk7CisrICBnc3RfYmlu
X2FkZCAoR1NUX0JJTl9DQVNUIChydHBiaW4pLCBzZXNzLT5ydHBfZnVubmVsKTsKKysgIGdzdF9i
aW5fYWRkIChHU1RfQklOX0NBU1QgKHJ0cGJpbiksIHNlc3MtPnJ0Y3BfZnVubmVsKTsKKyAKKyAg
IEdTVF9PQkpFQ1RfTE9DSyAocnRwYmluKTsKKyAgIHRhcmdldCA9IEdTVF9TVEFURV9UQVJHRVQg
KHJ0cGJpbik7CitAQCAtNzA0LDYgKzgyMyw4IEBAIGNyZWF0ZV9zZXNzaW9uIChHc3RSdHBCaW4g
KiBydHBiaW4sIGdpbnQgaWQpCisgICAvKiBjaGFuZ2Ugc3RhdGUgb25seSB0byB3aGF0J3MgbmVl
ZGVkICovCisgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUgKGRlbXV4LCB0YXJnZXQpOworICAgZ3N0
X2VsZW1lbnRfc2V0X3N0YXRlIChzZXNzaW9uLCB0YXJnZXQpOworKyAgZ3N0X2VsZW1lbnRfc2V0
X3N0YXRlIChzZXNzLT5ydHBfZnVubmVsLCB0YXJnZXQpOworKyAgZ3N0X2VsZW1lbnRfc2V0X3N0
YXRlIChzZXNzLT5ydGNwX2Z1bm5lbCwgdGFyZ2V0KTsKKyAKKyAgIHJldHVybiBzZXNzOworIAor
QEAgLTgwNyw3ICs5MjgsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lv
biwgZ3VpbnQgcHQpCisgICBHVmFsdWUgcmV0ID0geyAwIH07CisgICBHVmFsdWUgYXJnc1szXSA9
IHsgezB9LCB7MH0sIHswfSB9OworIAorLSAgR1NUX0RFQlVHICgic2VhcmNoaW5nIHB0ICVkIGlu
IGNhY2hlIiwgcHQpOworKyAgR1NUX0RFQlVHICgic2VhcmNoaW5nIHB0ICV1IGluIGNhY2hlIiwg
cHQpOworIAorICAgR1NUX1JUUF9TRVNTSU9OX0xPQ0sgKHNlc3Npb24pOworIAorQEAgLTgyMCw3
ICs5NDEsNyBAQCBnZXRfcHRfbWFwIChHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbiwgZ3VpbnQg
cHQpCisgCisgICBiaW4gPSBzZXNzaW9uLT5iaW47CisgCistICBHU1RfREVCVUcgKCJlbWl0aW5n
IHNpZ25hbCBmb3IgcHQgJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LCBzZXNzaW9uLT5pZCk7CisrICBH
U1RfREVCVUcgKCJlbWl0aW5nIHNpZ25hbCBmb3IgcHQgJXUgaW4gc2Vzc2lvbiAldSIsIHB0LCBz
ZXNzaW9uLT5pZCk7CisgCisgICAvKiBub3QgaW4gY2FjaGUsIHNlbmQgc2lnbmFsIHRvIHJlcXVl
c3QgY2FwcyAqLworICAgZ192YWx1ZV9pbml0ICgmYXJnc1swXSwgR1NUX1RZUEVfRUxFTUVOVCk7
CitAQCAtODU2LDcgKzk3Nyw3IEBAIGdldF9wdF9tYXAgKEdzdFJ0cEJpblNlc3Npb24gKiBzZXNz
aW9uLCBndWludCBwdCkKKyAgIGlmICghY2FwcykKKyAgICAgZ290byBub19jYXBzOworIAorLSAg
R1NUX0RFQlVHICgiY2FjaGluZyBwdCAlZCBhcyAlIiBHU1RfUFRSX0ZPUk1BVCwgcHQsIGNhcHMp
OworKyAgR1NUX0RFQlVHICgiY2FjaGluZyBwdCAldSBhcyAlIiBHU1RfUFRSX0ZPUk1BVCwgcHQs
IGNhcHMpOworIAorICAgLyogc3RvcmUgaW4gY2FjaGUsIHRha2UgYWRkaXRpb25hbCByZWYgKi8K
KyAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHNlc3Npb24tPnB0bWFwLCBHSU5UX1RPX1BPSU5URVIg
KHB0KSwKK0BAIC05NDcsNyArMTA2OCw3IEBAIGdzdF9ydHBfYmluX2dldF9zZXNzaW9uIChHc3RS
dHBCaW4gKiBiaW4sIGd1aW50IHNlc3Npb25faWQpCisgICBHc3RFbGVtZW50ICpyZXQgPSBOVUxM
OworIAorICAgR1NUX1JUUF9CSU5fTE9DSyAoYmluKTsKKy0gIEdTVF9ERUJVR19PQkpFQ1QgKGJp
biwgInJldHJpZXZpbmcgR3N0UnRwU2Vzc2lvbiwgaW5kZXg6ICVkIiwgc2Vzc2lvbl9pZCk7Cisr
ICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIEdzdFJ0cFNlc3Npb24sIGluZGV4
OiAldSIsIHNlc3Npb25faWQpOworICAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAoYmlu
LCAoZ2ludCkgc2Vzc2lvbl9pZCk7CisgICBpZiAoc2Vzc2lvbikgeworICAgICByZXQgPSBnc3Rf
b2JqZWN0X3JlZiAoc2Vzc2lvbi0+c2Vzc2lvbik7CitAQCAtOTY0LDcgKzEwODUsNyBAQCBnc3Rf
cnRwX2Jpbl9nZXRfaW50ZXJuYWxfc2Vzc2lvbiAoR3N0UnRwQmluICogYmluLCBndWludCBzZXNz
aW9uX2lkKQorICAgR3N0UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsKKyAKKyAgIEdTVF9SVFBfQklO
X0xPQ0sgKGJpbik7CistICBHU1RfREVCVUdfT0JKRUNUIChiaW4sICJyZXRyaWV2aW5nIGludGVy
bmFsIFJUUFNlc3Npb24gb2JqZWN0LCBpbmRleDogJWQiLAorKyAgR1NUX0RFQlVHX09CSkVDVCAo
YmluLCAicmV0cmlldmluZyBpbnRlcm5hbCBSVFBTZXNzaW9uIG9iamVjdCwgaW5kZXg6ICV1IiwK
KyAgICAgICBzZXNzaW9uX2lkKTsKKyAgIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKGJp
biwgKGdpbnQpIHNlc3Npb25faWQpOworICAgaWYgKHNlc3Npb24pIHsKK0BAIC0yMTk0LDYgKzIz
MTUsMjkgQEAgZ3N0X3J0cF9iaW5fY2xhc3NfaW5pdCAoR3N0UnRwQmluQ2xhc3MgKiBrbGFzcykK
KyAgICAgICAgICAgb25fc2VuZGVyX3NzcmNfYWN0aXZlKSwgTlVMTCwgTlVMTCwgZ19jY2xvc3Vy
ZV9tYXJzaGFsX2dlbmVyaWMsCisgICAgICAgR19UWVBFX05PTkUsIDIsIEdfVFlQRV9VSU5ULCBH
X1RZUEVfVUlOVCk7CisgCisrCisrICAvKioKKysgICAqIEdzdFJ0cEJpbjo6b24tYnVuZGxlZC1z
c3JjOgorKyAgICogQHJ0cGJpbjogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFs
CisrICAgKiBAc3NyYzogdGhlIGJ1bmRsZWQgU1NSQworKyAgICoKKysgICAqIE5vdGlmeSBvZiBh
IG5ldyBpbmNvbWluZyBidW5kbGVkIFNTUkMuIElmIG5vIGhhbmRsZXIgaXMgY29ubmVjdGVkIHRv
IHRoZQorKyAgICogc2lnbmFsIHRoZW4gdGhlICNHc3RSdHBTZXNzaW9uIGNyZWF0ZWQgZm9yIHRo
ZSByZWN2X3J0cF9zaW5rX1wldQorKyAgICogcmVxdWVzdCBwYWQgd2lsbCBiZSBtYW5hZ2luZyB0
aGlzIG5ldyBTU1JDLiBIb3dldmVyIGlmIHRoZXJlIGlzIGEgaGFuZGxlcgorKyAgICogY29ubmVj
dGVkIHRoZW4gdGhlIGFwcGxpY2F0aW9uIGNhbiBkZWNpZGVkIHRvIGRpc3BhdGNoIHRoaXMgbmV3
IHN0cmVhbSB0bworKyAgICogYW5vdGhlciBzZXNzaW9uIGJ5IHByb3ZpZGluZyBpdHMgSUQgYXMg
cmV0dXJuIHZhbHVlIG9mIHRoZSBoYW5kbGVyLiBUaGlzCisrICAgKiBjYW4gYmUgcGFydGljdWxh
cmx5IHVzZWZ1bCB0byBrZWVwIHJldHJhbnNtaXNzaW9uIFNTUkNzIGdyb3VwZWQgd2l0aCB0aGUK
KysgICAqIHNlc3Npb24gZm9yIHdoaWNoIHRoZXkgaGFuZGxlIHJldHJhbnNtaXNzaW9uLgorKyAg
ICoKKysgICAqIFNpbmNlOiAxLjEyCisrICAgKi8KKysgIGdzdF9ydHBfYmluX3NpZ25hbHNbU0lH
TkFMX09OX0JVTkRMRURfU1NSQ10gPQorKyAgICAgIGdfc2lnbmFsX25ldyAoIm9uLWJ1bmRsZWQt
c3NyYyIsIEdfVFlQRV9GUk9NX0NMQVNTIChrbGFzcyksCisrICAgICAgR19TSUdOQUxfUlVOX0xB
U1QsIEdfU1RSVUNUX09GRlNFVCAoR3N0UnRwQmluQ2xhc3MsCisrICAgICAgICAgIG9uX2J1bmRs
ZWRfc3NyYyksIE5VTEwsIE5VTEwsCisrICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMs
IEdfVFlQRV9VSU5ULCAxLCBHX1RZUEVfVUlOVCk7CisrCisrCisgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLCBQUk9QX1NERVMsCisgICAgICAgZ19wYXJh
bV9zcGVjX2JveGVkICgic2RlcyIsICJTREVTIiwKKyAgICAgICAgICAgIlRoZSBTREVTIGl0ZW1z
IG9mIHRoaXMgc2Vzc2lvbiIsCitAQCAtMzAyMSw3ICszMTY1LDcgQEAgbmV3X3BheWxvYWRfZm91
bmQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LCBndWludCBwdCwgR3N0UGFkICogcGFkLAorIAorICAg
cnRwYmluID0gc3RyZWFtLT5iaW47CisgCistICBHU1RfREVCVUcgKCJuZXcgcGF5bG9hZCBwYWQg
JWQiLCBwdCk7CisrICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJuZXcgcGF5bG9hZCBwYWQg
JXUiLCBwdCk7CisgCisgICBHU1RfUlRQX0JJTl9TSFVURE9XTl9MT0NLIChydHBiaW4sIHNodXRk
b3duKTsKKyAKK0BAIC0zMDc4LDcgKzMyMjIsNyBAQCBwdF9tYXBfcmVxdWVzdGVkIChHc3RFbGVt
ZW50ICogZWxlbWVudCwgZ3VpbnQgcHQsIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorIAor
ICAgcnRwYmluID0gc2Vzc2lvbi0+YmluOworIAorLSAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmlu
LCAicGF5bG9hZCBtYXAgcmVxdWVzdGVkIGZvciBwdCAlZCBpbiBzZXNzaW9uICVkIiwgcHQsCisr
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJwYXlsb2FkIG1hcCByZXF1ZXN0ZWQgZm9yIHB0
ICV1IGluIHNlc3Npb24gJXUiLCBwdCwKKyAgICAgICBzZXNzaW9uLT5pZCk7CisgCisgICBjYXBz
ID0gZ2V0X3B0X21hcCAoc2Vzc2lvbiwgcHQpOworQEAgLTMwOTksNyArMzI0Myw3IEBAIHN0YXRp
YyB2b2lkCisgcGF5bG9hZF90eXBlX2NoYW5nZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIGd1aW50
IHB0LCBHc3RSdHBCaW5TZXNzaW9uICogc2Vzc2lvbikKKyB7CisgICBHU1RfREVCVUdfT0JKRUNU
IChzZXNzaW9uLT5iaW4sCistICAgICAgImVtaXRpbmcgc2lnbmFsIGZvciBwdCB0eXBlIGNoYW5n
ZWQgdG8gJWQgaW4gc2Vzc2lvbiAlZCIsIHB0LAorKyAgICAgICJlbWl0aW5nIHNpZ25hbCBmb3Ig
cHQgdHlwZSBjaGFuZ2VkIHRvICV1IGluIHNlc3Npb24gJXUiLCBwdCwKKyAgICAgICBzZXNzaW9u
LT5pZCk7CisgCisgICBnX3NpZ25hbF9lbWl0IChzZXNzaW9uLT5iaW4sIGdzdF9ydHBfYmluX3Np
Z25hbHNbU0lHTkFMX1BBWUxPQURfVFlQRV9DSEFOR0VdLAorQEAgLTMyNDYsMTUgKzMzOTAsNDIg
QEAgbm9fc3RyZWFtOgorICAgfQorIH0KKyAKKy1zdGF0aWMgZ2Jvb2xlYW4KKy1jb21wbGV0ZV9z
ZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Np
b24pCisrc3RhdGljIHZvaWQKKytzZXNzaW9uX21heWJlX2NyZWF0ZV9idW5kbGVfZGVtdXhlciAo
R3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCisreworKyAgR3N0UnRwQmluICpydHBiaW47Cisr
CisrICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KQorKyAgICByZXR1cm47CisrCisrICBydHBi
aW4gPSBzZXNzaW9uLT5iaW47CisrICBpZiAoZ19zaWduYWxfaGFzX2hhbmRsZXJfcGVuZGluZyAo
cnRwYmluLAorKyAgICAgICAgICBnc3RfcnRwX2Jpbl9zaWduYWxzW1NJR05BTF9PTl9CVU5ETEVE
X1NTUkNdLCAwLCBUUlVFKSkgeworKyAgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJBZGRp
bmcgYSBidW5kbGUgU1NSQyBkZW11eGVyIHRvIHNlc3Npb24gJXUiLAorKyAgICAgICAgc2Vzc2lv
bi0+aWQpOworKyAgICBzZXNzaW9uLT5idW5kbGVfZGVtdXggPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UgKCJydHBzc3JjZGVtdXgiLCBOVUxMKTsKKysgICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4
X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5idW5kbGVfZGVtdXgsCisr
ICAgICAgICAibmV3LXNzcmMtcGFkIiwgKEdDYWxsYmFjaykgbmV3X2J1bmRsZWRfc3NyY19wYWRf
Zm91bmQsIHNlc3Npb24pOworKworKyAgICBnc3RfYmluX2FkZCAoR1NUX0JJTl9DQVNUIChydHBi
aW4pLCBzZXNzaW9uLT5idW5kbGVfZGVtdXgpOworKyAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRl
X3dpdGhfcGFyZW50IChzZXNzaW9uLT5idW5kbGVfZGVtdXgpOworKyAgfSBlbHNlIHsKKysgICAg
R1NUX0RFQlVHX09CSkVDVCAocnRwYmluLAorKyAgICAgICAgIk5vIGhhbmRsZXIgZm9yIHRoZSBv
bi1idW5kbGVkLXNzcmMgc2lnbmFsIHNvIG5vIG5lZWQgZm9yIGEgYnVuZGxlIFNTUkMgZGVtdXhl
ciBpbiBzZXNzaW9uICV1IiwKKysgICAgICAgIHNlc3Npb24tPmlkKTsKKysgIH0KKyt9CisrCisr
c3RhdGljIEdzdFBhZCAqCisrY29tcGxldGVfc2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBi
aW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uLAorKyAgICBnYm9vbGVhbiBidW5kbGVfZGVt
dXhlcl9uZWVkZWQpCisgeworLSAgZ2NoYXIgKmduYW1lOworICAgZ3VpbnQgc2Vzc2lkID0gc2Vz
c2lvbi0+aWQ7CisgICBHc3RQYWQgKnJlY3ZfcnRwX3Npbms7CisrICBHc3RQYWQgKmZ1bm5lbF9z
cmM7CisgICBHc3RFbGVtZW50ICpkZWNvZGVyOworLSAgR3N0RWxlbWVudENsYXNzICprbGFzczsK
Ky0gIEdzdFBhZFRlbXBsYXRlICp0ZW1wbDsKKysKKysgIGdfYXNzZXJ0ICghc2Vzc2lvbi0+cmVj
dl9ydHBfc2luayk7CisgCisgICAvKiBnZXQgcmVjdl9ydHAgcGFkIGFuZCBzdG9yZSAqLworICAg
c2Vzc2lvbi0+cmVjdl9ydHBfc2luayA9CitAQCAtMzI2NSw2ICszNDM2LDkgQEAgY29tcGxldGVf
c2Vzc2lvbl9zaW5rIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNz
aW9uKQorICAgZ19zaWduYWxfY29ubmVjdCAoc2Vzc2lvbi0+cmVjdl9ydHBfc2luaywgIm5vdGlm
eTo6Y2FwcyIsCisgICAgICAgKEdDYWxsYmFjaykgY2Fwc19jaGFuZ2VkLCBzZXNzaW9uKTsKKyAK
KysgIGlmIChidW5kbGVfZGVtdXhlcl9uZWVkZWQpCisrICAgIHNlc3Npb25fbWF5YmVfY3JlYXRl
X2J1bmRsZV9kZW11eGVyIChzZXNzaW9uKTsKKysKKyAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJp
biwgInJlcXVlc3RpbmcgUlRQIGRlY29kZXIiKTsKKyAgIGRlY29kZXIgPSBzZXNzaW9uX3JlcXVl
c3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1RfUlRQX0RFQ09ERVIpOworICAgaWYg
KGRlY29kZXIpIHsKK0BAIC0zMjgyLDcgKzM0NTYsMTQgQEAgY29tcGxldGVfc2Vzc2lvbl9zaW5r
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorICAgICBp
ZiAoZGVjc3JjID09IE5VTEwpCisgICAgICAgZ290byBkZWNfc3JjX2ZhaWxlZDsKKyAKKy0gICAg
cmV0ID0gZ3N0X3BhZF9saW5rIChkZWNzcmMsIHNlc3Npb24tPnJlY3ZfcnRwX3NpbmspOworKyAg
ICBpZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7CisrICAgICAgR3N0UGFkICpkZW11eF9zaW5r
OworKyAgICAgIGRlbXV4X3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lv
bi0+YnVuZGxlX2RlbXV4LCAic2luayIpOworKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAoZGVj
c3JjLCBkZW11eF9zaW5rKTsKKysgICAgICBnc3Rfb2JqZWN0X3VucmVmIChkZW11eF9zaW5rKTsK
KysgICAgfSBlbHNlIHsKKysgICAgICByZXQgPSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lv
bi0+cmVjdl9ydHBfc2luayk7CisrICAgIH0KKyAgICAgZ3N0X29iamVjdF91bnJlZiAoZGVjc3Jj
KTsKKyAKKyAgICAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0spCitAQCAtMzI5MCw4MSArMzQ3
MSw1NCBAQCBjb21wbGV0ZV9zZXNzaW9uX3NpbmsgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRw
QmluU2Vzc2lvbiAqIHNlc3Npb24pCisgCisgICB9IGVsc2UgeworICAgICBHU1RfREVCVUdfT0JK
RUNUIChydHBiaW4sICJubyBSVFAgZGVjb2RlciBnaXZlbiIpOworLSAgICByZWN2X3J0cF9zaW5r
ID0gZ3N0X29iamVjdF9yZWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmspOworKyAgICBpZiAoc2Vz
c2lvbi0+YnVuZGxlX2RlbXV4KSB7CisrICAgICAgcmVjdl9ydHBfc2luayA9CisrICAgICAgICAg
IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5idW5kbGVfZGVtdXgsICJzaW5r
Iik7CisrICAgIH0gZWxzZSB7CisrICAgICAgcmVjdl9ydHBfc2luayA9CisrICAgICAgICAgIGdz
dF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCAoc2Vzc2lvbi0+cnRwX2Z1bm5lbCwgInNpbmtfJXUi
KTsKKysgICAgfQorICAgfQorIAorLSAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2hvc3Rp
bmcgc2Vzc2lvbiBzaW5rIHBhZCIpOworLSAga2xhc3MgPSBHU1RfRUxFTUVOVF9HRVRfQ0xBU1Mg
KHJ0cGJpbik7CistICBnbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJlY3ZfcnRwX3NpbmtfJXUi
LCBzZXNzaWQpOworLSAgdGVtcGwgPSBnc3RfZWxlbWVudF9jbGFzc19nZXRfcGFkX3RlbXBsYXRl
IChrbGFzcywgInJlY3ZfcnRwX3NpbmtfJXUiKTsKKy0gIHNlc3Npb24tPnJlY3ZfcnRwX3Npbmtf
Z2hvc3QgPQorLSAgICAgIGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKGduYW1lLCBy
ZWN2X3J0cF9zaW5rLCB0ZW1wbCk7CistICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0cF9zaW5r
KTsKKy0gIGdzdF9wYWRfc2V0X2FjdGl2ZSAoc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCwg
VFJVRSk7CistICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1RfRUxFTUVOVF9DQVNUIChydHBiaW4p
LCBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0KTsKKy0gIGdfZnJlZSAoZ25hbWUpOworKyAg
ZnVubmVsX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5ydHBfZnVu
bmVsLCAic3JjIik7CisrICBnc3RfcGFkX2xpbmsgKGZ1bm5lbF9zcmMsIHNlc3Npb24tPnJlY3Zf
cnRwX3NpbmspOworKyAgZ3N0X29iamVjdF91bnJlZiAoZnVubmVsX3NyYyk7CisgCistICByZXR1
cm4gVFJVRTsKKysgIHJldHVybiByZWN2X3J0cF9zaW5rOworIAorICAgLyogRVJST1JTICovCisg
cGFkX2ZhaWxlZDoKKyAgIHsKKyAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IHNlc3Npb24gcmVjdl9ydHBfc2luayBwYWQiKTsKKy0gICAgcmV0dXJuIEZBTFNFOworKyAgICBy
ZXR1cm4gTlVMTDsKKyAgIH0KKyBkZWNfc2lua19mYWlsZWQ6CisgICB7CistICAgIGdfd2Fybmlu
ZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICVk
Iiwgc2Vzc2lkKTsKKy0gICAgcmV0dXJuIEZBTFNFOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46
IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7
CisrICAgIHJldHVybiBOVUxMOworICAgfQorIGRlY19zcmNfZmFpbGVkOgorICAgeworLSAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZGVjb2RlciBzcmMgcGFkIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisgICAgIGdzdF9vYmpl
Y3RfdW5yZWYgKHJlY3ZfcnRwX3NpbmspOworLSAgICByZXR1cm4gRkFMU0U7CisrICAgIHJldHVy
biBOVUxMOworICAgfQorIGRlY19saW5rX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gbGluayBydHAgZGVjb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3Np
ZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGRlY29kZXIg
Zm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICBnc3Rfb2JqZWN0X3VucmVmIChyZWN2X3J0
cF9zaW5rKTsKKy0gICAgcmV0dXJuIEZBTFNFOworKyAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyB9
CisgCistLyogQ3JlYXRlIGEgcGFkIGZvciByZWNlaXZpbmcgUlRQIGZvciB0aGUgc2Vzc2lvbiBp
biBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAorLSAqIFJUUF9CSU5fTE9DSy4KKy0gKi8KKy1z
dGF0aWMgR3N0UGFkICoKKy1jcmVhdGVfcmVjdl9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0
UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQorK3N0YXRpYyB2b2lkCisr
Y29tcGxldGVfc2Vzc2lvbl9yZWNlaXZlciAoR3N0UnRwQmluICogcnRwYmluLCBHc3RSdHBCaW5T
ZXNzaW9uICogc2Vzc2lvbiwKKysgICAgZ3VpbnQgc2Vzc2lkKQorIHsKKy0gIGd1aW50IHNlc3Np
ZDsKKyAgIEdzdEVsZW1lbnQgKmF1eDsKKyAgIEdzdFBhZCAqcmVjdl9ydHBfc3JjOworLSAgR3N0
UnRwQmluU2Vzc2lvbiAqc2Vzc2lvbjsKKy0KKy0gIC8qIGZpcnN0IGdldCB0aGUgc2Vzc2lvbiBu
dW1iZXIgKi8KKy0gIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5mIChuYW1lLCAicmVjdl9ydHBf
c2lua18ldSIsICZzZXNzaWQpICE9IDEpCistICAgIGdvdG8gbm9fbmFtZTsKKy0KKy0gIEdTVF9E
RUJVR19PQkpFQ1QgKHJ0cGJpbiwgImZpbmRpbmcgc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisgCist
ICAvKiBnZXQgb3IgY3JlYXRlIHNlc3Npb24gKi8KKy0gIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25f
YnlfaWQgKHJ0cGJpbiwgc2Vzc2lkKTsKKy0gIGlmICghc2Vzc2lvbikgeworLSAgICBHU1RfREVC
VUdfT0JKRUNUIChydHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKy0gICAg
LyogY3JlYXRlIHNlc3Npb24gbm93ICovCistICAgIHNlc3Npb24gPSBjcmVhdGVfc2Vzc2lvbiAo
cnRwYmluLCBzZXNzaWQpOworLSAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQorLSAgICAgIGdvdG8g
Y3JlYXRlX2Vycm9yOworLSAgfQorLQorLSAgLyogY2hlY2sgaWYgcGFkIHdhcyByZXF1ZXN0ZWQg
Ki8KKy0gIGlmIChzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0ICE9IE5VTEwpCistICAgIHJl
dHVybiBzZXNzaW9uLT5yZWN2X3J0cF9zaW5rX2dob3N0OworLQorLSAgLyogc2V0dXAgdGhlIHNl
c3Npb24gc2luayBwYWQgKi8KKy0gIGlmICghY29tcGxldGVfc2Vzc2lvbl9zaW5rIChydHBiaW4s
IHNlc3Npb24pKQorLSAgICBnb3RvIHNlc3Npb25fc2lua19mYWlsZWQ7CisrICBnX2Fzc2VydCAo
IXNlc3Npb24tPnJlY3ZfcnRwX3NyYyk7CisgCisgICBzZXNzaW9uLT5yZWN2X3J0cF9zcmMgPQor
ICAgICAgIGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChzZXNzaW9uLT5zZXNzaW9uLCAicmVj
dl9ydHBfc3JjIik7CitAQCAtMzM4MSw3ICszNTM1LDcgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RS
dHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFt
ZSkKKyAKKyAgICAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAibGlua2luZyBBVVggcmVjZWl2
ZXIiKTsKKyAKKy0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyVkIiwgc2Vzc2lk
KTsKKysgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyV1Iiwgc2Vzc2lkKTsKKyAg
ICAgYXV4c2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChhdXgsIHBuYW1lKTsKKyAg
ICAgZ19mcmVlIChwbmFtZSk7CisgICAgIGlmIChhdXhzaW5rID09IE5VTEwpCitAQCAtMzM5NCw3
ICszNTQ4LDcgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRl
bXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKKyAKKyAgICAgLyogdGhpcyBjYW4g
YmUgTlVMTCB3aGVuIHRoaXMgQVVYIGVsZW1lbnQgaXMgbm90IHRvIGJlIGxpbmtlZCB0bworICAg
ICAgKiBhbiBTU1JDIGRlbXV4ZXIgKi8KKy0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJz
cmNfJWQiLCBzZXNzaWQpOworKyAgICBwbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInNyY18ldSIs
IHNlc3NpZCk7CisgICAgIHJlY3ZfcnRwX3NyYyA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
IChhdXgsIHBuYW1lKTsKKyAgICAgZ19mcmVlIChwbmFtZSk7CisgICB9IGVsc2UgeworQEAgLTM0
MDgsOCArMzU2Miw4IEBAIGNyZWF0ZV9yZWN2X3J0cCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQ
YWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAqIG5hbWUpCisgICAgIHNpbmtkcGFkID0g
Z3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKHNlc3Npb24tPmRlbXV4LCAic2luayIpOworICAg
ICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJsaW5raW5nIGRlbXV4ZXIgUlRQIHNpbmsgcGFk
Iik7CisgICAgIGdzdF9wYWRfbGlua19mdWxsIChyZWN2X3J0cF9zcmMsIHNpbmtkcGFkLCBHU1Rf
UEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CistICAgIGdzdF9vYmplY3RfdW5yZWYgKHJlY3ZfcnRw
X3NyYyk7CisgICAgIGdzdF9vYmplY3RfdW5yZWYgKHNpbmtkcGFkKTsKKysgICAgZ3N0X29iamVj
dF91bnJlZiAocmVjdl9ydHBfc3JjKTsKKyAKKyAgICAgLyogY29ubmVjdCB0byB0aGUgbmV3LXNz
cmMtcGFkIHNpZ25hbCBvZiB0aGUgU1NSQyBkZW11eGVyICovCisgICAgIHNlc3Npb24tPmRlbXV4
X25ld3BhZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5kZW11eCwKK0BAIC0zNDE3
LDYgKzM1NzEsNzEgQEAgY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBh
ZFRlbXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKKyAgICAgc2Vzc2lvbi0+ZGVt
dXhfcGFkcmVtb3ZlZF9zaWcgPSBnX3NpZ25hbF9jb25uZWN0IChzZXNzaW9uLT5kZW11eCwKKyAg
ICAgICAgICJyZW1vdmVkLXNzcmMtcGFkIiwgKEdDYWxsYmFjaykgc3NyY19kZW11eF9wYWRfcmVt
b3ZlZCwgc2Vzc2lvbik7CisgICB9CisrCisrICByZXR1cm47CisrCisrcGFkX2ZhaWxlZDoKKysg
IHsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcmVjdl9y
dHBfc3JjIHBhZCIpOworKyAgICByZXR1cm47CisrICB9CisrYXV4X3NpbmtfZmFpbGVkOgorKyAg
eworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsgcGFkIGZv
ciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKysgICAgcmV0dXJuOworKyAgfQorK2F1eF9saW5rX2Zh
aWxlZDoKKysgIHsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVgg
cGFkIHRvIHNlc3Npb24gJXUiLCBzZXNzaWQpOworKyAgICByZXR1cm47CisrICB9CisrfQorKwor
Ky8qIENyZWF0ZSBhIHBhZCBmb3IgcmVjZWl2aW5nIFJUUCBmb3IgdGhlIHNlc3Npb24gaW4gQG5h
bWUuIE11c3QgYmUgY2FsbGVkIHdpdGgKKysgKiBSVFBfQklOX0xPQ0suCisrICovCisrc3RhdGlj
IEdzdFBhZCAqCisrY3JlYXRlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRl
bXBsYXRlICogdGVtcGwsIGNvbnN0IGdjaGFyICogbmFtZSkKKyt7CisrICBndWludCBzZXNzaWQ7
CisrICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOworKyAgR3N0UGFkICpyZWN2X3J0cF9zaW5r
OworKworKyAgLyogZmlyc3QgZ2V0IHRoZSBzZXNzaW9uIG51bWJlciAqLworKyAgaWYgKG5hbWUg
PT0gTlVMTCB8fCBzc2NhbmYgKG5hbWUsICJyZWN2X3J0cF9zaW5rXyV1IiwgJnNlc3NpZCkgIT0g
MSkKKysgICAgZ290byBub19uYW1lOworKworKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAi
ZmluZGluZyBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKysKKysgIC8qIGdldCBvciBjcmVhdGUgc2Vz
c2lvbiAqLworKyAgc2Vzc2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNzaWQp
OworKyAgaWYgKCFzZXNzaW9uKSB7CisrICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNy
ZWF0aW5nIHNlc3Npb24gJXUiLCBzZXNzaWQpOworKyAgICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cg
Ki8KKysgICAgc2Vzc2lvbiA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7CisrICAg
IGlmIChzZXNzaW9uID09IE5VTEwpCisrICAgICAgZ290byBjcmVhdGVfZXJyb3I7CisrICB9Cisr
CisrICAvKiBjaGVjayBpZiBwYWQgd2FzIHJlcXVlc3RlZCAqLworKyAgaWYgKHNlc3Npb24tPnJl
Y3ZfcnRwX3NpbmtfZ2hvc3QgIT0gTlVMTCkKKysgICAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRw
X3NpbmtfZ2hvc3Q7CisrCisrICAvKiBzZXR1cCB0aGUgc2Vzc2lvbiBzaW5rIHBhZCAqLworKyAg
cmVjdl9ydHBfc2luayA9IGNvbXBsZXRlX3Nlc3Npb25fc2luayAocnRwYmluLCBzZXNzaW9uLCBU
UlVFKTsKKysgIGlmICghcmVjdl9ydHBfc2luaykKKysgICAgZ290byBzZXNzaW9uX3NpbmtfZmFp
bGVkOworKworKworKyAgR1NUX0RFQlVHX09CSkVDVCAocnRwYmluLCAiZ2hvc3Rpbmcgc2Vzc2lv
biBzaW5rIHBhZCIpOworKyAgc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19naG9zdCA9CisrICAgICAg
Z3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgcmVjdl9ydHBfc2luaywgdGVt
cGwpOworKyAgZ3N0X29iamVjdF91bnJlZiAocmVjdl9ydHBfc2luayk7CisrICBnc3RfcGFkX3Nl
dF9hY3RpdmUgKHNlc3Npb24tPnJlY3ZfcnRwX3NpbmtfZ2hvc3QsIFRSVUUpOworKyAgZ3N0X2Vs
ZW1lbnRfYWRkX3BhZCAoR1NUX0VMRU1FTlRfQ0FTVCAocnRwYmluKSwgc2Vzc2lvbi0+cmVjdl9y
dHBfc2lua19naG9zdCk7CisrCisrICBjb21wbGV0ZV9zZXNzaW9uX3JlY2VpdmVyIChydHBiaW4s
IHNlc3Npb24sIHNlc3NpZCk7CisrCisgICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydHBfc2lua19n
aG9zdDsKKyAKKyAgIC8qIEVSUk9SUyAqLworQEAgLTM0MzUsMjEgKzM2NTQsNiBAQCBzZXNzaW9u
X3NpbmtfZmFpbGVkOgorICAgICAvKiB3YXJuaW5nIGFscmVhZHkgZG9uZSAqLworICAgICByZXR1
cm4gTlVMTDsKKyAgIH0KKy1wYWRfZmFpbGVkOgorLSAgeworLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiByZWN2X3J0cF9zcmMgcGFkIik7CistICAgIHJldHVy
biBOVUxMOworLSAgfQorLWF1eF9zaW5rX2ZhaWxlZDoKKy0gIHsKKy0gICAgZ193YXJuaW5nICgi
cnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3Np
ZCk7CistICAgIHJldHVybiBOVUxMOworLSAgfQorLWF1eF9saW5rX2ZhaWxlZDoKKy0gIHsKKy0g
ICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gbGluayBBVVggcGFkIHRvIHNlc3Npb24g
JWQiLCBzZXNzaWQpOworLSAgICByZXR1cm4gTlVMTDsKKy0gIH0KKyB9CisgCisgc3RhdGljIHZv
aWQKK0BAIC0zNDYzLDYgKzM2NjcsMTEgQEAgcmVtb3ZlX3JlY3ZfcnRwIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorICAgICBnX3NpZ25hbF9oYW5kbGVy
X2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmRlbXV4LCBzZXNzaW9uLT5kZW11eF9wYWRyZW1vdmVkX3Np
Zyk7CisgICAgIHNlc3Npb24tPmRlbXV4X3BhZHJlbW92ZWRfc2lnID0gMDsKKyAgIH0KKysgIGlm
IChzZXNzaW9uLT5idW5kbGVfZGVtdXhfbmV3cGFkX3NpZykgeworKyAgICBnX3NpZ25hbF9oYW5k
bGVyX2Rpc2Nvbm5lY3QgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwKKysgICAgICAgIHNlc3Npb24t
PmJ1bmRsZV9kZW11eF9uZXdwYWRfc2lnKTsKKysgICAgc2Vzc2lvbi0+YnVuZGxlX2RlbXV4X25l
d3BhZF9zaWcgPSAwOworKyAgfQorICAgaWYgKHNlc3Npb24tPnJlY3ZfcnRwX3NyYykgeworICAg
ICBnc3Rfb2JqZWN0X3VucmVmIChzZXNzaW9uLT5yZWN2X3J0cF9zcmMpOworICAgICBzZXNzaW9u
LT5yZWN2X3J0cF9zcmMgPSBOVUxMOworQEAgLTM0ODAsMzcgKzM2ODksMTQgQEAgcmVtb3ZlX3Jl
Y3ZfcnRwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQor
ICAgfQorIH0KKyAKKy0vKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2VpdmluZyBSVENQIGZvciB0aGUg
c2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAorLSAqIFJUUF9CSU5fTE9DSy4K
Ky0gKi8KKyBzdGF0aWMgR3N0UGFkICoKKy1jcmVhdGVfcmVjdl9ydGNwIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCistICAgIGNvbnN0IGdjaGFyICogbmFtZSkK
Kytjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vz
c2lvbiAqIHNlc3Npb24sCisrICAgIGd1aW50IHNlc3NpZCwgZ2Jvb2xlYW4gYnVuZGxlX2RlbXV4
ZXJfbmVlZGVkKQorIHsKKy0gIGd1aW50IHNlc3NpZDsKKyAgIEdzdEVsZW1lbnQgKmRlY29kZXI7
CistICBHc3RSdHBCaW5TZXNzaW9uICpzZXNzaW9uOworLSAgR3N0UGFkICpzaW5rZHBhZCwgKmRl
Y3Npbms7CistCistICAvKiBmaXJzdCBnZXQgdGhlIHNlc3Npb24gbnVtYmVyICovCistICBpZiAo
bmFtZSA9PSBOVUxMIHx8IHNzY2FuZiAobmFtZSwgInJlY3ZfcnRjcF9zaW5rXyV1IiwgJnNlc3Np
ZCkgIT0gMSkKKy0gICAgZ290byBub19uYW1lOworLQorLSAgR1NUX0RFQlVHX09CSkVDVCAocnRw
YmluLCAiZmluZGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKy0KKy0gIC8qIGdldCBvciBjcmVh
dGUgdGhlIHNlc3Npb24gKi8KKy0gIHNlc3Npb24gPSBmaW5kX3Nlc3Npb25fYnlfaWQgKHJ0cGJp
biwgc2Vzc2lkKTsKKy0gIGlmICghc2Vzc2lvbikgeworLSAgICBHU1RfREVCVUdfT0JKRUNUIChy
dHBiaW4sICJjcmVhdGluZyBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKy0gICAgLyogY3JlYXRlIHNl
c3Npb24gbm93ICovCistICAgIHNlc3Npb24gPSBjcmVhdGVfc2Vzc2lvbiAocnRwYmluLCBzZXNz
aWQpOworLSAgICBpZiAoc2Vzc2lvbiA9PSBOVUxMKQorLSAgICAgIGdvdG8gY3JlYXRlX2Vycm9y
OworLSAgfQorLQorLSAgLyogY2hlY2sgaWYgcGFkIHdhcyByZXF1ZXN0ZWQgKi8KKy0gIGlmIChz
ZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCAhPSBOVUxMKQorLSAgICByZXR1cm4gc2Vzc2lv
bi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7CisrICBHc3RQYWQgKnNpbmtkcGFkOworKyAgR3N0UGFk
ICpkZWNzaW5rID0gTlVMTDsKKysgIEdzdFBhZCAqZnVubmVsX3NyYzsKKyAKKyAgIC8qIGdldCBy
ZWN2X3J0cCBwYWQgYW5kIHN0b3JlICovCisgICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJn
ZXR0aW5nIFJUQ1Agc2luayBwYWQiKTsKK0BAIC0zNTE5LDYgKzM3MDUsOSBAQCBjcmVhdGVfcmVj
dl9ydGNwIChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCisgICBp
ZiAoc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmsgPT0gTlVMTCkKKyAgICAgZ290byBwYWRfZmFpbGVk
OworIAorKyAgaWYgKGJ1bmRsZV9kZW11eGVyX25lZWRlZCkKKysgICAgc2Vzc2lvbl9tYXliZV9j
cmVhdGVfYnVuZGxlX2RlbXV4ZXIgKHNlc3Npb24pOworKworICAgR1NUX0RFQlVHX09CSkVDVCAo
cnRwYmluLCAiZ2V0dGluZyBSVENQIGRlY29kZXIiKTsKKyAgIGRlY29kZXIgPSBzZXNzaW9uX3Jl
cXVlc3RfZWxlbWVudCAoc2Vzc2lvbiwgU0lHTkFMX1JFUVVFU1RfUlRDUF9ERUNPREVSKTsKKyAg
IGlmIChkZWNvZGVyKSB7CitAQCAtMzUzNSwxNCArMzcyNCwyNiBAQCBjcmVhdGVfcmVjdl9ydGNw
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCisgICAgIGlmIChk
ZWNzcmMgPT0gTlVMTCkKKyAgICAgICBnb3RvIGRlY19zcmNfZmFpbGVkOworIAorLSAgICByZXQg
PSBnc3RfcGFkX2xpbmsgKGRlY3NyYywgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmspOworKyAgICBp
ZiAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4KSB7CisrICAgICAgR3N0UGFkICpkZW11eF9zaW5rOwor
KyAgICAgIGRlbXV4X3NpbmsgPQorKyAgICAgICAgICBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZCAoc2Vzc2lvbi0+YnVuZGxlX2RlbXV4LCAicnRjcF9zaW5rIik7CisrICAgICAgcmV0ID0gZ3N0
X3BhZF9saW5rIChkZWNzcmMsIGRlbXV4X3NpbmspOworKyAgICAgIGdzdF9vYmplY3RfdW5yZWYg
KGRlbXV4X3NpbmspOworKyAgICB9IGVsc2UgeworKyAgICAgIHJldCA9IGdzdF9wYWRfbGluayAo
ZGVjc3JjLCBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7CisrICAgIH0KKyAgICAgZ3N0X29iamVj
dF91bnJlZiAoZGVjc3JjKTsKKyAKKyAgICAgaWYgKHJldCAhPSBHU1RfUEFEX0xJTktfT0spCisg
ICAgICAgZ290byBkZWNfbGlua19mYWlsZWQ7CisgICB9IGVsc2UgeworICAgICBHU1RfREVCVUdf
T0JKRUNUIChydHBiaW4sICJubyBSVENQIGRlY29kZXIgZ2l2ZW4iKTsKKy0gICAgZGVjc2luayA9
IGdzdF9vYmplY3RfcmVmIChzZXNzaW9uLT5yZWN2X3J0Y3Bfc2luayk7CisrICAgIGlmIChzZXNz
aW9uLT5idW5kbGVfZGVtdXgpIHsKKysgICAgICBkZWNzaW5rID0gZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRpY19wYWQgKHNlc3Npb24tPmJ1bmRsZV9kZW11eCwgInJ0Y3Bfc2luayIpOworKyAgICB9IGVs
c2UgeworKyAgICAgIGRlY3NpbmsgPSBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQgKHNlc3Np
b24tPnJ0Y3BfZnVubmVsLCAic2lua18ldSIpOworKyAgICB9CisgICB9CisgCisgICAvKiBnZXQg
c3JjcGFkLCBsaW5rIHRvIFNTUkNEZW11eCAqLworQEAgLTM1NTYsMjYgKzM3NTcsMTIgQEAgY3Jl
YXRlX3JlY3ZfcnRjcCAoR3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBs
LAorICAgZ3N0X3BhZF9saW5rX2Z1bGwgKHNlc3Npb24tPnN5bmNfc3JjLCBzaW5rZHBhZCwgR1NU
X1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgZ3N0X29iamVjdF91bnJlZiAoc2lua2RwYWQp
OworIAorLSAgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3QgPQorLSAgICAgIGdzdF9naG9z
dF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKG5hbWUsIGRlY3NpbmssIHRlbXBsKTsKKy0gIGdzdF9v
YmplY3RfdW5yZWYgKGRlY3NpbmspOworLSAgZ3N0X3BhZF9zZXRfYWN0aXZlIChzZXNzaW9uLT5y
ZWN2X3J0Y3Bfc2lua19naG9zdCwgVFJVRSk7CistICBnc3RfZWxlbWVudF9hZGRfcGFkIChHU1Rf
RUxFTUVOVF9DQVNUIChydHBiaW4pLAorLSAgICAgIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2do
b3N0KTsKKysgIGZ1bm5lbF9zcmMgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCAoc2Vzc2lv
bi0+cnRjcF9mdW5uZWwsICJzcmMiKTsKKysgIGdzdF9wYWRfbGluayAoZnVubmVsX3NyYywgc2Vz
c2lvbi0+cmVjdl9ydGNwX3NpbmspOworKyAgZ3N0X29iamVjdF91bnJlZiAoZnVubmVsX3NyYyk7
CisgCistICByZXR1cm4gc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hvc3Q7CisrICByZXR1cm4g
ZGVjc2luazsKKyAKKy0gIC8qIEVSUk9SUyAqLworLW5vX25hbWU6CistICB7CistICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogaW52YWxpZCBuYW1lIGdpdmVuIik7CistICAgIHJldHVybiBOVUxMOwor
LSAgfQorLWNyZWF0ZV9lcnJvcjoKKy0gIHsKKy0gICAgLyogY3JlYXRlX3Nlc3Npb24gYWxyZWFk
eSB3YXJuZWQgKi8KKy0gICAgcmV0dXJuIE5VTEw7CistICB9CisgcGFkX2ZhaWxlZDoKKyAgIHsK
KyAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IHNlc3Npb24gcnRjcF9zaW5r
IHBhZCIpOworQEAgLTM1ODMsMjUgKzM3NzAsODIgQEAgcGFkX2ZhaWxlZDoKKyAgIH0KKyBkZWNf
c2lua19mYWlsZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBkZWNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24g
JXUiLCBzZXNzaWQpOworICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyBkZWNfc3JjX2ZhaWxlZDoK
KyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGRlY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CistICAgIGdzdF9vYmplY3RfdW5yZWYgKGRl
Y3NpbmspOworLSAgICByZXR1cm4gTlVMTDsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWls
ZWQgdG8gZ2V0IGRlY29kZXIgc3JjIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisrICAg
IGdvdG8gY2xlYW51cDsKKyAgIH0KKyBkZWNfbGlua19mYWlsZWQ6CisgICB7CistICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRjcCBkZWNvZGVyIGZvciBzZXNzaW9uICVk
Iiwgc2Vzc2lkKTsKKy0gICAgZ3N0X29iamVjdF91bnJlZiAoZGVjc2luayk7CistICAgIHJldHVy
biBOVUxMOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBsaW5rIHJ0Y3AgZGVj
b2RlciBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisrICAgIGdvdG8gY2xlYW51cDsKKyAgIH0K
KyBzcmNfcGFkX2ZhaWxlZDoKKyAgIHsKKyAgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gZ2V0IHNlc3Npb24gc3luY19zcmMgcGFkIik7CistICAgIGdzdF9vYmplY3RfdW5yZWYgKGRl
Y3NpbmspOworKyAgfQorKworK2NsZWFudXA6CisrICBnc3Rfb2JqZWN0X3VucmVmIChkZWNzaW5r
KTsKKysgIHJldHVybiBOVUxMOworK30KKysKKysvKiBDcmVhdGUgYSBwYWQgZm9yIHJlY2Vpdmlu
ZyBSVENQIGZvciB0aGUgc2Vzc2lvbiBpbiBAbmFtZS4gTXVzdCBiZSBjYWxsZWQgd2l0aAorKyAq
IFJUUF9CSU5fTE9DSy4KKysgKi8KKytzdGF0aWMgR3N0UGFkICoKKytjcmVhdGVfcmVjdl9ydGNw
IChHc3RSdHBCaW4gKiBydHBiaW4sIEdzdFBhZFRlbXBsYXRlICogdGVtcGwsCisrICAgIGNvbnN0
IGdjaGFyICogbmFtZSkKKyt7CisrICBndWludCBzZXNzaWQ7CisrICBHc3RSdHBCaW5TZXNzaW9u
ICpzZXNzaW9uOworKyAgR3N0UGFkICpkZWNzaW5rID0gTlVMTDsKKysKKysgIC8qIGZpcnN0IGdl
dCB0aGUgc2Vzc2lvbiBudW1iZXIgKi8KKysgIGlmIChuYW1lID09IE5VTEwgfHwgc3NjYW5mIChu
YW1lLCAicmVjdl9ydGNwX3NpbmtfJXUiLCAmc2Vzc2lkKSAhPSAxKQorKyAgICBnb3RvIG5vX25h
bWU7CisrCisrICBHU1RfREVCVUdfT0JKRUNUIChydHBiaW4sICJmaW5kaW5nIHNlc3Npb24gJXUi
LCBzZXNzaWQpOworKworKyAgLyogZ2V0IG9yIGNyZWF0ZSB0aGUgc2Vzc2lvbiAqLworKyAgc2Vz
c2lvbiA9IGZpbmRfc2Vzc2lvbl9ieV9pZCAocnRwYmluLCBzZXNzaWQpOworKyAgaWYgKCFzZXNz
aW9uKSB7CisrICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImNyZWF0aW5nIHNlc3Npb24g
JXUiLCBzZXNzaWQpOworKyAgICAvKiBjcmVhdGUgc2Vzc2lvbiBub3cgKi8KKysgICAgc2Vzc2lv
biA9IGNyZWF0ZV9zZXNzaW9uIChydHBiaW4sIHNlc3NpZCk7CisrICAgIGlmIChzZXNzaW9uID09
IE5VTEwpCisrICAgICAgZ290byBjcmVhdGVfZXJyb3I7CisrICB9CisrCisrICAvKiBjaGVjayBp
ZiBwYWQgd2FzIHJlcXVlc3RlZCAqLworKyAgaWYgKHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2do
b3N0ICE9IE5VTEwpCisrICAgIHJldHVybiBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdDsK
KysKKysgIGRlY3NpbmsgPSBjb21wbGV0ZV9zZXNzaW9uX3J0Y3AgKHJ0cGJpbiwgc2Vzc2lvbiwg
c2Vzc2lkLCBUUlVFKTsKKysgIGlmICghZGVjc2luaykKKysgICAgZ290byBjcmVhdGVfZXJyb3I7
CisrCisrICBzZXNzaW9uLT5yZWN2X3J0Y3Bfc2lua19naG9zdCA9CisrICAgICAgZ3N0X2dob3N0
X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSAobmFtZSwgZGVjc2luaywgdGVtcGwpOworKyAgZ3N0X29i
amVjdF91bnJlZiAoZGVjc2luayk7CisrICBnc3RfcGFkX3NldF9hY3RpdmUgKHNlc3Npb24tPnJl
Y3ZfcnRjcF9zaW5rX2dob3N0LCBUUlVFKTsKKysgIGdzdF9lbGVtZW50X2FkZF9wYWQgKEdTVF9F
TEVNRU5UX0NBU1QgKHJ0cGJpbiksCisrICAgICAgc2Vzc2lvbi0+cmVjdl9ydGNwX3NpbmtfZ2hv
c3QpOworKworKyAgcmV0dXJuIHNlc3Npb24tPnJlY3ZfcnRjcF9zaW5rX2dob3N0OworKworKyAg
LyogRVJST1JTICovCisrbm9fbmFtZToKKysgIHsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBp
bnZhbGlkIG5hbWUgZ2l2ZW4iKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrY3JlYXRlX2Vy
cm9yOgorKyAgeworKyAgICAvKiBjcmVhdGVfc2Vzc2lvbiBhbHJlYWR5IHdhcm5lZCAqLworICAg
ICByZXR1cm4gTlVMTDsKKyAgIH0KKyB9CitAQCAtMzY1MSw3ICszODk1LDcgQEAgY29tcGxldGVf
c2Vzc2lvbl9zcmMgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Np
b24pCisgICAgIEdzdFBhZExpbmtSZXR1cm4gcmV0OworIAorICAgICBHU1RfREVCVUdfT0JKRUNU
IChydHBiaW4sICJsaW5raW5nIFJUUCBlbmNvZGVyIik7CistICAgIGVuYW1lID0gZ19zdHJkdXBf
cHJpbnRmICgicnRwX3NyY18lZCIsIHNlc3NpZCk7CisrICAgIGVuYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgicnRwX3NyY18ldSIsIHNlc3NpZCk7CisgICAgIGVuY3NyYyA9IGdzdF9lbGVtZW50X2dl
dF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7CisgICAgIGdfZnJlZSAoZW5hbWUpOworIAor
QEAgLTM2NjAsNyArMzkwNCw3IEBAIGNvbXBsZXRlX3Nlc3Npb25fc3JjIChHc3RSdHBCaW4gKiBy
dHBiaW4sIEdzdFJ0cEJpblNlc3Npb24gKiBzZXNzaW9uKQorIAorICAgICBzZW5kX3J0cF9zcmMg
PSBlbmNzcmM7CisgCistICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRwX3NpbmtfJWQi
LCBzZXNzaWQpOworKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0cF9zaW5rXyV1Iiwg
c2Vzc2lkKTsKKyAgICAgZW5jc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChlbmNv
ZGVyLCBlbmFtZSk7CisgICAgIGdfZnJlZSAoZW5hbWUpOworICAgICBpZiAoZW5jc2luayA9PSBO
VUxMKQorQEAgLTM2OTQsMjMgKzM5MzgsMjMgQEAgY29tcGxldGVfc2Vzc2lvbl9zcmMgKEdzdFJ0
cEJpbiAqIHJ0cGJpbiwgR3N0UnRwQmluU2Vzc2lvbiAqIHNlc3Npb24pCisgICAvKiBFUlJPUlMg
Ki8KKyBub19zcmNwYWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRv
IGdldCBydHAgc291cmNlIHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2Fy
bmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBydHAgc291cmNlIHBhZCBmb3Igc2Vzc2lvbiAl
dSIsIHNlc3NpZCk7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKyBlbmNfc3JjX2ZhaWxlZDoK
KyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjog
ZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwor
ICAgICByZXR1cm4gRkFMU0U7CisgICB9CisgZW5jX3NpbmtfZmFpbGVkOgorICAgeworLSAgICBn
X3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgZW5jb2RlciBzaW5rIHBhZCBmb3Igc2Vz
c2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdl
dCBlbmNvZGVyIHNpbmsgcGFkIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgZ3N0X29i
amVjdF91bnJlZiAoc2VuZF9ydHBfc3JjKTsKKyAgICAgcmV0dXJuIEZBTFNFOworICAgfQorIGVu
Y19saW5rX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8g
bGluayBydHAgZW5jb2RlciBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2Fybmlu
ZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRwIGVuY29kZXIgZm9yIHNlc3Npb24gJXUiLCBz
ZXNzaWQpOworICAgICBnc3Rfb2JqZWN0X3VucmVmIChzZW5kX3J0cF9zcmMpOworICAgICByZXR1
cm4gRkFMU0U7CisgICB9CitAQCAtMzc3MiwyMiArNDAxNiwyMiBAQCBjcmVhdGVfZXJyb3I6Cisg
ICB9CisgZXhpc3Rpbmdfc2Vzc2lvbjoKKyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBz
ZXNzaW9uICVkIGlzIGFscmVhZHkgYSBzZW5kZXIiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcg
KCJydHBiaW46IHNlc3Npb24gJXUgaXMgYWxyZWFkeSBhIHNlbmRlciIsIHNlc3NpZCk7CisgICAg
IHJldHVybiBGQUxTRTsKKyAgIH0KKyBwYWRfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcg
KCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNz
aWQpOworKyAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQg
Zm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICByZXR1cm4gRkFMU0U7CisgICB9CisgYXV4
X2xpbmtfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBs
aW5rIEFVWCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJp
bjogZmFpbGVkIHRvIGxpbmsgQVVYIGZvciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0
dXJuIEZBTFNFOworICAgfQorIHNlc3Npb25fc3JjX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gY29tcGxldGUgQVVYIGZvciBzZXNzaW9uICVkIiwgc2Vz
c2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gY29tcGxldGUgQVVYIGZv
ciBzZXNzaW9uICV1Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJuIEZBTFNFOworICAgfQorIH0KK0BA
IC0zODQ3LDcgKzQwOTEsNyBAQCBjcmVhdGVfc2VuZF9ydHAgKEdzdFJ0cEJpbiAqIHJ0cGJpbiwg
R3N0UGFkVGVtcGxhdGUgKiB0ZW1wbCwgY29uc3QgZ2NoYXIgKiBuYW1lKQorICAgICBpZiAoIXNl
dHVwX2F1eF9zZW5kZXIgKHJ0cGJpbiwgc2Vzc2lvbiwgYXV4KSkKKyAgICAgICBnb3RvIGF1eF9z
ZXNzaW9uX2ZhaWxlZDsKKyAKKy0gICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyVk
Iiwgc2Vzc2lkKTsKKysgICAgcG5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCJzaW5rXyV1Iiwgc2Vz
c2lkKTsKKyAgICAgc2VuZF9ydHBfc2luayA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkIChh
dXgsIHBuYW1lKTsKKyAgICAgZ19mcmVlIChwbmFtZSk7CisgCitAQCAtMzg4NywyNyArNDEzMSwy
NyBAQCBjcmVhdGVfZXJyb3I6CisgICB9CisgZXhpc3Rpbmdfc2Vzc2lvbjoKKyAgIHsKKy0gICAg
Z193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICVkIGlzIGFscmVhZHkgaW4gdXNlIiwgc2Vzc2lk
KTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBzZXNzaW9uICV1IGlzIGFscmVhZHkgaW4gdXNl
Iiwgc2Vzc2lkKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgYXV4X3Nlc3Npb25fZmFpbGVk
OgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgQVVYIHNpbmsg
cGFkIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBm
YWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAldSIsIHNlc3NpZCk7CisgICAg
IHJldHVybiBOVUxMOworICAgfQorIGF1eF9zaW5rX2ZhaWxlZDoKKyAgIHsKKy0gICAgZ193YXJu
aW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IEFVWCBzaW5rIHBhZCBmb3Igc2Vzc2lvbiAlZCIs
IHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBBVVggc2lu
ayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICByZXR1cm4gTlVMTDsKKyAgIH0K
KyBwYWRfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBn
ZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAgICBnX3dhcm5pbmcg
KCJydHBiaW46IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNz
aWQpOworICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyBzZXNzaW9uX3NyY19mYWlsZWQ6CisgICB7
CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIHNldHVwIHNvdXJjZSBwYWRzIGZv
ciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQg
dG8gc2V0dXAgc291cmNlIHBhZHMgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICByZXR1
cm4gTlVMTDsKKyAgIH0KKyB9CitAQCAtMzk3OCwxMyArNDIyMiwxMyBAQCBjcmVhdGVfcnRjcCAo
R3N0UnRwQmluICogcnRwYmluLCBHc3RQYWRUZW1wbGF0ZSAqIHRlbXBsLCBjb25zdCBnY2hhciAq
IG5hbWUpCisgCisgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHJ0cGJpbiwgImxpbmtpbmcgUlRDUCBl
bmNvZGVyIik7CisgCistICAgIGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmICgicnRjcF9zcmNfJWQi
LCBzZXNzaWQpOworKyAgICBlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoInJ0Y3Bfc3JjXyV1Iiwg
c2Vzc2lkKTsKKyAgICAgZW5jc3JjID0gZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQgKGVuY29k
ZXIsIGVuYW1lKTsKKyAgICAgZ19mcmVlIChlbmFtZSk7CisgICAgIGlmIChlbmNzcmMgPT0gTlVM
TCkKKyAgICAgICBnb3RvIGVuY19zcmNfZmFpbGVkOworIAorLSAgICBlbmFtZSA9IGdfc3RyZHVw
X3ByaW50ZiAoInJ0Y3Bfc2lua18lZCIsIHNlc3NpZCk7CisrICAgIGVuYW1lID0gZ19zdHJkdXBf
cHJpbnRmICgicnRjcF9zaW5rXyV1Iiwgc2Vzc2lkKTsKKyAgICAgZW5jc2luayA9IGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkIChlbmNvZGVyLCBlbmFtZSk7CisgICAgIGdfZnJlZSAoZW5hbWUp
OworICAgICBpZiAoZW5jc2luayA9PSBOVUxMKQorQEAgLTQwMjEsMjMgKzQyNjUsMjMgQEAgbm9f
c2Vzc2lvbjoKKyAgIH0KKyBwYWRfZmFpbGVkOgorICAgeworLSAgICBnX3dhcm5pbmcgKCJydHBi
aW46IGZhaWxlZCB0byBnZXQgcnRjcCBwYWQgZm9yIHNlc3Npb24gJWQiLCBzZXNzaWQpOworKyAg
ICBnX3dhcm5pbmcgKCJydHBiaW46IGZhaWxlZCB0byBnZXQgcnRjcCBwYWQgZm9yIHNlc3Npb24g
JXUiLCBzZXNzaWQpOworICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyBlbmNfc3JjX2ZhaWxlZDoK
KyAgIHsKKy0gICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0IGVuY29kZXIgc3Jj
IHBhZCBmb3Igc2Vzc2lvbiAlZCIsIHNlc3NpZCk7CisrICAgIGdfd2FybmluZyAoInJ0cGJpbjog
ZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNyYyBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOwor
ICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyBlbmNfc2lua19mYWlsZWQ6CisgICB7CistICAgIGdf
d2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGdldCBlbmNvZGVyIHNpbmsgcGFkIGZvciBzZXNz
aW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRwYmluOiBmYWlsZWQgdG8gZ2V0
IGVuY29kZXIgc2luayBwYWQgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQpOworICAgICBnc3Rfb2Jq
ZWN0X3VucmVmIChlbmNzcmMpOworICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKyBlbmNfbGlua19m
YWlsZWQ6CisgICB7CistICAgIGdfd2FybmluZyAoInJ0cGJpbjogZmFpbGVkIHRvIGxpbmsgcnRj
cCBlbmNvZGVyIGZvciBzZXNzaW9uICVkIiwgc2Vzc2lkKTsKKysgICAgZ193YXJuaW5nICgicnRw
YmluOiBmYWlsZWQgdG8gbGluayBydGNwIGVuY29kZXIgZm9yIHNlc3Npb24gJXUiLCBzZXNzaWQp
OworICAgICBnc3Rfb2JqZWN0X3VucmVmIChlbmNzcmMpOworICAgICByZXR1cm4gTlVMTDsKKyAg
IH0KK2RpZmYgLS1naXQgYS9nc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uaCBiL2dzdC9ydHBtYW5h
Z2VyL2dzdHJ0cGJpbi5oCitpbmRleCBmYjEzYTQ3Li4zODRiNzZkIDEwMDY0NAorLS0tIGEvZ3N0
L3J0cG1hbmFnZXIvZ3N0cnRwYmluLmgKKysrKyBiL2dzdC9ydHBtYW5hZ2VyL2dzdHJ0cGJpbi5o
CitAQCAtMTI3LDYgKzEyNyw4IEBAIHN0cnVjdCBfR3N0UnRwQmluQ2xhc3MgeworIAorICAgdm9p
ZCAgICAgKCpvbl9uZXdfc2VuZGVyX3NzcmMpICAgICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWlu
dCBzZXNzaW9uLCBndWludDMyIHNzcmMpOworICAgdm9pZCAgICAgKCpvbl9zZW5kZXJfc3NyY19h
Y3RpdmUpICAgKEdzdFJ0cEJpbiAqcnRwYmluLCBndWludCBzZXNzaW9uLCBndWludDMyIHNzcmMp
OworKworKyAgZ3VpbnQgICAgKCpvbl9idW5kbGVkX3NzcmMpICAgICAgICAgKEdzdFJ0cEJpbiAq
cnRwYmluLCBndWludCBzc3JjKTsKKyB9OworIAorIEdUeXBlIGdzdF9ydHBfYmluX2dldF90eXBl
ICh2b2lkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
MDAwNS1zb3VwaHR0cHNyYy1jb29raWUtamFyLWFuZC1jb250ZXh0LXF1ZXJ5LXN1cHBvcnQucGF0
Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMt
Y29va2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0
ZWRiZDZmODNlZmViNjQ3YzdkMmJiM2ZiYWY1YTk1ZGNjN2UwZWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLTAwMDUtc291cGh0dHBzcmMtY29v
a2llLWphci1hbmQtY29udGV4dC1xdWVyeS1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMTIwIEBA
CitGcm9tIDhlMDNhNjNmZDU1ZjVhZTQ0Nzk5NDU3OTg5MGU4NjMwYjI3ZjRhMWIgTW9uIFNlcCAx
NyAwMDowMDowMCAyMDAxCitGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29t
PgorRGF0ZTogV2VkLCAyOCBPY3QgMjAxNSAxMjowMDowOSArMDEwMAorU3ViamVjdDogW1BBVENI
IDIvM10gc291cGh0dHBzcmM6IGNvb2tpZSBqYXIgYW5kIGNvbnRleHQgcXVlcnkgc3VwcG9ydAor
CitVc2UgYSB2b2xhdGlsZSBDb29raWUgamFyIHRvIHN0b3JlIGNvb2tpZXMgYW5kIGhhbmRsZSB0
aGUgY29udGV4dAorcXVlcnkgc28gdGhhdCBzZXNzaW9uIGRhdGEgY2FuIGJlIHNoYXJlZCB3aXRo
IG90aGVyIGVsZW1lbnRzIChsaWtlCithZGFwdGl2ZWRlbXV4KS4KKworaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjMxNAorLS0tCisgZXh0L3NvdXAvZ3N0c291
cGh0dHBzcmMuYyB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t
CisgZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaCB8ICAxICsKKyAyIGZpbGVzIGNoYW5nZWQsIDQw
IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvc291cC9n
c3Rzb3VwaHR0cHNyYy5jIGIvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuYworaW5kZXggZmM3Y2Jh
Ny4uMGQzZTg4NiAxMDA2NDQKKy0tLSBhL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMKKysrKyBi
L2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmMKK0BAIC00ODIsNiArNDgyLDcgQEAgZ3N0X3NvdXBf
aHR0cF9zcmNfaW5pdCAoR3N0U291cEhUVFBTcmMgKiBzcmMpCisgICBzcmMtPmNvb2tpZXMgPSBO
VUxMOworICAgc3JjLT5pcmFkaW9fbW9kZSA9IERFRkFVTFRfSVJBRElPX01PREU7CisgICBzcmMt
PnNlc3Npb24gPSBOVUxMOworKyAgc3JjLT5jb29raWVfamFyID0gTlVMTDsKKyAgIHNyYy0+bXNn
ID0gTlVMTDsKKyAgIHNyYy0+dGltZW91dCA9IERFRkFVTFRfVElNRU9VVDsKKyAgIHNyYy0+bG9n
X2xldmVsID0gREVGQVVMVF9TT1VQX0xPR19MRVZFTDsKK0BAIC05NDMsNiArOTQ0LDkgQEAgZ3N0
X3NvdXBfaHR0cF9zcmNfc2Vzc2lvbl9vcGVuIChHc3RTb3VwSFRUUFNyYyAqIHNyYykKKyAgICAg
c291cF9zZXNzaW9uX3JlbW92ZV9mZWF0dXJlX2J5X3R5cGUgKHNyYy0+c2Vzc2lvbiwKKyAgICAg
ICAgIFNPVVBfVFlQRV9DT05URU5UX0RFQ09ERVIpOworIAorKyAgc3JjLT5jb29raWVfamFyID0g
c291cF9jb29raWVfamFyX25ldyAoKTsKKysgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZSAoc3Jj
LT5zZXNzaW9uLAorKyAgICAgIFNPVVBfU0VTU0lPTl9GRUFUVVJFIChzcmMtPmNvb2tpZV9qYXIp
KTsKKyAgIHJldHVybiBUUlVFOworIH0KKyAKK0BAIC05NTgsNiArOTYyLDExIEBAIGdzdF9zb3Vw
X2h0dHBfc3JjX3Nlc3Npb25fY2xvc2UgKEdzdFNvdXBIVFRQU3JjICogc3JjKQorICAgICBzcmMt
Pm1zZyA9IE5VTEw7CisgICB9CisgCisrICBpZiAoc3JjLT5jb29raWVfamFyKSB7CisrICAgIGdf
b2JqZWN0X3VucmVmIChzcmMtPmNvb2tpZV9qYXIpOworKyAgICBzcmMtPmNvb2tpZV9qYXIgPSBO
VUxMOworKyAgfQorKworICAgaWYgKHNyYy0+c2Vzc2lvbikgeworICAgICBzb3VwX3Nlc3Npb25f
YWJvcnQgKHNyYy0+c2Vzc2lvbik7CisgICAgIGdfb2JqZWN0X3VucmVmIChzcmMtPnNlc3Npb24p
OworQEAgLTE0MjYsMTEgKzE0MzUsMTIgQEAgZ3N0X3NvdXBfaHR0cF9zcmNfYnVpbGRfbWVzc2Fn
ZSAoR3N0U291cEhUVFBTcmMgKiBzcmMsIGNvbnN0IGdjaGFyICogbWV0aG9kKQorICAgfQorICAg
aWYgKHNyYy0+Y29va2llcykgeworICAgICBnY2hhciAqKmNvb2tpZTsKKysgICAgU291cFVSSSAq
dXJpID0gc291cF91cmlfbmV3IChzcmMtPmxvY2F0aW9uKTsKKyAKKyAgICAgZm9yIChjb29raWUg
PSBzcmMtPmNvb2tpZXM7ICpjb29raWUgIT0gTlVMTDsgY29va2llKyspIHsKKy0gICAgICBzb3Vw
X21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKHNyYy0+bXNnLT5yZXF1ZXN0X2hlYWRlcnMsICJDb29r
aWUiLAorLSAgICAgICAgICAqY29va2llKTsKKysgICAgICBzb3VwX2Nvb2tpZV9qYXJfc2V0X2Nv
b2tpZSAoc3JjLT5jb29raWVfamFyLCB1cmksICpjb29raWUpOworICAgICB9CisrICAgIHNvdXBf
dXJpX2ZyZWUgKHVyaSk7CisgICB9CisgCisgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzIChzcmMt
Pm1zZywgU09VUF9NRVNTQUdFX09WRVJXUklURV9DSFVOS1MgfAorQEAgLTE5MTAsNiArMTkyMCwx
MiBAQCBnc3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFzZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5
ICogcXVlcnkpCisgICBnYm9vbGVhbiByZXQ7CisgICBHc3RTY2hlZHVsaW5nRmxhZ3MgZmxhZ3M7
CisgICBnaW50IG1pbnNpemUsIG1heHNpemUsIGFsaWduOworKyAgR3N0Q29udGV4dCAqY29udGV4
dDsKKysgIEdzdFN0cnVjdHVyZSAqY29udGV4dF9zdHJ1Y3R1cmU7CisrICBjaGFyICpjb29raWU7
CisrICBjb25zdCBnY2hhciAqY29va2llc1syXTsKKysgIGNvbnN0IGdjaGFyICpjb250ZXh0X3R5
cGU7CisrICBTb3VwVVJJICp1cmk7CisgCisgICBzd2l0Y2ggKEdTVF9RVUVSWV9UWVBFIChxdWVy
eSkpIHsKKyAgICAgY2FzZSBHU1RfUVVFUllfVVJJOgorQEAgLTE5MjEsNiArMTkzNywyNyBAQCBn
c3Rfc291cF9odHRwX3NyY19xdWVyeSAoR3N0QmFzZVNyYyAqIGJzcmMsIEdzdFF1ZXJ5ICogcXVl
cnkpCisgICAgICAgfQorICAgICAgIHJldCA9IFRSVUU7CisgICAgICAgYnJlYWs7CisrICAgIGNh
c2UgR1NUX1FVRVJZX0NPTlRFWFQ6CisrICAgICAgaWYgKGdzdF9xdWVyeV9wYXJzZV9jb250ZXh0
X3R5cGUgKHF1ZXJ5LCAmY29udGV4dF90eXBlKQorKyAgICAgICAgICAmJiAhZ19zdHJjbXAwIChj
b250ZXh0X3R5cGUsICJodHRwLWhlYWRlcnMiKSkgeworKyAgICAgICAgdXJpID0gc291cF91cmlf
bmV3IChzcmMtPmxvY2F0aW9uKTsKKysgICAgICAgIGNvb2tpZSA9IHNvdXBfY29va2llX2phcl9n
ZXRfY29va2llcyAoc3JjLT5jb29raWVfamFyLCB1cmksIFRSVUUpOworKyAgICAgICAgY29udGV4
dCA9IGdzdF9jb250ZXh0X25ldyAoImh0dHAtaGVhZGVycyIsIEZBTFNFKTsKKysgICAgICAgIGdz
dF9jb250ZXh0X21ha2Vfd3JpdGFibGUgKGNvbnRleHQpOworKyAgICAgICAgY29udGV4dF9zdHJ1
Y3R1cmUgPSBnc3RfY29udGV4dF93cml0YWJsZV9zdHJ1Y3R1cmUgKGNvbnRleHQpOworKyAgICAg
ICAgaWYgKGNvb2tpZSAhPSBOVUxMKSB7CisrICAgICAgICAgIGNvb2tpZXNbMF0gPSBjb29raWU7
CisrICAgICAgICAgIGNvb2tpZXNbMV0gPSBOVUxMOworKyAgICAgICAgICBnc3Rfc3RydWN0dXJl
X3NldCAoY29udGV4dF9zdHJ1Y3R1cmUsICJjb29raWVzIiwgR19UWVBFX1NUUlYsIGNvb2tpZXMs
CisrICAgICAgICAgICAgICBOVUxMKTsKKysgICAgICAgICAgZ19mcmVlIChjb29raWUpOworKyAg
ICAgICAgfQorKyAgICAgICAgZ3N0X3F1ZXJ5X3NldF9jb250ZXh0IChxdWVyeSwgY29udGV4dCk7
CisrICAgICAgICBzb3VwX3VyaV9mcmVlICh1cmkpOworKyAgICAgICAgcmV0ID0gVFJVRTsKKysg
ICAgICAgIGJyZWFrOworKyAgICAgIH0KKysKKyAgICAgZGVmYXVsdDoKKyAgICAgICByZXQgPSBG
QUxTRTsKKyAgICAgICBicmVhazsKK2RpZmYgLS1naXQgYS9leHQvc291cC9nc3Rzb3VwaHR0cHNy
Yy5oIGIvZXh0L3NvdXAvZ3N0c291cGh0dHBzcmMuaAoraW5kZXggZGQwMTY1Ni4uOWM2YmI1YyAx
MDA2NDQKKy0tLSBhL2V4dC9zb3VwL2dzdHNvdXBodHRwc3JjLmgKKysrKyBiL2V4dC9zb3VwL2dz
dHNvdXBodHRwc3JjLmgKK0BAIC02MCw2ICs2MCw3IEBAIHN0cnVjdCBfR3N0U291cEhUVFBTcmMg
eworICAgZ2NoYXIgKnByb3h5X3B3OyAgICAgICAgICAgICAvKiBBdXRoZW50aWNhdGlvbiB1c2Vy
IHBhc3N3b3JkIGZvciBwcm94eSBVUkkuICovCisgICBnY2hhciAqKmNvb2tpZXM7ICAgICAgICAg
ICAgIC8qIEhUVFAgcmVxdWVzdCBjb29raWVzLiAqLworICAgU291cFNlc3Npb24gKnNlc3Npb247
ICAgICAgICAvKiBBc3luYyBjb250ZXh0LiAqLworKyAgU291cENvb2tpZUphciAqY29va2llX2ph
cjsgICAvKiBWb2xhdGlsZSBIVFRQIGNvb2tpZSBzdG9yYWdlICovCisgICBTb3VwTWVzc2FnZSAq
bXNnOyAgICAgICAgICAgIC8qIFJlcXVlc3QgbWVzc2FnZS4gKi8KKyAgIEdzdEZsb3dSZXR1cm4g
cmV0OyAgICAgICAgICAgLyogUmV0dXJuIGNvZGUgZnJvbSBjYWxsYmFjay4gKi8KKyAgIGdpbnQg
cmV0cnlfY291bnQ7ICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJldHJpZXMgc2luY2Ugd2UgcmVj
ZWl2ZWQgZGF0YSAqLworLS0gCisxLjguMy4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNi1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZl
cnJlZC1wcm90ZWN0aW9uLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC0wMDA2LXF0ZGVtdXgtYWRkLWNvbnRleHQtZm9yLWEtcHJlZmVycmVkLXByb3RlY3Rpb24ucGF0
Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGRkZmVjZTQyZjA3ZjVhZTBmZTJkNWU3ZDJkYmY5ODJjN2ZhNTM5OQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAw
Ni1xdGRlbXV4LWFkZC1jb250ZXh0LWZvci1hLXByZWZlcnJlZC1wcm90ZWN0aW9uLnBhdGNoCkBA
IC0wLDAgKzEsMzI5IEBACitGcm9tIDlkNzIwMWNhNzZlNzg3NWNkZGQxMDZkZjA2YjRkNzYzN2Mw
MjU0NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KK0RhdGU6IFdlZCwgMjEgSnVuIDIwMTcgMTc6NTk6
MjEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzNdIHF0ZGVtdXg6IGFkZCBjb250ZXh0IGZvciBh
IHByZWZlcnJlZCBwcm90ZWN0aW9uCisKK3F0ZGVtdXggc2VsZWN0ZWQgdGhlIGZpcnN0IHN5c3Rl
bSBjb3JyZXNwb25kaW5nIHRvIGEgd29ya2luZyBHU3RyZWFtZXIKK2RlY3J5cHRvci4gV2l0aCB0
aGlzIGNoYW5nZSwgYmVmb3JlIHNlbGVjdGluZyB0aGF0IGRlY3J5cHRvciwgcXRkZW11eAord2ls
bCBjaGVjayBpZiBpdCBoYXMgY29udGV4dCAoYSBwcmVmZXJyZWQgZGVjcnlwdG9yIGlkKSBhbmQg
aWYgbm90LCBpdAord2lsbCByZXF1ZXN0IGl0LgorCitUaGUgcmVxdWVzdCBpbmNsdWRlcyB0cmFj
ay1pZCwgYXZhaWxhYmxlIGtleSBzeXN0ZW0gaWRzIGZvciB0aGUKK2F2YWlsYWJsZSBkZWNyeXB0
b3JzIGFuZCBldmVuIHRoZSBldmVudHMgc28gdGhhdCB0aGUgaW5pdCBkYXRhIGlzCithY2Nlc3Np
YmxlLgorCitbZW9jYW5oYUBpZ2FsaWEuY29tOiBzZWxlY3QgdGhlIHByZWZlcnJlZCBwcm90ZWN0
aW9uIHN5c3RlbSBldmVuIGlmIG5vdCBhdmFpbGFibGVdCisKK1Rlc3QgIjQuIENsZWFyS2V5Vmlk
ZW8iIGluIFlvdVR1YmUgbGVhbmJhY2sgRU1FIGNvbmZvcm1hbmNlIHRlc3RzIDIwMTYgZm9yCitI
LjI2NFsxXSB1c2VzIGEgbWVkaWEgZmlsZVsyXSB3aXRoIGNlbmMgZW5jcnlwdGlvbiB3aGljaCBl
bWJlZHMgJ3Bzc2gnIGJveGVzCit3aXRoIHRoZSBpbml0IGRhdGEgZm9yIHRoZSBQbGF5cmVhZHkg
YW5kIFdpZGV2aW5lIGVuY3J5cHRpb24gc3lzdGVtcywgYnV0IG5vdAorZm9yIHRoZSBDbGVhcktl
eSBlbmNyeXB0aW9uIHN5c3RlbSAoYXMgZGVmaW5lZCBieSB0aGUgRU1FdjAuMWIgc3BlY1szXSBh
bmQgd2l0aAordGhlIGVuY3J5cHRpb24gc3lzdGVtIGlkIGRlZmluZWQgaW4gWzRdKS4KKworSW5z
dGVhZCwgdGhlIENsZWFyS2V5IGVuY3J5cHRpb24gc3lzdGVtIGlzIG1hbnVhbGx5IHNlbGVjdGVk
IGJ5IHRoZSB3ZWIgcGFnZQorY29kZSAoZXZlbiBpZiBub3Qgb3JpZ2luYWxseSBkZXRlY3RlZCBi
eSBxdGRlbXV4KSBhbmQgdGhlIHByb3BlciBkZWNyeXB0aW9uIGtleQoraXMgZGlzcGF0Y2hlZCB0
byB0aGUgZGVjcnlwdG9yLCB3aGljaCBjYW4gdGhlbiBkZWNyeXB0IHRoZSB2aWRlbyBzdWNjZXNz
ZnVsbHkuCisKK1sxXSBodHRwOi8veXQtZGFzaC1tc2UtdGVzdC5jb21tb25kYXRhc3RvcmFnZS5n
b29nbGVhcGlzLmNvbS91bml0LXRlc3RzLzIwMTYuaHRtbD90ZXN0X3R5cGU9ZW5jcnlwdGVkbWVk
aWEtdGVzdCZ3ZWJtPWZhbHNlCitbMl0gaHR0cDovL3l0LWRhc2gtbXNlLXRlc3QuY29tbW9uZGF0
YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vdW5pdC10ZXN0cy9tZWRpYS9jYXJfY2VuYy0yMDEyMDgy
Ny04Ni5tcDQKK1szXSBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
ZW1lLXYwLjFiL2VuY3J5cHRlZC1tZWRpYS9lbmNyeXB0ZWQtbWVkaWEuaHRtbCNzaW1wbGUtZGVj
cnlwdGlvbi1jbGVhci1rZXkKK1s0XSBodHRwczovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hv
d19idWcuY2dpP2lkPTI0MDI3I2MyCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3df
YnVnLmNnaT9pZD03NzAxMDcKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgMjAwICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIGdzdC9pc29t
cDQvcXRkZW11eC5oIHwgICAxICsKKyAyIGZpbGVzIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCsp
LCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9n
c3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggMGE0MWIyNmYyLi5hZTU3YmRmOWIgMTAwNjQ0Cist
LS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK0BA
IC01MTMsNiArNTEzLDggQEAgc3RhdGljIEdzdEluZGV4ICpnc3RfcXRkZW11eF9nZXRfaW5kZXgg
KEdzdEVsZW1lbnQgKiBlbGVtZW50KTsKKyAjZW5kaWYKKyBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VS
ZXR1cm4gZ3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlIChHc3RFbGVtZW50ICogZWxlbWVudCwKKyAg
ICAgR3N0U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbik7Cisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhf
c2V0X2NvbnRleHQgKEdzdEVsZW1lbnQgKiBlbGVtZW50LAorKyAgICBHc3RDb250ZXh0ICogY29u
dGV4dCk7Cisgc3RhdGljIGdib29sZWFuIHF0ZGVtdXhfc2lua19hY3RpdmF0ZSAoR3N0UGFkICog
c2lua3BhZCwgR3N0T2JqZWN0ICogcGFyZW50KTsKKyBzdGF0aWMgZ2Jvb2xlYW4gcXRkZW11eF9z
aW5rX2FjdGl2YXRlX21vZGUgKEdzdFBhZCAqIHNpbmtwYWQsCisgICAgIEdzdE9iamVjdCAqIHBh
cmVudCwgR3N0UGFkTW9kZSBtb2RlLCBnYm9vbGVhbiBhY3RpdmUpOworQEAgLTYwMiw2ICs2MDQs
NyBAQCBnc3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3MgKiBrbGFzcykKKyAg
IGdzdGVsZW1lbnRfY2xhc3MtPnNldF9pbmRleCA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRk
ZW11eF9zZXRfaW5kZXgpOworICAgZ3N0ZWxlbWVudF9jbGFzcy0+Z2V0X2luZGV4ID0gR1NUX0RF
QlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X2dldF9pbmRleCk7CisgI2VuZGlmCisrICBnc3RlbGVt
ZW50X2NsYXNzLT5zZXRfY29udGV4dCA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9z
ZXRfY29udGV4dCk7CisgCisgICBnc3RfdGFnX3JlZ2lzdGVyX211c2ljYnJhaW56X3RhZ3MgKCk7
CisgCitAQCAtNjYwLDYgKzY2Myw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBx
dGRlbXV4KQorICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7CisgICBxdGRl
bXV4LT5jZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVjdGlvbl9z
eXN0ZW1faWRzID0gTlVMTDsKKysgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3Rl
bV9pZCA9IE5VTEw7CisgICBnX3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50
X3F1ZXVlKTsKKyAgIGdzdF9zZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9S
TUFUX1RJTUUpOworICAgcXRkZW11eC0+dGFnX2xpc3QgPSBnc3RfdGFnX2xpc3RfbmV3X2VtcHR5
ICgpOworQEAgLTIxMTMsNiArMjExNywxMCBAQCBnc3RfcXRkZW11eF9yZXNldCAoR3N0UVREZW11
eCAqIHF0ZGVtdXgsIGdib29sZWFuIGhhcmQpCisgICAgICAgZ19wdHJfYXJyYXlfZnJlZSAocXRk
ZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBUUlVFKTsKKyAgICAgICBxdGRlbXV4LT5wcm90
ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworICAgICB9CisrICAgIGlmIChxdGRlbXV4LT5wcmVm
ZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpIHsKKysgICAgICBnX2ZyZWUgKHF0ZGVtdXgtPnBy
ZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCk7CisrICAgICAgcXRkZW11eC0+cHJlZmVycmVk
X3Byb3RlY3Rpb25fc3lzdGVtX2lkID0gTlVMTDsKKysgICAgfQorICAgfSBlbHNlIGlmIChxdGRl
bXV4LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRkZW11eC0+
Zmxvd2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3RyZWFtczsg
bisrKQorQEAgLTI1OTAsNiArMjU5OCwyOCBAQCBnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUgKEdz
dEVsZW1lbnQgKiBlbGVtZW50LCBHc3RTdGF0ZUNoYW5nZSB0cmFuc2l0aW9uKQorIH0KKyAKKyBz
dGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9jb250ZXh0IChHc3RFbGVtZW50ICogZWxlbWVu
dCwgR3N0Q29udGV4dCAqIGNvbnRleHQpCisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdT
VF9RVERFTVVYIChlbGVtZW50KTsKKysKKysgIGdfcmV0dXJuX2lmX2ZhaWwgKEdTVF9JU19DT05U
RVhUIChjb250ZXh0KSk7CisrCisrICBpZiAoZ3N0X2NvbnRleHRfaGFzX2NvbnRleHRfdHlwZSAo
Y29udGV4dCwKKysgICAgICAgICAgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQi
KSkgeworKyAgICBjb25zdCBHc3RTdHJ1Y3R1cmUgKnM7CisrCisrICAgIHMgPSBnc3RfY29udGV4
dF9nZXRfc3RydWN0dXJlIChjb250ZXh0KTsKKysgICAgZ19mcmVlIChxdGRlbXV4LT5wcmVmZXJy
ZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVj
dGlvbl9zeXN0ZW1faWQgPQorKyAgICAgICAgZ19zdHJkdXAgKGdzdF9zdHJ1Y3R1cmVfZ2V0X3N0
cmluZyAocywgImRlY3J5cHRpb24tc3lzdGVtLWlkIikpOworKyAgICBHU1RfREVCVUdfT0JKRUNU
IChlbGVtZW50LCAic2V0IHByZWZlcnJlZCBkZWNyeXB0aW9uIHN5c3RlbSB0byAlcyIsCisrICAg
ICAgICBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQpOworKyAgfQorKwor
KyAgR1NUX0VMRU1FTlRfQ0xBU1MgKHBhcmVudF9jbGFzcyktPnNldF9jb250ZXh0IChlbGVtZW50
LCBjb250ZXh0KTsKKyt9CisrCisrc3RhdGljIHZvaWQKKyBxdGRlbXV4X3BhcnNlX2Z0eXAgKEdz
dFFURGVtdXggKiBxdGRlbXV4LCBjb25zdCBndWludDggKiBidWZmZXIsIGdpbnQgbGVuZ3RoKQor
IHsKKyAgIC8qIGNvdW50cyBhcyBoZWFkZXIgZGF0YSAqLworQEAgLTM4MTksNiArMzg0OSw4IEBA
IHF0ZGVtdXhfcGFyc2VfcHNzaCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdOb2RlICogbm9kZSkK
KyAgIGV2ZW50ID0gZ3N0X2V2ZW50X25ld19wcm90ZWN0aW9uIChzeXNpZF9zdHJpbmcsIHBzc2gs
CisgICAgICAgKHBhcmVudF9ib3hfdHlwZSA9PSBGT1VSQ0NfbW9vdikgPyAiaXNvYm1mZi9tb292
IiA6ICJpc29ibWZmL21vb2YiKTsKKyAgIGZvciAoaSA9IDA7IGkgPCBxdGRlbXV4LT5uX3N0cmVh
bXM7ICsraSkgeworKyAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LAorKyAgICAgICAgImFk
ZGluZyBwcm90ZWN0aW9uIGV2ZW50IGZvciBzdHJlYW0gJWQgYW5kIHN5c3RlbSAlcyIsIGksIHN5
c2lkX3N0cmluZyk7CisgICAgIGdfcXVldWVfcHVzaF90YWlsICgmcXRkZW11eC0+c3RyZWFtc1tp
XS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZlbnRfcXVldWUsCisgICAgICAgICBnc3RfZXZlbnRfcmVm
IChldmVudCkpOworICAgfQorQEAgLTU1MjksNiArNTU2MSw4IEBAIGdzdF9xdGRlbXV4X2RlY29y
YXRlX2FuZF9wdXNoX2J1ZmZlciAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCisgICAgIEdzdEV2ZW50
ICpldmVudDsKKyAKKyAgICAgd2hpbGUgKChldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJl
YW0tPnByb3RlY3Rpb25fc2NoZW1lX2V2ZW50X3F1ZXVlKSkpIHsKKysgICAgICBHU1RfVFJBQ0Vf
T0JKRUNUIChzdHJlYW0tPnBhZCwgInB1c2hpbmcgcHJvdGVjdGlvbiBldmVudDogJSIKKysgICAg
ICAgICAgR1NUX1BUUl9GT1JNQVQsIGV2ZW50KTsKKyAgICAgICBnc3RfcGFkX3B1c2hfZXZlbnQg
KHN0cmVhbS0+cGFkLCBldmVudCk7CisgICAgIH0KKyAKK0BAIC03Njg4LDExICs3NzIyLDE0MSBA
QCBxdGRlbXV4X2RvX2FsbG9jYXRpb24gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBRdERlbXV4U3Ry
ZWFtICogc3RyZWFtKQorIH0KKyAKKyBzdGF0aWMgZ2Jvb2xlYW4KKytwYWRfcXVlcnkgKGNvbnN0
IEdWYWx1ZSAqIGl0ZW0sIEdWYWx1ZSAqIHZhbHVlLCBncG9pbnRlciB1c2VyX2RhdGEpCisrewor
KyAgR3N0UGFkICpwYWQgPSBnX3ZhbHVlX2dldF9vYmplY3QgKGl0ZW0pOworKyAgR3N0UXVlcnkg
KnF1ZXJ5ID0gdXNlcl9kYXRhOworKyAgZ2Jvb2xlYW4gcmVzOworKworKyAgcmVzID0gZ3N0X3Bh
ZF9wZWVyX3F1ZXJ5IChwYWQsIHF1ZXJ5KTsKKysKKysgIGlmIChyZXMpIHsKKysgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbiAodmFsdWUsIFRSVUUpOworKyAgICByZXR1cm4gRkFMU0U7CisrICB9Cisr
CisrICBHU1RfSU5GT19PQkpFQ1QgKHBhZCwgInBhZCBwZWVyIHF1ZXJ5IGZhaWxlZCIpOworKyAg
cmV0dXJuIFRSVUU7CisrfQorKworK3N0YXRpYyBnYm9vbGVhbgorK2dzdF9xdGRlbXV4X3J1bl9x
dWVyeSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsIEdzdFF1ZXJ5ICogcXVlcnksCisrICAgIEdzdFBh
ZERpcmVjdGlvbiBkaXJlY3Rpb24pCisreworKyAgR3N0SXRlcmF0b3IgKml0OworKyAgR3N0SXRl
cmF0b3JGb2xkRnVuY3Rpb24gZnVuYyA9IHBhZF9xdWVyeTsKKysgIEdWYWx1ZSByZXMgPSB7IDAs
IH07CisrCisrICBnX3ZhbHVlX2luaXQgKCZyZXMsIEdfVFlQRV9CT09MRUFOKTsKKysgIGdfdmFs
dWVfc2V0X2Jvb2xlYW4gKCZyZXMsIEZBTFNFKTsKKysKKysgIC8qIEFzayBuZWlnaGJvciAqLwor
KyAgaWYgKGRpcmVjdGlvbiA9PSBHU1RfUEFEX1NSQykKKysgICAgaXQgPSBnc3RfZWxlbWVudF9p
dGVyYXRlX3NyY19wYWRzIChlbGVtZW50KTsKKysgIGVsc2UKKysgICAgaXQgPSBnc3RfZWxlbWVu
dF9pdGVyYXRlX3NpbmtfcGFkcyAoZWxlbWVudCk7CisrCisrICB3aGlsZSAoZ3N0X2l0ZXJhdG9y
X2ZvbGQgKGl0LCBmdW5jLCAmcmVzLCBxdWVyeSkgPT0gR1NUX0lURVJBVE9SX1JFU1lOQykKKysg
ICAgZ3N0X2l0ZXJhdG9yX3Jlc3luYyAoaXQpOworKworKyAgZ3N0X2l0ZXJhdG9yX2ZyZWUgKGl0
KTsKKysKKysgIHJldHVybiBnX3ZhbHVlX2dldF9ib29sZWFuICgmcmVzKTsKKyt9CisrCisrc3Rh
dGljIHZvaWQKKytnc3RfcXRkZW11eF9yZXF1ZXN0X3Byb3RlY3Rpb25fY29udGV4dCAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgsCisrICAgIFF0RGVtdXhTdHJlYW0gKiBzdHJlYW0pCisreworKyAgR3N0
UXVlcnkgKnF1ZXJ5OworKyAgR3N0Q29udGV4dCAqY3R4dDsKKysgIEdzdEVsZW1lbnQgKmVsZW1l
bnQgPSBHU1RfRUxFTUVOVCAocXRkZW11eCk7CisrICBHc3RTdHJ1Y3R1cmUgKnN0OworKyAgZ2No
YXIgKipmaWx0ZXJlZF9zeXNfaWRzOworKyAgR1ZhbHVlIGV2ZW50X2xpc3QgPSBHX1ZBTFVFX0lO
SVQ7CisrICBHTGlzdCAqd2FsazsKKysKKysgIC8qIDEuIENoZWNrIGlmIHdlIGFscmVhZHkgaGF2
ZSB0aGUgY29udGV4dC4gKi8KKysgIGlmIChxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQgIT0gTlVMTCkgeworKyAgICBHU1RfTE9HX09CSkVDVCAoZWxlbWVudCwKKysgICAg
ICAgICJhbHJlYWR5IGhhdmUgdGhlIHByb3RlY3Rpb24gY29udGV4dCwgbm8gbmVlZCB0byByZXF1
ZXN0IGl0IGFnYWluIik7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIGdfcHRyX2FycmF5X2Fk
ZCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKKysgIGZpbHRlcmVkX3N5
c19pZHMgPSBnc3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlw
dG9ycyAoCisrICAgICAgKGNvbnN0IGdjaGFyICoqKSBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3Rl
bV9pZHMtPnBkYXRhKTsKKysgIGdfcHRyX2FycmF5X3JlbW92ZV9pbmRleCAocXRkZW11eC0+cHJv
dGVjdGlvbl9zeXN0ZW1faWRzLAorKyAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lk
cy0+bGVuIC0gMSk7CisrICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAiZGV0ZWN0ZWQgJXUg
cHJvdGVjdGlvbiBzeXN0ZW1zLCB3ZSBoYXZlICIKKysgICAgICAiZGVjcnlwdG9ycyBmb3IgJXUg
b2YgdGhlbSwgcnVubmluZyBjb250ZXh0IHJlcXVlc3QiLAorKyAgICAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcy0+bGVuLCBnX3N0cnZfbGVuZ3RoIChmaWx0ZXJlZF9zeXNfaWRzKSk7
CisrCisrICBpZiAoc3RyZWFtLT5wcm90ZWN0aW9uX3NjaGVtZV9ldmVudF9xdWV1ZS5sZW5ndGgp
IHsKKysgICAgR1NUX1RSQUNFX09CSkVDVCAocXRkZW11eCwgInVzaW5nIHN0cmVhbSBldmVudCBx
dWV1ZSwgbGVuZ3RoICV1IiwKKysgICAgICAgIHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVfZXZl
bnRfcXVldWUubGVuZ3RoKTsKKysgICAgd2FsayA9IHN0cmVhbS0+cHJvdGVjdGlvbl9zY2hlbWVf
ZXZlbnRfcXVldWUudGFpbDsKKysgIH0gZWxzZSB7CisrICAgIEdTVF9UUkFDRV9PQkpFQ1QgKHF0
ZGVtdXgsICJ1c2luZyBkZW11eGVyIGV2ZW50IHF1ZXVlLCBsZW5ndGggJXUiLAorKyAgICAgICAg
cXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZS5sZW5ndGgpOworKyAgICB3YWxrID0gcXRk
ZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZS50YWlsOworKyAgfQorKworKyAgZ192YWx1ZV9p
bml0ICgmZXZlbnRfbGlzdCwgR1NUX1RZUEVfTElTVCk7CisrICBmb3IgKDsgd2Fsazsgd2FsayA9
IGdfbGlzdF9wcmV2aW91cyAod2FsaykpIHsKKysgICAgR1ZhbHVlICpldmVudF92YWx1ZSA9IGdf
bmV3MCAoR1ZhbHVlLCAxKTsKKysgICAgZ192YWx1ZV9pbml0IChldmVudF92YWx1ZSwgR1NUX1RZ
UEVfRVZFTlQpOworKyAgICBnX3ZhbHVlX3NldF9ib3hlZCAoZXZlbnRfdmFsdWUsIHdhbGstPmRh
dGEpOworKyAgICBnc3RfdmFsdWVfbGlzdF9hcHBlbmRfYW5kX3Rha2VfdmFsdWUgKCZldmVudF9s
aXN0LCBldmVudF92YWx1ZSk7CisrICB9CisrCisrICAvKiAgMmEpIFF1ZXJ5IGRvd25zdHJlYW0g
d2l0aCBHU1RfUVVFUllfQ09OVEVYVCBmb3IgdGhlIGNvbnRleHQgYW5kCisrICAgKiAgICAgIGNo
ZWNrIGlmIGRvd25zdHJlYW0gYWxyZWFkeSBoYXMgYSBjb250ZXh0IG9mIHRoZSBzcGVjaWZpYyB0
eXBlCisrICAgKiAgMmIpIFF1ZXJ5IHVwc3RyZWFtIGFzIGFib3ZlLgorKyAgICovCisrICBxdWVy
eSA9IGdzdF9xdWVyeV9uZXdfY29udGV4dCAoImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0
ZW0taWQiKTsKKysgIHN0ID0gZ3N0X3F1ZXJ5X3dyaXRhYmxlX3N0cnVjdHVyZSAocXVlcnkpOwor
KyAgZ3N0X3N0cnVjdHVyZV9zZXQgKHN0LCAidHJhY2staWQiLCBHX1RZUEVfVUlOVCwgc3RyZWFt
LT50cmFja19pZCwKKysgICAgICAic3RyZWFtLWVuY3J5cHRpb24tc3lzdGVtcyIsIEdfVFlQRV9T
VFJWLCBmaWx0ZXJlZF9zeXNfaWRzLCBOVUxMKTsKKysgIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbHVl
IChzdCwgInN0cmVhbS1lbmNyeXB0aW9uLWV2ZW50cyIsICZldmVudF9saXN0KTsKKysgIGlmIChn
c3RfcXRkZW11eF9ydW5fcXVlcnkgKGVsZW1lbnQsIHF1ZXJ5LCBHU1RfUEFEX1NSQykpIHsKKysg
ICAgZ3N0X3F1ZXJ5X3BhcnNlX2NvbnRleHQgKHF1ZXJ5LCAmY3R4dCk7CisrICAgIEdTVF9JTkZP
X09CSkVDVCAoZWxlbWVudCwgImZvdW5kIGNvbnRleHQgKCVwKSBpbiBkb3duc3RyZWFtIHF1ZXJ5
IiwgY3R4dCk7CisrICAgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IChlbGVtZW50LCBjdHh0KTsK
KysgIH0gZWxzZSBpZiAoZ3N0X3F0ZGVtdXhfcnVuX3F1ZXJ5IChlbGVtZW50LCBxdWVyeSwgR1NU
X1BBRF9TSU5LKSkgeworKyAgICBnc3RfcXVlcnlfcGFyc2VfY29udGV4dCAocXVlcnksICZjdHh0
KTsKKysgICAgR1NUX0lORk9fT0JKRUNUIChlbGVtZW50LCAiZm91bmQgY29udGV4dCAoJXApIGlu
IHVwc3RyZWFtIHF1ZXJ5IiwgY3R4dCk7CisrICAgIGdzdF9lbGVtZW50X3NldF9jb250ZXh0IChl
bGVtZW50LCBjdHh0KTsKKysgIH0gZWxzZSB7CisrICAgIC8qIDMpIFBvc3QgYSBHU1RfTUVTU0FH
RV9ORUVEX0NPTlRFWFQgbWVzc2FnZSBvbiB0aGUgYnVzIHdpdGgKKysgICAgICogICAgdGhlIHJl
cXVpcmVkIGNvbnRleHQgdHlwZSBhbmQgYWZ0ZXJ3YXJkcyBjaGVjayBpZiBhCisrICAgICAqICAg
IHVzYWJsZSBjb250ZXh0IHdhcyBzZXQgbm93IGFzIGluIDEpLiBUaGUgbWVzc2FnZSBjb3VsZAor
KyAgICAgKiAgICBiZSBoYW5kbGVkIGJ5IHRoZSBwYXJlbnQgYmlucyBvZiB0aGUgZWxlbWVudCBh
bmQgdGhlCisrICAgICAqICAgIGFwcGxpY2F0aW9uLgorKyAgICAgKi8KKysgICAgR3N0TWVzc2Fn
ZSAqbXNnOworKworKyAgICBHU1RfSU5GT19PQkpFQ1QgKGVsZW1lbnQsICJwb3N0aW5nIG5lZWQg
Y29udGV4dCBtZXNzYWdlIik7CisrICAgIG1zZyA9IGdzdF9tZXNzYWdlX25ld19uZWVkX2NvbnRl
eHQgKEdTVF9PQkpFQ1RfQ0FTVCAoZWxlbWVudCksCisrICAgICAgICAiZHJtLXByZWZlcnJlZC1k
ZWNyeXB0aW9uLXN5c3RlbS1pZCIpOworKyAgICBzdCA9IChHc3RTdHJ1Y3R1cmUgKikgZ3N0X21l
c3NhZ2VfZ2V0X3N0cnVjdHVyZSAobXNnKTsKKysgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHN0LCAi
dHJhY2staWQiLCBHX1RZUEVfVUlOVCwgc3RyZWFtLT50cmFja19pZCwKKysgICAgICAgICJzdHJl
YW0tZW5jcnlwdGlvbi1zeXN0ZW1zIiwgR19UWVBFX1NUUlYsIGZpbHRlcmVkX3N5c19pZHMsIE5V
TEwpOworKyAgICBnc3Rfc3RydWN0dXJlX3NldF92YWx1ZSAoc3QsICJzdHJlYW0tZW5jcnlwdGlv
bi1ldmVudHMiLCAmZXZlbnRfbGlzdCk7CisrICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSAo
ZWxlbWVudCwgbXNnKTsKKysgIH0KKysKKysgIGdfc3RyZnJlZXYgKGZpbHRlcmVkX3N5c19pZHMp
OworKyAgZ192YWx1ZV91bnNldCAoJmV2ZW50X2xpc3QpOworKyAgZ3N0X3F1ZXJ5X3VucmVmIChx
dWVyeSk7CisrfQorKworK3N0YXRpYyBnYm9vbGVhbgorIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9w
cm90ZWN0ZWRfY2FwcyAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCisgICAgIFF0RGVtdXhTdHJlYW0g
KiBzdHJlYW0pCisgeworICAgR3N0U3RydWN0dXJlICpzOworLSAgY29uc3QgZ2NoYXIgKnNlbGVj
dGVkX3N5c3RlbTsKKysgIGNvbnN0IGdjaGFyICpzZWxlY3RlZF9zeXN0ZW0gPSBOVUxMOworIAor
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHF0ZGVtdXggIT0gTlVMTCwgRkFMU0UpOworICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHN0cmVhbSAhPSBOVUxMLCBGQUxTRSk7CitAQCAtNzcwOCwxNyAr
Nzg3Miw0MSBAQCBnc3RfcXRkZW11eF9jb25maWd1cmVfcHJvdGVjdGVkX2NhcHMgKEdzdFFURGVt
dXggKiBxdGRlbXV4LAorICAgICAgICAgImNlbmMgcHJvdGVjdGlvbiBzeXN0ZW0gaW5mb3JtYXRp
b24gaGFzIGJlZW4gZm91bmQiKTsKKyAgICAgcmV0dXJuIEZBTFNFOworICAgfQorLSAgZ19wdHJf
YXJyYXlfYWRkIChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMsIE5VTEwpOworLSAgc2Vs
ZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoKGNvbnN0IGdjaGFy
ICoqKQorLSAgICAgIHF0ZGVtdXgtPnByb3RlY3Rpb25fc3lzdGVtX2lkcy0+cGRhdGEpOworLSAg
Z19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4IChxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMs
CistICAgICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAxKTsKKysKKysg
IGdzdF9xdGRlbXV4X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0IChxdGRlbXV4LCBzdHJlYW0p
OworKyAgaWYgKHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCAhPSBOVUxM
KSB7CisrICAgIGNvbnN0IGdjaGFyICpwcmVmZXJyZWRfc3lzdGVtX2FycmF5W10gPQorKyAgICAg
ICAgeyBxdGRlbXV4LT5wcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQsIE5VTEwgfTsKKysK
KysgICAgc2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3Byb3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAocHJl
ZmVycmVkX3N5c3RlbV9hcnJheSk7CisrCisrICAgIGlmIChzZWxlY3RlZF9zeXN0ZW0pIHsKKysg
ICAgICBHU1RfVFJBQ0VfT0JKRUNUIChxdGRlbXV4LCAic2VsZWN0ZWQgcHJlZmVycmVkIHN5c3Rl
bSAlcyIsCisrICAgICAgICAgIHF0ZGVtdXgtPnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9p
ZCk7CisrICAgIH0gZWxzZSB7CisrICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChxdGRlbXV4LCAi
Y291bGQgbm90IHNlbGVjdCBwcmVmZXJyZWQgc3lzdGVtICVzICIKKysgICAgICAgICAgImJlY2F1
c2UgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIGRlY3J5cHRvciIsCisrICAgICAgICAgIHF0ZGVtdXgt
PnByZWZlcnJlZF9wcm90ZWN0aW9uX3N5c3RlbV9pZCk7CisrICAgIH0KKysgIH0KKysKKysgIGlm
ICghc2VsZWN0ZWRfc3lzdGVtKSB7CisrICAgIGdfcHRyX2FycmF5X2FkZCAocXRkZW11eC0+cHJv
dGVjdGlvbl9zeXN0ZW1faWRzLCBOVUxMKTsKKysgICAgc2VsZWN0ZWRfc3lzdGVtID0gZ3N0X3By
b3RlY3Rpb25fc2VsZWN0X3N5c3RlbSAoKGNvbnN0IGdjaGFyICoqKQorKyAgICAgICAgcXRkZW11
eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5wZGF0YSk7CisrICAgIGdfcHRyX2FycmF5X3JlbW92
ZV9pbmRleCAocXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLAorKyAgICAgICAgcXRkZW11
eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzLT5sZW4gLSAxKTsKKysgIH0KKysKKyAgIGlmICghc2Vs
ZWN0ZWRfc3lzdGVtKSB7CisgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKHF0ZGVtdXgsICJzdHJlYW0g
aXMgcHJvdGVjdGVkLCBidXQgbm8gIgorICAgICAgICAgInN1aXRhYmxlIGRlY3J5cHRvciBlbGVt
ZW50IGhhcyBiZWVuIGZvdW5kIik7CisgICAgIHJldHVybiBGQUxTRTsKKyAgIH0KKyAKKysgIEdT
VF9ERUJVR19PQkpFQ1QgKHF0ZGVtdXgsICJzZWxlY3RlZCBwcm90ZWN0aW9uIHN5c3RlbSBpcyAl
cyIsCisrICAgICAgc2VsZWN0ZWRfc3lzdGVtKTsKKysKKyAgIHMgPSBnc3RfY2Fwc19nZXRfc3Ry
dWN0dXJlIChzdHJlYW0tPmNhcHMsIDApOworICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1l
IChzLCAiYXBwbGljYXRpb24veC1jZW5jIikpIHsKKyAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHMs
CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXgu
aAoraW5kZXggZWJkNzI1ODcxLi5iM2Q2NGE0ZTggMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0
ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC0xNTQsNiArMTU0LDcgQEAg
c3RydWN0IF9Hc3RRVERlbXV4IHsKKyAgIGd1aW50NjQgY2VuY19hdXhfaW5mb19vZmZzZXQ7Cisg
ICBndWludDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBs
ZV9jb3VudDsKKysgIGdjaGFyICpwcmVmZXJyZWRfcHJvdGVjdGlvbl9zeXN0ZW1faWQ7CisgCisg
CisgICAvKgorLS0gCisyLjExLjAKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDA4LXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNy
eXB0aW9uLWluZm8taW4ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LTAwMDgtcXRkZW11eC1hbHNvLXB1c2gtYnVmZmVycy13aXRob3V0LWVuY3J5cHRpb24taW5mby1p
bi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NTAyMWNjYmMwNGUxMGM2NGViMWU0YWI5NjY5M2JiZjA4ODgw
OTZkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29v
ZC0wMDA4LXF0ZGVtdXgtYWxzby1wdXNoLWJ1ZmZlcnMtd2l0aG91dC1lbmNyeXB0aW9uLWluZm8t
aW4ucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSA3ODU1OWJjNWRiMzQ5NWYxMmIwMjg0ZTRi
ZTVmYzhiZmNkNzA0MWUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9x
P0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxlej89IDxlb2NhbmhhQGlnYWxpYS5j
b20+CitEYXRlOiBNb24sIDI0IEFwciAyMDE3IDE3OjIyOjAyICswMDAwCitTdWJqZWN0OiBbUEFU
Q0hdIHF0ZGVtdXg6IGFsc28gcHVzaCBidWZmZXJzIHdpdGhvdXQgZW5jcnlwdGlvbiBpbmZvIGlu
c3RlYWQgb2YKKyBkcm9wcGluZyB0aGVtCisKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwg
MjYgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0
aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVt
dXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA2YjBjODIwLi43YjcxMjM3IDEwMDY0
NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5j
CitAQCAtNTQyMSwyMCArNTQyMSwxOCBAQCBnc3RfcXRkZW11eF9kZWNvcmF0ZV9hbmRfcHVzaF9i
dWZmZXIgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50
IChzdHJlYW0tPnBhZCwgZXZlbnQpOworICAgICB9CisgCistICAgIGlmIChpbmZvLT5jcnlwdG9f
aW5mbyA9PSBOVUxMKSB7CistICAgICAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgImNlbmMg
bWV0YWRhdGEgaGFzbid0IGJlZW4gcGFyc2VkIHlldCIpOworLSAgICAgIGdzdF9idWZmZXJfdW5y
ZWYgKGJ1Zik7CistICAgICAgZ290byBleGl0OworLSAgICB9CistCistICAgIGluZGV4ID0gc3Ry
ZWFtLT5zYW1wbGVfaW5kZXggLSAoc3RyZWFtLT5uX3NhbXBsZXMgLSBpbmZvLT5jcnlwdG9faW5m
by0+bGVuKTsKKy0gICAgaWYgKEdfTElLRUxZIChpbmRleCA+PSAwICYmIGluZGV4IDwgaW5mby0+
Y3J5cHRvX2luZm8tPmxlbikpIHsKKy0gICAgICAvKiBzdGVhbCBzdHJ1Y3R1cmUgZnJvbSBhcnJh
eSAqLworLSAgICAgIGNyeXB0b19pbmZvID0gZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0
b19pbmZvLCBpbmRleCk7CistICAgICAgZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19p
bmZvLCBpbmRleCkgPSBOVUxMOworLSAgICAgIEdTVF9MT0dfT0JKRUNUIChxdGRlbXV4LCAiYXR0
YWNoaW5nIGNlbmMgbWV0YWRhdGEgWyV1XSIsIGluZGV4KTsKKy0gICAgICBpZiAoIWNyeXB0b19p
bmZvIHx8ICFnc3RfYnVmZmVyX2FkZF9wcm90ZWN0aW9uX21ldGEgKGJ1ZiwgY3J5cHRvX2luZm8p
KQorLSAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2gg
Y2VuYyBtZXRhZGF0YSB0byBidWZmZXIiKTsKKysgICAgaWYgKGluZm8tPmNyeXB0b19pbmZvID09
IE5VTEwpCisrICAgICAgR1NUX0RFQlVHX09CSkVDVCAocXRkZW11eCwgImNlbmMgbWV0YWRhdGEg
aGFzbid0IGJlZW4gcGFyc2VkIHlldCwgcHVzaGluZyBidWZmZXIgYXMgaWYgaXQgd2Fzbid0IGVu
Y3J5cHRlZCIpOworKyAgICBlbHNlIHsKKysgICAgICBpbmRleCA9IHN0cmVhbS0+c2FtcGxlX2lu
ZGV4IC0gKHN0cmVhbS0+bl9zYW1wbGVzIC0gaW5mby0+Y3J5cHRvX2luZm8tPmxlbik7CisrICAg
ICAgaWYgKEdfTElLRUxZIChpbmRleCA+PSAwICYmIGluZGV4IDwgaW5mby0+Y3J5cHRvX2luZm8t
PmxlbikpIHsKKysgICAgICAgIC8qIHN0ZWFsIHN0cnVjdHVyZSBmcm9tIGFycmF5ICovCisrICAg
ICAgICBjcnlwdG9faW5mbyA9IGdfcHRyX2FycmF5X2luZGV4IChpbmZvLT5jcnlwdG9faW5mbywg
aW5kZXgpOworKyAgICAgICAgZ19wdHJfYXJyYXlfaW5kZXggKGluZm8tPmNyeXB0b19pbmZvLCBp
bmRleCkgPSBOVUxMOworKyAgICAgICAgR1NUX0xPR19PQkpFQ1QgKHF0ZGVtdXgsICJhdHRhY2hp
bmcgY2VuYyBtZXRhZGF0YSBbJXVdIiwgaW5kZXgpOworKyAgICAgICAgaWYgKCFjcnlwdG9faW5m
byB8fCAhZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChidWYsIGNyeXB0b19pbmZvKSkK
KysgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAocXRkZW11eCwgImZhaWxlZCB0byBhdHRhY2gg
Y2VuYyBtZXRhZGF0YSB0byBidWZmZXIiKTsKKysgICAgICB9CisgICAgIH0KKyAgIH0KKyAKKy0t
IAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1n
b29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4
LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNhNjBkYjQ3NzJiMjc3M2EyMWNkMDEzNDA0YjRiZGVlYjEwZDZm
MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFt
cy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICsw
LDAgQEAKLUZyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0OCBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2
YXJpc0BpZ2FsaWEuY29tPgotRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICswMjAwCi1T
dWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0aCBmaXJz
dCBtb29mIGZvcgotIGZyYWdtZW50ZWQgZm9ybWF0IgotCi1UaGlzIHJldmVydHMgY29tbWl0IGQ4
YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCi0tLS0KLSBnc3QvaXNvbXA0
L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KLSAyIGZpbGVzIGNoYW5n
ZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ3N0
L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYwotaW5kZXggMzliZTE2My4u
OTYzNmI0YiAxMDA2NDQKLS0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCi0rKysgYi9nc3QvaXNv
bXA0L3F0ZGVtdXguYwotQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RR
VERlbXV4ICogcXRkZW11eCkKLSAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFURV9JTklU
SUFMOwotICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7Ci0gICBxdGRlbXV4LT5wb3N0ZWRf
cmVkaXJlY3QgPSBGQUxTRTsKLS0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
Ci0gICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OwotICAgcXRkZW11eC0+dG9kcm9wID0gMDsK
LSAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7Ci1AQCAtMjA0OSw3ICsy
MDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVh
biBoYXJkKQotICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2FwcywgTlVM
TCk7Ci0gICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7Ci0gICAgIHF0ZGVtdXgtPmdvdF9tb292
ID0gRkFMU0U7Ci0tICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7Ci0gICB9
IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7Ci0gICAgIGdzdF9mbG93X2NvbWJpbmVyX3Jl
c2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOwotICAgICBmb3IgKG4gPSAwOyBuIDwgcXRkZW11
eC0+bl9zdHJlYW1zOyBuKyspCi1AQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVtdXhfcHJv
Y2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQotICAgICAg
ICAgICAgICZmb3VyY2MpOwotICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9vdikgewot
ICAgICAgICAgICBnaW50IG47Ci0tICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVzID0gRkFM
U0U7Ci0gCi0gICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2UgY291bGQg
dHJ5IHRvIHNjYW4gZm9yIG1vcmUKLSAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0aGUgdGhl
IG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCi1AQCAtNjEzNiwyNyArNjEzMywxOSBAQCBnc3Rf
cXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9y
Y2UpCi0gICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+bW9vdl9u
b2RlKTsKLSAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKLSAgICAgICAg
ICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOwotKyAgICAgICAgICAgIGlmICgh
ZGVtdXgtPmdvdF9tb292KQotKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOwotKyAgICAgICAgICAgIGVsc2UgewotIAotLSAgICAgICAgICAgIGZvciAobiA9IDA7
IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAgICAgICAgIFF0RGVtdXhTdHJl
YW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOwotLSAgICAgICAgICAgICAgZ290X3NhbXBs
ZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg
ICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKLS0gICAgICAgICAg
ICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7Ci0tICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhw
b3NlX3N0cmVhbXMgKGRlbXV4KTsKLS0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg
ICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKLS0gICAgICAg
ICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLS0g
ICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3Ry
ZWFtKTsKLS0gICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8
IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgewotKyAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFt
ICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKLSsKLSsgICAgICAgICAgICAgICAgZ3N0X3F0
ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7Ci0gICAgICAgICAgICAgICB9
Ci0tICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAo
ZGVtdXgpOwotLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2Nv
bmZpZ3VyZSA9IFRSVUU7Ci0gICAgICAgICAgICAgfQotIAotICAgICAgICAgICAgIGRlbXV4LT5n
b3RfbW9vdiA9IFRSVUU7Ci0rICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5k
aW5nX3NlZ21lbnQgKGRlbXV4KTsKLSAKLSAgICAgICAgICAgICAvKiBmcmFnbWVudGVkIHN0cmVh
bXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCi0gICAgICAgICAgICAg
aWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgewotQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdzdF9xdGRl
bXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkK
LSAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOwotICAgICAgICAgICAgIEdzdENsb2NrVGlt
ZSBwcmV2X3B0czsKLSAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OwotLSAgICAgICAg
ICAgIGdpbnQgbjsKLSAKLSAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIlBh
cnNpbmcgW21vb2ZdIik7Ci0gCi1AQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRkZW11eF9w
cm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCi0gICAg
ICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKLSAgICAgICAgICAgICAgIGdvdG8gZG9u
ZTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhw
b3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3Yg
Ci0tICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBiZSBleHBv
c2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCi0tICAgICAgICAgICAg
aWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsKLS0gICAg
ICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKLS0gICAgICAgICAgICAgICAgaWYgKCFk
ZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7Ci0tICAgICAgICAgICAgICAgICAgR3N0U2VnbWVu
dCBzZWdtZW50OwotLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZzZWdtZW50
LCBHU1RfRk9STUFUX1RJTUUpOwotLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qg
KGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOwotLSAgICAgICAgICAgICAgICAgIGRl
bXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50
KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9z
dHJlYW1zIChkZW11eCk7Ci0tICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg
ICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7Ci0tICAgICAgICAgICAg
ICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07Ci0tICAgICAg
ICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7
Ci0tICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBl
eHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9v
diAqLwotKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5leHBvc2Vk
KSB7Ci0rICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQpIHsKLSsg
ICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OwotKyAgICAgICAgICAgICAgICBnc3Rf
c2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKLSsgICAgICAgICAgICAg
ICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50Iik7Ci0r
ICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3
X3NlZ21lbnQgKCZzZWdtZW50KTsKLSAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgIGdz
dF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7Ci0tICAgICAgICAg
ICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKLSsgICAgICAgICAgICAgIHF0
ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJEaXNjYXJk
aW5nIFttb29mXSIpOwotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lz
b21wNC9xdGRlbXV4LmgKLWluZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0Ci0tLS0gYS9nc3Qv
aXNvbXA0L3F0ZGVtdXguaAotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLUBAIC04OSw3ICs4
OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7Ci0gICBnYm9vbGVhbiBwb3N0ZWRfcmVkaXJlY3Q7
Ci0gCi0gICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLwotLSAgZ2Jvb2xlYW4gcGVuZGluZ19j
b25maWd1cmU7Ci0gICBndWludCBuZWVkZWRieXRlczsKLSAgIGd1aW50IHRvZHJvcDsKLSAgIEdz
dEFkYXB0ZXIgKmFkYXB0ZXI7Ci0tLSAKLTIuOC4wLnJjMwotCmRpZmYgLS1naXQgYS9Ub29scy93
cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRj
aCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTlkZDk3Zjc5MTZm
MDg3Mzc5ZTA4ZmM2OGFhMGRhMjEyOTU4Yzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNl
LXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAg
QEAKLUZyb20gNDZkM2UwZmFhOTIyNjQzMDk0YTVlNDZhMzJlNGY4MmY3NzRhZTc3MiBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9FbnJpcXVlPTIwT2NhPUMzPUIxYT0y
MEdvbno9QzM9QTFsZXo/PSA8ZW9jYW5oYUBpZ2FsaWEuY29tPgotRGF0ZTogVHVlLCAxMCBOb3Yg
MjAxNSAxMzowOTowMCArMDEwMAotU3ViamVjdDogW1BBVENIXSBVc2UgdGhlIHRmZHQgZGVjb2Rl
IHRpbWUgd2hlbiBpdCdzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50Ci0gdGhhbiB0aGUgdGltZSBp
biB0aGUgbGFzdCBzYW1wbGUgaWYgYWx3YXlzLWhvbm9yLXRmZHQgaXMgZW5hYmxlZAotCi1odHRw
czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MjMwCi0tLS0KLSBnc3Qv
aXNvbXA0L3F0ZGVtdXguYyB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKLSBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxICsKLSAyIGZpbGVz
IGNoYW5nZWQsIDczIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRk
ZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKLWluZGV4IDg4MDU5NWUuLmQ4YjU0ZjAgMTAw
NjQ0Ci0tLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYwotKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4
LmMKLUBAIC01MzUsNiArNTM1LDExIEBAIHN0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2FwcGVuZF9w
cm90ZWN0aW9uX3N5c3RlbV9pZCAoR3N0UVREZW11eCAqIHF0ZGVtdXgsCi0gICAgIGNvbnN0IGdj
aGFyICogaWQpOwotIHN0YXRpYyB2b2lkIHF0ZGVtdXhfZ3N0X3N0cnVjdHVyZV9mcmVlIChHc3RT
dHJ1Y3R1cmUgKiBnc3RzdHJ1Y3R1cmUpOwotIAotK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X3Nl
dF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKLSsgICAgY29uc3Qg
R1ZhbHVlICogdmFsdWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKLStzdGF0aWMgdm9pZCBnc3RfcXRk
ZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCi0rICAg
IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Ci0rCi0gc3RhdGljIHZvaWQKLSBn
c3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3MgKiBrbGFzcykKLSB7Ci1AQCAt
NTQ2LDggKzU1MSwyMSBAQCBnc3RfcXRkZW11eF9jbGFzc19pbml0IChHc3RRVERlbXV4Q2xhc3Mg
KiBrbGFzcykKLSAKLSAgIHBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAo
a2xhc3MpOwotIAotKyAgZ29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVtdXhf
c2V0X3Byb3BlcnR5OwotKyAgZ29iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gZ3N0X3F0ZGVt
dXhfZ2V0X3Byb3BlcnR5OwotKwotICAgZ29iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IGdzdF9xdGRl
bXV4X2Rpc3Bvc2U7Ci0gCi0rIC8qKgotKyAgICogR3N0UXREZW11eDo6YWx3YXlzLWhvbm9yLXRm
ZHQ6Ci0rICAgKgotKyAgICogUmVxdWVzdHMgdGhlIGRlbXV4ZXIgdG8gcmVzcGVjdCB3aGF0IHRo
ZSBURkRUIGF0b20gc2F5cyBpbiBvcmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3Rh
bXBzLiBEZWZhdWx0cyB0byBGQUxTRS4KLSsgICAqLwotKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eSAoZ29iamVjdF9jbGFzcywgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVCwKLSsgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbiAoImFsd2F5cy1ob25vci10ZmR0IiwgIkFsd2F5cyBob25v
ciBURkRUIiwKLSsgICAgICAgICAgIldoZW4gZW5hYmxlZCwgVEZEVCBhdG9tIHdpbGwgYWx3YXlz
IGJlIHJlc3BlY3RlZCBpbiBvcmRlciB0byBwcm9kdWNlIHByZXNlbnRhdGlvbiB0aW1lc3RhbXBz
IiwKLSsgICAgICAgICAgRkFMU0UsIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNf
U1RSSU5HUykpOwotKwotICAgZ3N0ZWxlbWVudF9jbGFzcy0+Y2hhbmdlX3N0YXRlID0gR1NUX0RF
QlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X2NoYW5nZV9zdGF0ZSk7Ci0gI2lmIDAKLSAgIGdzdGVs
ZW1lbnRfY2xhc3MtPnNldF9pbmRleCA9IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9z
ZXRfaW5kZXgpOwotQEAgLTYxMSw2ICs2MjksNyBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERl
bXV4ICogcXRkZW11eCkKLSAgIHF0ZGVtdXgtPmNlbmNfYXV4X2luZm9fc2l6ZXMgPSBOVUxMOwot
ICAgcXRkZW11eC0+Y2VuY19hdXhfc2FtcGxlX2NvdW50ID0gMDsKLSAgIHF0ZGVtdXgtPnByb3Rl
Y3Rpb25fc3lzdGVtX2lkcyA9IE5VTEw7Ci0rICBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9
IEZBTFNFOwotICAgZ19xdWV1ZV9pbml0ICgmcXRkZW11eC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1
ZSk7Ci0gICBnc3Rfc2VnbWVudF9pbml0ICgmcXRkZW11eC0+c2VnbWVudCwgR1NUX0ZPUk1BVF9U
SU1FKTsKLSAgIHF0ZGVtdXgtPmZsb3djb21iaW5lciA9IGdzdF9mbG93X2NvbWJpbmVyX25ldyAo
KTsKLUBAIC02MzksNiArNjU4LDQyIEBAIGdzdF9xdGRlbXV4X2Rpc3Bvc2UgKEdPYmplY3QgKiBv
YmplY3QpCi0gfQotIAotIHN0YXRpYyB2b2lkCi0rZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAotKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQotK3sKLSsgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1Rf
UVRERU1VWCAob2JqZWN0KTsKLSsKLSsgIHN3aXRjaCAocHJvcF9pZCkgewotKyAgICBjYXNlIFBS
T1BfQUxXQVlTX0hPTk9SX1RGRFQ6Ci0rICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsK
LSsgICAgICBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4g
KHZhbHVlKTsKLSsgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAocXRkZW11eCk7Ci0rICAgICAgYnJl
YWs7Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZ
X0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSsgICAgICBicmVhazsKLSsgIH0KLSt9Ci0r
Ci0rc3RhdGljIHZvaWQKLStnc3RfcXRkZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqIHZhbHVlLAotKyAgICBHUGFyYW1TcGVjICogcHNw
ZWMpCi0rewotKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmplY3QpOwot
KwotKyAgc3dpdGNoIChwcm9wX2lkKSB7Ci0rICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9OT1JfVEZE
VDoKLSsgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOwotKyAgICAgIGdfdmFsdWVfc2V0
X2Jvb2xlYW4gKHZhbHVlLCBxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCk7Ci0rICAgICAgR1NU
X09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZhdWx0Ogot
KyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lk
LCBwc3BlYyk7Ci0rICAgICAgYnJlYWs7Ci0rICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0gZ3N0
X3F0ZGVtdXhfcG9zdF9ub19wbGF5YWJsZV9zdHJlYW1fZXJyb3IgKEdzdFFURGVtdXggKiBxdGRl
bXV4KQotIHsKLSAgIGlmIChxdGRlbXV4LT5wb3N0ZWRfcmVkaXJlY3QpIHsKLUBAIC0yOTk1LDYg
KzMwNTAsMTYgQEAgcXRkZW11eF9wYXJzZV90cnVuIChHc3RRVERlbXV4ICogcXRkZW11eCwgR3N0
Qnl0ZVJlYWRlciAqIHRydW4sCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5f
c2FtcGxlcyAtIDFdLnRpbWVzdGFtcCArCi0gICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJl
YW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uOwotIAotKyAgICAgIC8qIElmIHdlJ3JlIGFsd2F5
cyBob25vcmluZyBURkRUIGFuZCB0aGVyZSdzIGEgc2lnbmlmaWNhdGl2ZSBkaWZmZXJlbmNlCi0r
ICAgICAgICogYmV0d2VlbiB0aGUgZGVjb2RlX3RzIGFuZCB0aGUgdGltZXN0YW1wLCBwcmVmZXIg
ZGVjb2RlX3RzICovCi0rICAgICAgaWYgKHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID09IFRS
VUUKLSsgICAgICAgICAgJiYgYWJzIChkZWNvZGVfdHMgLSB0aW1lc3RhbXApID4KLSsgICAgICAg
ICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0uZHVyYXRpb24pIHsKLSsg
ICAgICAgIEdTVF9JTkZPX09CSkVDVCAocXRkZW11eCwKLSsgICAgICAgICAgICAiZGVjb2RlX3Rz
IGlzIHNpZ25pZmljYW50bHkgZGlmZmVyZW50IGZyb20gdGltZXN0YW1wLCB1c2luZyBkZWNvZGVf
dHMiKTsKLSsgICAgICAgIHRpbWVzdGFtcCA9IGRlY29kZV90czsKLSsgICAgICB9Ci0rCi0gICAg
ICAgZ3N0X3RzID0gUVRTVFJFQU1USU1FX1RPX0dTVFRJTUUgKHN0cmVhbSwgdGltZXN0YW1wKTsK
LSAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsICJmaXJzdCBzYW1wbGUgdHMgJSIgR1NU
X1RJTUVfRk9STUFUCi0gICAgICAgICAgICIgKGV4dGVuZHMgcHJldmlvdXMgc2FtcGxlcykiLCBH
U1RfVElNRV9BUkdTIChnc3RfdHMpKTsKLWRpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXgu
aCBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1pbmRleCA1M2JkMDcxLi5lY2YwYzYzIDEwMDY0NAot
LS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmgKLSsrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCi1A
QCAtMTU0LDEyICsxNTQsMjAgQEAgc3RydWN0IF9Hc3RRVERlbXV4IHsKLSAgIGd1aW50OCAqY2Vu
Y19hdXhfaW5mb19zaXplczsKLSAgIGd1aW50MzIgY2VuY19hdXhfc2FtcGxlX2NvdW50OwotIAot
KyAgZ2Jvb2xlYW4gYWx3YXlzX2hvbm9yX3RmZHQ7Ci0gfTsKLSAKLSBzdHJ1Y3QgX0dzdFFURGVt
dXhDbGFzcyB7Ci0gICBHc3RFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwotIH07Ci0gCi0rLyog
cHJvcHMgKi8KLStlbnVtCi0rewotKyAgUFJPUF8wLAotKyAgUFJPUF9BTFdBWVNfSE9OT1JfVEZE
VAotK307Ci0rCi0gR1R5cGUgZ3N0X3F0ZGVtdXhfZ2V0X3R5cGUgKHZvaWQpOwotIAotIEdfRU5E
X0RFQ0xTCi0tLSAKLTIuNi4xCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdHJl
YW1lci0wMDAxLXByb3RlY3Rpb24tYWRkZWQtZnVuY3Rpb24tdG8tZmlsdGVyLXN5c3RlbS1pZHMu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVk
LWZ1bmN0aW9uLXRvLWZpbHRlci1zeXN0ZW0taWRzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MmVmNmMx
MzJjNjMxNDAyMjQ0ZjcyNjI3MzBkNmRiNDEzODFkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMS1wcm90ZWN0aW9uLWFkZGVkLWZ1bmN0aW9uLXRv
LWZpbHRlci1zeXN0ZW0taWRzLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKK0Zyb20gNzc3MmViMzUw
NTkxNjgyYjZhMzE1YzhhODdhNTgxMzFmNzMxZjFkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
K0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0
ZTogV2VkLCAxOSBPY3QgMjAxNiAxNjo0NDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBwcm90
ZWN0aW9uOiBhZGRlZCBmdW5jdGlvbiB0byBmaWx0ZXIgc3lzdGVtIGlkcworCitnc3RfcHJvdGVj
dGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycyB0YWtlcyBhbiBhcnJh
eSBvZgorc3RyaW5ncyBhbmQgcmV0dXJucyBhIG5ldyBhcnJheSBvZiBzdHJpbmdzIGZpbHRlcmVk
IGJ5IHRoZSBhdmFpYmxlCitkZWNyeXB0b3JzIGZvciB0aGVtIHNvIHRoZSBvbmVzIHlvdSBnZXQg
YXJlIHRoZSBvbmVzIHRoYXQgeW91IHNob3VsZCBiZQorYWJsZSB0byBkZWNyeXB0LgorLS0tCisg
Z3N0L2dzdHByb3RlY3Rpb24uYyB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKworIGdzdC9nc3Rwcm90ZWN0aW9uLmggfCAgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgMzgg
aW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2dzdHByb3RlY3Rpb24uYyBiL2dzdC9n
c3Rwcm90ZWN0aW9uLmMKK2luZGV4IDhlZTUyZWEuLjJkN2U1ZTAgMTAwNjQ0CistLS0gYS9nc3Qv
Z3N0cHJvdGVjdGlvbi5jCisrKysgYi9nc3QvZ3N0cHJvdGVjdGlvbi5jCitAQCAtMTkxLDYgKzE5
MSw0MiBAQCBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtIChjb25zdCBnY2hhciAqKiBzeXN0
ZW1faWRlbnRpZmllcnMpCisgICByZXR1cm4gcmV0dmFsOworIH0KKyAKKytnY2hhciAqKgorK2dz
dF9wcm90ZWN0aW9uX2ZpbHRlcl9zeXN0ZW1zX2J5X2F2YWlsYWJsZV9kZWNyeXB0b3JzIChjb25z
dCBnY2hhciAqKgorKyAgICBzeXN0ZW1faWRlbnRpZmllcnMpCisreworKyAgR0xpc3QgKmRlY3J5
cHRvcnMsICp3YWxrOworKyAgZ2NoYXIgKipyZXR2YWw7CisrICBndWludCBpID0gMCwgZGVjcnlw
dG9yc19udW1iZXI7CisrCisrICBkZWNyeXB0b3JzID0KKysgICAgICBnc3RfZWxlbWVudF9mYWN0
b3J5X2xpc3RfZ2V0X2VsZW1lbnRzIChHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9S
LAorKyAgICAgIEdTVF9SQU5LX01BUkdJTkFMKTsKKysKKysgIGRlY3J5cHRvcnNfbnVtYmVyID0g
Z19saXN0X2xlbmd0aCAoZGVjcnlwdG9ycyk7CisrICByZXR2YWwgPSBnX25ldyAoZ2NoYXIgKiwg
ZGVjcnlwdG9yc19udW1iZXIgKyAxKTsKKysKKysgIEdTVF9UUkFDRSAoImZvdW5kICV1IGRlY3J5
dG9ycyIsIGRlY3J5cHRvcnNfbnVtYmVyKTsKKysKKysgIGZvciAod2FsayA9IGRlY3J5cHRvcnM7
IHdhbGs7IHdhbGsgPSBnX2xpc3RfbmV4dCAod2FsaykpIHsKKysgICAgR3N0RWxlbWVudEZhY3Rv
cnkgKmZhY3QgPSAoR3N0RWxlbWVudEZhY3RvcnkgKikgd2Fsay0+ZGF0YTsKKysKKysgICAgY29u
c3QgY2hhciAqZm91bmRfc3lzX2lkID0KKysgICAgICAgIGdzdF9wcm90ZWN0aW9uX2ZhY3Rvcnlf
Y2hlY2sgKGZhY3QsIHN5c3RlbV9pZGVudGlmaWVycyk7CisrICAgIEdTVF9UUkFDRSAoImZhY3Rv
cnkgJXMgaXMgdmFsaWQgZm9yICVzIiwgR1NUX09CSkVDVF9OQU1FIChmYWN0KSwKKysgICAgICAg
IGZvdW5kX3N5c19pZCk7CisrCisrICAgIGlmIChmb3VuZF9zeXNfaWQpIHsKKysgICAgICByZXR2
YWxbaSsrXSA9IGdfc3RyZHVwIChmb3VuZF9zeXNfaWQpOworKyAgICB9CisrICB9CisrICByZXR2
YWxbaV0gPSBOVUxMOworKworKyAgZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSAoZGVjcnlw
dG9ycyk7CisrCisrICByZXR1cm4gcmV0dmFsOworK30KKysKKyBzdGF0aWMgY29uc3QgZ2NoYXIg
KgorIGdzdF9wcm90ZWN0aW9uX2ZhY3RvcnlfY2hlY2sgKEdzdEVsZW1lbnRGYWN0b3J5ICogZmFj
dCwKKyAgICAgY29uc3QgZ2NoYXIgKiogc3lzdGVtX2lkZW50aWZpZXJzKQorZGlmZiAtLWdpdCBh
L2dzdC9nc3Rwcm90ZWN0aW9uLmggYi9nc3QvZ3N0cHJvdGVjdGlvbi5oCitpbmRleCBmMmY1NGM0
Li45NTk3NmM1IDEwMDY0NAorLS0tIGEvZ3N0L2dzdHByb3RlY3Rpb24uaAorKysrIGIvZ3N0L2dz
dHByb3RlY3Rpb24uaAorQEAgLTY2LDYgKzY2LDggQEAgR3N0UHJvdGVjdGlvbk1ldGEgKmdzdF9i
dWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSAoR3N0QnVmZmVyICogYnVmZmVyLAorICAgICBHc3RT
dHJ1Y3R1cmUgKiBpbmZvKTsKKyAKKyBjb25zdCBnY2hhciAqZ3N0X3Byb3RlY3Rpb25fc2VsZWN0
X3N5c3RlbSAoY29uc3QgZ2NoYXIgKiogc3lzdGVtX2lkZW50aWZpZXJzKTsKKytnY2hhciAqKiBn
c3RfcHJvdGVjdGlvbl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycyAoCisr
ICAgIGNvbnN0IGdjaGFyICoqIHN5c3RlbV9pZGVudGlmaWVycyk7CisgCisgR19FTkRfREVDTFMK
KyAjZW5kaWYgLyogX19HU1RfUFJPVEVDVElPTl9NRVRBX0hfXyAqLworLS0gCisyLjEwLjIKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>