[19974] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Re: [kitten] Checking the transited list of a kerberos ticket in a

daemon@ATHENA.MIT.EDU (Stefan Metzmacher)
Mon Sep 23 21:23:17 2019

From: Stefan Metzmacher <metze@samba.org>
To: kitten@ietf.org, Viktor Dukhovni <viktor1dane@dukhovni.org>,
        Samba Technical <samba-technical@lists.samba.org>,
        "krbdev@mit.edu Dev List" <krbdev@mit.edu>,
        "heimdal-discuss@sics.se" <heimdal-discuss@sics.se>
Message-ID: <cb0d7433-9e23-5bce-4e06-1213bf88cade@samba.org>
Date: Tue, 24 Sep 2019 02:05:05 +0200
MIME-Version: 1.0
In-Reply-To: <8f68cfb0-2d6b-d86f-4ff0-a9282aa0bf55@samba.org>
Content-Type: multipart/mixed; boundary="===============2708968489704256375=="
Errors-To: krbdev-bounces@mit.edu

--===============2708968489704256375==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature";
	boundary="hOf5XOdOvbTtHREDvOScwgCIBHF66RBan"

--hOf5XOdOvbTtHREDvOScwgCIBHF66RBan
Content-Type: multipart/mixed; boundary="qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB";
	protected-headers="v1"
From: Stefan Metzmacher <metze@samba.org>
To: kitten@ietf.org, Viktor Dukhovni <viktor1dane@dukhovni.org>,
	Samba Technical <samba-technical@lists.samba.org>,
	"krbdev@mit.edu Dev List" <krbdev@mit.edu>,
	"heimdal-discuss@sics.se" <heimdal-discuss@sics.se>
Message-ID: <cb0d7433-9e23-5bce-4e06-1213bf88cade@samba.org>
Subject: Re: [kitten] Checking the transited list of a kerberos ticket in a
	transitive cross-realm trust situation...
References: <f33d5f68-1fdc-c1bc-c702-70b054880bb4@samba.org>
	<649fa812-aacf-80b6-1976-a719eca60fc2@mit.edu>
	<33c431f5-c36b-c321-de3f-65977d8aa898@samba.org>
	<007c29e8-02b9-4f48-f67e-881cb0985d64@mit.edu>
	<69d80d24-d461-1652-3cfb-e55d90d31fbf@samba.org>
	<ec067a72-313e-1878-33a0-a3259d2979d5@mit.edu>
	<1503578184.3428.19.camel@redhat.com>
	<db882372-aa1d-e58e-4c94-a268539bd2ee@samba.org>
	<1503596189.3428.26.camel@redhat.com>
	<F363B51E-FDF7-4C91-9ABD-B623B5CE97BC@dukhovni.org>
	<8f68cfb0-2d6b-d86f-4ff0-a9282aa0bf55@samba.org>
In-Reply-To: <8f68cfb0-2d6b-d86f-4ff0-a9282aa0bf55@samba.org>

--qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB
Content-Type: multipart/mixed; boundary="------------DD547EFD1C077ADE310AA0E0"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------DD547EFD1C077ADE310AA0E0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi,

resuming this old thread...
https://lists.samba.org/archive/samba-technical/2017-August/122422.html

>> Does the Kerberos library know whether whether the application is goin=
g
>> to look at PACs and SIDs or just use the client principal name?  I am
>> guessing it does not.  Thus in Samba, one might need a dedicated
>> krb5.conf configuration file that disables the transit check.  Other
>> applications should still apply transit check even if a PAC happens
>> to be present, as AFAIK it may well remain unused.
>=20
> My idea was that Samba would use
> gss_set_cred_option(GSS_KRB5_CRED_NO_TRANSIT_CHECK_X) to indicate
> the the transited list should not be checked.

I implemented GSS_KRB5_CRED_NO_TRANSIT_CHECK_X for
MIT, Heimdal (both upstream and Samba) and make use of
it in Samba.

Note that I took a OID from Heimdal:
GSS_KRB5_CRED_NO_TRANSIT_CHECK_X - 1.2.752.43.13.31
So we need to push it Heimdal first in order to avoid
conflicts later.

The code for Heimdal can be found here:
https://github.com/metze-samba/krb5/tree/master-no-transit-check
(also attached as heimdal-no_transit_check-01.patches.txt
and heimdal-no_transit_check-wip-tests-01.patches.txt)
Sadly I wasn't able to create a test that was able to
trigger the desired code path and verify it works as
expected and avoid regressions. Maybe someone can
help me with that or give some useful hints.
Currently it's only tested via Samba.

The code for MIT can be found here:
https://github.com/metze-samba/krb5/tree/master-no-transit-check
(also attached as mit-krb5-no_transit_check-01.patches.txt)
It also have tests to verify it works as expected.

The work in progress for Samba can be found here:
https://gitlab.com/samba-team/samba/merge_requests/809
(also attached as samba-no_transit_check-wip-01.txt)
The key is that Samba will require a verified PAC in the
Kerberos service ticket and be sure the authorization token
is generated by a DC of the primary domain, which is all we care
about as we just trust the domain. In such a situation
we'll use GSS_KRB5_CRED_NO_TRANSIT_CHECK_X to disable
the for us useless transit check.

Is it required to get regression tests for heimdal added
in order process on this, or could be go on without them?

metze


--------------DD547EFD1C077ADE310AA0E0
Content-Type: text/plain; charset=UTF-8;
	name="heimdal-no_transit_check-01.patches.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="heimdal-no_transit_check-01.patches.txt"

RnJvbSA3NWFiNmJiNTE4OTQ1ODY1ZDY0OTM1NmMyNzE5MjNkYmY2ZjdhNjM3IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu
b3JnPgpEYXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6IFtQ
QVRDSCAxLzZdIGxpYi9rcmI1OiBhZGQga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9y
ZXFfZmxhZ3MoKQoKSW4gdGhlIG5leHQgY29tbWl0cyB3ZSB3YW50IHRvIGJlIGFibGUgdG8g
cGFzcyBkb3duCnRoaW5ncyBsaWtlIEtSQjVfVkVSSUZZX0FQX1JFUV9OT19UUkFOU0lURURf
Q0hFQ0suCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJh
Lm9yZz4KLS0tCiBsaWIva3JiNS9yZF9yZXEuYyAgICAgICAgICAgfCAxOCArKysrKysrKysr
KysrKysrLS0KIGxpYi9rcmI1L3ZlcnNpb24tc2NyaXB0Lm1hcCB8ICAxICsKIDIgZmlsZXMg
Y2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9saWIva3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IGZiY2VkMTQ0
ZTcyLi45OGRkMmRiZjI1NiAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysrIGIv
bGliL2tyYjUvcmRfcmVxLmMKQEAgLTQ4MSw2ICs0ODEsNyBAQCBzdHJ1Y3Qga3JiNV9yZF9y
ZXFfaW5fY3R4X2RhdGEgewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKICAgICBrcmI1X2tl
eWJsb2NrICprZXlibG9jazsKICAgICBrcmI1X2Jvb2xlYW4gY2hlY2tfcGFjOworICAgIGty
YjVfZmxhZ3MgdmVyaWZ5X2FwX3JlcV9mbGFnczsKIH07CiAKIHN0cnVjdCBrcmI1X3JkX3Jl
cV9vdXRfY3R4X2RhdGEgewpAQCAtNTM2LDYgKzUzNywxNSBAQCBrcmI1X3JkX3JlcV9pbl9z
ZXRfa2V5dGFiKGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQogCitL
UkI1X0xJQl9GVU5DVElPTiBrcmI1X2Vycm9yX2NvZGUgS1JCNV9MSUJfQ0FMTAora3JiNV9y
ZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFfZmxhZ3Moa3JiNV9jb250ZXh0IGNvbnRleHQs
CisJCQkgICAgIGtyYjVfcmRfcmVxX2luX2N0eCBpbiwKKwkJCSAgICAga3JiNV9mbGFncyBm
bGFncykKK3sKKyAgICBpbi0+dmVyaWZ5X2FwX3JlcV9mbGFncyA9IGZsYWdzOworICAgIHJl
dHVybiAwOworfQorCiAvKioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRv
IGNoZWNrIHRoZSBXaW5kb3dzIFBBQyBvciBub3QKICAqCkBAIC04MjEsNiArODMxLDcgQEAg
a3JiNV9yZF9yZXFfY3R4KGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIGtyYjVfcmRfcmVx
X291dF9jdHggbyA9IE5VTEw7CiAgICAga3JiNV9rZXl0YWIgaWQgPSBOVUxMLCBrZXl0YWIg
PSBOVUxMOwogICAgIGtyYjVfcHJpbmNpcGFsIHNlcnZpY2UgPSBOVUxMOworICAgIGtyYjVf
ZmxhZ3MgdmVyaWZ5X2FwX3JlcV9mbGFncyA9IDA7CiAKICAgICAqb3V0Y3R4ID0gTlVMTDsK
IApAQCAtODU4LDYgKzg2OSw5IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29u
dGV4dCwKICAgICBpZiAoaW5jdHggJiYgaW5jdHgtPmtleXRhYikKIAlpZCA9IGluY3R4LT5r
ZXl0YWI7CiAKKyAgICBpZiAoaW5jdHgpCisgICAgICAgIHZlcmlmeV9hcF9yZXFfZmxhZ3Mg
PSBpbmN0eC0+dmVyaWZ5X2FwX3JlcV9mbGFnczsKKwogICAgIGlmKCgqYXV0aF9jb250ZXh0
KS0+a2V5YmxvY2spewogCXJldCA9IGtyYjVfY29weV9rZXlibG9jayhjb250ZXh0LAogCQkJ
CSAoKmF1dGhfY29udGV4dCktPmtleWJsb2NrLApAQCAtOTE1LDcgKzkyOSw3IEBAIGtyYjVf
cmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICZhcF9yZXEsCiAJCQkJ
ICBzZXJ2ZXIsCiAJCQkJICBvLT5rZXlibG9jaywKLQkJCQkgIDAsCisJCQkJICB2ZXJpZnlf
YXBfcmVxX2ZsYWdzLAogCQkJCSAgJm8tPmFwX3JlcV9vcHRpb25zLAogCQkJCSAgJm8tPnRp
Y2tldCwKIAkJCQkgIEtSQjVfS1VfQVBfUkVRX0FVVEgpOwpAQCAtOTYzLDcgKzk3Nyw3IEBA
IGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICAgICAmYXBf
cmVxLAogCQkJCSAgICAgIHNlcnZlciwKIAkJCQkgICAgICAmZW50cnkua2V5YmxvY2ssCi0J
CQkJICAgICAgMCwKKwkJCQkgICAgICB2ZXJpZnlfYXBfcmVxX2ZsYWdzLAogCQkJCSAgICAg
ICZvLT5hcF9yZXFfb3B0aW9ucywKIAkJCQkgICAgICAmby0+dGlja2V0LAogCQkJCSAgICAg
IEtSQjVfS1VfQVBfUkVRX0FVVEgpOwpkaWZmIC0tZ2l0IGEvbGliL2tyYjUvdmVyc2lvbi1z
Y3JpcHQubWFwIGIvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IDAyM2Y5YmQ2
ODIwLi45YjIwMmMzNmVkZCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQu
bWFwCisrKyBiL2xpYi9rcmI1L3ZlcnNpb24tc2NyaXB0Lm1hcApAQCAtNTI5LDYgKzUyOSw3
IEBAIEhFSU1EQUxfS1JCNV8yLjAgewogCQlrcmI1X3JkX3JlcV9pbl9zZXRfa2V5YmxvY2s7
CiAJCWtyYjVfcmRfcmVxX2luX3NldF9rZXl0YWI7CiAJCWtyYjVfcmRfcmVxX2luX3NldF9w
YWNfY2hlY2s7CisJCWtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlfYXBfcmVxX2ZsYWdzOwog
CQlrcmI1X3JkX3JlcV9vdXRfY3R4X2ZyZWU7CiAJCWtyYjVfcmRfcmVxX291dF9nZXRfYXBf
cmVxX29wdGlvbnM7CiAJCWtyYjVfcmRfcmVxX291dF9nZXRfa2V5YmxvY2s7Ci0tIAoyLjE3
LjEKCgpGcm9tIGRkYmViOGE1M2ZjOWE4OTg5YmE5Njk0YzJmOGYxYjJjY2NlNjMyYTUgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBz
YW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6MTcgKzAyMDAKU3ViamVj
dDogW1BBVENIIDIvNl0gbGliL2tyYjU6IGFkZCBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJB
TlNJVEVEX0NIRUNLCgpJbiBhY3RpdmUgZGlyZWN0b3J5IGEgZG9tYWluIG1lbWJlciByZXBs
aWVzIG9uICh0cnVzdHMpIHRoZSBbS11EQ3MKb2YgdGhlIGRvbWFpbi4gSXQncyB0aGUgam9i
IG9mIHRoZSBbS11EQ3MgdG8gb25seSBnZW5lcmF0ZSB1c2VmdWwKdGlja2V0cyBhcyB0aGV5
IGtub3cgYWJvdXQgdGhlIHRydXN0IHRvcG9sb2d5LgoKQlVHOiBodHRwczovL2J1Z3ppbGxh
LnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZh
biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogbGliL2tyYjUva3JiNS5oICAg
fCAxICsKIGxpYi9rcmI1L3JkX3JlcS5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2tyYjUva3Ji
NS5oIGIvbGliL2tyYjUva3JiNS5oCmluZGV4IGVhMzIwNTJmMGE3Li40M2ZkZjk0NzMyMiAx
MDA2NDQKLS0tIGEvbGliL2tyYjUva3JiNS5oCisrKyBiL2xpYi9rcmI1L2tyYjUuaApAQCAt
NDQyLDYgKzQ0Miw3IEBAIHR5cGVkZWYgdW5pb24gewogLyogZmxhZ3MgZm9yIGtyYjVfdmVy
aWZ5X2FwX3JlcSAqLwogCiAjZGVmaW5lIEtSQjVfVkVSSUZZX0FQX1JFUV9JR05PUkVfSU5W
QUxJRAkoMSA8PCAwKQorI2RlZmluZSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVE
X0NIRUNLCSgxIDw8IDEpCiAKICNkZWZpbmUgS1JCNV9HQ19DQUNIRUQJCQkoMVUgPDwgMCkK
ICNkZWZpbmUgS1JCNV9HQ19VU0VSX1VTRVIJCSgxVSA8PCAxKQpkaWZmIC0tZ2l0IGEvbGli
L2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9yZF9yZXEuYwppbmRleCA5OGRkMmRiZjI1Ni4u
YTM5OTM4MjYxNDUgMTAwNjQ0Ci0tLSBhL2xpYi9rcmI1L3JkX3JlcS5jCisrKyBiL2xpYi9r
cmI1L3JkX3JlcS5jCkBAIC0yMjAsNyArMjIwLDggQEAga3JiNV9kZWNyeXB0X3RpY2tldChr
cmI1X2NvbnRleHQgY29udGV4dCwKIAkgICAgcmV0dXJuIEtSQjVLUkJfQVBfRVJSX1RLVF9F
WFBJUkVEOwogCX0KIAotCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZCkg
eworCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZAorCSAgICYmICEoZmxh
Z3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkgewogCSAgICBy
ZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJICAgIGlmKHJl
dCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwotLSAKMi4xNy4xCgoKRnJvbSA4YWJj
OGJlMzY2MjJjMTcyYWI4MmFiZWRkY2Q1MTcwNWYxZDFmNGQ0IE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRl
OiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzLzZd
IGxpYi9nc3NhcGkva3JiNTogYWRkIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19Y
CgpUaGlzIGFsbG93cyBLUkI1X0dDX05PX1RSQU5TSVRfQ0hFQ0sgKG9uIHRoZSBpbml0aWF0
b3IpIGFuZApLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLIChvbiB0aGUg
YWNjZXB0b3IpIHRvCmJlIGNvbnRyb2xsZWQgdmlhIHRoZSBnc3NhcGkgbGF5ZXIuCgpCVUc6
IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2ln
bmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBs
aWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggICAgICAgfCAgMyArKysKIGxpYi9nc3Nh
cGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyB8IDExICsrKysrKysrKystCiBsaWIvZ3Nz
YXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmggICAgICAgfCAgMSArCiBsaWIvZ3NzYXBpL2tyYjUv
aW5pdF9zZWNfY29udGV4dC5jICAgfCAxMiArKysrKysrKystLS0KIGxpYi9nc3NhcGkva3Ji
NS9zZXRfY3JlZF9vcHRpb24uYyAgICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwog
bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyAgICAgICAgICAgIHwgIDMgKysrCiBsaWIvZ3Nz
YXBpL3ZlcnNpb24tc2NyaXB0Lm1hcCAgICAgICAgfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQs
IDUxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2dz
c2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oIGIvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29p
ZC5oCmluZGV4IDMwZmZiZTRhZGIzLi4xYTYxOWNmZDE2NyAxMDA2NDQKLS0tIGEvbGliL2dz
c2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCisrKyBiL2xpYi9nc3NhcGkvZ3NzYXBpL2dzc2Fw
aV9vaWQuaApAQCAtOTYsNiArOTYsOSBAQCBleHRlcm4gR1NTQVBJX0xJQl9WQVJJQUJMRSBn
c3NfT0lEX2Rlc2MgX19nc3NfY19udGxtX2ZvcmNlX3YxX29pZF9kZXNjOwogZXh0ZXJuIEdT
U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub19jaV9m
bGFnc194X29pZF9kZXNjOwogI2RlZmluZSBHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gg
KCZfX2dzc19rcmI1X2NyZWRfbm9fY2lfZmxhZ3NfeF9vaWRfZGVzYykKIAorZXh0ZXJuIEdT
U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub190cmFu
c2l0X2NoZWNrX3hfb2lkX2Rlc2M7CisjZGVmaW5lIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJ
VF9DSEVDS19YICgmX19nc3Nfa3JiNV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVz
YykKKwogZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2ty
YjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVfSU1QT1JUX0NS
RURfWCAoJl9fZ3NzX2tyYjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYykKIApkaWZmIC0tZ2l0
IGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9r
cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IGQ0NjgwZTllOGZiLi40MjQ4MmM1MWYx
ZiAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisr
KyBiL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDEyLDEzICs0
MTIsMjIgQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91aW50MzIgKiBtaW5vcl9zdGF0
dXMsCiAJa3JiNV9yZF9yZXFfaW5fY3R4IGluID0gTlVMTDsKIAlrcmI1X3JkX3JlcV9vdXRf
Y3R4IG91dCA9IE5VTEw7CiAJa3JiNV9wcmluY2lwYWwgc2VydmVyID0gTlVMTDsKKwlrcmI1
X2ZsYWdzIHZlcmlmeV9hcF9yZXFfZmxhZ3MgPSAwOwogCi0JaWYgKGFjY2VwdG9yX2NyZWQp
CisJaWYgKGFjY2VwdG9yX2NyZWQpIHsKIAkgICAgc2VydmVyID0gYWNjZXB0b3JfY3JlZC0+
cHJpbmNpcGFsOwogCisJICAgIGlmIChhY2NlcHRvcl9jcmVkLT5jcmVkX2ZsYWdzICYgR1NT
X0NGX05PX1RSQU5TSVRfQ0hFQ0spIHsKKwkJdmVyaWZ5X2FwX3JlcV9mbGFncyB8PSBLUkI1
X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLOworCSAgICB9CisJfQorCiAJa3Jl
dCA9IGtyYjVfcmRfcmVxX2luX2N0eF9hbGxvYyhjb250ZXh0LCAmaW4pOwogCWlmIChrcmV0
ID09IDApCiAJICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiKGNvbnRleHQs
IGluLCBrZXl0YWIpOworCWlmIChrcmV0ID09IDApCisJICAgIGtyZXQgPSBrcmI1X3JkX3Jl
cV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhjb250ZXh0LCBpbiwKKwkJCQkJCQkgIHZl
cmlmeV9hcF9yZXFfZmxhZ3MpOwogCWlmIChrcmV0KSB7CiAJICAgIGlmIChpbikKIAkJa3Ji
NV9yZF9yZXFfaW5fY3R4X2ZyZWUoY29udGV4dCwgaW4pOwpkaWZmIC0tZ2l0IGEvbGliL2dz
c2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oIGIvbGliL2dzc2FwaS9rcmI1L2dzc2tyYjVfbG9j
bC5oCmluZGV4IDU1NWQwOTVkZTg4Li4wNzIyNjBiY2YxMyAxMDA2NDQKLS0tIGEvbGliL2dz
c2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oCisrKyBiL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1
X2xvY2wuaApAQCAtOTQsNiArOTQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIGludCBjcmVk
X2ZsYWdzOwogI2RlZmluZSBHU1NfQ0ZfREVTVFJPWV9DUkVEX09OX1JFTEVBU0UJMQogI2Rl
ZmluZSBHU1NfQ0ZfTk9fQ0lfRkxBR1MJCTIKKyNkZWZpbmUgR1NTX0NGX05PX1RSQU5TSVRf
Q0hFQ0sJCTQKICAgc3RydWN0IGtyYjVfa2V5dGFiX2RhdGEgKmtleXRhYjsKICAgdGltZV90
IGVuZHRpbWU7CiAgIGdzc19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9saWIv
Z3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9rcmI1L2luaXRf
c2VjX2NvbnRleHQuYwppbmRleCA0ZWY1YzljNzEyMy4uMDA1M2I3NjM4MWEgMTAwNjQ0Ci0t
LSBhL2xpYi9nc3NhcGkva3JiNS9pbml0X3NlY19jb250ZXh0LmMKKysrIGIvbGliL2dzc2Fw
aS9rcmI1L2luaXRfc2VjX2NvbnRleHQuYwpAQCAtMjA1LDYgKzIwNSw3IEBAIGdzc2tyYjVf
Z2V0X2NyZWRzKAogICAgICAgICBPTV91aW50MzIgKiBtaW5vcl9zdGF0dXMsCiAJa3JiNV9j
b250ZXh0IGNvbnRleHQsCiAJa3JiNV9jY2FjaGUgY2NhY2hlLAorCWtyYjVfZmxhZ3Mgb3B0
aW9ucywKIAlnc3NrcmI1X2N0eCBjdHgsCiAJZ3NzX2NvbnN0X25hbWVfdCB0YXJnZXRfbmFt
ZSwKIAlPTV91aW50MzIgdGltZV9yZXEsCkBAIC0yNDUsNyArMjQ2LDcgQEAgZ3Nza3JiNV9n
ZXRfY3JlZHMoCiAgICAgdGhpc19jcmVkLnNlc3Npb24ua2V5dHlwZSA9IEtFWVRZUEVfTlVM
TDsKIAogICAgIGtyZXQgPSBrcmI1X2dldF9jcmVkZW50aWFscyhjb250ZXh0LAotCQkJCTAs
CisJCQkJb3B0aW9ucywKIAkJCQljY2FjaGUsCiAJCQkJJnRoaXNfY3JlZCwKIAkJCQkmY3R4
LT5rY3JlZCk7CkBAIC0zOTMsNiArMzk0LDcgQEAgaW5pdF9hdXRoCiAgICAga3JiNV9lcnJv
cl9jb2RlIGtyZXQ7CiAgICAga3JiNV9kYXRhIGZ3ZF9kYXRhOwogICAgIE9NX3VpbnQzMiBs
aWZldGltZV9yZWM7CisgICAga3JiNV9mbGFncyBvcHRpb25zID0gMDsKIAogICAgIGtyYjVf
ZGF0YV96ZXJvKCZmd2RfZGF0YSk7CiAKQEAgLTQwOSw4ICs0MTEsMTIgQEAgaW5pdF9hdXRo
CiAJICAgIGdvdG8gZmFpbHVyZTsKIAl9CiAJY3R4LT5tb3JlX2ZsYWdzIHw9IENMT1NFX0ND
QUNIRTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogCWN0eC0+Y2NhY2hlID0gY3JlZC0+
Y2NhY2hlOworCWlmIChjcmVkLT5jcmVkX2ZsYWdzICYgR1NTX0NGX05PX1RSQU5TSVRfQ0hF
Q0spIHsKKwkgICAgb3B0aW9ucyB8PSBLUkI1X0dDX05PX1RSQU5TSVRfQ0hFQ0s7CisJfQor
ICAgIH0KIAogICAgIGtyZXQgPSBrcmI1X2NjX2dldF9wcmluY2lwYWwgKGNvbnRleHQsIGN0
eC0+Y2NhY2hlLCAmY3R4LT5zb3VyY2UpOwogICAgIGlmIChrcmV0KSB7CkBAIC00MjgsNyAr
NDM0LDcgQEAgaW5pdF9hdXRoCiAJa3JiNV9zZXRfZGVmYXVsdF9pbl90a3RfZXR5cGVzKGNv
bnRleHQsIGNyZWQtPmVuY3R5cGVzKTsKIAogICAgIHJldCA9IGdzc2tyYjVfZ2V0X2NyZWRz
KG1pbm9yX3N0YXR1cywgY29udGV4dCwgY3R4LT5jY2FjaGUsCi0JCQkgICAgY3R4LCBuYW1l
LCB0aW1lX3JlcSwgdGltZV9yZWMpOworCQkJICAgIG9wdGlvbnMsIGN0eCwgbmFtZSwgdGlt
ZV9yZXEsIHRpbWVfcmVjKTsKICAgICBpZiAocmV0KQogCWdvdG8gZmFpbHVyZTsKIApkaWZm
IC0tZ2l0IGEvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jIGIvbGliL2dzc2Fw
aS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCmluZGV4IDE0MTFmODY2NTYzLi5lNTk1NjhjOWJk
MCAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCisrKyBi
L2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwpAQCAtMjE3LDYgKzIxNywyNiBA
QCBub19jaV9mbGFncyhPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKIH0KIAogCitzdGF0aWMg
T01fdWludDMyCitub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAor
CQkga3JiNV9jb250ZXh0IGNvbnRleHQsCisJCSBnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRs
ZSwKKwkJIGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQg
Y3JlZDsKKworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9
PSBHU1NfQ19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJu
IEdTU19TX0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNy
ZWRfaGFuZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX05PX1RSQU5TSVRf
Q0hFQ0s7CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09N
UExFVEU7Cit9CisKIE9NX3VpbnQzMiBHU1NBUElfQ0FMTENPTlYKIF9nc3NrcmI1X3NldF9j
cmVkX29wdGlvbgogICAgICAgICAgICAoT01fdWludDMyICptaW5vcl9zdGF0dXMsCkBAIC0y
NDQsNiArMjY0LDEwIEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogICAgIH0KIAogCisg
ICAgaWYgKGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfTk9f
VFJBTlNJVF9DSEVDS19YKSkgeworCXJldHVybiBub190cmFuc2l0X2NoZWNrKG1pbm9yX3N0
YXR1cywgY29udGV4dCwgY3JlZF9oYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKICAgICAqbWlu
b3Jfc3RhdHVzID0gRUlOVkFMOwogICAgIHJldHVybiBHU1NfU19GQUlMVVJFOwogfQpkaWZm
IC0tZ2l0IGEvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyBiL2xpYi9nc3NhcGkvbWVjaC9n
c3Nfb2lkLmMKaW5kZXggNWI5YmQzNjIzNjAuLmU4OTczZDZmZGQzIDEwMDY0NAotLS0gYS9s
aWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jCisrKyBiL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lk
LmMKQEAgLTk0LDYgKzk0LDkgQEAgZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUg
X19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lkX2Rlc2MgPSB7IDYsIHIKIC8qIEdT
U19LUkI1X0lNUE9SVF9DUkVEX1ggLSAxLjIuNzUyLjQzLjEzLjMwICovCiBnc3NfT0lEX2Rl
c2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rl
c2MgPSB7IDYsIHJrX1VOQ09OU1QoIlx4MmFceDg1XHg3MFx4MmJceDBkXHgxZSIpIH07CiAK
Ky8qIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIC0gMS4yLjc1Mi40My4xMy4z
MSAqLworZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nfa3JiNV9jcmVk
X25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4
ODVceDcwXHgyYlx4MGRceDFmIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNIX05BTUUg
LSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFC
TEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05T
VCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEvbGliL2dz
c2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1h
cAppbmRleCAzMjY1OTcwMzQ0Zi4uY2U4NWI0MDJkYzggMTAwNjQ0Ci0tLSBhL2xpYi9nc3Nh
cGkvdmVyc2lvbi1zY3JpcHQubWFwCisrKyBiL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQu
bWFwCkBAIC0xNjEsNiArMTYxLDcgQEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19u
dGxtX3Nlc3Npb25fa2V5X29pZF9kZXNjOwogCQlfX2dzc19jX250bG1fZm9yY2VfdjFfb2lk
X2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9kZXNjOworCQlf
X2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwogCQlfX2dzc19r
cmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfc2FzbF9tZWNoX25h
bWVfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfbWVjaF9uYW1lX29pZF9kZXNjOwotLSAKMi4x
Ny4xCgoKRnJvbSA4M2ZkMTBhOGU5ODBhN2ZmYTkyOTlhYzg4MGJhOTkyNTg5ZjQ1MDQxIE1v
biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA
c2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEwOjE1OjA0ICswMDAwClN1Ympl
Y3Q6IFtQQVRDSCA0LzZdIGxpYi9rcmI1OiBsZXQga3JiNV9yZF9yZXFfY3R4KCkgZmFsbGJh
Y2sgb25seSBvbgogS1JCNUtSQl9BUF9FUlJfQkFEX0lOVEVHUklUWQoKVGhpcyBhdm9pZHMg
aGlkZGluZyBhIHJlYWwgZXJyb3IgbGlrZSBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtULgoK
V2Ugb25seSB3YW50IHRvIHJldHJ5IHdpdGggdGhlIG5leHQga2V5IGlmIHRoZSBkZWNyeXB0
aW9uCmZhaWxlZC4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA
c2FtYmEub3JnPgotLS0KIGxpYi9rcmI1L3JkX3JlcS5jIHwgNyArKysrKystCiAxIGZpbGUg
Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv
bGliL2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9yZF9yZXEuYwppbmRleCBhMzk5MzgyNjE0
NS4uZGQwMzUyNzkxY2IgMTAwNjQ0Ci0tLSBhL2xpYi9rcmI1L3JkX3JlcS5jCisrKyBiL2xp
Yi9rcmI1L3JkX3JlcS5jCkBAIC05ODIsMTAgKzk4MiwxNSBAQCBrcmI1X3JkX3JlcV9jdHgo
a3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICAgJm8tPmFwX3JlcV9vcHRpb25zLAog
CQkJCSAgICAgICZvLT50aWNrZXQsCiAJCQkJICAgICAgS1JCNV9LVV9BUF9SRVFfQVVUSCk7
Ci0JICAgIGlmIChyZXQpIHsKKwkgICAgaWYgKHJldCA9PSBLUkI1S1JCX0FQX0VSUl9CQURf
SU5URUdSSVRZKSB7CisJCS8qIGZhaWxlZCB0byBkZWNyeXB0LCB0cnkgdGhlIG5leHQga2V5
ICovCiAJCWtyYjVfa3RfZnJlZV9lbnRyeSAoY29udGV4dCwgJmVudHJ5KTsKIAkJY29udGlu
dWU7CiAJICAgIH0KKwkgICAgaWYgKHJldCkgeworCQlrcmI1X2t0X2ZyZWVfZW50cnkgKGNv
bnRleHQsICZlbnRyeSk7CisJCWJyZWFrOworCSAgICB9CiAKIAkgICAgLyoKIAkgICAgICog
Rm91bmQgYSBtYXRjaCwgc2F2ZSB0aGUga2V5YmxvY2sgZm9yIFBBQyBwcm9jZXNzaW5nLAot
LSAKMi4xNy4xCgoKRnJvbSA0YTdhZDI4MTQ4YjUzNzkxZWIzNjYwODc5MTY2ZDRhMzAyNDgx
YjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8
bWV0emVAc2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEwOjE1OjA0ICswMDAw
ClN1YmplY3Q6IFtQQVRDSCA1LzZdIGxpYi9rcmI1OiBhZGQga3JiNV9yZF9yZXFfaW5fc2V0
X2l0ZXJhdGVfa2V5dGFiKCkKCkEgY2FsbGVyIG1pZ2h0IG5vdCBrbm93IHRoZSBrdm5vIG1h
aW50YWluZWQgYnkgdGhlIEtEQy4KQW5kIG1vc3Qgb2Z0ZW4gdGhlcmUncyBuZWVkIHRvIGtu
b3cgaXQuCgpTbyB0aGlzIGZ1bmN0aW9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZvcmNlIHRo
ZSBrZXl0YWIKaXRlcmF0aW9uIGluIG9yZGVyIHRvIGdldCBhIGNvbnNpc3RlbnQgYmVoYXZp
b3IuCk90aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIGRpZmZlcmVudCBiZWhhdmlv
cgppZiB0aGUgZ3Vlc3NlZCBrdm5vIGluIHRoZSBrZXl0YWIgYWNjaWRlbnRhbGx5IG1hdGNo
ZXMKdGhlIGt2bm8gb2YgdGhlIHRpY2tldCBhbmQgd2UnbGwgZ2l2ZSB1cCBpZiB0aGUKa2V5
IGlzIG5vdCBhYmxlIHRvIGRlY3J5cHQgdGhlIHRpY2tldC4KCkJVRzogaHR0cHM6Ly9idWd6
aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBT
dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGxpYi9rcmI1L3JkX3Jl
cS5jICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2ty
YjUvdmVyc2lvbi1zY3JpcHQubWFwIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNl
cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGliL2tyYjUvcmRfcmVxLmMgYi9saWIva3JiNS9y
ZF9yZXEuYwppbmRleCBkZDAzNTI3OTFjYi4uNTQyNmRkNzAwNDAgMTAwNjQ0Ci0tLSBhL2xp
Yi9rcmI1L3JkX3JlcS5jCisrKyBiL2xpYi9rcmI1L3JkX3JlcS5jCkBAIC00ODAsNiArNDgw
LDcgQEAga3JiNV92ZXJpZnlfYXBfcmVxMihrcmI1X2NvbnRleHQgY29udGV4dCwKIAogc3Ry
dWN0IGtyYjVfcmRfcmVxX2luX2N0eF9kYXRhIHsKICAgICBrcmI1X2tleXRhYiBrZXl0YWI7
CisgICAga3JiNV9ib29sZWFuIGl0ZXJhdGVfa2V5dGFiOwogICAgIGtyYjVfa2V5YmxvY2sg
KmtleWJsb2NrOwogICAgIGtyYjVfYm9vbGVhbiBjaGVja19wYWM7CiAgICAga3JiNV9mbGFn
cyB2ZXJpZnlfYXBfcmVxX2ZsYWdzOwpAQCAtNTQ3LDYgKzU0OCwyNyBAQCBrcmI1X3JkX3Jl
cV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhrcmI1X2NvbnRleHQgY29udGV4dCwKICAg
ICByZXR1cm4gMDsKIH0KIAorLyoqCisgKiBTZXQgaWYga3JiNV9ycV9yZWQoKSBpcyBnb2lu
ZyB0byBpdGVyYXRlIHRoZSBrZXl0YWIgdG8gZmluZCBhIGtleQorICoKKyAqIEBwYXJhbSBj
b250ZXh0IEtlYmVyb3MgNSBjb250ZXh0LgorICogQHBhcmFtIGluIGtyYjVfcmRfcmVxX2lu
X2N0eCB0byBjaGVjayB0aGUgb3B0aW9uIG9uLgorICogQHBhcmFtIGZsYWcgZmxhZyB0byBz
ZWxlY3QgaWYgdGhlIGtleXRhYiBzaG91bGQgYmUgaXRlcmF0ZWQgKFRSVUUpIG9yIG5vdCAo
RkFMU0UpLgorICoKKyAqIEByZXR1cm4gS2VyYmVyb3MgNSBlcnJvciBjb2RlLCBzZWUga3Ji
NV9nZXRfZXJyb3JfbWVzc2FnZSgpLgorICoKKyAqIEBpbmdyb3VwIGtyYjVfYXV0aAorICov
CisKK0tSQjVfTElCX0ZVTkNUSU9OIGtyYjVfZXJyb3JfY29kZSBLUkI1X0xJQl9DQUxMCitr
cmI1X3JkX3JlcV9pbl9zZXRfaXRlcmF0ZV9rZXl0YWIoa3JiNV9jb250ZXh0IGNvbnRleHQs
CisJCQkJICBrcmI1X3JkX3JlcV9pbl9jdHggaW4sCisJCQkJICBrcmI1X2Jvb2xlYW4gZmxh
ZykKK3sKKyAgICBpbi0+aXRlcmF0ZV9rZXl0YWIgPSBmbGFnOworICAgIHJldHVybiAwOwor
fQorCiAvKioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGNoZWNrIHRo
ZSBXaW5kb3dzIFBBQyBvciBub3QKICAqCkBAIC04ODUsNiArOTA3LDExIEBAIGtyYjVfcmRf
cmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKIAkJCQkgJm8tPmtleWJsb2NrKTsKIAlp
ZiAocmV0KQogCSAgICBnb3RvIG91dDsKKyAgICB9IGVsc2UgaWYgKGlkICYmIGluY3R4ICYm
IGluY3R4LT5pdGVyYXRlX2tleXRhYikgeworCSAgICAvKgorCSAgICAgKiBGb3JjZSBpdGVy
YXRpbmcgb3ZlciB0aGUga2V5dGFiLgorCSAgICAgKi8KKwkgICAgby0+a2V5YmxvY2sgPSBO
VUxMOwogICAgIH0gZWxzZSB7CiAKIAlpZihpZCA9PSBOVUxMKSB7CmRpZmYgLS1naXQgYS9s
aWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5t
YXAKaW5kZXggOWIyMDJjMzZlZGQuLjVkMmRiMGMzNTg5IDEwMDY0NAotLS0gYS9saWIva3Ji
NS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFw
CkBAIC01MjYsNiArNTI2LDcgQEAgSEVJTURBTF9LUkI1XzIuMCB7CiAJCWtyYjVfcmRfcmVx
X2N0eDsKIAkJa3JiNV9yZF9yZXFfaW5fY3R4X2FsbG9jOwogCQlrcmI1X3JkX3JlcV9pbl9j
dHhfZnJlZTsKKwkJa3JiNV9yZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiOwogCQlrcmI1
X3JkX3JlcV9pbl9zZXRfa2V5YmxvY2s7CiAJCWtyYjVfcmRfcmVxX2luX3NldF9rZXl0YWI7
CiAJCWtyYjVfcmRfcmVxX2luX3NldF9wYWNfY2hlY2s7Ci0tIAoyLjE3LjEKCgpGcm9tIGVh
NWFiODYzYWI1MTIxZmE0NjI4YjcxYzg0MjJjOGI4NjAwZWI3OTggTW9uIFNlcCAxNyAwMDow
MDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRh
dGU6IFRodSwgMjIgQXVnIDIwMTkgMTA6MzA6MDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDYv
Nl0gbGliL2dzc2FwaS9rcmI1OiBhZGQKIEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRP
Ul9LRVlUQUJfWAoKVGhpcyBhbGxvd3Mga3JiNV9yZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5
dGFiKCkgdG8gYmUgdXNlZCB2aWEgdGhlCmdzc2FwaSBsYXllci4KCkJVRzogaHR0cHM6Ly9i
dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5
OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGxpYi9nc3NhcGkv
Z3NzYXBpL2dzc2FwaV9vaWQuaCAgICAgICB8ICAzICsrKwogbGliL2dzc2FwaS9rcmI1L2Fj
Y2VwdF9zZWNfY29udGV4dC5jIHwgIDcgKysrKysrKwogbGliL2dzc2FwaS9rcmI1L2dzc2ty
YjVfbG9jbC5oICAgICAgIHwgIDEgKwogbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlv
bi5jICAgIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwogbGliL2dzc2FwaS9tZWNoL2dz
c19vaWQuYyAgICAgICAgICAgIHwgIDMgKysrCiBsaWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0
Lm1hcCAgICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKykK
CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9saWIvZ3Nz
YXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKaW5kZXggMWE2MTljZmQxNjcuLmVjZmNkOGU1NTIw
IDEwMDY0NAotLS0gYS9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKKysrIGIvbGli
L2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCkBAIC05OSw2ICs5OSw5IEBAIGV4dGVybiBH
U1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dzc19rcmI1X2NyZWRfbm9fY2lf
ZmxhZ3NfeF9vaWRfZGVzYzsKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURf
ZGVzYyBfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwogI2Rl
ZmluZSBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCAoJl9fZ3NzX2tyYjVfY3Jl
ZF9ub190cmFuc2l0X2NoZWNrX3hfb2lkX2Rlc2MpCiAKK2V4dGVybiBHU1NBUElfTElCX1ZB
UklBQkxFIGdzc19PSURfZGVzYyBfX2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9r
ZXl0YWJfeF9vaWRfZGVzYzsKKyNkZWZpbmUgR1NTX0tSQjVfQ1JFRF9JVEVSQVRFX0FDQ0VQ
VE9SX0tFWVRBQl9YICgmX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVfYWNjZXB0b3Jfa2V5dGFi
X3hfb2lkX2Rlc2MpCisKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVz
YyBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAjZGVmaW5lIEdTU19LUkI1
X0lNUE9SVF9DUkVEX1ggKCZfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2MpCiAK
ZGlmZiAtLWdpdCBhL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyBiL2xp
Yi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwppbmRleCA0MjQ4MmM1MWYxZi4u
Mzc3ODY5MzQ4NTAgMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2Nv
bnRleHQuYworKysgYi9saWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKQEAg
LTQxMiwxMSArNDEyLDE2IEBAIGdzc2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICog
bWlub3Jfc3RhdHVzLAogCWtyYjVfcmRfcmVxX2luX2N0eCBpbiA9IE5VTEw7CiAJa3JiNV9y
ZF9yZXFfb3V0X2N0eCBvdXQgPSBOVUxMOwogCWtyYjVfcHJpbmNpcGFsIHNlcnZlciA9IE5V
TEw7CisJa3JiNV9ib29sZWFuIGl0ZXJhdGVfa2V5dGFiID0gRkFMU0U7CiAJa3JiNV9mbGFn
cyB2ZXJpZnlfYXBfcmVxX2ZsYWdzID0gMDsKIAogCWlmIChhY2NlcHRvcl9jcmVkKSB7CiAJ
ICAgIHNlcnZlciA9IGFjY2VwdG9yX2NyZWQtPnByaW5jaXBhbDsKIAorCSAgICBpZiAoYWNj
ZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRB
QikgeworCQlpdGVyYXRlX2tleXRhYiA9IFRSVUU7CisJICAgIH0KKwogCSAgICBpZiAoYWNj
ZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLKSB7CiAJ
CXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5TSVRF
RF9DSEVDSzsKIAkgICAgfQpAQCAtNDI1LDYgKzQzMCw4IEBAIGdzc2tyYjVfYWNjZXB0b3Jf
c3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCWtyZXQgPSBrcmI1X3JkX3JlcV9p
bl9jdHhfYWxsb2MoY29udGV4dCwgJmluKTsKIAlpZiAoa3JldCA9PSAwKQogCSAgICBrcmV0
ID0ga3JiNV9yZF9yZXFfaW5fc2V0X2tleXRhYihjb250ZXh0LCBpbiwga2V5dGFiKTsKKwlp
ZiAoa3JldCA9PSAwICYmIGl0ZXJhdGVfa2V5dGFiKQorCSAgICBrcmV0ID0ga3JiNV9yZF9y
ZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiKGNvbnRleHQsIGluLCBUUlVFKTsKIAlpZiAoa3Jl
dCA9PSAwKQogCSAgICBrcmV0ID0ga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFf
ZmxhZ3MoY29udGV4dCwgaW4sCiAJCQkJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzKTsKZGlm
ZiAtLWdpdCBhL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaCBiL2xpYi9nc3NhcGkv
a3JiNS9nc3NrcmI1X2xvY2wuaAppbmRleCAwNzIyNjBiY2YxMy4uOTI1MDFmYzQ5MDAgMTAw
NjQ0Ci0tLSBhL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaAorKysgYi9saWIvZ3Nz
YXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKQEAgLTk1LDYgKzk1LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogI2RlZmluZSBHU1NfQ0ZfREVTVFJPWV9DUkVEX09OX1JFTEVBU0UJMQogI2RlZmlu
ZSBHU1NfQ0ZfTk9fQ0lfRkxBR1MJCTIKICNkZWZpbmUgR1NTX0NGX05PX1RSQU5TSVRfQ0hF
Q0sJCTQKKyNkZWZpbmUgR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCCTgKICAgc3Ry
dWN0IGtyYjVfa2V5dGFiX2RhdGEgKmtleXRhYjsKICAgdGltZV90IGVuZHRpbWU7CiAgIGdz
c19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL2tyYjUvc2V0
X2NyZWRfb3B0aW9uLmMgYi9saWIvZ3NzYXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKaW5k
ZXggZTU5NTY4YzliZDAuLjlhZWMwMjAzNjcxIDEwMDY0NAotLS0gYS9saWIvZ3NzYXBpL2ty
YjUvc2V0X2NyZWRfb3B0aW9uLmMKKysrIGIvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29w
dGlvbi5jCkBAIC0yMTYsNiArMjE2LDI1IEBAIG5vX2NpX2ZsYWdzKE9NX3VpbnQzMiAqbWlu
b3Jfc3RhdHVzLAogCiB9CiAKK3N0YXRpYyBPTV91aW50MzIKK2l0ZXJhdGVfYWNjZXB0b3Jf
a2V5dGFiKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkJa3JiNV9jb250ZXh0IGNvbnRl
eHQsCisJCQlnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwKKwkJCWNvbnN0IGdzc19idWZm
ZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3JlZDsKKworICAgIGlmIChjcmVk
X2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBHU1NfQ19OT19DUkVERU5USUFM
KSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdTU19TX0ZBSUxVUkU7CisgICAg
fQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRfaGFuZGxlOworICAgIGNyZWQt
PmNyZWRfZmxhZ3MgfD0gR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCOworCisgICAg
Km1pbm9yX3N0YXR1cyA9IDA7CisgICAgcmV0dXJuIEdTU19TX0NPTVBMRVRFOworfQogCiBz
dGF0aWMgT01fdWludDMyCiBub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3Rh
dHVzLApAQCAtMjYzLDYgKzI4Miw5IEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogCXJl
dHVybiBub19jaV9mbGFncyhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGNyZWRfaGFuZGxlLCB2
YWx1ZSk7CiAgICAgfQogCisgICAgaWYgKGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3Qs
IEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWCkpIHsKKwlyZXR1cm4g
aXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWIobWlub3Jfc3RhdHVzLCBjb250ZXh0LCBjcmVkX2hh
bmRsZSwgdmFsdWUpOworICAgIH0KIAogICAgIGlmIChnc3Nfb2lkX2VxdWFsKGRlc2lyZWRf
b2JqZWN0LCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCkpIHsKIAlyZXR1cm4g
bm9fdHJhbnNpdF9jaGVjayhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGNyZWRfaGFuZGxlLCB2
YWx1ZSk7CmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jIGIvbGliL2dz
c2FwaS9tZWNoL2dzc19vaWQuYwppbmRleCBlODk3M2Q2ZmRkMy4uNGJkNTliNmQ5NzQgMTAw
NjQ0Ci0tLSBhL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lkLmMKKysrIGIvbGliL2dzc2FwaS9t
ZWNoL2dzc19vaWQuYwpAQCAtOTcsNiArOTcsOSBAQCBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJ
Ql9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2MgPSB7IDYsIHJr
X1VOQwogLyogR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1ggLSAxLjIuNzUyLjQz
LjEzLjMxICovCiBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1
X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjID0geyA2LCBya19VTkNPTlNUKCJc
eDJhXHg4NVx4NzBceDJiXHgwZFx4MWYiKSB9OwogCisvKiBHU1NfS1JCNV9DUkVEX0lURVJB
VEVfQUNDRVBUT1JfS0VZVEFCX1ggLSAxLjIuNzUyLjQzLjEzLjMyICovCitnc3NfT0lEX2Rl
c2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRv
cl9rZXl0YWJfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgy
Ylx4MGRceDIwIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNIX05BTUUgLSAxLjIuNzUy
LjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nf
Y19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4
ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEvbGliL2dzc2FwaS92ZXJz
aW9uLXNjcmlwdC5tYXAgYi9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1hcAppbmRleCBj
ZTg1YjQwMmRjOC4uYzdjZGE1YWRjYjEgMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdmVyc2lv
bi1zY3JpcHQubWFwCisrKyBiL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0x
NjAsNiArMTYwLDcgQEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19udGxtX3YyX29p
ZF9kZXNjOwogCQlfX2dzc19jX250bG1fc2Vzc2lvbl9rZXlfb2lkX2Rlc2M7CiAJCV9fZ3Nz
X2NfbnRsbV9mb3JjZV92MV9vaWRfZGVzYzsKKwkJX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVf
YWNjZXB0b3Jfa2V5dGFiX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9m
bGFnc194X29pZF9kZXNjOwogCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194
X29pZF9kZXNjOwogCQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7Ci0tIAoy
LjE3LjEKCg==
--------------DD547EFD1C077ADE310AA0E0
Content-Type: text/plain; charset=UTF-8;
	name="heimdal-no_transit_check-wip-tests-01.patches.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="heimdal-no_transit_check-wip-tests-01.patches.txt"

RnJvbSBjZWRlN2NjYjMyMmQ5OTc1MDEwY2Y2NWFhMDFiZDU0YmMwODAwNGVkIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu
b3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE1OjM4OjExICswMjAwClN1YmplY3Q6IFtQ
QVRDSCAxLzddIFRPRE86IGxpYi9nc3NhcGk6IG1haW50YWluIGEgZ2xvYmFsIGFjY2VwdG9y
X2NyZWQgaW4KIHRlc3RfY29udGV4dC5jCgotLS0KIGxpYi9nc3NhcGkvdGVzdF9jb250ZXh0
LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b24oLSkKCmRpZmYgLS1naXQgYS9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jIGIvbGliL2dz
c2FwaS90ZXN0X2NvbnRleHQuYwppbmRleCA3Y2JlNzNiOGI0Mi4uZmNlYmI3ZTdjNTcgMTAw
NjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0LmMKKysrIGIvbGliL2dzc2FwaS90
ZXN0X2NvbnRleHQuYwpAQCAtMTQyLDYgKzE0Miw4IEBAIG9pZF90b19zdHJpbmcoY29uc3Qg
Z3NzX09JRCBvaWQpCiAgICAgcmV0dXJuICJ1bmtub3duIG9pZCI7CiB9CiAKK3N0YXRpYyBn
c3NfY3JlZF9pZF90IGFjY2VwdG9yX2NyZWQgPSBHU1NfQ19OT19DUkVERU5USUFMOworCiBz
dGF0aWMgdm9pZAogbG9vcChnc3NfT0lEIG1lY2hvaWQsCiAgICAgIGdzc19PSUQgbmFtZW9p
ZCwgY29uc3QgY2hhciAqdGFyZ2V0LApAQCAtMjI0LDcgKzIyNiw3IEBAIGxvb3AoZ3NzX09J
RCBtZWNob2lkLAogCiAJbWFqX3N0YXQgPSBnc3NfYWNjZXB0X3NlY19jb250ZXh0KCZtaW5f
c3RhdCwKIAkJCQkJICBzY3R4LAotCQkJCQkgIEdTU19DX05PX0NSRURFTlRJQUwsCisJCQkJ
CSAgYWNjZXB0b3JfY3JlZCwKIAkJCQkJICAmb3V0cHV0X3Rva2VuLAogCQkJCQkgIEdTU19D
X05PX0NIQU5ORUxfQklORElOR1MsCiAJCQkJCSAgTlVMTCwKLS0gCjIuMTcuMQoKCkZyb20g
MWVhYjg4N2NkZjJlNjQ0MDU4NjFjMzdiMTZlMWZiMjJiMzRmYTc2MyBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4K
RGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNTozODoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg
Mi83XSBUT0RPOiBsaWIvZ3NzYXBpOiBtYWtlIHVzZSBvZiBnc3NfYWNxdWlyZV9jcmVkX2Zy
b20oKSBpbgogdGVzdF9jb250ZXh0LmMKCi0tLQogbGliL2dzc2FwaS90ZXN0X2NvbnRleHQu
YyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy
MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9nc3Nh
cGkvdGVzdF9jb250ZXh0LmMgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCmluZGV4IGZj
ZWJiN2U3YzU3Li5hYjY3OTcyZmMyNSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS90ZXN0X2Nv
bnRleHQuYworKysgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCkBAIC02MTksNiArNjE5
LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZ3NzX09JRF9zZXQgbWVj
aG9pZHMgPSBHU1NfQ19OT19PSURfU0VUOwogICAgIGdzc19rZXlfdmFsdWVfZWxlbWVudF9k
ZXNjIGNsaWVudF9jcmVkX2VsZW1lbnRzWzJdOwogICAgIGdzc19rZXlfdmFsdWVfc2V0X2Rl
c2MgY2xpZW50X2NyZWRfc3RvcmU7CisgICAgZ3NzX2tleV92YWx1ZV9lbGVtZW50X2Rlc2Mg
YWNjZXB0b3JfY3JlZF9lbGVtZW50c1sxXTsKKyAgICBnc3Nfa2V5X3ZhbHVlX3NldF9kZXNj
IGFjY2VwdG9yX2NyZWRfc3RvcmU7CiAKICAgICBzZXRwcm9nbmFtZShhcmd2WzBdKTsKIApA
QCAtNjk0LDE0ICs2OTYsMzAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAg
ICAgICAgICAgICAgICAgICAgIG9pZHMsIHNpemVvZihvaWRzKS9zaXplb2Yob2lkc1swXSks
IG1lY2hzX3N0cmluZyk7CiAgICAgfQogCisgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5jb3Vu
dCA9IDA7CisgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5lbGVtZW50cyA9IGFjY2VwdG9yX2Ny
ZWRfZWxlbWVudHM7CisKICAgICBpZiAoZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSkgewot
CS8qIFhYWCByZXBsYWNlIHRoaXMgd2l0aCBjcmVkIHN0b3JlLCBidXQgdGVzdCBzdWl0ZXMg
d2lsbCBuZWVkIHdvcmsgKi8KLQltYWpfc3RhdCA9IGdzc2tyYjVfcmVnaXN0ZXJfYWNjZXB0
b3JfaWRlbnRpdHkoZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSk7Ci0JaWYgKG1hal9zdGF0
KQotCSAgICBlcnJ4KDEsICJnc3NrcmI1X2FjY2VwdG9yX2lkZW50aXR5OiAlcyIsCi0JCSBn
c3NhcGlfZXJyKG1hal9zdGF0LCAwLCBHU1NfQ19OT19PSUQpKTsKKwlhY2NlcHRvcl9jcmVk
X3N0b3JlLmVsZW1lbnRzW2FjY2VwdG9yX2NyZWRfc3RvcmUuY291bnRdLmtleSA9ICJrZXl0
YWIiOworCWFjY2VwdG9yX2NyZWRfc3RvcmUuZWxlbWVudHNbYWNjZXB0b3JfY3JlZF9zdG9y
ZS5jb3VudF0udmFsdWUgPSBnc3NrcmI1X2FjY2VwdG9yX2lkZW50aXR5OworCisJYWNjZXB0
b3JfY3JlZF9zdG9yZS5jb3VudCsrOwogICAgIH0KIAorICAgIG1hal9zdGF0ID0gZ3NzX2Fj
cXVpcmVfY3JlZF9mcm9tKCZtaW5fc3RhdCwKKwkJCQkgICAgIE5VTEwsCisJCQkJICAgICBH
U1NfQ19JTkRFRklOSVRFLAorCQkJCSAgICAgbWVjaG9pZHMsCisJCQkJICAgICBHU1NfQ19J
TklUSUFURSwKKwkJCQkgICAgIGFjY2VwdG9yX2NyZWRfc3RvcmUuY291bnQgPyAmYWNjZXB0
b3JfY3JlZF9zdG9yZQorCQkJCQkJCSA6IEdTU19DX05PX0NSRURfU1RPUkUsCisJCQkJICAg
ICAmYWNjZXB0b3JfY3JlZCwKKwkJCQkgICAgIE5VTEwsCisJCQkJICAgICBOVUxMKTsKKyAg
ICBpZiAoR1NTX0VSUk9SKG1hal9zdGF0KSkKKwllcnJ4KDEsICJnc3NfYWNxdWlyZV9jcmVk
KGFjY2VwdG9yKTogJXMiLAorCSAgICAgZ3NzYXBpX2VycihtYWpfc3RhdCwgbWluX3N0YXQs
IEdTU19DX05PX09JRCkpOworCiAgICAgaWYgKGNsaWVudF9wYXNzd29yZCAmJiAoY2xpZW50
X2NjYWNoZSB8fCBjbGllbnRfa2V5dGFiKSkgewogCWVycngoMSwgInBhc3N3b3JkIG9wdGlv
biBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBjY2FjaGUgb3Iga2V5dGFiIG9wdGlvbiIpOwog
ICAgIH0KLS0gCjIuMTcuMQoKCkZyb20gNGVhMzNlNzIzNjA0NDY3MjI5NWFjMjc1ZmI5ODVk
NWE4MWYwOTQ1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHpt
YWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNTozODox
MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy83XSBUT0RPOiBsaWIvZ3NzYXBpOiBhZGQgLS1h
Y2NlcHRvci1uby10cmFuc2l0LWNoZWNrIG9wdGlvbgogdG8gdGVzdF9jb250ZXh0LmMKCi0t
LQogbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYyB8IDE1ICsrKysrKysrKysrKysrKwogMSBm
aWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWIvZ3NzYXBp
L3Rlc3RfY29udGV4dC5jIGIvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwppbmRleCBhYjY3
OTcyZmMyNS4uODkzNWUyNzM3OTggMTAwNjQ0Ci0tLSBhL2xpYi9nc3NhcGkvdGVzdF9jb250
ZXh0LmMKKysrIGIvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwpAQCAtNjAsNiArNjAsNyBA
QCBzdGF0aWMgaW50IGVpX2ZsYWcgPSAwOwogc3RhdGljIGNoYXIgKmNsaWVudF9jY2FjaGUg
PSBOVUxMOwogc3RhdGljIGNoYXIgKmNsaWVudF9rZXl0YWIgPSBOVUxMOwogc3RhdGljIGNo
YXIgKmdzc2tyYjVfYWNjZXB0b3JfaWRlbnRpdHkgPSBOVUxMOworc3RhdGljIGludCBhY2Nl
cHRvcl9ub190cmFuc2l0X2NoZWNrID0gMDsKIHN0YXRpYyBjaGFyICpzZXNzaW9uX2VuY3R5
cGVfc3RyaW5nID0gTlVMTDsKIHN0YXRpYyBpbnQgY2xpZW50X3RpbWVfb2Zmc2V0ID0gMDsK
IHN0YXRpYyBpbnQgc2VydmVyX3RpbWVfb2Zmc2V0ID0gMDsKQEAgLTU4Niw2ICs1ODcsOCBA
QCBzdGF0aWMgc3RydWN0IGdldGFyZ3MgYXJnc1tdID0gewogICAgICAic2VydmVyIHNob3Vs
ZCBnZXQgYSBjcmVkZW50aWFsIiwgTlVMTCB9LAogICAgIHsiZXhwb3J0LWltcG9ydC1jcmVk
IiwwLAlhcmdfZmxhZywJJmVpX2ZsYWcsICJ0ZXN0IGV4cG9ydC9pbXBvcnQgY3JlZCIsIE5V
TEwgfSwKICAgICB7Imdzc2tyYjUtYWNjZXB0b3ItaWRlbnRpdHkiLCAwLCBhcmdfc3RyaW5n
LCAmZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eSwgImtleXRhYiIsIE5VTEwgfSwKKyAgICB7
ImFjY2VwdG9yLW5vLXRyYW5zaXQtY2hlY2siLCAwLCBhcmdfZmxhZywgJmFjY2VwdG9yX25v
X3RyYW5zaXRfY2hlY2ssCisgICAgICJza2lwIHRyYW5zaXRlZCBjaGVja3MiLCBOVUxMIH0s
CiAgICAgeyJzZXNzaW9uLWVuY3R5cGUiLAkwLCBhcmdfc3RyaW5nLAkmc2Vzc2lvbl9lbmN0
eXBlX3N0cmluZywgImVuY3R5cGUiLCBOVUxMIH0sCiAgICAgeyJjbGllbnQtdGltZS1vZmZz
ZXQiLAkwLCBhcmdfaW50ZWdlciwJJmNsaWVudF90aW1lX29mZnNldCwgInRpbWUiLCBOVUxM
IH0sCiAgICAgeyJzZXJ2ZXItdGltZS1vZmZzZXQiLAkwLCBhcmdfaW50ZWdlciwJJnNlcnZl
cl90aW1lX29mZnNldCwgInRpbWUiLCBOVUxMIH0sCkBAIC03MjAsNiArNzIzLDE4IEBAIG1h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWVycngoMSwgImdzc19hY3F1aXJlX2NyZWQo
YWNjZXB0b3IpOiAlcyIsCiAJICAgICBnc3NhcGlfZXJyKG1hal9zdGF0LCBtaW5fc3RhdCwg
R1NTX0NfTk9fT0lEKSk7CiAKKyAgICBpZiAoYWNjZXB0b3Jfbm9fdHJhbnNpdF9jaGVjaykg
eworCWdzc19idWZmZXJfZGVzYyBlbXB0eV9idWZmZXIgPSBHU1NfQ19FTVBUWV9CVUZGRVI7
CisKKwltYWpfc3RhdCA9IGdzc19zZXRfY3JlZF9vcHRpb24oJm1pbl9zdGF0LAorCQkJCSAg
ICAgICAmYWNjZXB0b3JfY3JlZCwKKwkJCQkgICAgICAgKGdzc19PSUQpR1NTX0tSQjVfQ1JF
RF9OT19UUkFOU0lUX0NIRUNLX1gsCisJCQkJICAgICAgICZlbXB0eV9idWZmZXIpOworCWlm
IChHU1NfRVJST1IobWFqX3N0YXQpKQorCSAgICBlcnJ4KDEsICJnc3Nfc2V0X2NyZWRfb3B0
aW9uKEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YKTogJXMiLAorCQkgZ3NzYXBp
X2VycihtYWpfc3RhdCwgbWluX3N0YXQsIEdTU19DX05PX09JRCkpOworICAgIH0KKwogICAg
IGlmIChjbGllbnRfcGFzc3dvcmQgJiYgKGNsaWVudF9jY2FjaGUgfHwgY2xpZW50X2tleXRh
YikpIHsKIAllcnJ4KDEsICJwYXNzd29yZCBvcHRpb24gbXV0dWFsbHkgZXhjbHVzaXZlIHdp
dGggY2NhY2hlIG9yIGtleXRhYiBvcHRpb24iKTsKICAgICB9Ci0tIAoyLjE3LjEKCgpGcm9t
IGU4NWY2MThiODc5ZGFkNWM0YTRiZDBjOTVlOTM3OThlZGU3N2NkNjEgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+
CkRhdGU6IFR1ZSwgMjQgU2VwIDIwMTkgMDE6MzM6MDUgKzAyMDAKU3ViamVjdDogW1BBVENI
IDQvN10gUmV2ZXJ0ICJUT0RPOiBsaWIvZ3NzYXBpOiBhZGQgLS1hY2NlcHRvci1uby10cmFu
c2l0LWNoZWNrCiBvcHRpb24gdG8gdGVzdF9jb250ZXh0LmMiCgpUaGlzIHJldmVydHMgY29t
bWl0IDRlYTMzZTcyMzYwNDQ2NzIyOTVhYzI3NWZiOTg1ZDVhODFmMDk0NWIuCi0tLQogbGli
L2dzc2FwaS90ZXN0X2NvbnRleHQuYyB8IDE1IC0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9nc3NhcGkvdGVzdF9j
b250ZXh0LmMgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCmluZGV4IDg5MzVlMjczNzk4
Li5hYjY3OTcyZmMyNSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYwor
KysgYi9saWIvZ3NzYXBpL3Rlc3RfY29udGV4dC5jCkBAIC02MCw3ICs2MCw2IEBAIHN0YXRp
YyBpbnQgZWlfZmxhZyA9IDA7CiBzdGF0aWMgY2hhciAqY2xpZW50X2NjYWNoZSA9IE5VTEw7
CiBzdGF0aWMgY2hhciAqY2xpZW50X2tleXRhYiA9IE5VTEw7CiBzdGF0aWMgY2hhciAqZ3Nz
a3JiNV9hY2NlcHRvcl9pZGVudGl0eSA9IE5VTEw7Ci1zdGF0aWMgaW50IGFjY2VwdG9yX25v
X3RyYW5zaXRfY2hlY2sgPSAwOwogc3RhdGljIGNoYXIgKnNlc3Npb25fZW5jdHlwZV9zdHJp
bmcgPSBOVUxMOwogc3RhdGljIGludCBjbGllbnRfdGltZV9vZmZzZXQgPSAwOwogc3RhdGlj
IGludCBzZXJ2ZXJfdGltZV9vZmZzZXQgPSAwOwpAQCAtNTg3LDggKzU4Niw2IEBAIHN0YXRp
YyBzdHJ1Y3QgZ2V0YXJncyBhcmdzW10gPSB7CiAgICAgICJzZXJ2ZXIgc2hvdWxkIGdldCBh
IGNyZWRlbnRpYWwiLCBOVUxMIH0sCiAgICAgeyJleHBvcnQtaW1wb3J0LWNyZWQiLDAsCWFy
Z19mbGFnLAkmZWlfZmxhZywgInRlc3QgZXhwb3J0L2ltcG9ydCBjcmVkIiwgTlVMTCB9LAog
ICAgIHsiZ3Nza3JiNS1hY2NlcHRvci1pZGVudGl0eSIsIDAsIGFyZ19zdHJpbmcsICZnc3Nr
cmI1X2FjY2VwdG9yX2lkZW50aXR5LCAia2V5dGFiIiwgTlVMTCB9LAotICAgIHsiYWNjZXB0
b3Itbm8tdHJhbnNpdC1jaGVjayIsIDAsIGFyZ19mbGFnLCAmYWNjZXB0b3Jfbm9fdHJhbnNp
dF9jaGVjaywKLSAgICAgInNraXAgdHJhbnNpdGVkIGNoZWNrcyIsIE5VTEwgfSwKICAgICB7
InNlc3Npb24tZW5jdHlwZSIsCTAsIGFyZ19zdHJpbmcsCSZzZXNzaW9uX2VuY3R5cGVfc3Ry
aW5nLCAiZW5jdHlwZSIsIE5VTEwgfSwKICAgICB7ImNsaWVudC10aW1lLW9mZnNldCIsCTAs
IGFyZ19pbnRlZ2VyLAkmY2xpZW50X3RpbWVfb2Zmc2V0LCAidGltZSIsIE5VTEwgfSwKICAg
ICB7InNlcnZlci10aW1lLW9mZnNldCIsCTAsIGFyZ19pbnRlZ2VyLAkmc2VydmVyX3RpbWVf
b2Zmc2V0LCAidGltZSIsIE5VTEwgfSwKQEAgLTcyMywxOCArNzIwLDYgQEAgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpCiAJZXJyeCgxLCAiZ3NzX2FjcXVpcmVfY3JlZChhY2NlcHRv
cik6ICVzIiwKIAkgICAgIGdzc2FwaV9lcnIobWFqX3N0YXQsIG1pbl9zdGF0LCBHU1NfQ19O
T19PSUQpKTsKIAotICAgIGlmIChhY2NlcHRvcl9ub190cmFuc2l0X2NoZWNrKSB7Ci0JZ3Nz
X2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9IEdTU19DX0VNUFRZX0JVRkZFUjsKLQotCW1h
al9zdGF0ID0gZ3NzX3NldF9jcmVkX29wdGlvbigmbWluX3N0YXQsCi0JCQkJICAgICAgICZh
Y2NlcHRvcl9jcmVkLAotCQkJCSAgICAgICAoZ3NzX09JRClHU1NfS1JCNV9DUkVEX05PX1RS
QU5TSVRfQ0hFQ0tfWCwKLQkJCQkgICAgICAgJmVtcHR5X2J1ZmZlcik7Ci0JaWYgKEdTU19F
UlJPUihtYWpfc3RhdCkpCi0JICAgIGVycngoMSwgImdzc19zZXRfY3JlZF9vcHRpb24oR1NT
X0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gpOiAlcyIsCi0JCSBnc3NhcGlfZXJyKG1h
al9zdGF0LCBtaW5fc3RhdCwgR1NTX0NfTk9fT0lEKSk7Ci0gICAgfQotCiAgICAgaWYgKGNs
aWVudF9wYXNzd29yZCAmJiAoY2xpZW50X2NjYWNoZSB8fCBjbGllbnRfa2V5dGFiKSkgewog
CWVycngoMSwgInBhc3N3b3JkIG9wdGlvbiBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBjY2Fj
aGUgb3Iga2V5dGFiIG9wdGlvbiIpOwogICAgIH0KLS0gCjIuMTcuMQoKCkZyb20gODM1MTU5
ZDQwNWJjNjIwODVmZWY5ODYxNGFmNWRlOGM0YmM1YzFmNSBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTog
VHVlLCAyNCBTZXAgMjAxOSAwMTozMzowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS83XSBS
ZXZlcnQgIlRPRE86IGxpYi9nc3NhcGk6IG1ha2UgdXNlIG9mCiBnc3NfYWNxdWlyZV9jcmVk
X2Zyb20oKSBpbiB0ZXN0X2NvbnRleHQuYyIKClRoaXMgcmV2ZXJ0cyBjb21taXQgMWVhYjg4
N2NkZjJlNjQ0MDU4NjFjMzdiMTZlMWZiMjJiMzRmYTc2My4KLS0tCiBsaWIvZ3NzYXBpL3Rl
c3RfY29udGV4dC5jIHwgMjggKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl
IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvbGliL2dzc2FwaS90ZXN0X2NvbnRleHQuYyBiL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0
LmMKaW5kZXggYWI2Nzk3MmZjMjUuLmZjZWJiN2U3YzU3IDEwMDY0NAotLS0gYS9saWIvZ3Nz
YXBpL3Rlc3RfY29udGV4dC5jCisrKyBiL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0LmMKQEAg
LTYxOSw4ICs2MTksNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBnc3Nf
T0lEX3NldCBtZWNob2lkcyA9IEdTU19DX05PX09JRF9TRVQ7CiAgICAgZ3NzX2tleV92YWx1
ZV9lbGVtZW50X2Rlc2MgY2xpZW50X2NyZWRfZWxlbWVudHNbMl07CiAgICAgZ3NzX2tleV92
YWx1ZV9zZXRfZGVzYyBjbGllbnRfY3JlZF9zdG9yZTsKLSAgICBnc3Nfa2V5X3ZhbHVlX2Vs
ZW1lbnRfZGVzYyBhY2NlcHRvcl9jcmVkX2VsZW1lbnRzWzFdOwotICAgIGdzc19rZXlfdmFs
dWVfc2V0X2Rlc2MgYWNjZXB0b3JfY3JlZF9zdG9yZTsKIAogICAgIHNldHByb2duYW1lKGFy
Z3ZbMF0pOwogCkBAIC02OTYsMzAgKzY5NCwxNCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq
YXJndikKICAgICAgICAgICAgICAgICAgICAgICAgb2lkcywgc2l6ZW9mKG9pZHMpL3NpemVv
ZihvaWRzWzBdKSwgbWVjaHNfc3RyaW5nKTsKICAgICB9CiAKLSAgICBhY2NlcHRvcl9jcmVk
X3N0b3JlLmNvdW50ID0gMDsKLSAgICBhY2NlcHRvcl9jcmVkX3N0b3JlLmVsZW1lbnRzID0g
YWNjZXB0b3JfY3JlZF9lbGVtZW50czsKLQogICAgIGlmIChnc3NrcmI1X2FjY2VwdG9yX2lk
ZW50aXR5KSB7Ci0JYWNjZXB0b3JfY3JlZF9zdG9yZS5lbGVtZW50c1thY2NlcHRvcl9jcmVk
X3N0b3JlLmNvdW50XS5rZXkgPSAia2V5dGFiIjsKLQlhY2NlcHRvcl9jcmVkX3N0b3JlLmVs
ZW1lbnRzW2FjY2VwdG9yX2NyZWRfc3RvcmUuY291bnRdLnZhbHVlID0gZ3Nza3JiNV9hY2Nl
cHRvcl9pZGVudGl0eTsKLQotCWFjY2VwdG9yX2NyZWRfc3RvcmUuY291bnQrKzsKKwkvKiBY
WFggcmVwbGFjZSB0aGlzIHdpdGggY3JlZCBzdG9yZSwgYnV0IHRlc3Qgc3VpdGVzIHdpbGwg
bmVlZCB3b3JrICovCisJbWFqX3N0YXQgPSBnc3NrcmI1X3JlZ2lzdGVyX2FjY2VwdG9yX2lk
ZW50aXR5KGdzc2tyYjVfYWNjZXB0b3JfaWRlbnRpdHkpOworCWlmIChtYWpfc3RhdCkKKwkg
ICAgZXJyeCgxLCAiZ3Nza3JiNV9hY2NlcHRvcl9pZGVudGl0eTogJXMiLAorCQkgZ3NzYXBp
X2VycihtYWpfc3RhdCwgMCwgR1NTX0NfTk9fT0lEKSk7CiAgICAgfQogCi0gICAgbWFqX3N0
YXQgPSBnc3NfYWNxdWlyZV9jcmVkX2Zyb20oJm1pbl9zdGF0LAotCQkJCSAgICAgTlVMTCwK
LQkJCQkgICAgIEdTU19DX0lOREVGSU5JVEUsCi0JCQkJICAgICBtZWNob2lkcywKLQkJCQkg
ICAgIEdTU19DX0lOSVRJQVRFLAotCQkJCSAgICAgYWNjZXB0b3JfY3JlZF9zdG9yZS5jb3Vu
dCA/ICZhY2NlcHRvcl9jcmVkX3N0b3JlCi0JCQkJCQkJIDogR1NTX0NfTk9fQ1JFRF9TVE9S
RSwKLQkJCQkgICAgICZhY2NlcHRvcl9jcmVkLAotCQkJCSAgICAgTlVMTCwKLQkJCQkgICAg
IE5VTEwpOwotICAgIGlmIChHU1NfRVJST1IobWFqX3N0YXQpKQotCWVycngoMSwgImdzc19h
Y3F1aXJlX2NyZWQoYWNjZXB0b3IpOiAlcyIsCi0JICAgICBnc3NhcGlfZXJyKG1hal9zdGF0
LCBtaW5fc3RhdCwgR1NTX0NfTk9fT0lEKSk7Ci0KICAgICBpZiAoY2xpZW50X3Bhc3N3b3Jk
ICYmIChjbGllbnRfY2NhY2hlIHx8IGNsaWVudF9rZXl0YWIpKSB7CiAJZXJyeCgxLCAicGFz
c3dvcmQgb3B0aW9uIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGNjYWNoZSBvciBrZXl0YWIg
b3B0aW9uIik7CiAgICAgfQotLSAKMi4xNy4xCgoKRnJvbSA2NzMzMWUzNjhlNWI3YTJkZGRl
NzA5YTJlYTdiNWFkOThlNzBkMmM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT
dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBGcmksIDMwIEF1ZyAy
MDE5IDE5OjA3OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2LzddIERPRVMgTk9UIFdPUksK
Ci0tLQoga2RjL2tyYjV0Z3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBs
aWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgIDEgKwogbGliL2tyYjUv
cmRfcmVxLmMgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysr
KysrKysrLQogdGVzdHMva2RjL2NoZWNrLWtkYy5pbiAgICAgICAgICAgICAgIHwgICA5ICsr
KwogNCBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9rZGMva3JiNXRncy5jIGIva2RjL2tyYjV0Z3MuYwppbmRleCAyMzBm
NmEyYzlkYi4uZDU3MDg5ZDc3OTQgMTAwNjQ0Ci0tLSBhL2tkYy9rcmI1dGdzLmMKKysrIGIv
a2RjL2tyYjV0Z3MuYwpAQCAtNzQyLDcgKzc0Miw3IEBAIGZpeF90cmFuc2l0ZWRfZW5jb2Rp
bmcoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCSAgICAgIGNsaWVudF9yZWFsbSwgc2VydmVy
X3JlYWxtKTsKIAkgICAgZ290byBmcmVlX3JlYWxtczsKIAl9Ci0JZXQtPmZsYWdzLnRyYW5z
aXRlZF9wb2xpY3lfY2hlY2tlZCA9IDE7CisJZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lf
Y2hlY2tlZCA9IDA7CiAgICAgfQogICAgIGV0LT50cmFuc2l0ZWQudHJfdHlwZSA9IERPTUFJ
Tl9YNTAwX0NPTVBSRVNTOwogICAgIHJldCA9IGtyYjVfZG9tYWluX3g1MDBfZW5jb2RlKHJl
YWxtcywgbnVtX3JlYWxtcywgJmV0LT50cmFuc2l0ZWQuY29udGVudHMpOwpkaWZmIC0tZ2l0
IGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9r
cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IDM3Nzg2OTM0ODUwLi45ZDNjOTc4Y2E2
ZSAxMDA2NDQKLS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisr
KyBiL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDI3LDYgKzQy
Nyw3IEBAIGdzc2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVz
LAogCSAgICB9CiAJfQogCisJCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllf
QVBfUkVRX05PX1RSQU5TSVRFRF9DSEVDSzsKIAlrcmV0ID0ga3JiNV9yZF9yZXFfaW5fY3R4
X2FsbG9jKGNvbnRleHQsICZpbik7CiAJaWYgKGtyZXQgPT0gMCkKIAkgICAga3JldCA9IGty
YjVfcmRfcmVxX2luX3NldF9rZXl0YWIoY29udGV4dCwgaW4sIGtleXRhYik7CmRpZmYgLS1n
aXQgYS9saWIva3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IDU0MjZk
ZDcwMDQwLi5kYzQyMjk2YjM5NCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysr
IGIvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTE2Nyw2ICsxNjcsOTAgQEAgY2hlY2tfdHJhbnNp
dGVkKGtyYjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFy
dCAqZW5jKQogICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBrcmI1X2Vycm9yX2NvZGUK
K2tyYjVfY2hlY2tfdHJhbnNpdGVkMihrcmI1X2NvbnRleHQgY29udGV4dCwKKwkJICAgICBr
cmI1X2NvbnN0X3JlYWxtIGNsaWVudF9yZWFsbSwKKwkJICAgICBrcmI1X2NvbnN0X3JlYWxt
IHNlcnZlcl9yZWFsbSwKKwkJICAgICBrcmI1X3JlYWxtICpyZWFsbXMsCisJCSAgICAgdW5z
aWduZWQgaW50IG51bV9yZWFsbXMsCisJCSAgICAgaW50ICpiYWRfcmVhbG0pCit7CisgICAg
a3JiNV9lcnJvcl9jb2RlIHJldCA9IDA7CisgICAgY2hhciAqKmNhcGF0aCA9IE5VTEw7Cisg
ICAgc2l6ZV90IG51bV9jYXBhdGggPSAwOworICAgIHNpemVfdCBpID0gMDsKKyAgICBzaXpl
X3QgaiA9IDA7CisKKwkgICAgLy9hYm9ydCgpOworCSAgICBzeXN0ZW0oIi91c3IvYmluL3h0
ZXJtICYiKTsKKwkgICAgc3lzdGVtKCIvYmluL3NsZWVwIDEyMzQ1Njc4OSIpOworCSAgICBr
cmI1X3NldF9lcnJvcl9tZXNzYWdlIChjb250ZXh0LCBLUkI1S1JCX0FQX0VSUl9JTExfQ1Jf
VEtULAorCQkJCSAgICBOXygibm8gdHJhbnNpdCBhbGxvd2VkIE1FVFpFIiwgIiIpKTsKKwkg
ICAgaWYgKGJhZF9yZWFsbSkKKwkJKmJhZF9yZWFsbSA9IDA7CisJICAgIHJldHVybiBLUkI1
S1JCX0FQX0VSUl9JTExfQ1JfVEtUOworICAgIC8qIEluIHRyYW5zaXQgY2hlY2tzIGhpZXJh
cmNoaWNhbCBjYXBhdGhzIGFyZSBvcHRpb25hbCAqLworICAgIHJldCA9IF9rcmI1X2ZpbmRf
Y2FwYXRoKGNvbnRleHQsIGNsaWVudF9yZWFsbSwgY2xpZW50X3JlYWxtLCBzZXJ2ZXJfcmVh
bG0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICZjYXBhdGgsICZudW1f
Y2FwYXRoKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgZm9y
IChpID0gMDsgaSA8IG51bV9yZWFsbXM7IGkrKykgeworCWZvciAoaiA9IDA7IGogPCBudW1f
Y2FwYXRoOyArK2opIHsKKwkgICAgaWYgKHN0cmNtcChyZWFsbXNbaV0sIGNhcGF0aFtqXSkg
PT0gMCkKKwkJYnJlYWs7CisJfQorCWlmIChqID09IG51bV9jYXBhdGgpIHsKKyAgICAgICAg
ICAgIF9rcmI1X2ZyZWVfY2FwYXRoKGNvbnRleHQsIGNhcGF0aCk7CisJICAgIGtyYjVfc2V0
X2Vycm9yX21lc3NhZ2UgKGNvbnRleHQsIEtSQjVLUkJfQVBfRVJSX0lMTF9DUl9US1QsCisJ
CQkJICAgIE5fKCJubyB0cmFuc2l0IGFsbG93ZWQgIgorCQkJCSAgICAgICAidGhyb3VnaCBy
ZWFsbSAlcyBmcm9tICVzIHRvICVzIiwgIiIpLAorCQkJCSAgICAgICByZWFsbXNbaV0sIGNs
aWVudF9yZWFsbSwgc2VydmVyX3JlYWxtKTsKKwkgICAgaWYgKGJhZF9yZWFsbSkKKwkJKmJh
ZF9yZWFsbSA9IGk7CisJICAgIHJldHVybiBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtUOwor
CX0KKyAgICB9CisKKyAgICBfa3JiNV9mcmVlX2NhcGF0aChjb250ZXh0LCBjYXBhdGgpOwor
ICAgIHJldHVybiAwOworfQorCitzdGF0aWMga3JiNV9lcnJvcl9jb2RlCitjaGVja190cmFu
c2l0ZWQyKGtyYjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0
UGFydCAqZW5jKQoreworICAgIGNoYXIgKipyZWFsbXM7CisgICAgdW5zaWduZWQgaW50IG51
bV9yZWFsbXMsIG47CisgICAga3JiNV9lcnJvcl9jb2RlIHJldDsKKworICAgIC8qCisgICAg
ICogV2luZG93cyAyMDAwIGFuZCAyMDAzIHVzZXMgdGhpcyBpbnNpZGUgdGhlaXIgVEdUIHNv
IGl0J3Mgbm9ybWFseQorICAgICAqIG5vdCBzZWVuIGJ5IG90aGVycywgaG93ZXZlciwgc2Ft
YmE0IGpvaW5lZCB3aXRoIGEgV2luZG93cyBBRCBhcworICAgICAqIGEgRG9tYWluIENvbnRy
b2xsZXIgZ2V0cyBleHBvc2VkIHRvIHRoaXMuCisgICAgICovCisgICAgaWYoZW5jLT50cmFu
c2l0ZWQudHJfdHlwZSA9PSAwICYmIGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9
PSAwKQorCXJldHVybiAwOworCisgICAgaWYoZW5jLT50cmFuc2l0ZWQudHJfdHlwZSAhPSBE
T01BSU5fWDUwMF9DT01QUkVTUykKKwlyZXR1cm4gS1JCNUtEQ19FUlJfVFJUWVBFX05PU1VQ
UDsKKworICAgIGlmKGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQorCXJl
dHVybiAwOworCisgICAgcmV0ID0ga3JiNV9kb21haW5feDUwMF9kZWNvZGUoY29udGV4dCwg
ZW5jLT50cmFuc2l0ZWQuY29udGVudHMsCisJCQkJICAmcmVhbG1zLCAmbnVtX3JlYWxtcywK
KwkJCQkgIGVuYy0+Y3JlYWxtLAorCQkJCSAgdGlja2V0LT5yZWFsbSk7CisgICAgaWYocmV0
KQorCXJldHVybiByZXQ7CisgICAgcmV0ID0ga3JiNV9jaGVja190cmFuc2l0ZWQyKGNvbnRl
eHQsIGVuYy0+Y3JlYWxtLAorCQkJICAgICAgIHRpY2tldC0+cmVhbG0sCisJCQkgICAgICAg
cmVhbG1zLCBudW1fcmVhbG1zLCBOVUxMKTsKKyAgICBmb3IgKG4gPSAwOyBuIDwgbnVtX3Jl
YWxtczsgbisrKQorCWZyZWUocmVhbG1zW25dKTsKKyAgICBmcmVlKHJlYWxtcyk7CisgICAg
cmV0dXJuIHJldDsKK30KIHN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKIGZpbmRfZXR5cGVsaXN0
KGtyYjVfY29udGV4dCBjb250ZXh0LAogCSAgICAgICBrcmI1X2F1dGhfY29udGV4dCBhdXRo
X2NvbnRleHQsCkBAIC0yMjAsMTMgKzMwNCwyNSBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGty
YjVfY29udGV4dCBjb250ZXh0LAogCSAgICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VY
UElSRUQ7CiAJfQogCi0JaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkCi0J
ICAgJiYgIShmbGFncyAmIEtSQjVfVkVSSUZZX0FQX1JFUV9OT19UUkFOU0lURURfQ0hFQ0sp
KSB7CisJaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7CisKKwkgICAg
aWYgKCEoZmxhZ3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkg
ewogCSAgICByZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJ
ICAgIGlmKHJldCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwogCQlyZXR1cm4gcmV0
OwogCSAgICB9CisJICAgIH0gZWxzZSB7CisJICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZDIo
Y29udGV4dCwgdGlja2V0LCAmdCk7CisJICAgIGlmKHJldCkgeworCQlmcmVlX0VuY1RpY2tl
dFBhcnQoJnQpOworCQlyZXR1cm4gcmV0OworCSAgICB9CisJICAgIC8vYWJvcnQoKTsKKwkg
ICAgfQorCisJfSBlbHNlIHsKKwkJLy9hYm9ydCgpOwogCX0KICAgICB9CiAKZGlmZiAtLWdp
dCBhL3Rlc3RzL2tkYy9jaGVjay1rZGMuaW4gYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCmlu
ZGV4IGJlZjkzN2Q3NDg0Li5lMThiNzU1NzYwNSAxMDA2NDQKLS0tIGEvdGVzdHMva2RjL2No
ZWNrLWtkYy5pbgorKysgYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCkBAIC05OSw2ICs5OSw4
IEBAIGtkZXN0cm95PSIke2tkZXN0cm95fSAtYyAkY2FjaGUgJHthZnNfbm9fdW5sb2d9Igog
a2ltcGVyc29uYXRlPSIke2tpbXBlcnNvbmF0ZX0gLWsgJHtrZXl0YWJ9IC0tY2NhY2hlPSR7
b2NhY2hlfSIKIHRlc3Rfc2V0X2t2bm8wPSIke3Rlc3Rfc2V0X2t2bm8wfSAtYyAkY2FjaGUi
CiAKK2NvbnRleHQ9IiR7VEVTVFNfRU5WSVJPTk1FTlR9IC4uLy4uL2xpYi9nc3NhcGkvdGVz
dF9jb250ZXh0IgorCiBybSAtZiAke2tleXRhYmZpbGV9CiBybSAtZiBjdXJyZW50LWRiKgog
cm0gLWYgb3V0LSoKQEAgLTQwMiw4ICs0MDQsMTUgQEAgZWNobyAiR2V0dGluZyB4LXJlYWxt
IHRpY2tldHMgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiAke2tnZXRjcmVkfSBmb29A
JHtSN30gfHwgeyBlYz0xIDsgZXZhbCAiJHt0ZXN0ZmFpbGVkfSI7IH0KIGVjaG8gIlNob3Vs
ZCBub3QgZ2V0IHgtcmVhbG0gdGlja2V0cyB3aXRoIGNhcGF0aHMgZm9yICRSIC0+ICRSOCIK
ICR7a2dldGNyZWR9IGZvb0Ake1I4fSAmJiB7IGVjPTEgOyBldmFsICIke3Rlc3RmYWlsZWR9
IjsgfQorCiske2tsaXN0fSAmJiB7IGV2YWwgIiR0ZXN0ZmFpbGVkIjsgfQorZWNobyAiVGVz
dGluZyB4LXJlYWxtIGNvbnRleHQgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiske2Nv
bnRleHR9IC0tbWVjaC10eXBlPWtyYjUgZm9vQCR7UjJ9IHx8IHsgZXZhbCAiJHRlc3RmYWls
ZWQiOyB9CisKICR7a2Rlc3Ryb3l9CiAKKyMgZ3NzX2FjcXVpcmVfY3JlZF93aXRoX3Bhc3N3
b3JkKCkgbXVzdCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMKKyR7a2xpc3R9ICYmIHsgZXZhbCAi
JHRlc3RmYWlsZWQiOyB9CiBlY2hvICJUZXN0aW5nIGNhcGF0aHMgbG9naWMgKHJldmVyc2Ug
b3JkZXIpIgogJHtraW5pdH0gLS1wYXNzd29yZC1maWxlPSR7b2JqZGlyfS9mb29wYXNzd29y
ZCBcCiAgICAgLWUgJHthZXNlbmN0eXBlfSAtZSAke2Flc2VuY3R5cGV9IFwKLS0gCjIuMTcu
MQoKCkZyb20gMzBkMzU3Y2RmZmQwMDNjNjM2ZDU1OGNiYWRmMTVlNDBjODQwODFiOCBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNh
bWJhLm9yZz4KRGF0ZTogVHVlLCAyNCBTZXAgMjAxOSAwMTozMzoxNSArMDIwMApTdWJqZWN0
OiBbUEFUQ0ggNy83XSBSZXZlcnQgIkRPRVMgTk9UIFdPUksiCgpUaGlzIHJldmVydHMgY29t
bWl0IDY3MzMxZTM2OGU1YjdhMmRkZGU3MDlhMmVhN2I1YWQ5OGU3MGQyYzUuCi0tLQoga2Rj
L2tyYjV0Z3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBsaWIvZ3NzYXBp
L2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgIDEgLQogbGliL2tyYjUvcmRfcmVxLmMg
ICAgICAgICAgICAgICAgICAgIHwgMTAwICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
dGVzdHMva2RjL2NoZWNrLWtkYy5pbiAgICAgICAgICAgICAgIHwgICA5IC0tLQogNCBmaWxl
cyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9rZGMva3JiNXRncy5jIGIva2RjL2tyYjV0Z3MuYwppbmRleCBkNTcwODlkNzc5NC4u
MjMwZjZhMmM5ZGIgMTAwNjQ0Ci0tLSBhL2tkYy9rcmI1dGdzLmMKKysrIGIva2RjL2tyYjV0
Z3MuYwpAQCAtNzQyLDcgKzc0Miw3IEBAIGZpeF90cmFuc2l0ZWRfZW5jb2Rpbmcoa3JiNV9j
b250ZXh0IGNvbnRleHQsCiAJCSAgICAgIGNsaWVudF9yZWFsbSwgc2VydmVyX3JlYWxtKTsK
IAkgICAgZ290byBmcmVlX3JlYWxtczsKIAl9Ci0JZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xp
Y3lfY2hlY2tlZCA9IDA7CisJZXQtPmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZCA9
IDE7CiAgICAgfQogICAgIGV0LT50cmFuc2l0ZWQudHJfdHlwZSA9IERPTUFJTl9YNTAwX0NP
TVBSRVNTOwogICAgIHJldCA9IGtyYjVfZG9tYWluX3g1MDBfZW5jb2RlKHJlYWxtcywgbnVt
X3JlYWxtcywgJmV0LT50cmFuc2l0ZWQuY29udGVudHMpOwpkaWZmIC0tZ2l0IGEvbGliL2dz
c2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvbGliL2dzc2FwaS9rcmI1L2FjY2Vw
dF9zZWNfY29udGV4dC5jCmluZGV4IDlkM2M5NzhjYTZlLi4zNzc4NjkzNDg1MCAxMDA2NDQK
LS0tIGEvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCisrKyBiL2xpYi9n
c3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtNDI3LDcgKzQyNyw2IEBAIGdz
c2tyYjVfYWNjZXB0b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCSAgICB9
CiAJfQogCi0JCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05P
X1RSQU5TSVRFRF9DSEVDSzsKIAlrcmV0ID0ga3JiNV9yZF9yZXFfaW5fY3R4X2FsbG9jKGNv
bnRleHQsICZpbik7CiAJaWYgKGtyZXQgPT0gMCkKIAkgICAga3JldCA9IGtyYjVfcmRfcmVx
X2luX3NldF9rZXl0YWIoY29udGV4dCwgaW4sIGtleXRhYik7CmRpZmYgLS1naXQgYS9saWIv
a3JiNS9yZF9yZXEuYyBiL2xpYi9rcmI1L3JkX3JlcS5jCmluZGV4IGRjNDIyOTZiMzk0Li41
NDI2ZGQ3MDA0MCAxMDA2NDQKLS0tIGEvbGliL2tyYjUvcmRfcmVxLmMKKysrIGIvbGliL2ty
YjUvcmRfcmVxLmMKQEAgLTE2Nyw5MCArMTY3LDYgQEAgY2hlY2tfdHJhbnNpdGVkKGtyYjVf
Y29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFydCAqZW5jKQog
ICAgIHJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKLWtyYjVfY2hl
Y2tfdHJhbnNpdGVkMihrcmI1X2NvbnRleHQgY29udGV4dCwKLQkJICAgICBrcmI1X2NvbnN0
X3JlYWxtIGNsaWVudF9yZWFsbSwKLQkJICAgICBrcmI1X2NvbnN0X3JlYWxtIHNlcnZlcl9y
ZWFsbSwKLQkJICAgICBrcmI1X3JlYWxtICpyZWFsbXMsCi0JCSAgICAgdW5zaWduZWQgaW50
IG51bV9yZWFsbXMsCi0JCSAgICAgaW50ICpiYWRfcmVhbG0pCi17Ci0gICAga3JiNV9lcnJv
cl9jb2RlIHJldCA9IDA7Ci0gICAgY2hhciAqKmNhcGF0aCA9IE5VTEw7Ci0gICAgc2l6ZV90
IG51bV9jYXBhdGggPSAwOwotICAgIHNpemVfdCBpID0gMDsKLSAgICBzaXplX3QgaiA9IDA7
Ci0KLQkgICAgLy9hYm9ydCgpOwotCSAgICBzeXN0ZW0oIi91c3IvYmluL3h0ZXJtICYiKTsK
LQkgICAgc3lzdGVtKCIvYmluL3NsZWVwIDEyMzQ1Njc4OSIpOwotCSAgICBrcmI1X3NldF9l
cnJvcl9tZXNzYWdlIChjb250ZXh0LCBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtULAotCQkJ
CSAgICBOXygibm8gdHJhbnNpdCBhbGxvd2VkIE1FVFpFIiwgIiIpKTsKLQkgICAgaWYgKGJh
ZF9yZWFsbSkKLQkJKmJhZF9yZWFsbSA9IDA7Ci0JICAgIHJldHVybiBLUkI1S1JCX0FQX0VS
Ul9JTExfQ1JfVEtUOwotICAgIC8qIEluIHRyYW5zaXQgY2hlY2tzIGhpZXJhcmNoaWNhbCBj
YXBhdGhzIGFyZSBvcHRpb25hbCAqLwotICAgIHJldCA9IF9rcmI1X2ZpbmRfY2FwYXRoKGNv
bnRleHQsIGNsaWVudF9yZWFsbSwgY2xpZW50X3JlYWxtLCBzZXJ2ZXJfcmVhbG0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsICZjYXBhdGgsICZudW1fY2FwYXRoKTsK
LSAgICBpZiAocmV0KQotICAgICAgICByZXR1cm4gcmV0OwotCi0gICAgZm9yIChpID0gMDsg
aSA8IG51bV9yZWFsbXM7IGkrKykgewotCWZvciAoaiA9IDA7IGogPCBudW1fY2FwYXRoOyAr
K2opIHsKLQkgICAgaWYgKHN0cmNtcChyZWFsbXNbaV0sIGNhcGF0aFtqXSkgPT0gMCkKLQkJ
YnJlYWs7Ci0JfQotCWlmIChqID09IG51bV9jYXBhdGgpIHsKLSAgICAgICAgICAgIF9rcmI1
X2ZyZWVfY2FwYXRoKGNvbnRleHQsIGNhcGF0aCk7Ci0JICAgIGtyYjVfc2V0X2Vycm9yX21l
c3NhZ2UgKGNvbnRleHQsIEtSQjVLUkJfQVBfRVJSX0lMTF9DUl9US1QsCi0JCQkJICAgIE5f
KCJubyB0cmFuc2l0IGFsbG93ZWQgIgotCQkJCSAgICAgICAidGhyb3VnaCByZWFsbSAlcyBm
cm9tICVzIHRvICVzIiwgIiIpLAotCQkJCSAgICAgICByZWFsbXNbaV0sIGNsaWVudF9yZWFs
bSwgc2VydmVyX3JlYWxtKTsKLQkgICAgaWYgKGJhZF9yZWFsbSkKLQkJKmJhZF9yZWFsbSA9
IGk7Ci0JICAgIHJldHVybiBLUkI1S1JCX0FQX0VSUl9JTExfQ1JfVEtUOwotCX0KLSAgICB9
Ci0KLSAgICBfa3JiNV9mcmVlX2NhcGF0aChjb250ZXh0LCBjYXBhdGgpOwotICAgIHJldHVy
biAwOwotfQotCi1zdGF0aWMga3JiNV9lcnJvcl9jb2RlCi1jaGVja190cmFuc2l0ZWQyKGty
YjVfY29udGV4dCBjb250ZXh0LCBUaWNrZXQgKnRpY2tldCwgRW5jVGlja2V0UGFydCAqZW5j
KQotewotICAgIGNoYXIgKipyZWFsbXM7Ci0gICAgdW5zaWduZWQgaW50IG51bV9yZWFsbXMs
IG47Ci0gICAga3JiNV9lcnJvcl9jb2RlIHJldDsKLQotICAgIC8qCi0gICAgICogV2luZG93
cyAyMDAwIGFuZCAyMDAzIHVzZXMgdGhpcyBpbnNpZGUgdGhlaXIgVEdUIHNvIGl0J3Mgbm9y
bWFseQotICAgICAqIG5vdCBzZWVuIGJ5IG90aGVycywgaG93ZXZlciwgc2FtYmE0IGpvaW5l
ZCB3aXRoIGEgV2luZG93cyBBRCBhcwotICAgICAqIGEgRG9tYWluIENvbnRyb2xsZXIgZ2V0
cyBleHBvc2VkIHRvIHRoaXMuCi0gICAgICovCi0gICAgaWYoZW5jLT50cmFuc2l0ZWQudHJf
dHlwZSA9PSAwICYmIGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQotCXJl
dHVybiAwOwotCi0gICAgaWYoZW5jLT50cmFuc2l0ZWQudHJfdHlwZSAhPSBET01BSU5fWDUw
MF9DT01QUkVTUykKLQlyZXR1cm4gS1JCNUtEQ19FUlJfVFJUWVBFX05PU1VQUDsKLQotICAg
IGlmKGVuYy0+dHJhbnNpdGVkLmNvbnRlbnRzLmxlbmd0aCA9PSAwKQotCXJldHVybiAwOwot
Ci0gICAgcmV0ID0ga3JiNV9kb21haW5feDUwMF9kZWNvZGUoY29udGV4dCwgZW5jLT50cmFu
c2l0ZWQuY29udGVudHMsCi0JCQkJICAmcmVhbG1zLCAmbnVtX3JlYWxtcywKLQkJCQkgIGVu
Yy0+Y3JlYWxtLAotCQkJCSAgdGlja2V0LT5yZWFsbSk7Ci0gICAgaWYocmV0KQotCXJldHVy
biByZXQ7Ci0gICAgcmV0ID0ga3JiNV9jaGVja190cmFuc2l0ZWQyKGNvbnRleHQsIGVuYy0+
Y3JlYWxtLAotCQkJICAgICAgIHRpY2tldC0+cmVhbG0sCi0JCQkgICAgICAgcmVhbG1zLCBu
dW1fcmVhbG1zLCBOVUxMKTsKLSAgICBmb3IgKG4gPSAwOyBuIDwgbnVtX3JlYWxtczsgbisr
KQotCWZyZWUocmVhbG1zW25dKTsKLSAgICBmcmVlKHJlYWxtcyk7Ci0gICAgcmV0dXJuIHJl
dDsKLX0KIHN0YXRpYyBrcmI1X2Vycm9yX2NvZGUKIGZpbmRfZXR5cGVsaXN0KGtyYjVfY29u
dGV4dCBjb250ZXh0LAogCSAgICAgICBrcmI1X2F1dGhfY29udGV4dCBhdXRoX2NvbnRleHQs
CkBAIC0zMDQsMjUgKzIyMCwxMyBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGtyYjVfY29udGV4
dCBjb250ZXh0LAogCSAgICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VYUElSRUQ7CiAJ
fQogCi0JaWYoIXQuZmxhZ3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7Ci0KLQkgICAg
aWYgKCEoZmxhZ3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkg
eworCWlmKCF0LmZsYWdzLnRyYW5zaXRlZF9wb2xpY3lfY2hlY2tlZAorCSAgICYmICEoZmxh
Z3MgJiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLKSkgewogCSAgICBy
ZXQgPSBjaGVja190cmFuc2l0ZWQoY29udGV4dCwgdGlja2V0LCAmdCk7CiAJICAgIGlmKHJl
dCkgewogCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQpOwogCQlyZXR1cm4gcmV0OwogCSAgICB9
Ci0JICAgIH0gZWxzZSB7Ci0JICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZDIoY29udGV4dCwg
dGlja2V0LCAmdCk7Ci0JICAgIGlmKHJldCkgewotCQlmcmVlX0VuY1RpY2tldFBhcnQoJnQp
OwotCQlyZXR1cm4gcmV0OwotCSAgICB9Ci0JICAgIC8vYWJvcnQoKTsKLQkgICAgfQotCi0J
fSBlbHNlIHsKLQkJLy9hYm9ydCgpOwogCX0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rlc3Rz
L2tkYy9jaGVjay1rZGMuaW4gYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCmluZGV4IGUxOGI3
NTU3NjA1Li5iZWY5MzdkNzQ4NCAxMDA2NDQKLS0tIGEvdGVzdHMva2RjL2NoZWNrLWtkYy5p
bgorKysgYi90ZXN0cy9rZGMvY2hlY2sta2RjLmluCkBAIC05OSw4ICs5OSw2IEBAIGtkZXN0
cm95PSIke2tkZXN0cm95fSAtYyAkY2FjaGUgJHthZnNfbm9fdW5sb2d9Igoga2ltcGVyc29u
YXRlPSIke2tpbXBlcnNvbmF0ZX0gLWsgJHtrZXl0YWJ9IC0tY2NhY2hlPSR7b2NhY2hlfSIK
IHRlc3Rfc2V0X2t2bm8wPSIke3Rlc3Rfc2V0X2t2bm8wfSAtYyAkY2FjaGUiCiAKLWNvbnRl
eHQ9IiR7VEVTVFNfRU5WSVJPTk1FTlR9IC4uLy4uL2xpYi9nc3NhcGkvdGVzdF9jb250ZXh0
IgotCiBybSAtZiAke2tleXRhYmZpbGV9CiBybSAtZiBjdXJyZW50LWRiKgogcm0gLWYgb3V0
LSoKQEAgLTQwNCwxNSArNDAyLDggQEAgZWNobyAiR2V0dGluZyB4LXJlYWxtIHRpY2tldHMg
d2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCiAke2tnZXRjcmVkfSBmb29AJHtSN30gfHwg
eyBlYz0xIDsgZXZhbCAiJHt0ZXN0ZmFpbGVkfSI7IH0KIGVjaG8gIlNob3VsZCBub3QgZ2V0
IHgtcmVhbG0gdGlja2V0cyB3aXRoIGNhcGF0aHMgZm9yICRSIC0+ICRSOCIKICR7a2dldGNy
ZWR9IGZvb0Ake1I4fSAmJiB7IGVjPTEgOyBldmFsICIke3Rlc3RmYWlsZWR9IjsgfQotCi0k
e2tsaXN0fSAmJiB7IGV2YWwgIiR0ZXN0ZmFpbGVkIjsgfQotZWNobyAiVGVzdGluZyB4LXJl
YWxtIGNvbnRleHQgd2l0aCBjYXBhdGhzIGZvciAkUiAtPiAkUjciCi0ke2NvbnRleHR9IC0t
bWVjaC10eXBlPWtyYjUgZm9vQCR7UjJ9IHx8IHsgZXZhbCAiJHRlc3RmYWlsZWQiOyB9Ci0K
ICR7a2Rlc3Ryb3l9CiAKLSMgZ3NzX2FjcXVpcmVfY3JlZF93aXRoX3Bhc3N3b3JkKCkgbXVz
dCBub3QgaGF2ZSBzaWRlLWVmZmVjdHMKLSR7a2xpc3R9ICYmIHsgZXZhbCAiJHRlc3RmYWls
ZWQiOyB9CiBlY2hvICJUZXN0aW5nIGNhcGF0aHMgbG9naWMgKHJldmVyc2Ugb3JkZXIpIgog
JHtraW5pdH0gLS1wYXNzd29yZC1maWxlPSR7b2JqZGlyfS9mb29wYXNzd29yZCBcCiAgICAg
LWUgJHthZXNlbmN0eXBlfSAtZSAke2Flc2VuY3R5cGV9IFwKLS0gCjIuMTcuMQoK
--------------DD547EFD1C077ADE310AA0E0
Content-Type: text/plain; charset=UTF-8;
	name="mit-krb5-no_transit_check-01.patches.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="mit-krb5-no_transit_check-01.patches.txt"

RnJvbSBiYmEzYjAyYjMwNTAzY2FhNzBjOWUwMzg5MGE2ZTMwZDUxYzZlNjYwIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu
b3JnPgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjA0OjA2ICswMjAwClN1YmplY3Q6IFtQ
QVRDSCAxLzZdIGxpYi9rcmI1OiByZXdvcmsgW2tyYjVfXXJkX3JlcV9kZWNvZGVkX29wdCgp
IHRvIGJlIG1vcmUKIGZsZXhpYmxlCgpUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb250cm9s
IHRoZSBiZWhhdmlvciB3aXRob3V0IGFkZGluZwphIG5ldyB3cmFwcGVyIGZ1bmN0aW9uIGVh
Y2ggdGltZS4KCkknbGwgYWRkIGEgS1JCNV9SRF9SRVFfTk9fVFJBTlNJVF9DSEVDSyBmbGFn
IGFuZCBsZXQgZ3NzX2FjY2VwdF9zZWNfY29udGV4dCgpCnVzZSBrcmI1X3JkX3JlcV9kZWNv
ZGVkX29wdCgpIGluIHRoZSBmb2xsb3dpbmcgY29tbWl0cy4KCkJVRzogaHR0cHM6Ly9idWd6
aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBT
dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNyYy9pbmNsdWRlL2s1
LWludC5oICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysKIHNyYy9saWIva3JiNS9rcmIv
cmRfcmVxX2RlYy5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0K
IHNyYy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMgIHwgIDEgKwogc3JjL2xpYi9rcmI1XzMy
LmRlZiAgICAgICAgICAgfCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMo
KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2s1LWludC5o
IGIvc3JjL2luY2x1ZGUvazUtaW50LmgKaW5kZXggNzdkN2FiY2UxLi5kOWIyY2RiYWYgMTAw
NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2s1LWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2s1LWlu
dC5oCkBAIC0yMTIxLDYgKzIxMjEsMjEgQEAga3JiNV9lcnJvcl9jb2RlIEtSQjVfQ0FMTENP
TlYga3JiNV9nZXRfZGVmYXVsdF9jb25maWdfZmlsZXMoY2hhciAqKipmaWxlbmFtZXMpOwog
CiB2b2lkIEtSQjVfQ0FMTENPTlYga3JiNV9mcmVlX2NvbmZpZ19maWxlcyhjaGFyICoqZmls
ZW5hbWVzKTsKIAorI2RlZmluZSBLUkI1X1JEX1JFUV9DSEVDS19WQUxJRF9GTEFHICgxIDw8
IDApCisKKyNkZWZpbmUgX0tSQjVfUkRfUkVRX1ZBTElEX0ZMQUdTICggXAorCUtSQjVfUkRf
UkVRX0NIRUNLX1ZBTElEX0ZMQUcgfCBcCisJMCkKKwora3JiNV9lcnJvcl9jb2RlIGtyYjVf
cmRfcmVxX2RlY29kZWRfb3B0KGtyYjVfY29udGV4dCBjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2Nv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
a3JiNV9hcF9yZXEgKnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrcmI1X2NvbnN0X3ByaW5jaXBhbCBzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga3JiNV9rZXl0YWIga2V5dGFiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfZmxhZ3MgKmFwX3JlcV9vcHRpb25z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfdGlja2V0
ICoqdGlja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBvcHRfZmxhZ3MpOworCiBrcmI1X2Vycm9yX2NvZGUga3JiNV9yZF9yZXFf
ZGVjb2RlZChrcmI1X2NvbnRleHQsIGtyYjVfYXV0aF9jb250ZXh0ICosCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2FwX3JlcSAqLCBrcmI1X2Nv
bnN0X3ByaW5jaXBhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGty
YjVfa2V5dGFiLCBrcmI1X2ZsYWdzICosIGtyYjVfdGlja2V0ICoqKTsKZGlmZiAtLWdpdCBh
L3NyYy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jIGIvc3JjL2xpYi9rcmI1L2tyYi9yZF9y
ZXFfZGVjLmMKaW5kZXggNzJiYzhmZTk3Li5iYTRkNzQ1NzIgMTAwNjQ0Ci0tLSBhL3NyYy9s
aWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jCisrKyBiL3NyYy9saWIva3JiNS9rcmIvcmRfcmVx
X2RlYy5jCkBAIC00NDEsMTEgKzQ0MSwxNSBAQCBkZWNyeXB0X3RpY2tldChrcmI1X2NvbnRl
eHQgY29udGV4dCwgY29uc3Qga3JiNV9hcF9yZXEgKnJlcSwKICNlbmRpZiAvKiBMRUFOX0NM
SUVOVCAqLwogfQogCi1zdGF0aWMga3JiNV9lcnJvcl9jb2RlCi1yZF9yZXFfZGVjb2RlZF9v
cHQoa3JiNV9jb250ZXh0IGNvbnRleHQsIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2NvbnRl
eHQsCi0gICAgICAgICAgICAgICAgICAgY29uc3Qga3JiNV9hcF9yZXEgKnJlcSwga3JiNV9j
b25zdF9wcmluY2lwYWwgc2VydmVyLAotICAgICAgICAgICAgICAgICAgIGtyYjVfa2V5dGFi
IGtleXRhYiwga3JiNV9mbGFncyAqYXBfcmVxX29wdGlvbnMsCi0gICAgICAgICAgICAgICAg
ICAga3JiNV90aWNrZXQgKip0aWNrZXQsIGludCBjaGVja192YWxpZF9mbGFnKQora3JiNV9l
cnJvcl9jb2RlCitrcmI1X3JkX3JlcV9kZWNvZGVkX29wdChrcmI1X2NvbnRleHQgY29udGV4
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfYXV0aF9jb250ZXh0ICphdXRoX2Nv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrcmI1X2FwX3JlcSAqcmVx
LAorICAgICAgICAgICAgICAgICAgICAgICAga3JiNV9jb25zdF9wcmluY2lwYWwgc2VydmVy
LAorICAgICAgICAgICAgICAgICAgICAgICAga3JiNV9rZXl0YWIga2V5dGFiLAorICAgICAg
ICAgICAgICAgICAgICAgICAga3JiNV9mbGFncyAqYXBfcmVxX29wdGlvbnMsCisgICAgICAg
ICAgICAgICAgICAgICAgICBrcmI1X3RpY2tldCAqKnRpY2tldCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBvcHRfZmxhZ3MpCiB7CiAgICAga3JiNV9lcnJvcl9j
b2RlICAgICAgIHJldHZhbCA9IDA7CiAgICAga3JiNV9lbmN0eXBlICAgICAgICAgKmRlc2ly
ZWRfZXR5cGVzID0gTlVMTDsKQEAgLTQ1NCw2ICs0NTgsMTUgQEAgcmRfcmVxX2RlY29kZWRf
b3B0KGtyYjVfY29udGV4dCBjb250ZXh0LCBrcmI1X2F1dGhfY29udGV4dCAqYXV0aF9jb250
ZXh0LAogICAgIGtyYjVfZW5jdHlwZSAgICAgICAgICpwZXJtaXR0ZWRfZXR5cGVzID0gTlVM
TDsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgcGVybWl0dGVkX2V0eXBlc19sZW4gPSAw
OwogICAgIGtyYjVfa2V5YmxvY2sgICAgICAgICBkZWNyeXB0X2tleTsKKyAgICBpbnQgICAg
ICAgICAgICAgICAgICAgY2hlY2tfdmFsaWRfZmxhZyA9IDA7CisKKyAgICBpZiAob3B0X2Zs
YWdzICYgfl9LUkI1X1JEX1JFUV9WQUxJRF9GTEFHUykgeworICAgICAgICByZXR1cm4gRUlO
VkFMOworICAgIH0KKworICAgIGlmIChvcHRfZmxhZ3MgJiBLUkI1X1JEX1JFUV9DSEVDS19W
QUxJRF9GTEFHKSB7CisgICAgICAgIGNoZWNrX3ZhbGlkX2ZsYWcgPSAxOworICAgIH0KIAog
ICAgIGRlY3J5cHRfa2V5LmVuY3R5cGUgPSBFTkNUWVBFX05VTEw7CiAgICAgZGVjcnlwdF9r
ZXkuY29udGVudHMgPSBOVUxMOwpAQCAtNzYyLDEwICs3NzUsMTAgQEAga3JiNV9yZF9yZXFf
ZGVjb2RlZChrcmI1X2NvbnRleHQgY29udGV4dCwga3JiNV9hdXRoX2NvbnRleHQgKmF1dGhf
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAga3JiNV90aWNrZXQgKip0aWNrZXQpCiB7
CiAgICAga3JiNV9lcnJvcl9jb2RlIHJldHZhbDsKLSAgICByZXR2YWwgPSByZF9yZXFfZGVj
b2RlZF9vcHQoY29udGV4dCwgYXV0aF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXEsIHNlcnZlciwga2V5dGFiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcF9yZXFfb3B0aW9ucywgdGlja2V0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxKTsgLyogY2hlY2tfdmFsaWRfZmxhZyAqLworICAgIHJldHZhbCA9
IGtyYjVfcmRfcmVxX2RlY29kZWRfb3B0KGNvbnRleHQsIGF1dGhfY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEsIHNlcnZlciwga2V5dGFiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX3JlcV9vcHRpb25zLCB0
aWNrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1JCNV9SRF9S
RVFfQ0hFQ0tfVkFMSURfRkxBRyk7CiAgICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtNzc3
LDEwICs3OTAsMTAgQEAga3JiNV9yZF9yZXFfZGVjb2RlZF9hbnlmbGFnKGtyYjVfY29udGV4
dCBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtyYjVfZmxhZ3MgKmFw
X3JlcV9vcHRpb25zLCBrcmI1X3RpY2tldCAqKnRpY2tldCkKIHsKICAgICBrcmI1X2Vycm9y
X2NvZGUgcmV0dmFsOwotICAgIHJldHZhbCA9IHJkX3JlcV9kZWNvZGVkX29wdChjb250ZXh0
LCBhdXRoX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcSwg
c2VydmVyLCBrZXl0YWIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwX3Jl
cV9vcHRpb25zLCB0aWNrZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp
OyAvKiBkb24ndCBjaGVja192YWxpZF9mbGFnICovCisgICAgcmV0dmFsID0ga3JiNV9yZF9y
ZXFfZGVjb2RlZF9vcHQoY29udGV4dCwgYXV0aF9jb250ZXh0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcSwgc2VydmVyLCBrZXl0YWIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBfcmVxX29wdGlvbnMsIHRpY2tldCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsgLyogZG9uJ3QgY2hlY2tf
dmFsaWRfZmxhZyAqLwogICAgIHJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL3Ny
Yy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMgYi9zcmMvbGliL2tyYjUvbGlia3JiNS5leHBv
cnRzCmluZGV4IDU1ZTI2MzU0NS4uOTJiZDRhYzZlIDEwMDY0NAotLS0gYS9zcmMvbGliL2ty
YjUvbGlia3JiNS5leHBvcnRzCisrKyBiL3NyYy9saWIva3JiNS9saWJrcmI1LmV4cG9ydHMK
QEAgLTUxNiw2ICs1MTYsNyBAQCBrcmI1X3JkX3JlcF9kY2UKIGtyYjVfcmRfcmVxCiBrcmI1
X3JkX3JlcV9kZWNvZGVkCiBrcmI1X3JkX3JlcV9kZWNvZGVkX2FueWZsYWcKK2tyYjVfcmRf
cmVxX2RlY29kZWRfb3B0CiBrcmI1X3JkX3NhZmUKIGtyYjVfcmVhZF9tZXNzYWdlCiBrcmI1
X3JlYWRfcGFzc3dvcmQKZGlmZiAtLWdpdCBhL3NyYy9saWIva3JiNV8zMi5kZWYgYi9zcmMv
bGliL2tyYjVfMzIuZGVmCmluZGV4IGMzMjdjZWIxNS4uMmNlN2RkMGY5IDEwMDY0NAotLS0g
YS9zcmMvbGliL2tyYjVfMzIuZGVmCisrKyBiL3NyYy9saWIva3JiNV8zMi5kZWYKQEAgLTQ4
OSwzICs0ODksNCBAQCBFWFBPUlRTCiA7IG5ldyBpbiAxLjE4CiAJa3JiNWludF9jX2RlcHJl
Y2F0ZWRfZW5jdHlwZQkJCUA0NTAgOyBQUklWQVRFCiAJa3JiNV9wYWNfZ2V0X2NsaWVudF9p
bmZvCQkJQDQ1MQorCWtyYjVfcmRfcmVxX2RlY29kZWRfb3B0CQkJCUA0NTIgOyBQUklWQVRF
IEdTU0FQSQotLSAKMi4xNy4xCgoKRnJvbSBiNTNhZDAyMjBmZTUwNTIyYTNiMDZmMDVlYjll
ZDU0YWU4OTM1YzVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0
em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjEw
OjIzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzZdIGxpYi9rcmI1OiBhZGQgS1JCNV9SRF9S
RVFfTk9fVFJBTlNJVF9DSEVDSyB0bwoga3JiNV9dcmRfcmVxX2RlY29kZWRfb3B0KCkKClRo
aXMgd2lsbCBhbGxvdyBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCB0byBiZSBp
bXBsZW1lbnRlZCBpbgp0aGUgbmV4dCBjb21taXRzLgoKQlVHOiBodHRwczovL2J1Z3ppbGxh
LnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZh
biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc3JjL2luY2x1ZGUvazUtaW50
LmggICAgICAgICAgfCAyICsrCiBzcmMvbGliL2tyYjUva3JiL3JkX3JlcV9kZWMuYyB8IDIg
Ky0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk
aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvazUtaW50LmggYi9zcmMvaW5jbHVkZS9rNS1pbnQu
aAppbmRleCBkOWIyY2RiYWYuLmU5NjQ4OTkxNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv
azUtaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvazUtaW50LmgKQEAgLTIxMjIsOSArMjEyMiwx
MSBAQCBrcmI1X2Vycm9yX2NvZGUgS1JCNV9DQUxMQ09OViBrcmI1X2dldF9kZWZhdWx0X2Nv
bmZpZ19maWxlcyhjaGFyICoqKmZpbGVuYW1lcyk7CiB2b2lkIEtSQjVfQ0FMTENPTlYga3Ji
NV9mcmVlX2NvbmZpZ19maWxlcyhjaGFyICoqZmlsZW5hbWVzKTsKIAogI2RlZmluZSBLUkI1
X1JEX1JFUV9DSEVDS19WQUxJRF9GTEFHICgxIDw8IDApCisjZGVmaW5lIEtSQjVfUkRfUkVR
X05PX1RSQU5TSVRfQ0hFQ0sgKDEgPDwgMSkKIAogI2RlZmluZSBfS1JCNV9SRF9SRVFfVkFM
SURfRkxBR1MgKCBcCiAJS1JCNV9SRF9SRVFfQ0hFQ0tfVkFMSURfRkxBRyB8IFwKKwlLUkI1
X1JEX1JFUV9OT19UUkFOU0lUX0NIRUNLIHwgXAogCTApCiAKIGtyYjVfZXJyb3JfY29kZSBr
cmI1X3JkX3JlcV9kZWNvZGVkX29wdChrcmI1X2NvbnRleHQgY29udGV4dCwKZGlmZiAtLWdp
dCBhL3NyYy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jIGIvc3JjL2xpYi9rcmI1L2tyYi9y
ZF9yZXFfZGVjLmMKaW5kZXggYmE0ZDc0NTcyLi45ZjhhYjEwN2YgMTAwNjQ0Ci0tLSBhL3Ny
Yy9saWIva3JiNS9rcmIvcmRfcmVxX2RlYy5jCisrKyBiL3NyYy9saWIva3JiNS9rcmIvcmRf
cmVxX2RlYy5jCkBAIC01NzQsNyArNTc0LDcgQEAga3JiNV9yZF9yZXFfZGVjb2RlZF9vcHQo
a3JiNV9jb250ZXh0IGNvbnRleHQsCiAKICAgICAvKiBIaWVyYXJjaGljYWwgQ3Jvc3MtUmVh
bG0gKi8KIAotICAgIHsKKyAgICBpZiAoIShvcHRfZmxhZ3MgJiBLUkI1X1JEX1JFUV9OT19U
UkFOU0lUX0NIRUNLKSkgewogICAgICAgICBrcmI1X2RhdGEgICAgICAqIHJlYWxtOwogICAg
ICAgICBrcmI1X3RyYW5zaXRlZCAqIHRyYW5zOwogCi0tIAoyLjE3LjEKCgpGcm9tIDQzMDVj
N2RkNTJiOTI2NjdlYzUxYzg2ODY3NjU5YTE2ZjI4ZDc5YzIgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6
IE1vbiwgMjYgQXVnIDIwMTkgMTc6MTE6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvNl0g
bGliL2dzc2FwaS9rcmI1OiBsZXQga2dfYWNjZXB0X2tyYjUoKSB1c2UKIGtyYjVfcmRfcmVx
X2RlY29kZWRfb3B0KCkgZGlyZWN0bHkKClRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGltcGxl
bWVudCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCBpbgp0aGUgbmV4dCBjb21t
aXQuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9y
Zz4KLS0tCiBzcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIHwgNSAr
KystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5j
IGIvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwppbmRleCBjODIx
Y2M4MzAuLmYxY2IxOThmYyAxMDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2Nl
cHRfc2VjX2NvbnRleHQuYworKysgYi9zcmMvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNf
Y29udGV4dC5jCkBAIC00NjksNiArNDY5LDcgQEAga2dfYWNjZXB0X2tyYjUobWlub3Jfc3Rh
dHVzLCBjb250ZXh0X2hhbmRsZSwKICAgICBrcmI1X2F1dGhkYXRhX2NvbnRleHQgYWRfY29u
dGV4dCA9IE5VTEw7CiAgICAga3JiNV9wcmluY2lwYWwgYWNjcHJpbmMgPSBOVUxMOwogICAg
IGtyYjVfYXBfcmVxICpyZXF1ZXN0ID0gTlVMTDsKKyAgICB1bnNpZ25lZCBpbnQgb3B0X2Zs
YWdzID0gS1JCNV9SRF9SRVFfQ0hFQ0tfVkFMSURfRkxBRzsKIAogICAgIGNvZGUgPSBrcmI1
aW50X2FjY2Vzc29yICgma2FjY2VzcywgS1JCNUlOVF9BQ0NFU1NfVkVSU0lPTik7CiAgICAg
aWYgKGNvZGUpIHsKQEAgLTY0MSw4ICs2NDIsOCBAQCBrZ19hY2NlcHRfa3JiNShtaW5vcl9z
dGF0dXMsIGNvbnRleHRfaGFuZGxlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgY29kZSA9
IGtyYjVfcmRfcmVxX2RlY29kZWQoY29udGV4dCwgJmF1dGhfY29udGV4dCwgcmVxdWVzdCwg
YWNjcHJpbmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZC0+a2V5dGFi
LCAmYXBfcmVxX29wdGlvbnMsIE5VTEwpOworICAgIGNvZGUgPSBrcmI1X3JkX3JlcV9kZWNv
ZGVkX29wdChjb250ZXh0LCAmYXV0aF9jb250ZXh0LCByZXF1ZXN0LCBhY2NwcmluYywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlZC0+a2V5dGFiLCAmYXBfcmVx
X29wdGlvbnMsIE5VTEwsIG9wdF9mbGFncyk7CiAKICAgICBrcmI1X2ZyZWVfcHJpbmNpcGFs
KGNvbnRleHQsIGFjY3ByaW5jKTsKICAgICBpZiAoY29kZSkgewotLSAKMi4xNy4xCgoKRnJv
bSAwNjFmYTI5ZDFhZDU5YjdmNTU2ZTQ1ODZiY2I2MGM0ZGE3N2NjM2FlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3Jn
PgpEYXRlOiBNb24sIDI2IEF1ZyAyMDE5IDE3OjEyOjU2ICswMjAwClN1YmplY3Q6IFtQQVRD
SCA0LzZdIFRPRE86IGhlaW1hbCBtYXN0ZXIgZmlyc3QgbGliL2dzc2FwaS9rcmI1OiBpbXBs
ZW1lbnQKIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCgpUaGUgdHJ1c3QgdG9w
b2xvZ3kgb2YgYWN0aXZlIGRpcmVjdG9yeSBkb21haW5zIGlzIG9ubHkga25vd24KdG8gdGhl
IFtLXURDcy4gRG9tYWluIG1lbWJlcnMganVzdCByZWx5IG9uIHRoZWlyIHRydXN0IHRvCnRo
ZWlyIHByaW1hcnkgZG9tYWluLiBBcyBsb25nIGFzIHRoZSBLREMgZ2VuZXJhdGVkIGEgdmFs
aWQKc2VydmljZSB0aWNrZXQgaXQgc2hvdWxkIGJlIGFjY2VwdGVkLiBGdXJ0aGVyIHZlcmlm
aWNhdGlvbgppcyBkb25lIGJ5IGNoZWNraW5nIHRoZSBzaWduZWQgUEFDIGFuZCB1c2UgaXRz
IGNvbnRlbnQKdG8gY29uc3RydWN0IGFuIGF1dGhvcml6YXRpb24gdG9rZW4uCgpTYW1iYSB3
aWxsIHVzZSBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCBhbmQgcmVxdWlyZQph
IHZlcmlmaWVkIFBBQy4gVGhpcyBhdm9pZHMgaGF2aW5nIGEgY29ycmVjdGx5IGNvbmZpZ3Vy
ZWQKW2NhcGF0aHNdIHNlY3Rpb24gaW4gdGhlIGtyYjUuY29uZi4KCkJVRzogaHR0cHM6Ly9i
dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5
OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNyYy9saWIvZ3Nz
YXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMgfCAgNCArKysrCiBzcmMvbGliL2dzc2Fw
aS9rcmI1L2FjcXVpcmVfY3JlZC5jICAgICAgIHwgIDEgKwogc3JjL2xpYi9nc3NhcGkva3Ji
NS9nc3NhcGlQX2tyYjUuaCAgICAgICB8ICAxICsKIHNyYy9saWIvZ3NzYXBpL2tyYjUvZ3Nz
YXBpX2tyYjUuYyAgICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9s
aWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuaCAgICAgICAgfCAxMiArKysrKysrKysrCiBz
cmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzICAgIHwgIDEgKwogc3JjL2xp
Yi9nc3NhcGkzMi5kZWYgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiA3IGZpbGVzIGNo
YW5nZWQsIDQ5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9r
cmI1L2FjY2VwdF9zZWNfY29udGV4dC5jIGIvc3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRf
c2VjX2NvbnRleHQuYwppbmRleCBmMWNiMTk4ZmMuLjM2MjQ4ODRlYyAxMDA2NDQKLS0tIGEv
c3JjL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYworKysgYi9zcmMvbGli
L2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jCkBAIC02NDIsNiArNjQyLDEwIEBA
IGtnX2FjY2VwdF9rcmI1KG1pbm9yX3N0YXR1cywgY29udGV4dF9oYW5kbGUsCiAgICAgICAg
IH0KICAgICB9CiAKKyAgICBpZiAoY3JlZC0+bm9fdHJhbnNpdF9jaGVjaykgeworICAgICAg
ICBvcHRfZmxhZ3MgfD0gS1JCNV9SRF9SRVFfTk9fVFJBTlNJVF9DSEVDSzsKKyAgICB9CisK
ICAgICBjb2RlID0ga3JiNV9yZF9yZXFfZGVjb2RlZF9vcHQoY29udGV4dCwgJmF1dGhfY29u
dGV4dCwgcmVxdWVzdCwgYWNjcHJpbmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWQtPmtleXRhYiwgJmFwX3JlcV9vcHRpb25zLCBOVUxMLCBvcHRfZmxhZ3Mp
OwogCmRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2FjcXVpcmVfY3JlZC5jIGIv
c3JjL2xpYi9nc3NhcGkva3JiNS9hY3F1aXJlX2NyZWQuYwppbmRleCBhY2MxODY4ZjguLjEz
NmQwZDQ5YyAxMDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkva3JiNS9hY3F1aXJlX2NyZWQu
YworKysgYi9zcmMvbGliL2dzc2FwaS9rcmI1L2FjcXVpcmVfY3JlZC5jCkBAIC03NzksNiAr
Nzc5LDcgQEAgYWNxdWlyZV9jcmVkX2NvbnRleHQoa3JiNV9jb250ZXh0IGNvbnRleHQsIE9N
X3VpbnQzMiAqbWlub3Jfc3RhdHVzLAogI2VuZGlmIC8qIExFQU5fQ0xJRU5UICovCiAgICAg
Y3JlZC0+ZGVzdHJveV9jY2FjaGUgPSAwOwogICAgIGNyZWQtPnN1cHByZXNzX2NpX2ZsYWdz
ID0gMDsKKyAgICBjcmVkLT5ub190cmFuc2l0X2NoZWNrID0gMDsKICAgICBjcmVkLT5jY2Fj
aGUgPSBOVUxMOwogCiAgICAgY29kZSA9IGs1X211dGV4X2luaXQoJmNyZWQtPmxvY2spOwpk
aWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkva3JiNS9nc3NhcGlQX2tyYjUuaCBiL3NyYy9s
aWIvZ3NzYXBpL2tyYjUvZ3NzYXBpUF9rcmI1LmgKaW5kZXggMjY0NzQzNGJhLi4xMDgwN2Nl
N2QgMTAwNjQ0Ci0tLSBhL3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpUF9rcmI1LmgKKysr
IGIvc3JjL2xpYi9nc3NhcGkva3JiNS9nc3NhcGlQX2tyYjUuaApAQCAtMTc5LDYgKzE3OSw3
IEBAIHR5cGVkZWYgc3RydWN0IF9rcmI1X2dzc19jcmVkX2lkX3JlYyB7CiAgICAgdW5zaWdu
ZWQgaW50IGlha2VyYl9tZWNoIDogMTsKICAgICB1bnNpZ25lZCBpbnQgZGVzdHJveV9jY2Fj
aGUgOiAxOwogICAgIHVuc2lnbmVkIGludCBzdXBwcmVzc19jaV9mbGFncyA6IDE7CisgICAg
dW5zaWduZWQgaW50IG5vX3RyYW5zaXRfY2hlY2sgOiAxOwogCiAgICAgLyoga2V5dGFiIChh
Y2NlcHQpIGRhdGEgKi8KICAgICBrcmI1X2tleXRhYiBrZXl0YWI7CmRpZmYgLS1naXQgYS9z
cmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmMgYi9zcmMvbGliL2dzc2FwaS9rcmI1
L2dzc2FwaV9rcmI1LmMKaW5kZXggZjA5Y2RhMDA3Li5lOTEwNzI2MGMgMTAwNjQ0Ci0tLSBh
L3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuYworKysgYi9zcmMvbGliL2dzc2Fw
aS9rcmI1L2dzc2FwaV9rcmI1LmMKQEAgLTEyNCw4ICsxMjQsMTQgQEAKICAqIGV4Y2VwdCB0
aGUgbGFzdCBpbiBlYWNoIHZhbHVlJ3MgZW5jb2RpbmcuCiAgKi8KIAorLyogMS4yLjc1Mi40
My4xMy4yOSAqLwogI2RlZmluZSBOT19DSV9GTEFHU19YX09JRF9MRU5HVEggNgogI2RlZmlu
ZSBOT19DSV9GTEFHU19YX09JRCAiXHgyYVx4ODVceDcwXHgyYlx4MGRceDFkIgorCisvKiAx
LjIuNzUyLjQzLjEzLjMxICovCisjZGVmaW5lIE5PX1RSQU5TSVRfQ0hFQ0tfWF9PSURfTEVO
R1RIIDYKKyNkZWZpbmUgTk9fVFJBTlNJVF9DSEVDS19YX09JRCAiXHgyYVx4ODVceDcwXHgy
Ylx4MGRceDFmIgorCiAjZGVmaW5lIEdFVF9DUkVEX0lNUEVSU09OQVRPUl9PSURfTEVOR1RI
IDExCiAjZGVmaW5lIEdFVF9DUkVEX0lNUEVSU09OQVRPUl9PSUQgIlx4MmFceDg2XHg0OFx4
ODZceGY3XHgxMlx4MDFceDAyXHgwMlx4MDVceDBlIgogCkBAIC0xNTQsNiArMTYwLDcgQEAg
Y29uc3QgZ3NzX09JRF9kZXNjIGtyYjVfZ3NzX29pZF9hcnJheVtdID0gewogICAgIHtHRVRf
Q1JFRF9JTVBFUlNPTkFUT1JfT0lEX0xFTkdUSCwgR0VUX0NSRURfSU1QRVJTT05BVE9SX09J
RH0sCiAgICAgLyogR1NTX0tSQjVfTlRfRU5URVJQUklTRV9OQU1FICovCiAgICAgezEwLCAi
XDA1MlwyMDZcMTEwXDIwNlwzNjdcMDIyXDAwMVwwMDJcMDAyXDAwNiJ9LAorICAgIHtOT19U
UkFOU0lUX0NIRUNLX1hfT0lEX0xFTkdUSCwgTk9fVFJBTlNJVF9DSEVDS19YX09JRH0sCiAg
ICAgeyAwLCAwIH0KIH07CiAKQEAgLTE3Miw2ICsxNzksNyBAQCBjb25zdCBnc3NfT0lEIEdT
U19LUkI1X05UX1BSSU5DSVBBTF9OQU1FICAgICAgICA9ICZrZ19vaWRzWzVdOwogY29uc3Qg
Z3NzX09JRCBHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1ggICAgICAgPSAma2dfb2lkc1s3
XTsKIGNvbnN0IGdzc19PSUQgR1NTX0tSQjVfR0VUX0NSRURfSU1QRVJTT05BVE9SICAgID0g
JmtnX29pZHNbOF07CiBjb25zdCBnc3NfT0lEIEdTU19LUkI1X05UX0VOVEVSUFJJU0VfTkFN
RSAgICAgICA9ICZrZ19vaWRzWzldOworY29uc3QgZ3NzX09JRCBHU1NfS1JCNV9DUkVEX05P
X1RSQU5TSVRfQ0hFQ0tfWCAgPSAma2dfb2lkc1sxMF07CiAKIHN0YXRpYyBjb25zdCBnc3Nf
T0lEX3NldF9kZXNjIG9pZHNldHNbXSA9IHsKICAgICB7MSwgJmtnX29pZHNbMF19LCAvKiBS
RkMgT0lEICovCkBAIC01MDQsNiArNTEyLDIyIEBAIG5vX2NpX2ZsYWdzKE9NX3VpbnQzMiAq
bWlub3Jfc3RhdHVzLAogICAgICptaW5vcl9zdGF0dXMgPSAwOwogICAgIHJldHVybiBHU1Nf
U19DT01QTEVURTsKIH0KKworc3RhdGljIE9NX3VpbnQzMgorbm9fdHJhbnNpdF9jaGVjayhP
TV91aW50MzIgKm1pbm9yX3N0YXR1cywKKyAgICAgICAgICAgICAgICAgZ3NzX2NyZWRfaWRf
dCAqY3JlZF9oYW5kbGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGdzc19PSUQgZGVzaXJl
ZF9vaWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sK
KyAgICBrcmI1X2dzc19jcmVkX2lkX3QgY3JlZDsKKworICAgIGNyZWQgPSAoa3JiNV9nc3Nf
Y3JlZF9pZF90KSAqY3JlZF9oYW5kbGU7CisgICAgY3JlZC0+bm9fdHJhbnNpdF9jaGVjayA9
IDE7CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09NUExF
VEU7Cit9CisKIC8qCiAgKiBnc3NzcGlfc2V0X2NyZWRfb3B0aW9uKCkgbWV0aG9kcwogICov
CkBAIC01MzEsNiArNTU1LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgewogICAgICAgICB7Tk9fQ0lf
RkxBR1NfWF9PSURfTEVOR1RILCBOT19DSV9GTEFHU19YX09JRH0sCiAgICAgICAgIG5vX2Np
X2ZsYWdzCiAgICAgfSwKKyAgICB7CisgICAgICAgIHtOT19UUkFOU0lUX0NIRUNLX1hfT0lE
X0xFTkdUSCwgTk9fVFJBTlNJVF9DSEVDS19YX09JRH0sCisgICAgICAgIG5vX3RyYW5zaXRf
Y2hlY2sKKyAgICB9LAogfTsKIAogc3RhdGljIE9NX3VpbnQzMiBLUkI1X0NBTExDT05WCmRp
ZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmggYi9zcmMvbGli
L2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmgKaW5kZXggODRiNDE1OTIwLi41Y2YxZTU1OTgg
MTAwNjQ0Ci0tLSBhL3NyYy9saWIvZ3NzYXBpL2tyYjUvZ3NzYXBpX2tyYjUuaAorKysgYi9z
cmMvbGliL2dzc2FwaS9rcmI1L2dzc2FwaV9rcmI1LmgKQEAgLTEwMSw2ICsxMDEsMTggQEAg
R1NTX0RMTElNUCBleHRlcm4gY29uc3QgZ3NzX09JRF9kZXNjIGtyYjVfZ3NzX29pZF9hcnJh
eVtdOwogICovCiBHU1NfRExMSU1QIGV4dGVybiBjb25zdCBnc3NfT0lEIEdTU19LUkI1X0NS
RURfTk9fQ0lfRkxBR1NfWDsKIAorLyoKKyAqCisgKiBUaGlzIE9JRCBjYW4gYmUgdXNlZCB3
aXRoIGdzc19zZXRfY3JlZF9vcHRpb24oKSB0byBzdXBwcmVzcyB0aGUKKyAqIGNoZWNraW5n
IG9mIHRoZSB0cmFuc2l0ZWQgcmVhbG0gYXJyYXkuIFR5cGljYWxseSB0aGUgY2FsbGVyCisg
KiByZXF1aXJlcyBhIHZlcmlmaWVkIFBBQyBhbmQgZGVsZWdhdGUgdGhlIGNyb3NzLXJlYWxt
IHZlcmlmaWNhdGlvbgorICogdG8gdGhlIFtLXURDIG9mIGFuIGFjdGl2ZSBkaXJlY3Rvcnkg
ZG9tYWluLgorICoKKyAqIGlzbygxKSBtZW1iZXItYm9keSgyKSBTd2VkZW4oNzUyKSBTdG9j
a2hvbG0gVW5pdmVyc2l0eSg0MykgSGVpbWRhbCBHU1MtQVBJCisgKiBFeHRlbnNpb25zKDEz
KSBub190cmFuc2l0X2NoZWNrKDMxKQorICovCitHU1NfRExMSU1QIGV4dGVybiBjb25zdCBn
c3NfT0lEIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YOworCiAvKgogICogVGhp
cyBPSUQgY2FuIGJlIHVzZWQgd2l0aCBnc3NfaW5xdWlyZV9jcmVkX2J5X29pZCgwIHRvIHJl
dHJpZXZlIHRoZQogICogaW1wZXJzb25hdG9yIG5hbWUgKGlmIGFueSkuCmRpZmYgLS1naXQg
YS9zcmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzIGIvc3JjL2xpYi9nc3Nh
cGkvbGliZ3NzYXBpX2tyYjUuZXhwb3J0cwppbmRleCBjMjkyY2IxYWYuLmFmMTBiZWNlMSAx
MDA2NDQKLS0tIGEvc3JjL2xpYi9nc3NhcGkvbGliZ3NzYXBpX2tyYjUuZXhwb3J0cworKysg
Yi9zcmMvbGliL2dzc2FwaS9saWJnc3NhcGlfa3JiNS5leHBvcnRzCkBAIC0xMSw2ICsxMSw3
IEBAIEdTU19DX05UX1VTRVJfTkFNRQogR1NTX0tSQjVfTlRfUFJJTkNJUEFMX05BTUUKIEdT
U19LUkI1X05UX0VOVEVSUFJJU0VfTkFNRQogR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y
CitHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWAogR1NTX0tSQjVfR0VUX0NSRURf
SU1QRVJTT05BVE9SCiBHU1NfQ19NQV9NRUNIX0NPTkNSRVRFCiBHU1NfQ19NQV9NRUNIX1BT
RVVETwpkaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkzMi5kZWYgYi9zcmMvbGliL2dzc2Fw
aTMyLmRlZgppbmRleCBlNmIxNDc5YmIuLjY1ZWIzMmVjNiAxMDA2NDQKLS0tIGEvc3JjL2xp
Yi9nc3NhcGkzMi5kZWYKKysrIGIvc3JjL2xpYi9nc3NhcGkzMi5kZWYKQEAgLTE4NywzICsx
ODcsNSBAQCBFWFBPUlRTCiAJR1NTX0NfU0VDX0NPTlRFWFRfU0FTTF9TU0YJCQlAMTQ5CURB
VEEKIDsgQWRkZWQgaW4gMS4xNwogCUdTU19LUkI1X05UX0VOVEVSUFJJU0VfTkFNRQkJCUAx
NTAgCURBVEEKKzsgQWRkZWQgaW4gMS4xOAorCUdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9D
SEVDS19YCQlAMTUxCURBVEEKLS0gCjIuMTcuMQoKCkZyb20gZDVlOGU4YTcyNmU5NmM5ODM5
MmRjZGVmZThiZDFmN2NkOTI1YjMwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog
U3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogV2VkLCAyOCBBdWcg
MjAxOSAxNjowMTo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS82XSBzcmMvdGVzdHMvZ3Nz
YXBpOiBhZGQgb3B0aW9uYWwgJ25vX3RyYW5zaXRfY2hlY2snCiBhcmd1bWVudCB0byB0X2Fj
Y25hbWUuYwoKVGhpcyB3aWxsIGJlIHVzZWQgdG8gdGVzdCB0aGUgR1NTX0tSQjVfQ1JFRF9O
T19UUkFOU0lUX0NIRUNLX1ggY29kZQpwYXRoLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNh
bWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBN
ZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc3JjL3Rlc3RzL2dzc2FwaS90X2Fj
Y25hbWUuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg
MjAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVz
dHMvZ3NzYXBpL3RfYWNjbmFtZS5jIGIvc3JjL3Rlc3RzL2dzc2FwaS90X2FjY25hbWUuYwpp
bmRleCAzMGI1ZGI1NGYuLjFkZDFiNDAzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RzL2dzc2Fw
aS90X2FjY25hbWUuYworKysgYi9zcmMvdGVzdHMvZ3NzYXBpL3RfYWNjbmFtZS5jCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5o
PgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAiY29tbW9uLmgiCiAKQEAgLTM3
LDcgKzM4LDcgQEAKICAqIGNhbGwgaXMgdW5zdWNjZXNzZnVsLCBkaXNwbGF5cyBhbiBlcnJv
ciBtZXNzYWdlLiAgRXhpdHMgd2l0aCBzdGF0dXMgMCBpZiBhbGwKICAqIG9wZXJhdGlvbnMg
YXJlIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgbm90LgogICoKLSAqIFVzYWdlOiAuL3RfYWNjbmFt
ZSB0YXJnZXRuYW1lIFthY2NlcHRvcm5hbWVdCisgKiBVc2FnZTogLi90X2FjY25hbWUgdGFy
Z2V0bmFtZSBbYWNjZXB0b3JuYW1lXSBbbm9fdHJhbnNpdF9jaGVja10KICAqLwogCiBpbnQK
QEAgLTQ4LDkgKzQ5LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBn
c3NfbmFtZV90IHRhcmdldF9uYW1lLCBhY2NlcHRvcl9uYW1lID0gR1NTX0NfTk9fTkFNRSwg
cmVhbF9hY2NlcHRvcl9uYW1lOwogICAgIGdzc19idWZmZXJfZGVzYyBuYW1lYnVmOwogICAg
IGdzc19jdHhfaWRfdCBpbml0aWF0b3JfY29udGV4dCwgYWNjZXB0b3JfY29udGV4dDsKKyAg
ICBrcmI1X2Jvb2xlYW4gbm9fdHJhbnNpdF9jaGVjayA9IEZBTFNFOwogCi0gICAgaWYgKGFy
Z2MgPCAyIHx8IGFyZ2MgPiAzKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6
ICVzIHRhcmdldG5hbWUgW2FjY2VwdG9ybmFtZV1cbiIsIGFyZ3ZbMF0pOworICAgIGlmIChh
cmdjIDwgMiB8fCBhcmdjID4gNCkgewordXNhZ2U6CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiVXNhZ2U6ICVzIHRhcmdldG5hbWUgW2FjY2VwdG9ybmFtZV0gW25vX3RyYW5zaXRfY2hl
Y2tdXG4iLCBhcmd2WzBdKTsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCkBAIC01OCwx
MiArNjEsMjYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIHRhcmdldF9u
YW1lID0gaW1wb3J0X25hbWUoYXJndlsxXSk7CiAgICAgaWYgKGFyZ2MgPj0gMykKICAgICAg
ICAgYWNjZXB0b3JfbmFtZSA9IGltcG9ydF9uYW1lKGFyZ3ZbMl0pOworICAgIGlmIChhcmdj
ID49IDQpIHsKKyAgICAgICAgaWYgKHN0cmNtcChhcmd2WzNdLCAibm9fdHJhbnNpdF9jaGVj
ayIpICE9IDApIHsKKyAgICAgICAgICAgICBnb3RvIHVzYWdlOworICAgICAgICB9CisgICAg
ICAgIG5vX3RyYW5zaXRfY2hlY2sgPSBUUlVFOworICAgIH0KIAogICAgIC8qIEdldCBhY2Nl
cHRvciBjcmVkLiAqLwogICAgIG1ham9yID0gZ3NzX2FjcXVpcmVfY3JlZCgmbWlub3IsIGFj
Y2VwdG9yX25hbWUsIEdTU19DX0lOREVGSU5JVEUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdTU19DX05PX09JRF9TRVQsIEdTU19DX0FDQ0VQVCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmFjY2VwdG9yX2NyZWQsIE5VTEwsIE5VTEwpOwogICAgIGNoZWNr
X2dzc2VycigiZ3NzX2FjcXVpcmVfY3JlZCIsIG1ham9yLCBtaW5vcik7CisgICAgaWYgKG5v
X3RyYW5zaXRfY2hlY2spIHsKKyAgICAgICAgZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZl
ciA9IEdTU19DX0VNUFRZX0JVRkZFUjsKKworICAgICAgICBtYWpvciA9IGdzc19zZXRfY3Jl
ZF9vcHRpb24oJm1pbm9yLCAmYWNjZXB0b3JfY3JlZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChnc3NfT0lEKUdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVD
S19YLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVtcHR5X2J1ZmZl
cik7CisgICAgICAgIGNoZWNrX2dzc2VycigiZ3NzX3NldF9jcmVkX29wdGlvbihOT19UUkFO
U0lUX0NIRUNLX1gpIiwgbWFqb3IsIG1pbm9yKTsKKyAgICB9CiAKICAgICBmbGFncyA9IEdT
U19DX1JFUExBWV9GTEFHIHwgR1NTX0NfU0VRVUVOQ0VfRkxBRzsKICAgICBlc3RhYmxpc2hf
Y29udGV4dHMoJm1lY2hfa3JiNSwgR1NTX0NfTk9fQ1JFREVOVElBTCwgYWNjZXB0b3JfY3Jl
ZCwKLS0gCjIuMTcuMQoKCkZyb20gMmI1ZmJlNWMzMmE3YTIxY2QwYjVkMDMwMTE1NzNlMDg0
M2I5N2I4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNo
ZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogV2VkLCAyOCBBdWcgMjAxOSAxNjoxMzowNCAr
MDIwMApTdWJqZWN0OiBbUEFUQ0ggNi82XSBzcmMvdGVzdHMvZ3NzYXBpOiBhZGQgR1NTX0tS
QjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKIHRlc3QgdG8gdF9nc3NhcGkucHkKCkJVRzog
aHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWdu
ZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNy
Yy90ZXN0cy9nc3NhcGkvdF9nc3NhcGkucHkgfCA2OSArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspCgpkaWZm
IC0tZ2l0IGEvc3JjL3Rlc3RzL2dzc2FwaS90X2dzc2FwaS5weSBiL3NyYy90ZXN0cy9nc3Nh
cGkvdF9nc3NhcGkucHkKaW5kZXggNTRkNWNmNTQ5Li5hODEwYmYwNTkgMTAwNzU1Ci0tLSBh
L3NyYy90ZXN0cy9nc3NhcGkvdF9nc3NhcGkucHkKKysrIGIvc3JjL3Rlc3RzL2dzc2FwaS90
X2dzc2FwaS5weQpAQCAtMTE4LDYgKzExOCw3NSBAQCByMS5zdG9wKCkKIHIyLnN0b3AoKQog
cjMuc3RvcCgpCiAKKyMKKyMgVGVzdCB0aGUgYmVoYXZpb3Igb2YgR1NTX0tSQjVfQ1JFRF9O
T19UUkFOU0lUX0NIRUNLX1gKKyMgRmlyc3Qgd2UgZGVmaW5lIGFsbCBwb3NzaWJsZSBjYXBh
dGhzIGV4cGxpY2l0bHkKKyMgYXMgY2FwYXRoc19hbGwuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5
IGRlZmF1bHQuCisjCisjIFRoZW4gd2UgZGVmaW5lIGNhcGF0aHNfYXhfZmlyc3RfaG9wLCB3
aGljaAorIyBoYXMganVzdCB0aGUgZmlyc3QgaG9wcyBmcm9tIEEuWCB0byB0aGUgb3RoZXJz
LAorIyB0aGlzIHdpbGwgYWxsb3cgdGhlIGNsaWVudCBjb2RlIHRvIGdldCBhIHNlcnZpY2UK
KyMgdGlja2V0IGZvciBhIHNlcnZpY2UgaW4gRC5YLCBidXQgZG9lc24ndCBhbGxvdworIyB0
aGUgYWNjZXB0b3IgcGFydCB0byBwYXNzIHRoZSB0cmFuc2l0ZWQgY2hlY2suCisjCitjYXBh
dGhzX2FsbCA9IHsKKyAgJ2NhcGF0aHMnOiB7CisgICAgJ0EuWCc6IHsKKyAgICAgICdELlgn
OiBbJ0IuWCcsICdDLlgnXSwKKyAgICAgICdDLlgnOiBbJ0IuWCddLAorICAgICAgJ0IuWCc6
IFsnLiddLAorICAgIH0sCisgICAgJ0IuWCc6IHsKKyAgICAgICdBLlgnOiBbJy4nXSwKKyAg
ICAgICdDLlgnOiBbJy4nXSwKKyAgICAgICdELlgnOiBbJ0MuWCddLAorICAgIH0sCisgICAg
J0MuWCc6IHsKKyAgICAgICdELlgnOiBbJy4nXSwKKyAgICAgICdCLlgnOiBbJy4nXSwKKyAg
ICAgICdBLlgnOiBbJ0IuWCddLAorICAgIH0sCisgICAgJ0QuWCc6IHsKKyAgICAgICdBLlgn
OiBbJ0MuWCcsICdCLlgnXSwKKyAgICAgICdCLlgnOiBbJ0MuWCddLAorICAgICAgJ0MuWCc6
IFsnLiddLAorICAgIH0KKyAgfQorfQorY2FwYXRoc19heF9maXJzdF9ob3AgPSB7CisgICdj
YXBhdGhzJzogeworICAgICdBLlgnOiB7CisgICAgICAnRC5YJzogWydCLlgnXSwKKyAgICAg
ICdDLlgnOiBbJ0IuWCddLAorICAgICAgJ0IuWCc6IFsnLiddLAorICAgIH0sCisgIH0KK30K
K3IxYXJncyA9IHsgJ3JlYWxtJzogJ0EuWCcsICdrcmI1X2NvbmYnOiBjYXBhdGhzX2FsbCwg
J2NyZWF0ZV91c2VyJzogVHJ1ZSB9CityMmFyZ3MgPSB7ICdyZWFsbSc6ICdCLlgnLCAna3Ji
NV9jb25mJzogY2FwYXRoc19hbGwgfQorcjNhcmdzID0geyAncmVhbG0nOiAnQy5YJywgJ2ty
YjVfY29uZic6IGNhcGF0aHNfYWxsIH0KK3I0YXJncyA9IHsgJ3JlYWxtJzogJ0QuWCcsICdr
cmI1X2NvbmYnOiBjYXBhdGhzX2FsbCwgJ2NyZWF0ZV9ob3N0JzogVHJ1ZSB9CisKK3IxLCBy
MiwgcjMsIHI0ID0gY3Jvc3NfcmVhbG1zKDQsIHh0Z3RzPSgoMCwxKSwgKDEsMiksICgyLDMp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV91c2VyPUZhbHNlLCBj
cmVhdGVfaG9zdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9
W3IxYXJncywgcjJhcmdzLCByM2FyZ3MsIHI0YXJnc10pCitvcy5yZW5hbWUocjQua2V5dGFi
LCByMS5rZXl0YWIpCisjIFdlIGNyZWF0ZSBhIHNwZWNpYWwgZW52aXJvbm1lbnQgZm9yIHRo
ZSBjbGllbnQgb24gQS5YCityMWNsaWVudCA9IHIxLnNwZWNpYWxfZW52KCdjbGllbnQnLCBG
YWxzZSwga3JiNV9jb25mPWNhcGF0aHNfYXhfZmlyc3RfaG9wKQorIyBJdCB3aWxsIGdldCBh
IHNlcnZpY2UgdGlja2V0LCBidXQgdGhlIGFjY2VwdG9yIGZhaWwgdG8gdmVyaWZ5IHRoZQor
IyB0cmFuc2l0ZWQgcGF0aC4KK3IxLnJ1bihbJy4vdF9hY2NuYW1lJywgJ3A6JyArIHI0Lmhv
c3RfcHJpbmMsICdoOmhvc3QnXSwKKyAgIGVudj1yMWNsaWVudCwKKyAgIGV4cGVjdGVkX2Nv
ZGU9MSwKKyAgIGV4cGVjdGVkX21zZz0nSWxsZWdhbCBjcm9zcy1yZWFsbSB0aWNrZXQnKQor
IyBXaXRoIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIGl0IGJ5cGFzc2VzIHRo
ZSBjaGVjaworcjEucnVuKFsnLi90X2FjY25hbWUnLCAncDonICsgcjQuaG9zdF9wcmluYywg
J2g6aG9zdCcsICdub190cmFuc2l0X2NoZWNrJ10sCisgICBlbnY9cjFjbGllbnQpCityMS5z
dG9wKCkKK3IyLnN0b3AoKQorcjMuc3RvcCgpCityNC5zdG9wKCkKKwogIyMjIFRlc3QgZ3Nz
X2lucXVpcmVfY3JlZCBiZWhhdmlvci4KIAogcmVhbG0gPSBLNVJlYWxtKCkKLS0gCjIuMTcu
MQoK
--------------DD547EFD1C077ADE310AA0E0
Content-Type: text/plain; charset=UTF-8;
	name="samba-no_transit_check-wip-01.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="samba-no_transit_check-wip-01.txt"

RnJvbSA4OGNjNTY3ZjUzMDNkMTY4Zjc3YWJhOTRmZmZkYzg2NjhmYTgzNjNhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEu
b3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE0OjUxOjE0ICswMDAwClN1YmplY3Q6IFtQ
QVRDSCAwMS8yNV0gczQ6YXV0aDogcmVxdWlyZSBhIFBBQyBmb3Iga2VyYmVyb3MgYXV0aGVu
dGljYXRpb24KCkFzIEFELURDIHRoZXJlJ3MgcmVhbGx5IG5vIHJlYXNvbiB3aHkgd2Ugd2Fu
dCB0byBhY2NlcHQgYSBrZXJiZXJvcwp0aWNrZXQgd2l0aG91dCBhIFBBQy4gV2UgZG9uJ3Qg
c3VwcG9ydCBNSVQgdHJ1c3RzLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVy
IDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNlNC9hdXRoL250bG0vYXV0aC5jIHwgNDcg
KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n
ZWQsIDMgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291
cmNlNC9hdXRoL250bG0vYXV0aC5jIGIvc291cmNlNC9hdXRoL250bG0vYXV0aC5jCmluZGV4
IGVhZDUzMjY3MDVlNi4uNzU5YjVkNjI0ZDMzIDEwMDY0NAotLS0gYS9zb3VyY2U0L2F1dGgv
bnRsbS9hdXRoLmMKKysrIGIvc291cmNlNC9hdXRoL250bG0vYXV0aC5jCkBAIC04Niw0OCAr
ODYsNiBAQCBfUFVCTElDXyBOVFNUQVRVUyBhdXRoX2dldF9jaGFsbGVuZ2Uoc3RydWN0IGF1
dGg0X2NvbnRleHQgKmF1dGhfY3R4LCB1aW50OF90IGNoYQogCXJldHVybiBOVF9TVEFUVVNf
T0s7CiB9CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1Vc2VkIGluIHRoZSBnZW5zZWNf
Z3NzYXBpIGFuZCBnZW5zZWNfa3JiNSBzZXJ2ZXItc2lkZSBjb2RlLCB3aGVyZSB0aGUKLVBB
QyBpc24ndCBhdmFpbGFibGUsIGFuZCBmb3IgdG9rZW5Hcm91cHMgaW4gdGhlIERTREIgc3Rh
Y2suCi0KLSBTdXBwbHkgZWl0aGVyIGEgcHJpbmNpcGFsIG9yIGEgRE4KLSoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCi1zdGF0aWMgTlRTVEFUVVMgYXV0aF9nZW5lcmF0ZV9zZXNzaW9uX2lu
Zm9fcHJpbmNpcGFsKHN0cnVjdCBhdXRoNF9jb250ZXh0ICphdXRoX2N0eCwKLQkJCQkJCSAg
VEFMTE9DX0NUWCAqbWVtX2N0eCwKLQkJCQkJCSAgY29uc3QgY2hhciAqcHJpbmNpcGFsLAot
CQkJCQkJICBzdHJ1Y3QgbGRiX2RuICp1c2VyX2RuLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzZXNzaW9uX2luZm9fZmxh
Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCBhdXRoX3Nlc3Npb25faW5mbyAqKnNlc3Npb25faW5mbykKLXsKLQlOVFNUQVRV
UyBudF9zdGF0dXM7Ci0Jc3RydWN0IGF1dGhfbWV0aG9kX2NvbnRleHQgKm1ldGhvZDsKLQlz
dHJ1Y3QgYXV0aF91c2VyX2luZm9fZGMgKnVzZXJfaW5mb19kYzsKLQotCWZvciAobWV0aG9k
ID0gYXV0aF9jdHgtPm1ldGhvZHM7IG1ldGhvZDsgbWV0aG9kID0gbWV0aG9kLT5uZXh0KSB7
Ci0JCWlmICghbWV0aG9kLT5vcHMtPmdldF91c2VyX2luZm9fZGNfcHJpbmNpcGFsKSB7Ci0J
CQljb250aW51ZTsKLQkJfQotCi0JCW50X3N0YXR1cyA9IG1ldGhvZC0+b3BzLT5nZXRfdXNl
cl9pbmZvX2RjX3ByaW5jaXBhbChtZW1fY3R4LCBhdXRoX2N0eCwgcHJpbmNpcGFsLCB1c2Vy
X2RuLCAmdXNlcl9pbmZvX2RjKTsKLQkJaWYgKE5UX1NUQVRVU19FUVVBTChudF9zdGF0dXMs
IE5UX1NUQVRVU19OT1RfSU1QTEVNRU5URUQpKSB7Ci0JCQljb250aW51ZTsKLQkJfQotCQlp
ZiAoIU5UX1NUQVRVU19JU19PSyhudF9zdGF0dXMpKSB7Ci0JCQlyZXR1cm4gbnRfc3RhdHVz
OwotCQl9Ci0KLQkJbnRfc3RhdHVzID0gYXV0aF9nZW5lcmF0ZV9zZXNzaW9uX2luZm9fd3Jh
cHBlcihhdXRoX2N0eCwgbWVtX2N0eCwgCi0JCQkJCQkJICAgICAgIHVzZXJfaW5mb19kYywK
LQkJCQkJCQkgICAgICAgdXNlcl9pbmZvX2RjLT5pbmZvLT5hY2NvdW50X25hbWUsCi0JCQkJ
CQkJICAgICAgIHNlc3Npb25faW5mb19mbGFncywgc2Vzc2lvbl9pbmZvKTsKLQkJdGFsbG9j
X2ZyZWUodXNlcl9pbmZvX2RjKTsKLQotCQlyZXR1cm4gbnRfc3RhdHVzOwotCX0KLQotCXJl
dHVybiBOVF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEOwotfQotCiAvKioKICAqIENoZWNrIGEg
dXNlcidzIFBsYWludGV4dCwgTE0gb3IgTlRMTSBwYXNzd29yZC4KICAqIChzeW5jIHZlcnNp
b24pCkBAIC02NTcsOCArNjE1LDkgQEAgc3RhdGljIE5UU1RBVFVTIGF1dGhfZ2VuZXJhdGVf
c2Vzc2lvbl9pbmZvX3BhYyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAJVEFM
TE9DX0NUWCAqdG1wX2N0eDsKIAogCWlmICghcGFjX2Jsb2IpIHsKLQkJcmV0dXJuIGF1dGhf
Z2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3ByaW5jaXBhbChhdXRoX2N0eCwgbWVtX2N0eCwgcHJp
bmNpcGFsX25hbWUsCi0JCQkJCQkgICAgICAgTlVMTCwgc2Vzc2lvbl9pbmZvX2ZsYWdzLCBz
ZXNzaW9uX2luZm8pOworCQlEQkdfV0FSTklORygiTm8gUEFDIGF2YWlsYWJsZSBmb3IgcHJp
bmNpcGFsX25hbWVbJXNdXG4iLAorCQkJICAgIHByaW5jaXBhbF9uYW1lKTsKKwkJcmV0dXJu
IE5UX1NUQVRVU19OT19JTVBFUlNPTkFUSU9OX1RPS0VOOwogCX0KIAogCXRtcF9jdHggPSB0
YWxsb2NfbmFtZWQobWVtX2N0eCwgMCwgImdlbnNlY19nc3NhcGlfc2Vzc2lvbl9pbmZvIGNv
bnRleHQiKTsKLS0gCjIuMTcuMQoKCkZyb20gNDAwMjFiZDA3ZDI4ZGI5YTZjYjBjMTkzNTFh
Y2YzNTdmZTEyMTMwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1l
dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyOSBBdWcgMjAxOSAxNDo1
MjoxMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMjVdIHM0OmF1dGg6IHJlbW92ZSB1bnVz
ZWQgZ2V0X3VzZXJfaW5mb19kY19wcmluY2lwYWwoKQogYmFja2VuZCBob29rCgpCVUc6IGh0
dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVk
LW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3Vy
Y2U0L2F1dGgvYXV0aC5oICAgICAgICAgIHwgIDYgLS0tLS0tCiBzb3VyY2U0L2F1dGgvbnRs
bS9hdXRoX3NhbS5jIHwgMTIgLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvYXV0aC9hdXRoLmggYi9zb3VyY2U0
L2F1dGgvYXV0aC5oCmluZGV4IDUxODk1YzkyNTlmMy4uMjk3N2I3NTI0MjZlIDEwMDY0NAot
LS0gYS9zb3VyY2U0L2F1dGgvYXV0aC5oCisrKyBiL3NvdXJjZTQvYXV0aC9hdXRoLmgKQEAg
LTc0LDEyICs3NCw2IEBAIHN0cnVjdCBhdXRoX29wZXJhdGlvbnMgewogCQkJCXN0cnVjdCBh
dXRoX3VzZXJfaW5mb19kYyAqKmludGVyaW1faW5mbywKIAkJCQlib29sICphdXRob3JpdGF0
aXZlKTsKIAotCS8qIExvb2t1cCBhICdzZXNzaW9uIGluZm8gaW50ZXJpbScgcmV0dXJuIGJh
c2VkIG9ubHkgb24gdGhlIHByaW5jaXBhbCBvciBETiAqLwotCU5UU1RBVFVTICgqZ2V0X3Vz
ZXJfaW5mb19kY19wcmluY2lwYWwpKFRBTExPQ19DVFggKm1lbV9jdHgsCi0JCQkJCQkgICAg
ICAgc3RydWN0IGF1dGg0X2NvbnRleHQgKmF1dGhfY29udGV4dCwKLQkJCQkJCSAgICAgICBj
b25zdCBjaGFyICpwcmluY2lwYWwsCi0JCQkJCQkgICAgICAgc3RydWN0IGxkYl9kbiAqdXNl
cl9kbiwKLQkJCQkJCSAgICAgICBzdHJ1Y3QgYXV0aF91c2VyX2luZm9fZGMgKippbnRlcmlt
X2luZm8pOwogCXVpbnQzMl90IGZsYWdzOwogfTsKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9h
dXRoL250bG0vYXV0aF9zYW0uYyBiL3NvdXJjZTQvYXV0aC9udGxtL2F1dGhfc2FtLmMKaW5k
ZXggZmI4OGNiODdmNjY4Li5hOGM3ZDhiNGI4NTcgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvYXV0
aC9udGxtL2F1dGhfc2FtLmMKKysrIGIvc291cmNlNC9hdXRoL250bG0vYXV0aF9zYW0uYwpA
QCAtODU0LDI4ICs4NTQsMTYgQEAgc3RhdGljIE5UU1RBVFVTIGF1dGhzYW1fd2FudF9jaGVj
ayhzdHJ1Y3QgYXV0aF9tZXRob2RfY29udGV4dCAqY3R4LAogCXJldHVybiBOVF9TVEFUVVNf
T0s7CiB9CiAKLS8qIFdyYXBwZXIgZm9yIHRoZSBhdXRoIHN1YnN5c3RlbSBwb2ludGVyICov
Ci1zdGF0aWMgTlRTVEFUVVMgYXV0aHNhbV9nZXRfdXNlcl9pbmZvX2RjX3ByaW5jaXBhbF93
cmFwcGVyKFRBTExPQ19DVFggKm1lbV9jdHgsCi0JCQkJCQkJICBzdHJ1Y3QgYXV0aDRfY29u
dGV4dCAqYXV0aF9jb250ZXh0LAotCQkJCQkJCSAgY29uc3QgY2hhciAqcHJpbmNpcGFsLAot
CQkJCQkJCSAgc3RydWN0IGxkYl9kbiAqdXNlcl9kbiwKLQkJCQkJCQkgIHN0cnVjdCBhdXRo
X3VzZXJfaW5mb19kYyAqKnVzZXJfaW5mb19kYykKLXsKLQlyZXR1cm4gYXV0aHNhbV9nZXRf
dXNlcl9pbmZvX2RjX3ByaW5jaXBhbChtZW1fY3R4LCBhdXRoX2NvbnRleHQtPmxwX2N0eCwg
YXV0aF9jb250ZXh0LT5zYW1fY3R4LAotCQkJCQkJIHByaW5jaXBhbCwgdXNlcl9kbiwgdXNl
cl9pbmZvX2RjKTsKLX0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXV0aF9vcGVyYXRpb25zIHNh
bV9pZ25vcmVkb21haW5fb3BzID0gewogCS5uYW1lCQkgICAgICAgICAgID0gInNhbV9pZ25v
cmVkb21haW4iLAogCS53YW50X2NoZWNrCSAgICAgICAgICAgPSBhdXRoc2FtX2lnbm9yZWRv
bWFpbl93YW50X2NoZWNrLAogCS5jaGVja19wYXNzd29yZAkgICAgICAgICAgID0gYXV0aHNh
bV9jaGVja19wYXNzd29yZF9pbnRlcm5hbHMsCi0JLmdldF91c2VyX2luZm9fZGNfcHJpbmNp
cGFsID0gYXV0aHNhbV9nZXRfdXNlcl9pbmZvX2RjX3ByaW5jaXBhbF93cmFwcGVyLAogfTsK
IAogc3RhdGljIGNvbnN0IHN0cnVjdCBhdXRoX29wZXJhdGlvbnMgc2FtX29wcyA9IHsKIAku
bmFtZQkJICAgICAgICAgICA9ICJzYW0iLAogCS53YW50X2NoZWNrCSAgICAgICAgICAgPSBh
dXRoc2FtX3dhbnRfY2hlY2ssCiAJLmNoZWNrX3Bhc3N3b3JkCSAgICAgICAgICAgPSBhdXRo
c2FtX2NoZWNrX3Bhc3N3b3JkX2ludGVybmFscywKLQkuZ2V0X3VzZXJfaW5mb19kY19wcmlu
Y2lwYWwgPSBhdXRoc2FtX2dldF91c2VyX2luZm9fZGNfcHJpbmNpcGFsX3dyYXBwZXIsCiB9
OwogCiBfUFVCTElDXyBOVFNUQVRVUyBhdXRoNF9zYW1faW5pdChUQUxMT0NfQ1RYICopOwot
LSAKMi4xNy4xCgoKRnJvbSAyNGU2MzcyZWUyZWFhZDM2ZGQ2N2JhZTg5ZGFlZGVlMjZiZjU1
YzY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8
bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDI5IEF1ZyAyMDE5IDE0OjUyOjU0ICswMDAw
ClN1YmplY3Q6IFtQQVRDSCAwMy8yNV0gczQ6YXV0aDogcmVtb3ZlIHVudXNlZCBwcm90b3R5
cGUgb2YKIGF1dGhfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3dyYXBwZXIoKQoKQlVHOiBodHRw
czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1v
ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl
NC9hdXRoL250bG0vYXV0aC5jIHwgNyAtLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0L2F1dGgvbnRsbS9hdXRoLmMgYi9zb3Vy
Y2U0L2F1dGgvbnRsbS9hdXRoLmMKaW5kZXggNzU5YjVkNjI0ZDMzLi4xMjJhNDBlNGVkZWYg
MTAwNjQ0Ci0tLSBhL3NvdXJjZTQvYXV0aC9udGxtL2F1dGguYworKysgYi9zb3VyY2U0L2F1
dGgvbnRsbS9hdXRoLmMKQEAgLTM3LDEzICszNyw2IEBACiAjdW5kZWYgREJHQ19DTEFTUwog
I2RlZmluZSBEQkdDX0NMQVNTIERCR0NfQVVUSAogCi1zdGF0aWMgTlRTVEFUVVMgYXV0aF9n
ZW5lcmF0ZV9zZXNzaW9uX2luZm9fd3JhcHBlcihzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0
aF9jb250ZXh0LAotCQkJCQkJICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqc2VydmVyX3Jl
dHVybmVkX2luZm8sCi0JCQkJCQkgICBjb25zdCBjaGFyICpvcmlnaW5hbF91c2VyX25hbWUs
Ci0JCQkJCQkgICB1aW50MzJfdCBzZXNzaW9uX2luZm9fZmxhZ3MsCi0JCQkJCQkgICBzdHJ1
Y3QgYXV0aF9zZXNzaW9uX2luZm8gKipzZXNzaW9uX2luZm8pOwotCiAvKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCiAgU2V0IGEgZml4ZWQgY2hhbGxlbmdlCiAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiovCi0tIAoyLjE3LjEKCgpGcm9tIDgzMDU1YjQyNmFiZWQxZWYxZDZmMzJiYWQ2MTM4NjM3
YjJjMzYxODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFj
aGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMTkgMTY6MTM6MDEg
KzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzI1XSBkb2NzLXhtbDogYWRkICJrZXJiZXJvcyBh
Y2NlcHRvciByZXF1aXJlIHBhYyIgb3B0aW9uCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2Ft
YmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1l
dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiAuLi4vc2VjdXJpdHkva2VyYmVyb3Nh
Y2NlcHRvcnJlcXVpcmVwYWMueG1sICAgfCAyNyArKysrKysrKysrKysrKysrKysrCiBsaWIv
cGFyYW0vbG9hZHBhcm0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiBzb3Vy
Y2UzL3BhcmFtL2xvYWRwYXJtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAzIGZp
bGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Nz
LXhtbC9zbWJkb3Rjb25mL3NlY3VyaXR5L2tlcmJlcm9zYWNjZXB0b3JyZXF1aXJlcGFjLnht
bAoKZGlmZiAtLWdpdCBhL2RvY3MteG1sL3NtYmRvdGNvbmYvc2VjdXJpdHkva2VyYmVyb3Nh
Y2NlcHRvcnJlcXVpcmVwYWMueG1sIGIvZG9jcy14bWwvc21iZG90Y29uZi9zZWN1cml0eS9r
ZXJiZXJvc2FjY2VwdG9ycmVxdWlyZXBhYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi42YjIyMWY1ZmRjZmQKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Nz
LXhtbC9zbWJkb3Rjb25mL3NlY3VyaXR5L2tlcmJlcm9zYWNjZXB0b3JyZXF1aXJlcGFjLnht
bApAQCAtMCwwICsxLDI3IEBACis8c2FtYmE6cGFyYW1ldGVyIG5hbWU9ImtlcmJlcm9zIGFj
Y2VwdG9yIHJlcXVpcmUgcGFjIgorICAgICAgICAgICAgICAgICB0eXBlPSJlbnVtIgorICAg
ICAgICAgICAgICAgICBlbnVtbGlzdD0iZW51bV9ib29sX2F1dG8iCisgICAgICAgICAgICAg
ICAgIGNvbnRleHQ9IkciCisgICAgICAgICAgICAgICAgIGZ1bmN0aW9uPSJfcmVxdWlyZV9w
YWMiCisgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQ9IjEiCisgICAgICAgICAgICAgICAg
IHhtbG5zOnNhbWJhPSJodHRwOi8vd3d3LnNhbWJhLm9yZy9zYW1iYS9EVEQvc2FtYmEtZG9j
Ij4KKzxkZXNjcmlwdGlvbj4KKwk8cGFyYT5UaGUgdHlwaWNhbGwgdXNlIGNhc2UgZm9yIGtl
cmJlcm9zIGlzIGJlaW5nIHBhcnQgb2YKKwlhbiBhY3RpdmUgZGlyZWN0b3J5IGRvbWFpbi4g
V2hpY2ggbWVhbnMgd2UnbGwgYWx3YXlzCisJZ2V0IGFuIFBBQyAoUHJpdmlsZWdlIEF0dHJp
YnV0ZSBDZXJ0aWZpY2F0ZSBEYXRhIFN0cnVjdHVyZSkKKwlhcyBwYXJ0IG9mIHRoZSBzZXJ2
aWNlIHRpY2tldCB3ZSBhY2NlcHQuCisJPC9wYXJhPgorCisJPHBhcmE+SWYgdGhlIHNlcnZl
ciBpcyBjb25maWd1cmVkIGFzIGRvbWFpbiBtZW1iZXIgaXQKKwl3aWxsIHJlcXVpcmUgYSB2
YWxpZCBQQUMgdG8gYmUgcHJlc2VudCBieSBkZWZhdWx0LgorCTwvcGFyYT4KKworCTxwYXJh
PkZvciBhbGwgY29uZmlndXJhdGlvbnMgZXhjZXB0IG9uIGFuIGFjdGl2ZSBkaXJlY3RvcnkK
Kwlkb21haW4gY29udHJvbGxlciBpdCBpcyBwb3NzaWJsZSB0byBkZWFjdGl2YXRlIHRoaXMg
cmVxdWlyZW1lbnQKKwlhbmQgZmFsbGJhY2sgdG8gcmVseSBvbiBhIGxvY2FsIHVuaXggdXNl
ciB0byBiZSBwcmVzZW50LgorCTwvcGFyYT4KKzwvZGVzY3JpcHRpb24+Cis8dmFsdWUgdHlw
ZT0iZGVmYXVsdCI+YXV0bzwvdmFsdWU+Cis8dmFsdWUgdHlwZT0iZXhhbXBsZSI+bm88L3Zh
bHVlPgorPHZhbHVlIHR5cGU9ImV4YW1wbGUiPnllczwvdmFsdWU+Cis8L3NhbWJhOnBhcmFt
ZXRlcj4KZGlmZiAtLWdpdCBhL2xpYi9wYXJhbS9sb2FkcGFybS5jIGIvbGliL3BhcmFtL2xv
YWRwYXJtLmMKaW5kZXggOWE1NzdhYTE4OGM1Li4zNmMzZGI5Njc2MjAgMTAwNjQ0Ci0tLSBh
L2xpYi9wYXJhbS9sb2FkcGFybS5jCisrKyBiL2xpYi9wYXJhbS9sb2FkcGFybS5jCkBAIC0z
MDIxLDYgKzMwMjEsNyBAQCBzdHJ1Y3QgbG9hZHBhcm1fY29udGV4dCAqbG9hZHBhcm1faW5p
dChUQUxMT0NfQ1RYICptZW1fY3R4KQogCWxwY2ZnX2RvX2dsb2JhbF9wYXJhbWV0ZXIobHBf
Y3R4LCAic21iMiBsZWFzZXMiLCAieWVzIik7CiAKIAlscGNmZ19kb19nbG9iYWxfcGFyYW1l
dGVyKGxwX2N0eCwgImtlcmJlcm9zIGVuY3J5cHRpb24gdHlwZXMiLCAiYWxsIik7CisJbHBj
ZmdfZG9fZ2xvYmFsX3BhcmFtZXRlcihscF9jdHgsICJrZXJiZXJvcyBhY2NlcHRvciByZXF1
aXJlIHBhYyIsICJhdXRvIik7CiAKIAlscGNmZ19kb19nbG9iYWxfcGFyYW1ldGVyKGxwX2N0
eCwKIAkJCQkgICJycGMgc2VydmVyIGR5bmFtaWMgcG9ydCByYW5nZSIsCmRpZmYgLS1naXQg
YS9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMK
aW5kZXggYjFhNTIwNTVhZGU3Li42Y2QwOTIzNmJiYjIgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMv
cGFyYW0vbG9hZHBhcm0uYworKysgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKQEAgLTY3
Nyw2ICs2NzcsNyBAQCBzdGF0aWMgdm9pZCBpbml0X2dsb2JhbHMoc3RydWN0IGxvYWRwYXJt
X2NvbnRleHQgKmxwX2N0eCwgYm9vbCByZWluaXRfZ2xvYmFscykKIAlHbG9iYWxzLm1heF93
aW5zX3R0bCA9IDYwICogNjAgKiAyNCAqIDY7CS8qIDYgZGF5cyBkZWZhdWx0LiAqLwogCUds
b2JhbHMubWluX3dpbnNfdHRsID0gNjAgKiA2MCAqIDY7CS8qIDYgaG91cnMgZGVmYXVsdC4g
Ki8KIAlHbG9iYWxzLm1hY2hpbmVfcGFzc3dvcmRfdGltZW91dCA9IDYwICogNjAgKiAyNCAq
IDc7CS8qIDcgZGF5cyBkZWZhdWx0LiAqLworCUdsb2JhbHMuX3JlcXVpcmVfcGFjID0gQXV0
bzsKIAlHbG9iYWxzLmxtX2Fubm91bmNlID0gQXV0bzsJLyogPSBBdXRvOiBzZW5kIG9ubHkg
aWYgTE0gY2xpZW50cyBmb3VuZCAqLwogCUdsb2JhbHMubG1faW50ZXJ2YWwgPSA2MDsKICNp
ZiAoZGVmaW5lZChIQVZFX05FVEdST1VQKSAmJiBkZWZpbmVkKFdJVEhfQVVUT01PVU5UKSkK
LS0gCjIuMTcuMQoKCkZyb20gNjY1NGI5NWIxM2IyNTE2YzY4NmZiNzIzMDJkZDgxYmY1YTJm
YTNiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIg
PG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNjo1Mjo0MiArMDAw
MApTdWJqZWN0OiBbUEFUQ0ggMDUvMjVdIHMzOnBhcmFtOiBhZGQgbHBfcmVxdWlyZV9wYWMo
KQoKVGhpcyBoYW5kbGVzIHRoZSBhdXRvZGV0ZWN0aW9uIGZvcgp0aGUgImtlcmJlcm9zIGFj
Y2VwdG9yIHJlcXVpcmUgcGFjIiBvcHRpb24uCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2Ft
YmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1l
dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3VyY2UzL2luY2x1ZGUvcHJvdG8u
aCAgfCAgMSArCiBzb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMgfCAyOCArKysrKysrKysrKysr
KysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKykKCmRp
ZmYgLS1naXQgYS9zb3VyY2UzL2luY2x1ZGUvcHJvdG8uaCBiL3NvdXJjZTMvaW5jbHVkZS9w
cm90by5oCmluZGV4IDBkMDJmMzhmYzhiZS4uN2UxMGY1MGZjYThkIDEwMDY0NAotLS0gYS9z
b3VyY2UzL2luY2x1ZGUvcHJvdG8uaAorKysgYi9zb3VyY2UzL2luY2x1ZGUvcHJvdG8uaApA
QCAtNzQ1LDYgKzc0NSw3IEBAIGJvb2wgbHBfaWRtYXBfZGVmYXVsdF9yYW5nZSh1aW50MzJf
dCAqbG93LCB1aW50MzJfdCAqaGlnaCk7CiBjb25zdCBjaGFyICpscF9pZG1hcF9iYWNrZW5k
KGNvbnN0IGNoYXIgKmRvbWFpbl9uYW1lKTsKIGNvbnN0IGNoYXIgKmxwX2lkbWFwX2RlZmF1
bHRfYmFja2VuZCAodm9pZCk7CiBpbnQgbHBfc2VjdXJpdHkodm9pZCk7Citib29sIGxwX3Jl
cXVpcmVfcGFjKHZvaWQpOwogaW50IGxwX2NsaWVudF9tYXhfcHJvdG9jb2wodm9pZCk7CiBp
bnQgbHBfY2xpZW50X2lwY19taW5fcHJvdG9jb2wodm9pZCk7CiBpbnQgbHBfY2xpZW50X2lw
Y19tYXhfcHJvdG9jb2wodm9pZCk7CmRpZmYgLS1naXQgYS9zb3VyY2UzL3BhcmFtL2xvYWRw
YXJtLmMgYi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKaW5kZXggNmNkMDkyMzZiYmIyLi4x
MTA5ZWNhMzg0YTYgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMvcGFyYW0vbG9hZHBhcm0uYworKysg
Yi9zb3VyY2UzL3BhcmFtL2xvYWRwYXJtLmMKQEAgLTQ1OTMsNiArNDU5MywzNCBAQCBpbnQg
bHBfc2VjdXJpdHkodm9pZCkKIAkJCQlscF9fc2VjdXJpdHkoKSk7CiB9CiAKK2Jvb2wgbHBf
cmVxdWlyZV9wYWModm9pZCkKK3sKKwllbnVtIHNlcnZlcl9yb2xlIHJvbGUgPSBscF9zZXJ2
ZXJfcm9sZSgpOworCWludCB2YWwgPSBscF9fcmVxdWlyZV9wYWMoKTsKKworCWlmIChyb2xl
ID09IFJPTEVfQUNUSVZFX0RJUkVDVE9SWV9EQykgeworCQlyZXR1cm4gdHJ1ZTsKKwl9CisK
KwlpZiAodmFsICE9IEF1dG8pIHsKKwkJcmV0dXJuIHZhbCAhPSAwOworCX0KKworCXN3aXRj
aCAocm9sZSkgeworCWNhc2UgUk9MRV9ET01BSU5fTUVNQkVSOgorCQkvKgorCQkgKiBpZiB3
ZSdyZSBwYXJ0IG9mIGEgZG9tYWluIHdlCisJCSAqIHdhbnQgdG8gcmVseSBvbiBhIHZhbGlk
IFBBQworCQkgKiBpbiBrZXJiZXJvcyB0aWNrZXRzCisJCSAqLworCQlyZXR1cm4gdHJ1ZTsK
KwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIGludCBs
cF9jbGllbnRfbWF4X3Byb3RvY29sKHZvaWQpCiB7CiAJaW50IGNsaWVudF9tYXhfcHJvdG9j
b2wgPSBscF9fY2xpZW50X21heF9wcm90b2NvbCgpOwotLSAKMi4xNy4xCgoKRnJvbSBkZDUy
YTkzMWM0OTA5M2Q1ZWI2NDU2ZjUyYmIyZWQ0MzliNjQyNjE5IE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRl
OiBUaHUsIDI5IEF1ZyAyMDE5IDE1OjM2OjMyICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNi8y
NV0gczM6YXV0aDogcmVxdWlyZSBQQUMgb24gYWQgZG9tYWluIG1lbWJlcnMvc2VydmVycwoK
QXMgcGFydCBvZiBhbiBhY3RpdmUgZGlyZWN0b3J5IGRvbWFpbiB3ZSdsbCBnZXQKYSBzZXJ2
aWNlIHRpY2tldCBpbmNsdWRpbmcgYSBQQUMuIFdlIHNob3VsZCBlbmZvcmNlCnRoYXQgYW5k
IGRvbid0IGRvIGFueSBzdHJhbmdlIGZhbGxiYWNrcyBieSBkZWZhdWx0LgoKQlVHOiBodHRw
czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1v
ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl
My9hdXRoL2F1dGhfZ2VuZXJpYy5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiBzb3Vy
Y2UzL2F1dGgvdXNlcl9rcmI1LmMgICAgfCAxNSArKysrKysrKysrKysrKysKIDIgZmlsZXMg
Y2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTMvYXV0aC9h
dXRoX2dlbmVyaWMuYyBiL3NvdXJjZTMvYXV0aC9hdXRoX2dlbmVyaWMuYwppbmRleCAxNjdk
NGUwMDM2N2YuLjg4YzYyNDhlOGI5ZCAxMDA2NDQKLS0tIGEvc291cmNlMy9hdXRoL2F1dGhf
Z2VuZXJpYy5jCisrKyBiL3NvdXJjZTMvYXV0aC9hdXRoX2dlbmVyaWMuYwpAQCAtNTgsNiAr
NTgsNyBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3Bh
YyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAJc3RydWN0IHBhc3N3ZCAqcHc7
CiAJTlRTVEFUVVMgc3RhdHVzOwogCWludCByYzsKKwlib29sIHJlcXVpcmVfcGFjID0gbHBf
cmVxdWlyZV9wYWMoKTsKIAogCXRtcF9jdHggPSB0YWxsb2NfbmV3KG1lbV9jdHgpOwogCWlm
ICghdG1wX2N0eCkgewpAQCAtMTAwLDYgKzEwMSwxNSBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0
aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3BhYyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0
aF9jdHgsCiAKIAkJc3dpdGNoICh3YmNfZXJyKSB7CiAJCQljYXNlIFdCQ19FUlJfV0lOQklO
RF9OT1RfQVZBSUxBQkxFOgorCQkJCWlmIChyZXF1aXJlX3BhYykgeworCQkJCQlzdGF0dXMg
PSBOVF9TVEFUVVNfTk9fTE9HT05fU0VSVkVSUzsKKwkJCQkJREJHX0VSUigid2luYmluZGQg
bm90IHJ1bm5pbmcgLSAiCisJCQkJCQkiYnV0IHJlcXVpcmVkIGFzIGRvbWFpbiBtZW1iZXI6
ICIKKwkJCQkJCSJwcmluY19uYW1lWyVzXSAlc1xuIiwKKwkJCQkJCXByaW5jX25hbWUsIG50
X2VycnN0cihzdGF0dXMpKTsKKwkJCQkJZ290byBkb25lOworCQkJCX0KKwkJCQkvL0ZBTExf
VEhST1VHSDsKIAkJCWNhc2UgV0JDX0VSUl9TVUNDRVNTOgogCQkJCWJyZWFrOwogCQkJY2Fz
ZSBXQkNfRVJSX0FVVEhfRVJST1I6CkBAIC0xMTksNiArMTI5LDExIEBAIHN0YXRpYyBOVFNU
QVRVUyBhdXRoM19nZW5lcmF0ZV9zZXNzaW9uX2luZm9fcGFjKHN0cnVjdCBhdXRoNF9jb250
ZXh0ICphdXRoX2N0eCwKIAkJaWYgKCFOVF9TVEFUVVNfSVNfT0soc3RhdHVzKSkgewogCQkJ
Z290byBkb25lOwogCQl9CisJfSBlbHNlIGlmIChyZXF1aXJlX3BhYykgeworCQlzdGF0dXMg
PSBOVF9TVEFUVVNfTk9fSU1QRVJTT05BVElPTl9UT0tFTjsKKwkJREJHX1dBUk5JTkcoIk5v
IFBBQyBhdmFpbGFibGUgZm9yIHByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJICAgIHByaW5j
X25hbWUsIG50X2VycnN0cihzdGF0dXMpKTsKKwkJZ290byBkb25lOwogCX0KIAogCXJjID0g
Z2V0X3JlbW90ZV9ob3N0bmFtZShyZW1vdGVfYWRkcmVzcywKQEAgLTE1Nyw2ICsxNzIsMTIg
QEAgc3RhdGljIE5UU1RBVFVTIGF1dGgzX2dlbmVyYXRlX3Nlc3Npb25faW5mb19wYWMoc3Ry
dWN0IGF1dGg0X2NvbnRleHQgKmF1dGhfY3R4LAogCQlpZiAoIU5UX1NUQVRVU19JU19PSyhz
dGF0dXMpKSB7CiAJCQlnb3RvIGRvbmU7CiAJCX0KKwl9IGVsc2UgaWYgKHJlcXVpcmVfcGFj
KSB7CisJCXN0YXR1cyA9IE5UX1NUQVRVU19OT19JTVBFUlNPTkFUSU9OX1RPS0VOOworCQlE
QkdfV0FSTklORygiTm8gUEFDIExPR09OX0lORk8gYXZhaWxhYmxlIGZvciAiCisJCQkgICAg
InByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJICAgIHByaW5jX25hbWUsIG50X2VycnN0cihz
dGF0dXMpKTsKKwkJZ290byBkb25lOwogCX0KIAogCS8qIHNldHVwIHRoZSBzdHJpbmcgdXNl
ZCBieSAlVSAqLwpkaWZmIC0tZ2l0IGEvc291cmNlMy9hdXRoL3VzZXJfa3JiNS5jIGIvc291
cmNlMy9hdXRoL3VzZXJfa3JiNS5jCmluZGV4IDg5OThmOWM4ZjhhZS4uY2EzZDM3MTRlNjI0
IDEwMDY0NAotLS0gYS9zb3VyY2UzL2F1dGgvdXNlcl9rcmI1LmMKKysrIGIvc291cmNlMy9h
dXRoL3VzZXJfa3JiNS5jCkBAIC0xOTMsOCArMTkzLDE3IEBAIE5UU1RBVFVTIG1ha2Vfc2Vz
c2lvbl9pbmZvX2tyYjUoVEFMTE9DX0NUWCAqbWVtX2N0eCwKIHsKIAlOVFNUQVRVUyBzdGF0
dXM7CiAJc3RydWN0IGF1dGhfc2VydmVyc3VwcGxpZWRfaW5mbyAqc2VydmVyX2luZm87CisJ
Ym9vbCByZXF1aXJlX3BhYyA9IGxwX3JlcXVpcmVfcGFjKCk7CiAKIAlpZiAobWFwcGVkX3Rv
X2d1ZXN0KSB7CisJCWlmIChyZXF1aXJlX3BhYykgeworCQkJc3RhdHVzID0gTlRfU1RBVFVT
X0JBRF9UT0tFTl9UWVBFOworCQkJREJHX1dBUk5JTkcoIk1hcHBlZCB0byBndWVzdCBmb3Ig
UEFDIHJlcXVpcmVkICIKKwkJCQkgICAgIlslc1xcJXNdICVzXG4iLAorCQkJCSAgICBudGRv
bWFpbiwgbnR1c2VyLCBudF9lcnJzdHIoc3RhdHVzKSk7CisJCQlyZXR1cm4gc3RhdHVzOwor
CQl9CisKIAkJc3RhdHVzID0gbWFrZV9zZXJ2ZXJfaW5mb19ndWVzdChtZW1fY3R4LCAmc2Vy
dmVyX2luZm8pOwogCQlpZiAoIU5UX1NUQVRVU19JU19PSyhzdGF0dXMpKSB7CiAJCQlERUJV
RygxLCAoIm1ha2Vfc2VydmVyX2luZm9fZ3Vlc3QgZmFpbGVkOiAlcyFcbiIsCkBAIC0yMTYs
NiArMjI1LDEyIEBAIE5UU1RBVFVTIG1ha2Vfc2Vzc2lvbl9pbmZvX2tyYjUoVEFMTE9DX0NU
WCAqbWVtX2N0eCwKIAkJCXJldHVybiBzdGF0dXM7CiAJCX0KIAorCX0gZWxzZSBpZiAocmVx
dWlyZV9wYWMpIHsKKwkJc3RhdHVzID0gTlRfU1RBVFVTX05PX0lNUEVSU09OQVRJT05fVE9L
RU47CisJCURCR19XQVJOSU5HKCJObyBJTkZPMyBhdmFpbGFibGUgZm9yICIKKwkJCSAgICAi
WyVzXFwlc10gJXNcbiIsCisJCQkgICAgbnRkb21haW4sIG50dXNlciwgbnRfZXJyc3RyKHN0
YXR1cykpOworCQlyZXR1cm4gc3RhdHVzOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIFdlIGRp
ZG4ndCBnZXQgYSBQQUMsIHdlIGhhdmUgdG8gbWFrZSB1cCB0aGUgdXNlcgotLSAKMi4xNy4x
CgoKRnJvbSAzYTQ5NTNlZTFlN2JlNDhlZGI1OTg4MmIzYjk1YTVmMDc5YWRhNmExIE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft
YmEub3JnPgpEYXRlOiBNb24sIDE2IFNlcCAyMDE5IDA2OjU4OjE2ICswMjAwClN1YmplY3Q6
IFtQQVRDSCAwNy8yNV0gYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3BhYwogV0JDX0VS
Ul9XSU5CSU5EX05PVF9BVkFJTEFCTEU6CgotLS0KIHNvdXJjZTMvYXV0aC9hdXRoX2dlbmVy
aWMuYyB8IDE2ICsrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlv
bnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291cmNlMy9hdXRoL2F1dGhf
Z2VuZXJpYy5jIGIvc291cmNlMy9hdXRoL2F1dGhfZ2VuZXJpYy5jCmluZGV4IDg4YzYyNDhl
OGI5ZC4uNmZkZGFkNTRjZGNiIDEwMDY0NAotLS0gYS9zb3VyY2UzL2F1dGgvYXV0aF9nZW5l
cmljLmMKKysrIGIvc291cmNlMy9hdXRoL2F1dGhfZ2VuZXJpYy5jCkBAIC0xMDEsMTQgKzEw
MSwxNCBAQCBzdGF0aWMgTlRTVEFUVVMgYXV0aDNfZ2VuZXJhdGVfc2Vzc2lvbl9pbmZvX3Bh
YyhzdHJ1Y3QgYXV0aDRfY29udGV4dCAqYXV0aF9jdHgsCiAKIAkJc3dpdGNoICh3YmNfZXJy
KSB7CiAJCQljYXNlIFdCQ19FUlJfV0lOQklORF9OT1RfQVZBSUxBQkxFOgotCQkJCWlmIChy
ZXF1aXJlX3BhYykgewotCQkJCQlzdGF0dXMgPSBOVF9TVEFUVVNfTk9fTE9HT05fU0VSVkVS
UzsKLQkJCQkJREJHX0VSUigid2luYmluZGQgbm90IHJ1bm5pbmcgLSAiCi0JCQkJCQkiYnV0
IHJlcXVpcmVkIGFzIGRvbWFpbiBtZW1iZXI6ICIKLQkJCQkJCSJwcmluY19uYW1lWyVzXSAl
c1xuIiwKLQkJCQkJCXByaW5jX25hbWUsIG50X2VycnN0cihzdGF0dXMpKTsKLQkJCQkJZ290
byBkb25lOwotCQkJCX0KKwkJCQkvL2lmIChyZXF1aXJlX3BhYykgeworCQkJCS8vCXN0YXR1
cyA9IE5UX1NUQVRVU19OT19MT0dPTl9TRVJWRVJTOworCQkJCS8vCURCR19FUlIoIndpbmJp
bmRkIG5vdCBydW5uaW5nIC0gIgorCQkJCS8vCQkiYnV0IHJlcXVpcmVkIGFzIGRvbWFpbiBt
ZW1iZXI6ICIKKwkJCQkvLwkJInByaW5jX25hbWVbJXNdICVzXG4iLAorCQkJCS8vCQlwcmlu
Y19uYW1lLCBudF9lcnJzdHIoc3RhdHVzKSk7CisJCQkJLy8JZ290byBkb25lOworCQkJCS8v
fQogCQkJCS8vRkFMTF9USFJPVUdIOwogCQkJY2FzZSBXQkNfRVJSX1NVQ0NFU1M6CiAJCQkJ
YnJlYWs7Ci0tIAoyLjE3LjEKCgpGcm9tIGIwZGQ5MWIxMTgwYTY1YjQ4NzY1YzdiNzAzNzE2
MjhiYzk3MzE1NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6
bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6
MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzI1XSBVUFNUUkVBTS1GSVJTVCEhISBIRUlN
REFMOmxpYi9rcmI1OiBhZGQKIGtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlfYXBfcmVxX2Zs
YWdzKCkKCkluIHRoZSBuZXh0IGNvbW1pdHMgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHBhc3Mg
ZG93bgp0aGluZ3MgbGlrZSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNL
LgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5
MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+
Ci0tLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L3JkX3JlcS5jICAgICAgICAgICB8IDE4
ICsrKysrKysrKysrKysrKystLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L3ZlcnNpb24t
c2NyaXB0Lm1hcCB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwg
MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUv
cmRfcmVxLmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggMjFk
YWViNTk2YjU1Li43NmQ1Y2FhZGIzMTggMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9s
aWIva3JiNS9yZF9yZXEuYworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVx
LmMKQEAgLTUxOSw2ICs1MTksNyBAQCBzdHJ1Y3Qga3JiNV9yZF9yZXFfaW5fY3R4X2RhdGEg
ewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKICAgICBrcmI1X2tleWJsb2NrICprZXlibG9j
azsKICAgICBrcmI1X2Jvb2xlYW4gY2hlY2tfcGFjOworICAgIGtyYjVfZmxhZ3MgdmVyaWZ5
X2FwX3JlcV9mbGFnczsKIH07CiAKIHN0cnVjdCBrcmI1X3JkX3JlcV9vdXRfY3R4X2RhdGEg
ewpAQCAtNTc3LDYgKzU3OCwxNSBAQCBrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiKGtyYjVf
Y29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQogCitLUkI1X0xJQl9GVU5DVElP
TiBrcmI1X2Vycm9yX2NvZGUgS1JCNV9MSUJfQ0FMTAora3JiNV9yZF9yZXFfaW5fc2V0X3Zl
cmlmeV9hcF9yZXFfZmxhZ3Moa3JiNV9jb250ZXh0IGNvbnRleHQsCisJCQkgICAgIGtyYjVf
cmRfcmVxX2luX2N0eCBpbiwKKwkJCSAgICAga3JiNV9mbGFncyBmbGFncykKK3sKKyAgICBp
bi0+dmVyaWZ5X2FwX3JlcV9mbGFncyA9IGZsYWdzOworICAgIHJldHVybiAwOworfQorCiAv
KioKICAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGNoZWNrIHRoZSBXaW5k
b3dzIFBBQyBvciBub3QKICAqCkBAIC04NTAsNiArODYwLDcgQEAga3JiNV9yZF9yZXFfY3R4
KGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIGtyYjVfcmRfcmVxX291dF9jdHggbyA9IE5V
TEw7CiAgICAga3JiNV9rZXl0YWIgaWQgPSBOVUxMLCBrZXl0YWIgPSBOVUxMOwogICAgIGty
YjVfcHJpbmNpcGFsIHNlcnZpY2UgPSBOVUxMOworICAgIGtyYjVfZmxhZ3MgdmVyaWZ5X2Fw
X3JlcV9mbGFncyA9IDA7CiAKICAgICAqb3V0Y3R4ID0gTlVMTDsKIApAQCAtODkwLDYgKzkw
MSw5IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1X2NvbnRleHQgY29udGV4dCwKICAgICBpZiAo
aW5jdHggJiYgaW5jdHgtPmtleXRhYikKIAlpZCA9IGluY3R4LT5rZXl0YWI7CiAKKyAgICBp
ZiAoaW5jdHgpCisgICAgICAgIHZlcmlmeV9hcF9yZXFfZmxhZ3MgPSBpbmN0eC0+dmVyaWZ5
X2FwX3JlcV9mbGFnczsKKwogICAgIGlmKCgqYXV0aF9jb250ZXh0KS0+a2V5YmxvY2spewog
CXJldCA9IGtyYjVfY29weV9rZXlibG9jayhjb250ZXh0LAogCQkJCSAoKmF1dGhfY29udGV4
dCktPmtleWJsb2NrLApAQCAtOTQ3LDcgKzk2MSw3IEBAIGtyYjVfcmRfcmVxX2N0eChrcmI1
X2NvbnRleHQgY29udGV4dCwKIAkJCQkgICZhcF9yZXEsCiAJCQkJICBzZXJ2ZXIsCiAJCQkJ
ICBvLT5rZXlibG9jaywKLQkJCQkgIDAsCisJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzLAog
CQkJCSAgJm8tPmFwX3JlcV9vcHRpb25zLAogCQkJCSAgJm8tPnRpY2tldCwKIAkJCQkgIEtS
QjVfS1VfQVBfUkVRX0FVVEgpOwpAQCAtOTk1LDcgKzEwMDksNyBAQCBrcmI1X3JkX3JlcV9j
dHgoa3JiNV9jb250ZXh0IGNvbnRleHQsCiAJCQkJICAgICAgJmFwX3JlcSwKIAkJCQkgICAg
ICBzZXJ2ZXIsCiAJCQkJICAgICAgJmVudHJ5LmtleWJsb2NrLAotCQkJCSAgICAgIDAsCisJ
CQkJICAgICAgdmVyaWZ5X2FwX3JlcV9mbGFncywKIAkJCQkgICAgICAmby0+YXBfcmVxX29w
dGlvbnMsCiAJCQkJICAgICAgJm8tPnRpY2tldCwKIAkJCQkgICAgICBLUkI1X0tVX0FQX1JF
UV9BVVRIKTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9u
LXNjcmlwdC5tYXAgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQu
bWFwCmluZGV4IGRkYWUyYTA2NzY0NS4uN2I0OWMxNWRmYzBlIDEwMDY0NAotLS0gYS9zb3Vy
Y2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFwCisrKyBiL3NvdXJjZTQv
aGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAKQEAgLTUyOSw2ICs1MjksNyBA
QCBIRUlNREFMX0tSQjVfMi4wIHsKIAkJa3JiNV9yZF9yZXFfaW5fc2V0X2tleWJsb2NrOwog
CQlrcmI1X3JkX3JlcV9pbl9zZXRfa2V5dGFiOwogCQlrcmI1X3JkX3JlcV9pbl9zZXRfcGFj
X2NoZWNrOworCQlrcmI1X3JkX3JlcV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFnczsKIAkJ
a3JiNV9yZF9yZXFfb3V0X2N0eF9mcmVlOwogCQlrcmI1X3JkX3JlcV9vdXRfZ2V0X2FwX3Jl
cV9vcHRpb25zOwogCQlrcmI1X3JkX3JlcV9vdXRfZ2V0X2tleWJsb2NrOwotLSAKMi4xNy4x
CgoKRnJvbSA4NTNmMzczNzgwMGY1YTg0YzFhNjE3MDc1NTIyZmJkNjE3NTljNmQ1IE1vbiBT
ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft
YmEub3JnPgpEYXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE1OjMzOjE3ICswMjAwClN1YmplY3Q6
IFtQQVRDSCAwOS8yNV0gVVBTVFJFQU0tRklSU1QhISEgSEVJTURBTDpsaWIva3JiNTogYWRk
CiBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLCgpJbiBhY3RpdmUgZGly
ZWN0b3J5IGEgZG9tYWluIG1lbWJlciByZXBsaWVzIG9uICh0cnVzdHMpIHRoZSBbS11EQ3MK
b2YgdGhlIGRvbWFpbi4gSXQncyB0aGUgam9iIG9mIHRoZSBbS11EQ3MgdG8gb25seSBnZW5l
cmF0ZSB1c2VmdWwKdGlja2V0cyBhcyB0aGV5IGtub3cgYWJvdXQgdGhlIHRydXN0IHRvcG9s
b2d5LgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5v
cmc+Ci0tLQogc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L2tyYjUuaCAgIHwgMSArCiBzb3Vy
Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2Vk
LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zb3VyY2U0
L2hlaW1kYWwvbGliL2tyYjUva3JiNS5oIGIvc291cmNlNC9oZWltZGFsL2xpYi9rcmI1L2ty
YjUuaAppbmRleCA5YzBmNTY2OTQ2NmMuLjAzMTE5ZmE3ODMyMSAxMDA2NDQKLS0tIGEvc291
cmNlNC9oZWltZGFsL2xpYi9rcmI1L2tyYjUuaAorKysgYi9zb3VyY2U0L2hlaW1kYWwvbGli
L2tyYjUva3JiNS5oCkBAIC00MjIsNiArNDIyLDcgQEAgdHlwZWRlZiB1bmlvbiB7CiAvKiBm
bGFncyBmb3Iga3JiNV92ZXJpZnlfYXBfcmVxICovCiAKICNkZWZpbmUgS1JCNV9WRVJJRllf
QVBfUkVRX0lHTk9SRV9JTlZBTElECSgxIDw8IDApCisjZGVmaW5lIEtSQjVfVkVSSUZZX0FQ
X1JFUV9OT19UUkFOU0lURURfQ0hFQ0sJKDEgPDwgMSkKIAogI2RlZmluZSBLUkI1X0dDX0NB
Q0hFRAkJCSgxVSA8PCAwKQogI2RlZmluZSBLUkI1X0dDX1VTRVJfVVNFUgkJKDFVIDw8IDEp
CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3Vy
Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggNzZkNWNhYWRiMzE4Li4xYTFj
MzFkOGQ4YmEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEu
YworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTI1Myw3ICsy
NTMsOCBAQCBrcmI1X2RlY3J5cHRfdGlja2V0KGtyYjVfY29udGV4dCBjb250ZXh0LAogCSAg
ICByZXR1cm4gS1JCNUtSQl9BUF9FUlJfVEtUX0VYUElSRUQ7CiAJfQogCi0JaWYoIXQuZmxh
Z3MudHJhbnNpdGVkX3BvbGljeV9jaGVja2VkKSB7CisJaWYoIXQuZmxhZ3MudHJhbnNpdGVk
X3BvbGljeV9jaGVja2VkCisJICAgJiYgIShmbGFncyAmIEtSQjVfVkVSSUZZX0FQX1JFUV9O
T19UUkFOU0lURURfQ0hFQ0spKSB7CiAJICAgIHJldCA9IGNoZWNrX3RyYW5zaXRlZChjb250
ZXh0LCB0aWNrZXQsICZ0KTsKIAkgICAgaWYocmV0KSB7CiAJCWZyZWVfRW5jVGlja2V0UGFy
dCgmdCk7Ci0tIAoyLjE3LjEKCgpGcm9tIDc1ZjAzMzUxZTZmMjg5YTgxZDU3MGMzYzY5ODkx
NjYwNzNhZjIxOGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6
bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IEZyaSwgMTggQXVnIDIwMTcgMTU6MzM6
MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzI1XSBVUFNUUkVBTS1GSVJTVCEhISBIRUlN
REFMOmxpYi9nc3NhcGkva3JiNTogYWRkCiBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hF
Q0tfWAoKVGhpcyBhbGxvd3MgS1JCNV9HQ19OT19UUkFOU0lUX0NIRUNLIChvbiB0aGUgaW5p
dGlhdG9yKSBhbmQKS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5TSVRFRF9DSEVDSyAob24g
dGhlIGFjY2VwdG9yKSB0bwpiZSBjb250cm9sbGVkIHZpYSB0aGUgZ3NzYXBpIGxheWVyLgoK
QlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcK
ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0t
LQogLi4uL2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oICAgIHwgIDMg
KysrCiAuLi4vbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9zZWNfY29udGV4dC5jICAgICAgfCAx
MSArKysrKysrKy0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wu
aCAgICB8ICAxICsKIC4uLi9saWIvZ3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jICAg
ICAgICB8IDE2ICsrKysrKysrLS0tLS0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9z
ZXRfY3JlZF9vcHRpb24uYyB8IDI0ICsrKysrKysrKysrKysrKysrKysKIHNvdXJjZTQvaGVp
bWRhbC9saWIvZ3NzYXBpL21lY2gvZ3NzX29pZC5jICAgICB8ICAzICsrKwogc291cmNlNC9o
ZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwIHwgIDEgKwogNyBmaWxlcyBj
aGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9zb3Vy
Y2U0L2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCmluZGV4IDNkMDBj
MDYwZDEwZC4uMGVlZDYzOWQ1M2UxIDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGli
L2dzc2FwaS9nc3NhcGkvZ3NzYXBpX29pZC5oCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIv
Z3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmgKQEAgLTk2LDYgKzk2LDkgQEAgZXh0ZXJuIEdT
U0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2NfbnRsbV9mb3JjZV92MV9v
aWRfZGVzYzsKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dz
c19rcmI1X2NyZWRfbm9fY2lfZmxhZ3NfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVf
Q1JFRF9OT19DSV9GTEFHU19YICgmX19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lk
X2Rlc2MpCiAKK2V4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdzc19PSURfZGVzYyBfX2dz
c19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOworI2RlZmluZSBHU1Nf
S1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCAoJl9fZ3NzX2tyYjVfY3JlZF9ub190cmFu
c2l0X2NoZWNrX3hfb2lkX2Rlc2MpCisKIGV4dGVybiBHU1NBUElfTElCX1ZBUklBQkxFIGdz
c19PSURfZGVzYyBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAjZGVmaW5l
IEdTU19LUkI1X0lNUE9SVF9DUkVEX1ggKCZfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lk
X2Rlc2MpCiAKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUv
YWNjZXB0X3NlY19jb250ZXh0LmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1
L2FjY2VwdF9zZWNfY29udGV4dC5jCmluZGV4IGNmZTI3YWNlODc1ZS4uMmU0ZWQ1M2JhMDhl
IDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2FjY2VwdF9z
ZWNfY29udGV4dC5jCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvYWNj
ZXB0X3NlY19jb250ZXh0LmMKQEAgLTM5OCwxMyArMzk4LDIyIEBAIGdzc2tyYjVfYWNjZXB0
b3Jfc3RhcnQoT01fdWludDMyICogbWlub3Jfc3RhdHVzLAogCWtyYjVfcmRfcmVxX2luX2N0
eCBpbiA9IE5VTEw7CiAJa3JiNV9yZF9yZXFfb3V0X2N0eCBvdXQgPSBOVUxMOwogCWtyYjVf
cHJpbmNpcGFsIHNlcnZlciA9IE5VTEw7CisJa3JiNV9mbGFncyB2ZXJpZnlfYXBfcmVxX2Zs
YWdzID0gMDsKIAotCWlmIChhY2NlcHRvcl9jcmVkKQorCWlmIChhY2NlcHRvcl9jcmVkKSB7
CiAJICAgIHNlcnZlciA9IGFjY2VwdG9yX2NyZWQtPnByaW5jaXBhbDsKIAorCSAgICBpZiAo
YWNjZXB0b3JfY3JlZC0+Y3JlZF9mbGFncyAmIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLKSB7
CisJCXZlcmlmeV9hcF9yZXFfZmxhZ3MgfD0gS1JCNV9WRVJJRllfQVBfUkVRX05PX1RSQU5T
SVRFRF9DSEVDSzsKKwkgICAgfQorCX0KKwogCWtyZXQgPSBrcmI1X3JkX3JlcV9pbl9jdHhf
YWxsb2MoY29udGV4dCwgJmluKTsKIAlpZiAoa3JldCA9PSAwKQogCSAgICBrcmV0ID0ga3Ji
NV9yZF9yZXFfaW5fc2V0X2tleXRhYihjb250ZXh0LCBpbiwga2V5dGFiKTsKKwlpZiAoa3Jl
dCA9PSAwKQorCSAgICBrcmV0ID0ga3JiNV9yZF9yZXFfaW5fc2V0X3ZlcmlmeV9hcF9yZXFf
ZmxhZ3MoY29udGV4dCwgaW4sCisJCQkJCQkJICB2ZXJpZnlfYXBfcmVxX2ZsYWdzKTsKIAlp
ZiAoa3JldCkgewogCSAgICBpZiAoaW4pCiAJCWtyYjVfcmRfcmVxX2luX2N0eF9mcmVlKGNv
bnRleHQsIGluKTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2ty
YjUvZ3Nza3JiNV9sb2NsLmggYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2dz
c2tyYjVfbG9jbC5oCmluZGV4IDZiOWIwM2YzNDkwOC4uNmExZTk3NzQ1MmNmIDEwMDY0NAot
LS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9rcmI1L2dzc2tyYjVfbG9jbC5oCisr
KyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKQEAg
LTk0LDYgKzk0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICBpbnQgY3JlZF9mbGFnczsKICNk
ZWZpbmUgR1NTX0NGX0RFU1RST1lfQ1JFRF9PTl9SRUxFQVNFCTEKICNkZWZpbmUgR1NTX0NG
X05PX0NJX0ZMQUdTCQkyCisjZGVmaW5lIEdTU19DRl9OT19UUkFOU0lUX0NIRUNLCQk0CiAg
IHN0cnVjdCBrcmI1X2tleXRhYl9kYXRhICprZXl0YWI7CiAgIE9NX3VpbnQzMiBsaWZldGlt
ZTsKICAgZ3NzX2NyZWRfdXNhZ2VfdCB1c2FnZTsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVp
bWRhbC9saWIvZ3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jIGIvc291cmNlNC9oZWlt
ZGFsL2xpYi9nc3NhcGkva3JiNS9pbml0X3NlY19jb250ZXh0LmMKaW5kZXggMGE4OWFlMWYz
NmNmLi4yZjU1ZjI3MDAwYzIgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3Nz
YXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIv
Z3NzYXBpL2tyYjUvaW5pdF9zZWNfY29udGV4dC5jCkBAIC0yMDUsNiArMjA1LDcgQEAgZ3Nz
a3JiNV9nZXRfY3JlZHMoCiAgICAgICAgIE9NX3VpbnQzMiAqIG1pbm9yX3N0YXR1cywKIAlr
cmI1X2NvbnRleHQgY29udGV4dCwKIAlrcmI1X2NjYWNoZSBjY2FjaGUsCisJa3JiNV9mbGFn
cyBvcHRpb25zLAogCWdzc2tyYjVfY3R4IGN0eCwKIAljb25zdCBnc3NfbmFtZV90IHRhcmdl
dF9uYW1lLAogCWludCB1c2VfZG5zLApAQCAtMjQ2LDcgKzI0Nyw3IEBAIGdzc2tyYjVfZ2V0
X2NyZWRzKAogICAgIHRoaXNfY3JlZC5zZXNzaW9uLmtleXR5cGUgPSBLRVlUWVBFX05VTEw7
CiAKICAgICBrcmV0ID0ga3JiNV9nZXRfY3JlZGVudGlhbHMoY29udGV4dCwKLQkJCQkwLAor
CQkJCW9wdGlvbnMsCiAJCQkJY2NhY2hlLAogCQkJCSZ0aGlzX2NyZWQsCiAJCQkJJmN0eC0+
a2NyZWQpOwpAQCAtMzk3LDYgKzM5OCw3IEBAIGluaXRfYXV0aAogICAgIGtyYjVfZGF0YSBm
d2RfZGF0YTsKICAgICBPTV91aW50MzIgbGlmZXRpbWVfcmVjOwogICAgIGludCBhbGxvd19k
bnMgPSAxOworICAgIGtyYjVfZmxhZ3Mgb3B0aW9ucyA9IDA7CiAKICAgICBrcmI1X2RhdGFf
emVybygmb3V0YnVmKTsKICAgICBrcmI1X2RhdGFfemVybygmZndkX2RhdGEpOwpAQCAtNDE0
LDggKzQxNiwxMiBAQCBpbml0X2F1dGgKIAkgICAgZ290byBmYWlsdXJlOwogCX0KIAljdHgt
Pm1vcmVfZmxhZ3MgfD0gQ0xPU0VfQ0NBQ0hFOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7
CiAJY3R4LT5jY2FjaGUgPSBjcmVkLT5jY2FjaGU7CisJaWYgKGNyZWQtPmNyZWRfZmxhZ3Mg
JiBHU1NfQ0ZfTk9fVFJBTlNJVF9DSEVDSykgeworCSAgICBvcHRpb25zIHw9IEtSQjVfR0Nf
Tk9fVFJBTlNJVF9DSEVDSzsKKwl9CisgICAgfQogCiAgICAga3JldCA9IGtyYjVfY2NfZ2V0
X3ByaW5jaXBhbCAoY29udGV4dCwgY3R4LT5jY2FjaGUsICZjdHgtPnNvdXJjZSk7CiAgICAg
aWYgKGtyZXQpIHsKQEAgLTQ1NSwxMiArNDYxLDEwIEBAIGluaXRfYXV0aAogICAgICAqIERO
UyBjYW5vbmljYWxpemlvbi4KICAgICAgKi8KICAgICByZXQgPSBnc3NrcmI1X2dldF9jcmVk
cyhtaW5vcl9zdGF0dXMsIGNvbnRleHQsIGN0eC0+Y2NhY2hlLAotCQkJICAgIGN0eCwgbmFt
ZSwgMCwgdGltZV9yZXEsCi0JCQkgICAgdGltZV9yZWMpOworCQkJICAgIG9wdGlvbnMsIGN0
eCwgbmFtZSwgMCwgdGltZV9yZXEsIHRpbWVfcmVjKTsKICAgICBpZiAocmV0ICYmIGFsbG93
X2RucykKIAlyZXQgPSBnc3NrcmI1X2dldF9jcmVkcyhtaW5vcl9zdGF0dXMsIGNvbnRleHQs
IGN0eC0+Y2NhY2hlLAotCQkJCWN0eCwgbmFtZSwgMSwgdGltZV9yZXEsCi0JCQkJdGltZV9y
ZWMpOworCQkJCW9wdGlvbnMsIGN0eCwgbmFtZSwgMSwgdGltZV9yZXEsIHRpbWVfcmVjKTsK
ICAgICBpZiAocmV0KQogCWdvdG8gZmFpbHVyZTsKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9o
ZWltZGFsL2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYyBiL3NvdXJjZTQvaGVp
bWRhbC9saWIvZ3NzYXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKaW5kZXggYmQzODcxNjc1
MTA5Li44ZDlmNDk4ODQ4ODQgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3Nz
YXBpL2tyYjUvc2V0X2NyZWRfb3B0aW9uLmMKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9n
c3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwpAQCAtMjE2LDYgKzIxNiwyNiBAQCBub19j
aV9mbGFncyhPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKIH0KIAogCitzdGF0aWMgT01fdWlu
dDMyCitub190cmFuc2l0X2NoZWNrKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkga3Ji
NV9jb250ZXh0IGNvbnRleHQsCisJCSBnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwKKwkJ
IGNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3JlZDsK
KworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBHU1Nf
Q19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdTU19T
X0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRfaGFu
ZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX05PX1RSQU5TSVRfQ0hFQ0s7
CisKKyAgICAqbWlub3Jfc3RhdHVzID0gMDsKKyAgICByZXR1cm4gR1NTX1NfQ09NUExFVEU7
Cit9CisKIE9NX3VpbnQzMiBHU1NBUElfQ0FMTENPTlYKIF9nc3NrcmI1X3NldF9jcmVkX29w
dGlvbgogICAgICAgICAgICAoT01fdWludDMyICptaW5vcl9zdGF0dXMsCkBAIC0yNDMsNiAr
MjYzLDEwIEBAIF9nc3NrcmI1X3NldF9jcmVkX29wdGlvbgogICAgIH0KIAogCisgICAgaWYg
KGdzc19vaWRfZXF1YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJ
VF9DSEVDS19YKSkgeworCXJldHVybiBub190cmFuc2l0X2NoZWNrKG1pbm9yX3N0YXR1cywg
Y29udGV4dCwgY3JlZF9oYW5kbGUsIHZhbHVlKTsKKyAgICB9CisKICAgICAqbWlub3Jfc3Rh
dHVzID0gRUlOVkFMOwogICAgIHJldHVybiBHU1NfU19GQUlMVVJFOwogfQpkaWZmIC0tZ2l0
IGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvbWVjaC9nc3Nfb2lkLmMgYi9zb3VyY2U0
L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYwppbmRleCA5MTZkMWU0ZGRhNWUu
LjZmODZlZWM2NWMzOSAxMDA2NDQKLS0tIGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkv
bWVjaC9nc3Nfb2lkLmMKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvbWVjaC9n
c3Nfb2lkLmMKQEAgLTk0LDYgKzk0LDkgQEAgZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFS
SUFCTEUgX19nc3Nfa3JiNV9jcmVkX25vX2NpX2ZsYWdzX3hfb2lkX2Rlc2MgPSB7IDYsIHIK
IC8qIEdTU19LUkI1X0lNUE9SVF9DUkVEX1ggLSAxLjIuNzUyLjQzLjEzLjMwICovCiBnc3Nf
T0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hf
b2lkX2Rlc2MgPSB7IDYsIHJrX1VOQ09OU1QoIlx4MmFceDg1XHg3MFx4MmJceDBkXHgxZSIp
IH07CiAKKy8qIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YIC0gMS4yLjc1Mi40
My4xMy4zMSAqLworZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3Nfa3Ji
NV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9vaWRfZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgi
XHgyYVx4ODVceDcwXHgyYlx4MGRceDFmIikgfTsKKwogLyogR1NTX0NfTUFfU0FTTF9NRUNI
X05BTUUgLSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9kZXNjIEdTU0FQSV9MSUJf
VkFSSUFCTEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRfZGVzYyA9IHsgNiwgcmtf
VU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsKIApkaWZmIC0tZ2l0IGEv
c291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwIGIvc291cmNl
NC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IGJjYjc5YmY4
Zjc2ZS4uNzc2ZmUxOWRiZjNjIDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dz
c2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3Nh
cGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0xNTQsNiArMTU0LDcgQEAgSEVJTURBTF9HU1Nf
Mi4wIHsKIAkJX19nc3NfY19udGxtX3Nlc3Npb25fa2V5X29pZF9kZXNjOwogCQlfX2dzc19j
X250bG1fZm9yY2VfdjFfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFn
c194X29pZF9kZXNjOworCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29p
ZF9kZXNjOwogCQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7CiAJCV9fZ3Nz
X2NfbWFfc2FzbF9tZWNoX25hbWVfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbWFfbWVjaF9uYW1l
X29pZF9kZXNjOwotLSAKMi4xNy4xCgoKRnJvbSBmMjI3NWM1MjhlZjVmNGE1NDgyMzU2ZjU1
MjQ0Y2M4NGU1YWQyNGIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4g
TWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBTYXQsIDIwIEp1bCAyMDE5IDEw
OjE1OjA0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMS8yNV0gVVBTVFJFQU0tRklSU1QhISEg
SEVJTURBTDpsaWIva3JiNTogbGV0CiBrcmI1X3JkX3JlcV9jdHgoKSBmYWxsYmFjayBvbmx5
IG9uIEtSQjVLUkJfQVBfRVJSX0JBRF9JTlRFR1JJVFkKClRoaXMgYXZvaWRzIGhpZGRpbmcg
YSByZWFsIGVycm9yIGxpa2UgS1JCNUtSQl9BUF9FUlJfSUxMX0NSX1RLVC4KCldlIG9ubHkg
d2FudCB0byByZXRyeSB3aXRoIHRoZSBuZXh0IGtleSBpZiB0aGUgZGVjcnlwdGlvbgpmYWls
ZWQuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDEyNQoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9y
Zz4KLS0tCiBzb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgfCA3ICsrKysrKy0K
IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3VyY2U0L2hl
aW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKaW5kZXggMWExYzMxZDhkOGJhLi5hZWY0MmQ4YjRm
ZmMgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEuYworKysg
Yi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTEwMTQsMTAgKzEwMTQs
MTUgQEAga3JiNV9yZF9yZXFfY3R4KGtyYjVfY29udGV4dCBjb250ZXh0LAogCQkJCSAgICAg
ICZvLT5hcF9yZXFfb3B0aW9ucywKIAkJCQkgICAgICAmby0+dGlja2V0LAogCQkJCSAgICAg
IEtSQjVfS1VfQVBfUkVRX0FVVEgpOwotCSAgICBpZiAocmV0KSB7CisJICAgIGlmIChyZXQg
PT0gS1JCNUtSQl9BUF9FUlJfQkFEX0lOVEVHUklUWSkgeworCQkvKiBmYWlsZWQgdG8gZGVj
cnlwdCwgdHJ5IHRoZSBuZXh0IGtleSAqLwogCQlrcmI1X2t0X2ZyZWVfZW50cnkgKGNvbnRl
eHQsICZlbnRyeSk7CiAJCWNvbnRpbnVlOwogCSAgICB9CisJICAgIGlmIChyZXQpIHsKKwkJ
a3JiNV9rdF9mcmVlX2VudHJ5IChjb250ZXh0LCAmZW50cnkpOworCQlnb3RvIG91dDsKKwkg
ICAgfQogCiAJICAgIC8qCiAJICAgICAqIEZvdW5kIGEgbWF0Y2gsIHNhdmUgdGhlIGtleWJs
b2NrIGZvciBQQUMgcHJvY2Vzc2luZywKLS0gCjIuMTcuMQoKCkZyb20gMmU4YTYyYjI5NzVm
ZGQ2ZmM2ZDNhZWU1YWQ5ZjBhMDM3OWQwZWZiMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK
RnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogU2F0LCAy
MCBKdWwgMjAxOSAxMDoxNTowNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjVdIFVQU1RS
RUFNLUZJUlNUISEhIEhFSU1EQUw6bGliL2tyYjU6IGFkZAoga3JiNV9yZF9yZXFfaW5fc2V0
X2l0ZXJhdGVfa2V5dGFiKCkKCkEgY2FsbGVyIG1pZ2h0IG5vdCBrbm93IHRoZSBrdm5vIG1h
aW50YWluZWQgYnkgdGhlIEtEQy4KQW5kIG1vc3Qgb2Z0ZW4gdGhlcmUncyBuZWVkIHRvIGtu
b3cgaXQuCgpTbyB0aGlzIGZ1bmN0aW9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZvcmNlIHRo
ZSBrZXl0YWIKaXRlcmF0aW9uIGluIG9yZGVyIHRvIGdldCBhIGNvbnNpc3RlbnQgYmVoYXZp
b3IuCk90aGVyd2lzZSBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIGRpZmZlcmVudCBiZWhhdmlv
cgppZiB0aGUgZ3Vlc3NlZCBrdm5vIGluIHRoZSBrZXl0YWIgYWNjaWRlbnRhbGx5IG1hdGNo
ZXMKdGhlIGt2bm8gb2YgdGhlIHRpY2tldCBhbmQgd2UnbGwgZ2l2ZSB1cCBpZiB0aGUKa2V5
IGlzIG5vdCBhYmxlIHRvIGRlY3J5cHQgdGhlIHRpY2tldC4KCkJVRzogaHR0cHM6Ly9idWd6
aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBT
dGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTQvaGVpbWRh
bC9saWIva3JiNS9yZF9yZXEuYyAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysr
KysKIHNvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgfCAgMSAr
CiAyIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zb3Vy
Y2U0L2hlaW1kYWwvbGliL2tyYjUvcmRfcmVxLmMgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2ty
YjUvcmRfcmVxLmMKaW5kZXggYWVmNDJkOGI0ZmZjLi40ZWEzY2VlOTU5ZGMgMTAwNjQ0Ci0t
LSBhL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS9yZF9yZXEuYworKysgYi9zb3VyY2U0L2hl
aW1kYWwvbGliL2tyYjUvcmRfcmVxLmMKQEAgLTUxOCw2ICs1MTgsNyBAQCBrcmI1X3Zlcmlm
eV9hcF9yZXEyKGtyYjVfY29udGV4dCBjb250ZXh0LAogCiBzdHJ1Y3Qga3JiNV9yZF9yZXFf
aW5fY3R4X2RhdGEgewogICAgIGtyYjVfa2V5dGFiIGtleXRhYjsKKyAgICBrcmI1X2Jvb2xl
YW4gaXRlcmF0ZV9rZXl0YWI7CiAgICAga3JiNV9rZXlibG9jayAqa2V5YmxvY2s7CiAgICAg
a3JiNV9ib29sZWFuIGNoZWNrX3BhYzsKICAgICBrcmI1X2ZsYWdzIHZlcmlmeV9hcF9yZXFf
ZmxhZ3M7CkBAIC01ODgsNiArNTg5LDI3IEBAIGtyYjVfcmRfcmVxX2luX3NldF92ZXJpZnlf
YXBfcmVxX2ZsYWdzKGtyYjVfY29udGV4dCBjb250ZXh0LAogICAgIHJldHVybiAwOwogfQog
CisvKioKKyAqIFNldCBpZiBrcmI1X3JxX3JlZCgpIGlzIGdvaW5nIHRvIGl0ZXJhdGUgdGhl
IGtleXRhYiB0byBmaW5kIGEga2V5CisgKgorICogQHBhcmFtIGNvbnRleHQgS2ViZXJvcyA1
IGNvbnRleHQuCisgKiBAcGFyYW0gaW4ga3JiNV9yZF9yZXFfaW5fY3R4IHRvIGNoZWNrIHRo
ZSBvcHRpb24gb24uCisgKiBAcGFyYW0gZmxhZyBmbGFnIHRvIHNlbGVjdCBpZiB0aGUga2V5
dGFiIHNob3VsZCBiZSBpdGVyYXRlZCAoVFJVRSkgb3Igbm90IChGQUxTRSkuCisgKgorICog
QHJldHVybiBLZXJiZXJvcyA1IGVycm9yIGNvZGUsIHNlZSBrcmI1X2dldF9lcnJvcl9tZXNz
YWdlKCkuCisgKgorICogQGluZ3JvdXAga3JiNV9hdXRoCisgKi8KKworS1JCNV9MSUJfRlVO
Q1RJT04ga3JiNV9lcnJvcl9jb2RlIEtSQjVfTElCX0NBTEwKK2tyYjVfcmRfcmVxX2luX3Nl
dF9pdGVyYXRlX2tleXRhYihrcmI1X2NvbnRleHQgY29udGV4dCwKKwkJCQkgIGtyYjVfcmRf
cmVxX2luX2N0eCBpbiwKKwkJCQkgIGtyYjVfYm9vbGVhbiBmbGFnKQoreworICAgIGluLT5p
dGVyYXRlX2tleXRhYiA9IGZsYWc7CisgICAgcmV0dXJuIDA7Cit9CisKIC8qKgogICogU2V0
IGlmIGtyYjVfcnFfcmVkKCkgaXMgZ29pbmcgdG8gY2hlY2sgdGhlIFdpbmRvd3MgUEFDIG9y
IG5vdAogICoKQEAgLTkxNyw2ICs5MzksMTEgQEAga3JiNV9yZF9yZXFfY3R4KGtyYjVfY29u
dGV4dCBjb250ZXh0LAogCQkJCSAmby0+a2V5YmxvY2spOwogCWlmIChyZXQpCiAJICAgIGdv
dG8gb3V0OworICAgIH0gZWxzZSBpZiAoaWQgJiYgaW5jdHggJiYgaW5jdHgtPml0ZXJhdGVf
a2V5dGFiKSB7CisJICAgIC8qCisJICAgICAqIEZvcmNlIGl0ZXJhdGluZyBvdmVyIHRoZSBr
ZXl0YWIuCisJICAgICAqLworCSAgICBvLT5rZXlibG9jayA9IE5VTEw7CiAgICAgfSBlbHNl
IHsKIAogCWlmKGlkID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9s
aWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUv
dmVyc2lvbi1zY3JpcHQubWFwCmluZGV4IDdiNDljMTVkZmMwZS4uYjE4YTFjNWQ3Mzc1IDEw
MDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2tyYjUvdmVyc2lvbi1zY3JpcHQubWFw
CisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIva3JiNS92ZXJzaW9uLXNjcmlwdC5tYXAKQEAg
LTUyNiw2ICs1MjYsNyBAQCBIRUlNREFMX0tSQjVfMi4wIHsKIAkJa3JiNV9yZF9yZXFfY3R4
OwogCQlrcmI1X3JkX3JlcV9pbl9jdHhfYWxsb2M7CiAJCWtyYjVfcmRfcmVxX2luX2N0eF9m
cmVlOworCQlrcmI1X3JkX3JlcV9pbl9zZXRfaXRlcmF0ZV9rZXl0YWI7CiAJCWtyYjVfcmRf
cmVxX2luX3NldF9rZXlibG9jazsKIAkJa3JiNV9yZF9yZXFfaW5fc2V0X2tleXRhYjsKIAkJ
a3JiNV9yZF9yZXFfaW5fc2V0X3BhY19jaGVjazsKLS0gCjIuMTcuMQoKCkZyb20gZDZhOWE0
N2M3MmNiZWU3OGMzYjk3YzM2ZDdkYjk5Nzc2NTVlNGJjZCBNb24gU2VwIDE3IDAwOjAwOjAw
IDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTog
VGh1LCAyMiBBdWcgMjAxOSAxMDozMDowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjVd
IFVQU1RSRUFNLUZJUlNUISEhIEhFSU1EQUw6bGliL2dzc2FwaS9rcmI1OiBhZGQKIEdTU19L
UkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWAoKVGhpcyBhbGxvd3Mga3JiNV9y
ZF9yZXFfaW5fc2V0X2l0ZXJhdGVfa2V5dGFiKCkgdG8gYmUgdXNlZCB2aWEgdGhlCmdzc2Fw
aSBsYXllci4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2Ft
YmEub3JnPgotLS0KIC4uLi9oZWltZGFsL2xpYi9nc3NhcGkvZ3NzYXBpL2dzc2FwaV9vaWQu
aCAgICB8ICAzICsrKwogLi4uL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQu
YyAgICAgIHwgIDcgKysrKysrCiAuLi4vaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3Ji
NV9sb2NsLmggICAgfCAgMSArCiAuLi4vaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvc2V0X2Ny
ZWRfb3B0aW9uLmMgfCAyMiArKysrKysrKysrKysrKysrKysrCiBzb3VyY2U0L2hlaW1kYWwv
bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyAgICAgfCAgMyArKysKIHNvdXJjZTQvaGVpbWRh
bC9saWIvZ3NzYXBpL3ZlcnNpb24tc2NyaXB0Lm1hcCB8ICAxICsKIDYgZmlsZXMgY2hhbmdl
ZCwgMzcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbC9saWIv
Z3NzYXBpL2dzc2FwaS9nc3NhcGlfb2lkLmggYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2Fw
aS9nc3NhcGkvZ3NzYXBpX29pZC5oCmluZGV4IDBlZWQ2MzlkNTNlMS4uNDhmZjQwMzVkODU0
IDEwMDY0NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9nc3NhcGkvZ3NzYXBp
X29pZC5oCisrKyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2dzc2FwaS9nc3NhcGlf
b2lkLmgKQEAgLTk5LDYgKzk5LDkgQEAgZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3Nz
X09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9kZXNjOwogZXh0
ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfY3JlZF9u
b190cmFuc2l0X2NoZWNrX3hfb2lkX2Rlc2M7CiAjZGVmaW5lIEdTU19LUkI1X0NSRURfTk9f
VFJBTlNJVF9DSEVDS19YICgmX19nc3Nfa3JiNV9jcmVkX25vX3RyYW5zaXRfY2hlY2tfeF9v
aWRfZGVzYykKIAorZXh0ZXJuIEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9f
Z3NzX2tyYjVfY3JlZF9pdGVyYXRlX2FjY2VwdG9yX2tleXRhYl94X29pZF9kZXNjOworI2Rl
ZmluZSBHU1NfS1JCNV9DUkVEX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCX1ggKCZfX2dzc19r
cmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWJfeF9vaWRfZGVzYykKKwogZXh0ZXJu
IEdTU0FQSV9MSUJfVkFSSUFCTEUgZ3NzX09JRF9kZXNjIF9fZ3NzX2tyYjVfaW1wb3J0X2Ny
ZWRfeF9vaWRfZGVzYzsKICNkZWZpbmUgR1NTX0tSQjVfSU1QT1JUX0NSRURfWCAoJl9fZ3Nz
X2tyYjVfaW1wb3J0X2NyZWRfeF9vaWRfZGVzYykKIApkaWZmIC0tZ2l0IGEvc291cmNlNC9o
ZWltZGFsL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYyBiL3NvdXJjZTQv
aGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKaW5kZXggMmU0
ZWQ1M2JhMDhlLi5kNTg2NWU1YmRkNzEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9s
aWIvZ3NzYXBpL2tyYjUvYWNjZXB0X3NlY19jb250ZXh0LmMKKysrIGIvc291cmNlNC9oZWlt
ZGFsL2xpYi9nc3NhcGkva3JiNS9hY2NlcHRfc2VjX2NvbnRleHQuYwpAQCAtMzk4LDExICsz
OTgsMTYgQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91aW50MzIgKiBtaW5vcl9zdGF0
dXMsCiAJa3JiNV9yZF9yZXFfaW5fY3R4IGluID0gTlVMTDsKIAlrcmI1X3JkX3JlcV9vdXRf
Y3R4IG91dCA9IE5VTEw7CiAJa3JiNV9wcmluY2lwYWwgc2VydmVyID0gTlVMTDsKKwlrcmI1
X2Jvb2xlYW4gaXRlcmF0ZV9rZXl0YWIgPSBGQUxTRTsKIAlrcmI1X2ZsYWdzIHZlcmlmeV9h
cF9yZXFfZmxhZ3MgPSAwOwogCiAJaWYgKGFjY2VwdG9yX2NyZWQpIHsKIAkgICAgc2VydmVy
ID0gYWNjZXB0b3JfY3JlZC0+cHJpbmNpcGFsOwogCisJICAgIGlmIChhY2NlcHRvcl9jcmVk
LT5jcmVkX2ZsYWdzICYgR1NTX0NGX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCKSB7CisJCWl0
ZXJhdGVfa2V5dGFiID0gVFJVRTsKKwkgICAgfQorCiAJICAgIGlmIChhY2NlcHRvcl9jcmVk
LT5jcmVkX2ZsYWdzICYgR1NTX0NGX05PX1RSQU5TSVRfQ0hFQ0spIHsKIAkJdmVyaWZ5X2Fw
X3JlcV9mbGFncyB8PSBLUkI1X1ZFUklGWV9BUF9SRVFfTk9fVFJBTlNJVEVEX0NIRUNLOwog
CSAgICB9CkBAIC00MTEsNiArNDE2LDggQEAgZ3Nza3JiNV9hY2NlcHRvcl9zdGFydChPTV91
aW50MzIgKiBtaW5vcl9zdGF0dXMsCiAJa3JldCA9IGtyYjVfcmRfcmVxX2luX2N0eF9hbGxv
Yyhjb250ZXh0LCAmaW4pOwogCWlmIChrcmV0ID09IDApCiAJICAgIGtyZXQgPSBrcmI1X3Jk
X3JlcV9pbl9zZXRfa2V5dGFiKGNvbnRleHQsIGluLCBrZXl0YWIpOworCWlmIChrcmV0ID09
IDAgJiYgaXRlcmF0ZV9rZXl0YWIpCisJICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRf
aXRlcmF0ZV9rZXl0YWIoY29udGV4dCwgaW4sIFRSVUUpOwogCWlmIChrcmV0ID09IDApCiAJ
ICAgIGtyZXQgPSBrcmI1X3JkX3JlcV9pbl9zZXRfdmVyaWZ5X2FwX3JlcV9mbGFncyhjb250
ZXh0LCBpbiwKIAkJCQkJCQkgIHZlcmlmeV9hcF9yZXFfZmxhZ3MpOwpkaWZmIC0tZ2l0IGEv
c291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaCBiL3NvdXJj
ZTQvaGVpbWRhbC9saWIvZ3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKaW5kZXggNmExZTk3
NzQ1MmNmLi4wMGI2ZjM0MDVlMjkgMTAwNjQ0Ci0tLSBhL3NvdXJjZTQvaGVpbWRhbC9saWIv
Z3NzYXBpL2tyYjUvZ3Nza3JiNV9sb2NsLmgKKysrIGIvc291cmNlNC9oZWltZGFsL2xpYi9n
c3NhcGkva3JiNS9nc3NrcmI1X2xvY2wuaApAQCAtOTUsNiArOTUsNyBAQCB0eXBlZGVmIHN0
cnVjdCB7CiAjZGVmaW5lIEdTU19DRl9ERVNUUk9ZX0NSRURfT05fUkVMRUFTRQkxCiAjZGVm
aW5lIEdTU19DRl9OT19DSV9GTEFHUwkJMgogI2RlZmluZSBHU1NfQ0ZfTk9fVFJBTlNJVF9D
SEVDSwkJNAorI2RlZmluZSBHU1NfQ0ZfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUIJOAogICBz
dHJ1Y3Qga3JiNV9rZXl0YWJfZGF0YSAqa2V5dGFiOwogICBPTV91aW50MzIgbGlmZXRpbWU7
CiAgIGdzc19jcmVkX3VzYWdlX3QgdXNhZ2U7CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1k
YWwvbGliL2dzc2FwaS9rcmI1L3NldF9jcmVkX29wdGlvbi5jIGIvc291cmNlNC9oZWltZGFs
L2xpYi9nc3NhcGkva3JiNS9zZXRfY3JlZF9vcHRpb24uYwppbmRleCA4ZDlmNDk4ODQ4ODQu
LjlhZDE3YmZjMzIyYyAxMDA2NDQKLS0tIGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkv
a3JiNS9zZXRfY3JlZF9vcHRpb24uYworKysgYi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2Fw
aS9rcmI1L3NldF9jcmVkX29wdGlvbi5jCkBAIC0yMTUsNiArMjE1LDI1IEBAIG5vX2NpX2Zs
YWdzKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAogCiB9CiAKK3N0YXRpYyBPTV91aW50MzIK
K2l0ZXJhdGVfYWNjZXB0b3Jfa2V5dGFiKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAorCQkJ
a3JiNV9jb250ZXh0IGNvbnRleHQsCisJCQlnc3NfY3JlZF9pZF90ICpjcmVkX2hhbmRsZSwK
KwkJCWNvbnN0IGdzc19idWZmZXJfdCB2YWx1ZSkKK3sKKyAgICBnc3NrcmI1X2NyZWQgY3Jl
ZDsKKworICAgIGlmIChjcmVkX2hhbmRsZSA9PSBOVUxMIHx8ICpjcmVkX2hhbmRsZSA9PSBH
U1NfQ19OT19DUkVERU5USUFMKSB7CisJKm1pbm9yX3N0YXR1cyA9IDA7CisJcmV0dXJuIEdT
U19TX0ZBSUxVUkU7CisgICAgfQorCisgICAgY3JlZCA9IChnc3NrcmI1X2NyZWQpKmNyZWRf
aGFuZGxlOworICAgIGNyZWQtPmNyZWRfZmxhZ3MgfD0gR1NTX0NGX0lURVJBVEVfQUNDRVBU
T1JfS0VZVEFCOworCisgICAgKm1pbm9yX3N0YXR1cyA9IDA7CisgICAgcmV0dXJuIEdTU19T
X0NPTVBMRVRFOworfQogCiBzdGF0aWMgT01fdWludDMyCiBub190cmFuc2l0X2NoZWNrKE9N
X3VpbnQzMiAqbWlub3Jfc3RhdHVzLApAQCAtMjYyLDYgKzI4MSw5IEBAIF9nc3NrcmI1X3Nl
dF9jcmVkX29wdGlvbgogCXJldHVybiBub19jaV9mbGFncyhtaW5vcl9zdGF0dXMsIGNvbnRl
eHQsIGNyZWRfaGFuZGxlLCB2YWx1ZSk7CiAgICAgfQogCisgICAgaWYgKGdzc19vaWRfZXF1
YWwoZGVzaXJlZF9vYmplY3QsIEdTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlU
QUJfWCkpIHsKKwlyZXR1cm4gaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWIobWlub3Jfc3RhdHVz
LCBjb250ZXh0LCBjcmVkX2hhbmRsZSwgdmFsdWUpOworICAgIH0KIAogICAgIGlmIChnc3Nf
b2lkX2VxdWFsKGRlc2lyZWRfb2JqZWN0LCBHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hF
Q0tfWCkpIHsKIAlyZXR1cm4gbm9fdHJhbnNpdF9jaGVjayhtaW5vcl9zdGF0dXMsIGNvbnRl
eHQsIGNyZWRfaGFuZGxlLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9zb3VyY2U0L2hlaW1kYWwv
bGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYyBiL3NvdXJjZTQvaGVpbWRhbC9saWIvZ3NzYXBp
L21lY2gvZ3NzX29pZC5jCmluZGV4IDZmODZlZWM2NWMzOS4uZGU0ZWQyZTU3MWYzIDEwMDY0
NAotLS0gYS9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYworKysg
Yi9zb3VyY2U0L2hlaW1kYWwvbGliL2dzc2FwaS9tZWNoL2dzc19vaWQuYwpAQCAtOTcsNiAr
OTcsOSBAQCBnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2lt
cG9ydF9jcmVkX3hfb2lkX2Rlc2MgPSB7IDYsIHJrX1VOQwogLyogR1NTX0tSQjVfQ1JFRF9O
T19UUkFOU0lUX0NIRUNLX1ggLSAxLjIuNzUyLjQzLjEzLjMxICovCiBnc3NfT0lEX2Rlc2Mg
R1NTQVBJX0xJQl9WQVJJQUJMRSBfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194
X29pZF9kZXNjID0geyA2LCBya19VTkNPTlNUKCJceDJhXHg4NVx4NzBceDJiXHgwZFx4MWYi
KSB9OwogCisvKiBHU1NfS1JCNV9DUkVEX0lURVJBVEVfQUNDRVBUT1JfS0VZVEFCX1ggLSAx
LjIuNzUyLjQzLjEzLjMxICovCitnc3NfT0lEX2Rlc2MgR1NTQVBJX0xJQl9WQVJJQUJMRSBf
X2dzc19rcmI1X2NyZWRfaXRlcmF0ZV9hY2NlcHRvcl9rZXl0YWJfeF9vaWRfZGVzYyA9IHsg
NiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDIwIikgfTsKKwogLyogR1NT
X0NfTUFfU0FTTF9NRUNIX05BTUUgLSAxLjIuNzUyLjQzLjEzLjEwMCAqLwogZ3NzX09JRF9k
ZXNjIEdTU0FQSV9MSUJfVkFSSUFCTEUgX19nc3NfY19tYV9zYXNsX21lY2hfbmFtZV9vaWRf
ZGVzYyA9IHsgNiwgcmtfVU5DT05TVCgiXHgyYVx4ODVceDcwXHgyYlx4MGRceDY0IikgfTsK
IApkaWZmIC0tZ2l0IGEvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3Jp
cHQubWFwIGIvc291cmNlNC9oZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFw
CmluZGV4IDc3NmZlMTlkYmYzYy4uNmZjZmNlM2VjNWVhIDEwMDY0NAotLS0gYS9zb3VyY2U0
L2hlaW1kYWwvbGliL2dzc2FwaS92ZXJzaW9uLXNjcmlwdC5tYXAKKysrIGIvc291cmNlNC9o
ZWltZGFsL2xpYi9nc3NhcGkvdmVyc2lvbi1zY3JpcHQubWFwCkBAIC0xNTMsNiArMTUzLDcg
QEAgSEVJTURBTF9HU1NfMi4wIHsKIAkJX19nc3NfY19udGxtX3YyX29pZF9kZXNjOwogCQlf
X2dzc19jX250bG1fc2Vzc2lvbl9rZXlfb2lkX2Rlc2M7CiAJCV9fZ3NzX2NfbnRsbV9mb3Jj
ZV92MV9vaWRfZGVzYzsKKwkJX19nc3Nfa3JiNV9jcmVkX2l0ZXJhdGVfYWNjZXB0b3Jfa2V5
dGFiX3hfb2lkX2Rlc2M7CiAJCV9fZ3NzX2tyYjVfY3JlZF9ub19jaV9mbGFnc194X29pZF9k
ZXNjOwogCQlfX2dzc19rcmI1X2NyZWRfbm9fdHJhbnNpdF9jaGVja194X29pZF9kZXNjOwog
CQlfX2dzc19rcmI1X2ltcG9ydF9jcmVkX3hfb2lkX2Rlc2M7Ci0tIAoyLjE3LjEKCgpGcm9t
IDE5ZjkyYzZmY2YyODdlOTkxZTQzOTY5NjgxYzczMDgwNWM2ZTY5YjEgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+
CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6MDk6NDcgKzAwMDAKU3ViamVjdDogW1BBVENI
IDE0LzI1XSBzNDpoZWltZGFsX2J1aWxkOiBkZWZpbmUKIEhBVkVfR1NTX0tSQjVfQ1JFRF97
Tk9fVFJBTlNJVF9DSEVDSyxJVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQn1fWAoKQlVHOiBodHRw
czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKQlVHOiBodHRw
czovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMjUKClNpZ25lZC1v
ZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQogc291cmNl
NC9oZWltZGFsX2J1aWxkL3dzY3JpcHRfY29uZmlndXJlIHwgMiArKwogMSBmaWxlIGNoYW5n
ZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTQvaGVpbWRhbF9idWls
ZC93c2NyaXB0X2NvbmZpZ3VyZSBiL3NvdXJjZTQvaGVpbWRhbF9idWlsZC93c2NyaXB0X2Nv
bmZpZ3VyZQppbmRleCA5MDNmYjUxMzlkYjguLjU3NjU4YjU3N2ExYSAxMDA2NDQKLS0tIGEv
c291cmNlNC9oZWltZGFsX2J1aWxkL3dzY3JpcHRfY29uZmlndXJlCisrKyBiL3NvdXJjZTQv
aGVpbWRhbF9idWlsZC93c2NyaXB0X2NvbmZpZ3VyZQpAQCAtODcsNiArODcsOCBAQCBjb25m
LmRlZmluZSgnSEFWRV9HU1NfS1JCNV9FWFBPUlRfTFVDSURfU0VDX0NPTlRFWFQnLCAxKQog
Y29uZi5kZWZpbmUoJ0hBVkVfR1NTX0lNUE9SVF9DUkVEJywgMSkKIGNvbmYuZGVmaW5lKCdI
QVZFX0dTU19FWFBPUlRfQ1JFRCcsIDEpCiBjb25mLmRlZmluZSgnSEFWRV9HU1NfS1JCNV9D
UkVEX05PX0NJX0ZMQUdTX1gnLCAxKQorY29uZi5kZWZpbmUoJ0hBVkVfR1NTX0tSQjVfQ1JF
RF9OT19UUkFOU0lUX0NIRUNLX1gnLCAxKQorY29uZi5kZWZpbmUoJ0hBVkVfR1NTX0tSQjVf
Q1JFRF9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQl9YJywgMSkKIGNvbmYuZGVmaW5lKCdIQVZF
X0dTU0FQSScsIDEpCiBjb25mLmRlZmluZSgnSEFWRV9BRERSX1RZUEVfSU5fS1JCNV9BRERS
RVNTJywgMSkKIGNvbmYuZGVmaW5lKCdIQVZFX0NIRUNLU1VNX0lOX0tSQjVfQ0hFQ0tTVU0n
LCAxKQotLSAKMi4xNy4xCgoKRnJvbSBjNTg5NTBlY2MyNDI2NTZjNzdiNjZlYzg4NjVkMGYz
ZTRkYzRmMjkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1h
Y2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE2OjA5OjQ3
ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNV0gY29uZmlndXJlX21pdGtyYjU6IGNoZWNr
IGZvcgogR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKCkJVRzogaHR0cHM6Ly9i
dWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5
OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHdzY3JpcHRfY29u
ZmlndXJlX3N5c3RlbV9taXRrcmI1IHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp
b24oKykKCmRpZmYgLS1naXQgYS93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0a3JiNSBi
L3dzY3JpcHRfY29uZmlndXJlX3N5c3RlbV9taXRrcmI1CmluZGV4IGIwNWFjM2YzZTUwYy4u
YmFkNmNlOWE5NWQ2IDEwMDY0NAotLS0gYS93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0
a3JiNQorKysgYi93c2NyaXB0X2NvbmZpZ3VyZV9zeXN0ZW1fbWl0a3JiNQpAQCAtMTE1LDYg
KzExNSw3IEBAIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJycnCiAgICAgICAgZ3NzX2FjcXVpcmVf
Y3JlZF9mcm9tCiAgICAgICAgJycnLCAnZ3NzYXBpIGdzc2FwaV9rcmI1JykKIGNvbmYuQ0hF
Q0tfVkFSSUFCTEUoJ0dTU19LUkI1X0NSRURfTk9fQ0lfRkxBR1NfWCcsIGhlYWRlcnM9cG9z
c2libGVfZ3NzYXBpX2hlYWRlcnMpCitjb25mLkNIRUNLX1ZBUklBQkxFKCdHU1NfS1JCNV9D
UkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCcsIGhlYWRlcnM9cG9zc2libGVfZ3NzYXBpX2hlYWRl
cnMpCiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdrcmI1X21rX3JlcV9leHRlbmRlZCBrcmI1X2t0
X2NvbXBhcmUnLCAna3JiNScpCiBjb25mLkNIRUNLX0ZVTkNTKCcnJwogICAgICAgIGtyYjVf
YXV0aF9jb25fZ2V0cmVjdnN1YmtleQotLSAKMi4xNy4xCgoKRnJvbSBhNWQwY2RiOGE2MTg3
MDA1ZWNmODViNTA0NTJiNjFmZWI3ZTEzMGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG
cm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIy
IEF1ZyAyMDE5IDE2OjUxOjQ5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNV0gczM6Z3Nl
OiBhZGQgaGVscGVyIGRlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIKClRoaXMgd2ls
bCBzaW1wbGlmeSB0aGUgZm9sbG93aW5nIGNvbW1pdHMuCgpCVUc6IGh0dHBzOi8vYnVnemls
bGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwNwpCVUc6IGh0dHBzOi8vYnVnemls
bGEuc2FtYmEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEyNQoKU2lnbmVkLW9mZi1ieTogU3Rl
ZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KLS0tCiBzb3VyY2UzL2xpYnJwYy9j
cnlwdG8vZ3NlLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo
KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291cmNlMy9saWJycGMvY3J5cHRv
L2dzZS5jIGIvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jCmluZGV4IDlhOWY0MjYxMjIy
Zi4uMzQzZTBmNTgxNzM1IDEwMDY0NAotLS0gYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3Nl
LmMKKysrIGIvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jCkBAIC0yNTYsOSArMjU2LDEy
IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVtX2N0
eCwKIAlzdHJ1Y3QgZ3NlX2NvbnRleHQgKmdzZV9jdHg7CiAJT01fdWludDMyIGdzc19tYWos
IGdzc19taW47CiAjaWZkZWYgSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gKLQln
c3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NTX0NfRU1QVFlfQlVGRkVSOwogCWdz
c19PSUQgb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gp
OwotI2VuZGlmCisjZGVmaW5lIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAxCisjZW5kaWYg
LyogSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1ggKi8KKyNpZmRlZiBfX1RNUF9O
RUVEX0VNUFRZX0JVRkZGRVIKKwlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NT
X0NfRU1QVFlfQlVGRkVSOworI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAq
LwogCU5UU1RBVFVTIHN0YXR1czsKIAogCWlmICghc2VydmVyIHx8ICFzZXJ2aWNlKSB7Ci0t
IAoyLjE3LjEKCgpGcm9tIGZhZDI5N2EyNjk2ZjU0YjRhZDU4MWZiZWI0YTczYmRlOWI4NDEw
MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxt
ZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6NTE6NDkgKzAwMDAK
U3ViamVjdDogW1BBVENIIDE3LzI1XSBzMzpnc2U6IHJlbmFtZSBvaWQgdG8gbm9fY2lfZmxh
Z3Nfb2lkCgpUaGlzIHdpbGwgc2ltcGxpZnkgdGhlIGZvbGxvd2luZyBjb21taXRzLgoKQlVH
OiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDcKQlVH
OiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMjUKClNp
Z25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+Ci0tLQog
c291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg
MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdXJjZTMv
bGlicnBjL2NyeXB0by9nc2UuYyBiL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYwppbmRl
eCAzNDNlMGY1ODE3MzUuLjI1YWFjN2UwNDQ4ZiAxMDA2NDQKLS0tIGEvc291cmNlMy9saWJy
cGMvY3J5cHRvL2dzZS5jCisrKyBiL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYwpAQCAt
MjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9D
X0NUWCAqbWVtX2N0eCwKIAlzdHJ1Y3QgZ3NlX2NvbnRleHQgKmdzZV9jdHg7CiAJT01fdWlu
dDMyIGdzc19tYWosIGdzc19taW47CiAjaWZkZWYgSEFWRV9HU1NfS1JCNV9DUkVEX05PX0NJ
X0ZMQUdTX1gKLQlnc3NfT0lEIG9pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9O
T19DSV9GTEFHU19YKTsKKwlnc3NfT0lEIG5vX2NpX2ZsYWdzX29pZCA9IGRpc2NhcmRfY29u
c3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YKTsKICNkZWZpbmUgX19UTVBfTkVFRF9F
TVBUWV9CVUZGRkVSIDEKICNlbmRpZiAvKiBIQVZFX0dTU19LUkI1X0NSRURfTk9fQ0lfRkxB
R1NfWCAqLwogI2lmZGVmIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUgpAQCAtMzE0LDcgKzMx
NCw3IEBAIHN0YXRpYyBOVFNUQVRVUyBnc2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVt
X2N0eCwKIAkgKiBodHRwOi8va3JiZGV2Lm1pdC5lZHUvcnQvVGlja2V0L0Rpc3BsYXkuaHRt
bD9pZD02OTM4CiAJICovCiAJZ3NzX21haiA9IGdzc19zZXRfY3JlZF9vcHRpb24oJmdzc19t
aW4sICZnc2VfY3R4LT5jcmVkcywKLQkJCQkgICAgICBvaWQsCisJCQkJICAgICAgbm9fY2lf
ZmxhZ3Nfb2lkLAogCQkJCSAgICAgICZlbXB0eV9idWZmZXIpOwogCWlmIChnc3NfbWFqKSB7
CiAJCURFQlVHKDAsICgiZ3NzX3NldF9jcmVkX29wdGlvbihHU1NfS1JCNV9DUkVEX05PX0NJ
X0ZMQUdTX1gpLCAiCi0tIAoyLjE3LjEKCgpGcm9tIDU0OGY1MjdmM2ZhMGRjYzcxODI4OGRl
Y2M2YTgxZjFkNjA5ZDAxNjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZh
biBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkg
MTY6NTE6NDkgKzAwMDAKU3ViamVjdDogW1BBVENIIDE4LzI1XSBzMzpnc2U6IGxldCBnc2Vf
aW5pdF9jbGllbnQoKSB1c2UKIEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCgpU
aGVyZSBubyBuZWVkIHRvIGRvIGFueSBwb3NzaWJsZSB0cmFuc2l0IGNoZWNraW5nIG9uCnRo
ZSBjbGllbnQgc2lkZS4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0
emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYyB8IDE5ICsr
KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCgpk
aWZmIC0tZ2l0IGEvc291cmNlMy9saWJycGMvY3J5cHRvL2dzZS5jIGIvc291cmNlMy9saWJy
cGMvY3J5cHRvL2dzZS5jCmluZGV4IDI1YWFjN2UwNDQ4Zi4uZGMwNzRkMWFlMWFlIDEwMDY0
NAotLS0gYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKKysrIGIvc291cmNlMy9saWJy
cGMvY3J5cHRvL2dzZS5jCkBAIC0yNTksNiArMjU5LDEyIEBAIHN0YXRpYyBOVFNUQVRVUyBn
c2VfaW5pdF9jbGllbnQoVEFMTE9DX0NUWCAqbWVtX2N0eCwKIAlnc3NfT0lEIG5vX2NpX2Zs
YWdzX29pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YKTsK
ICNkZWZpbmUgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSIDEKICNlbmRpZiAvKiBIQVZFX0dT
U19LUkI1X0NSRURfTk9fQ0lfRkxBR1NfWCAqLworI2lmZGVmIEhBVkVfR1NTX0tSQjVfQ1JF
RF9OT19UUkFOU0lUX0NIRUNLX1gKKwlnc3NfT0lEIG5vX3RyYW5zaXRfb2lkID0gZGlzY2Fy
ZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWCk7CisjaWZuZGVmIF9f
VE1QX05FRURfRU1QVFlfQlVGRkZFUgorI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZG
RVIgMQorI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUiAqLworI2VuZGlmIC8q
IEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1ggKi8KICNpZmRlZiBfX1RN
UF9ORUVEX0VNUFRZX0JVRkZGRVIKIAlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0g
R1NTX0NfRU1QVFlfQlVGRkVSOwogI2VuZGlmIC8qIF9fVE1QX05FRURfRU1QVFlfQlVGRkZF
UiAqLwpAQCAtMzI1LDYgKzMzMSwxOSBAQCBzdGF0aWMgTlRTVEFUVVMgZ3NlX2luaXRfY2xp
ZW50KFRBTExPQ19DVFggKm1lbV9jdHgsCiAJfQogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX0dT
U19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YCisJZ3NzX21haiA9IGdzc19zZXRfY3Jl
ZF9vcHRpb24oJmdzc19taW4sICZnc2VfY3R4LT5jcmVkcywKKwkJCQkgICAgICBub190cmFu
c2l0X29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3NzX21haikgewor
CQlERUJVRygwLCAoImdzc19zZXRfY3JlZF9vcHRpb24oR1NTX0tSQjVfQ1JFRF9OT19UUkFO
U0lUX0NIRUNLX1gpLCAiCisJCQkgICJmYWlsZWQgd2l0aCBbJXNdXG4iLAorCQkJICBnc2Vf
ZXJyc3RyKGdzZV9jdHgsIGdzc19tYWosIGdzc19taW4pKSk7CisJCXN0YXR1cyA9IE5UX1NU
QVRVU19JTlRFUk5BTF9FUlJPUjsKKwkJZ290byBlcnJfb3V0OworCX0KKyNlbmRpZgorCiAJ
Kl9nc2VfY3R4ID0gZ3NlX2N0eDsKIAlyZXR1cm4gTlRfU1RBVFVTX09LOwogCi0tIAoyLjE3
LjEKCgpGcm9tIGRjN2FlMWEzNjVkMGExNzZhMTNiMTQ3ZWQ2YzExN2E5ZGQxNDJhNjMgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBz
YW1iYS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTY6NTI6MTUgKzAwMDAKU3ViamVj
dDogW1BBVENIIDE5LzI1XSBrcmI1X3dyYXA6IGFkZCBzbWJfZ3NzX2tyYjVfcHJlcGFyZV9h
Y2NlcHRvcl9jcmVkKCkKCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0
emVAc2FtYmEub3JnPgotLS0KIGxpYi9rcmI1X3dyYXAvZ3NzX3NhbWJhLmMgfCA0NSArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9rcmI1X3dyYXAvZ3Nz
X3NhbWJhLmggfCAgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKykK
CmRpZmYgLS1naXQgYS9saWIva3JiNV93cmFwL2dzc19zYW1iYS5jIGIvbGliL2tyYjVfd3Jh
cC9nc3Nfc2FtYmEuYwppbmRleCAyYTk5NjYxZGRlZTIuLjJkMzAxNjA4OGVkOCAxMDA2NDQK
LS0tIGEvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEuYworKysgYi9saWIva3JiNV93cmFwL2dz
c19zYW1iYS5jCkBAIC0yMTAsNSArMjEwLDUwIEBAIHVpbnQzMl90IHNtYl9nc3Nfa3JiNV9p
bXBvcnRfY3JlZCh1aW50MzJfdCAqbWlub3Jfc3RhdHVzLCBrcmI1X2NvbnRleHQgY3R4LAog
CXJldHVybiBtYWpvcl9zdGF0dXM7CiB9CiAKK3VpbnQzMl90IHNtYl9nc3Nfa3JiNV9wcmVw
YXJlX2FjY2VwdG9yX2NyZWQodWludDMyX3QgKm1pbm9yX3N0YXR1cywKKwkJCQkJICAgIGJv
b2wgcmVxdWlyZV9wYWMsCisJCQkJCSAgICBnc3NfY3JlZF9pZF90ICpjcmVkKQoreworI2lm
ZGVmIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKKwlPTV91aW50MzIg
Z3NzX21haiwgZ3NzX21pbjsKKwlnc3NfYnVmZmVyX2Rlc2MgZW1wdHlfYnVmZmVyID0gR1NT
X0NfRU1QVFlfQlVGRkVSOworCWdzc19PSUQgbm9fdHJhbnNpdF9vaWQgPSBkaXNjYXJkX2Nv
bnN0KEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVDS19YKTsKKyNpZmRlZiBIQVZFX0dT
U19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRPUl9LRVlUQUJfWCAvKiBvbmx5IGhlaW1kYWwg
Ki8KKwlnc3NfT0lEIGl0ZXJhdGVfa2V5dGFiX29pZCA9CisJCWRpc2NhcmRfY29uc3QoR1NT
X0tSQjVfQ1JFRF9JVEVSQVRFX0FDQ0VQVE9SX0tFWVRBQl9YKTsKKworCWdzc19tYWogPSBn
c3Nfc2V0X2NyZWRfb3B0aW9uKCZnc3NfbWluLCBjcmVkLAorCQkJCSAgICAgIGl0ZXJhdGVf
a2V5dGFiX29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3NzX21haikg
eworCQlEQkdfRVJSKCJnc3Nfc2V0X2NyZWRfb3B0aW9uKElURVJBVEVfQUNDRVBUT1JfS0VZ
VEFCX1gpXG4iKTsKKwkJKm1pbm9yX3N0YXR1cyA9IGdzc19taW47CisJCXJldHVybiBnc3Nf
bWFqOworCX0KKyNlbmRpZiAvKiBIQVZFX0dTU19LUkI1X0NSRURfSVRFUkFURV9BQ0NFUFRP
Ul9LRVlUQUJfWCAqLworCisJaWYgKCFyZXF1aXJlX3BhYykgeworCQlnb3RvIGRvbmU7CisJ
fQorCisJLyoKKwkgKiBJZiB3ZSByZXF1aXJlIGEgdmFsaWQgUEFDIHdlIGNhbgorCSAqIHNr
aXAgdGhlIHRyYW5zaXQgY2hlY2tzIGluIHRoZSBrcmI1CisJICogY29kZS4KKwkgKi8KKwln
c3NfbWFqID0gZ3NzX3NldF9jcmVkX29wdGlvbigmZ3NzX21pbiwgY3JlZCwKKwkJCQkgICAg
ICBub190cmFuc2l0X29pZCwKKwkJCQkgICAgICAmZW1wdHlfYnVmZmVyKTsKKwlpZiAoZ3Nz
X21haikgeworCQlEQkdfRVJSKCJnc3Nfc2V0X2NyZWRfb3B0aW9uKE5PX1RSQU5TSVRfQ0hF
Q0tfWClcbiIpOworCQkqbWlub3Jfc3RhdHVzID0gZ3NzX21pbjsKKwkJcmV0dXJuIGdzc19t
YWo7CisJfQorCitkb25lOgorI2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19UUkFO
U0lUX0NIRUNLX1ggKi8KKwkqbWlub3Jfc3RhdHVzID0gMDsKKwlyZXR1cm4gMDsKK30KIAog
I2VuZGlmIC8qIEhBVkVfR1NTQVBJICovCmRpZmYgLS1naXQgYS9saWIva3JiNV93cmFwL2dz
c19zYW1iYS5oIGIvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEuaAppbmRleCA4OWFlZTM0Nzlj
NTUuLjc3Yzg3NThlZDNkOCAxMDA2NDQKLS0tIGEvbGliL2tyYjVfd3JhcC9nc3Nfc2FtYmEu
aAorKysgYi9saWIva3JiNV93cmFwL2dzc19zYW1iYS5oCkBAIC00NSw1ICs0NSw5IEBAIHVp
bnQzMl90IHNtYl9nc3Nfa3JiNV9pbXBvcnRfY3JlZChPTV91aW50MzIgKm1pbm9yX3N0YXR1
cywga3JiNV9jb250ZXh0IGN0eCwKIAkJCQkgIGtyYjVfY2NhY2hlIGlkLCBrcmI1X3ByaW5j
aXBhbCBrZXl0YWJfcHJpbmNpcGFsLAogCQkJCSAga3JiNV9rZXl0YWIga2V5dGFiLCBnc3Nf
Y3JlZF9pZF90ICpjcmVkKTsKIAordWludDMyX3Qgc21iX2dzc19rcmI1X3ByZXBhcmVfYWNj
ZXB0b3JfY3JlZCh1aW50MzJfdCAqbWlub3Jfc3RhdHVzLAorCQkJCQkgICAgYm9vbCByZXF1
aXJlX3BhYywKKwkJCQkJICAgIGdzc19jcmVkX2lkX3QgKmNyZWQpOworCiAjZW5kaWYgLyog
SEFWRV9HU1NBUEkgKi8KICNlbmRpZiAvKiBfR1NTX1NBTUJBX0ggKi8KLS0gCjIuMTcuMQoK
CkZyb20gNTdjYTBhY2Y2ZGZjNDAzNDFkM2IwNjA3MzhkZDA2OGFiNjAzNTliNCBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNhbWJh
Lm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoxMzo0MSArMDAwMApTdWJqZWN0OiBb
UEFUQ0ggMjAvMjVdIHMzOmdzZTogbGV0IGdzZV9pbml0X3NlcnZlcigpIHVzZQogc21iX2dz
c19rcmI1X3ByZXBhcmVfYWNjZXB0b3JfY3JlZCgpCgpXZSBzaG91bGQgY2hlY2sgYWxsIGtl
eXMgaW4gb3VyIGluIG1lbW9yeSBrZXl0YWIKYW5kIGRvbid0IG5lZWQgYW55IHRyYW5zaXRl
ZCBjaGVja3MgaWYgd2UgcmVxdWlyZSBhIFBBQy4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5z
YW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6Ly9idWd6aWxsYS5z
YW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4g
TWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIHNvdXJjZTMvbGlicnBjL2NyeXB0
by9nc2UuYyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlv
bnMoKykKCmRpZmYgLS1naXQgYS9zb3VyY2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMgYi9zb3Vy
Y2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKaW5kZXggZGMwNzRkMWFlMWFlLi5jZDIyNWI2Mzcz
ZDEgMTAwNjQ0Ci0tLSBhL3NvdXJjZTMvbGlicnBjL2NyeXB0by9nc2UuYworKysgYi9zb3Vy
Y2UzL2xpYnJwYy9jcnlwdG8vZ3NlLmMKQEAgLTU5OCw2ICs1OTgsNyBAQCBzdGF0aWMgTlRT
VEFUVVMgZ3NlX2luaXRfc2VydmVyKFRBTExPQ19DVFggKm1lbV9jdHgsCiAJT01fdWludDMy
IGdzc19tYWosIGdzc19taW47CiAJa3JiNV9lcnJvcl9jb2RlIHJldDsKIAlOVFNUQVRVUyBz
dGF0dXM7CisJYm9vbCByZXF1aXJlX3BhYyA9IGxwX3JlcXVpcmVfcGFjKCk7CiAKIAlzdGF0
dXMgPSBnc2VfY29udGV4dF9pbml0KG1lbV9jdHgsIGRvX3NpZ24sIGRvX3NlYWwsCiAJCQkJ
ICBOVUxMLCBhZGRfZ3NzX2NfZmxhZ3MsICZnc2VfY3R4KTsKQEAgLTYyNCw2ICs2MjUsMTcg
QEAgc3RhdGljIE5UU1RBVFVTIGdzZV9pbml0X3NlcnZlcihUQUxMT0NfQ1RYICptZW1fY3R4
LAogCQlnb3RvIGRvbmU7CiAJfQogCisJZ3NzX21haiA9IHNtYl9nc3Nfa3JiNV9wcmVwYXJl
X2FjY2VwdG9yX2NyZWQoJmdzc19taW4sCisJCQkJCQkgICAgIHJlcXVpcmVfcGFjLAorCQkJ
CQkJICAgICAmZ3NlX2N0eC0+Y3JlZHMpOworCisJaWYgKGdzc19tYWogIT0gMCkgeworCQlE
RUJVRygwLCAoInNtYl9nc3Nfa3JiNV9wcmVwYXJlX2FjY2VwdG9yX2NyZWQgZmFpbGVkIHdp
dGggWyVzXVxuIiwKKwkJCSAgZ3NlX2VycnN0cihnc2VfY3R4LCBnc3NfbWFqLCBnc3NfbWlu
KSkpOworCQlzdGF0dXMgPSBOVF9TVEFUVVNfSU5URVJOQUxfRVJST1I7CisJCWdvdG8gZG9u
ZTsKKwl9CisKIAlzdGF0dXMgPSBOVF9TVEFUVVNfT0s7CiAKIGRvbmU6Ci0tIAoyLjE3LjEK
CgpGcm9tIDJlNzcyZjMwMWI1MGNjNGFiNGE2Y2FiZTA4NTgyMTNmYWVhZDhkNDcgTW9uIFNl
cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbiBNZXR6bWFjaGVyIDxtZXR6ZUBzYW1i
YS5vcmc+CkRhdGU6IFRodSwgMjIgQXVnIDIwMTkgMTc6MjQ6MjQgKzAwMDAKU3ViamVjdDog
W1BBVENIIDIxLzI1XSBhdXRoL2NyZWRlbnRpYWxzX2tyYjU6IGFkZCBoZWxwZXIgZGVmaW5l
CiBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIKClRoaXMgc2ltcGxpZmllcyB0aGUgZm9sbG93
aW5nIGNvbW1pdHMuCgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHpl
QHNhbWJhLm9yZz4KLS0tCiBhdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYyB8
IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUu
YyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNfa3JiNS5jCmluZGV4IDIwZTY3N2U1
MjFhOC4uYzcyNDdjZmU5NzkwIDEwMDY0NAotLS0gYS9hdXRoL2NyZWRlbnRpYWxzL2NyZWRl
bnRpYWxzX2tyYjUuYworKysgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUu
YwpAQCAtODM1LDkgKzgzNSwxMiBAQCBfUFVCTElDXyBpbnQgY2xpX2NyZWRlbnRpYWxzX2dl
dF9jbGllbnRfZ3NzX2NyZWRzKHN0cnVjdCBjbGlfY3JlZGVudGlhbHMgKmNyZWQsCiAJc3Ry
dWN0IGdzc2FwaV9jcmVkc19jb250YWluZXIgKmdjYzsKIAlzdHJ1Y3QgY2NhY2hlX2NvbnRh
aW5lciAqY2NhY2hlOwogI2lmZGVmIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y
Ci0JZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9IEdTU19DX0VNUFRZX0JVRkZFUjsK
IAlnc3NfT0lEIG9pZCA9IGRpc2NhcmRfY29uc3QoR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFH
U19YKTsKLSNlbmRpZgorI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIgMQorI2Vu
ZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YICovCisjaWZkZWYgX19U
TVBfTkVFRF9FTVBUWV9CVUZGRkVSCisJZ3NzX2J1ZmZlcl9kZXNjIGVtcHR5X2J1ZmZlciA9
IEdTU19DX0VNUFRZX0JVRkZFUjsKKyNlbmRpZiAvKiBfX1RNUF9ORUVEX0VNUFRZX0JVRkZG
RVIgKi8KIAlrcmI1X2VuY3R5cGUgKmV0eXBlcyA9IE5VTEw7CiAKIAlpZiAoY3JlZC0+Y2xp
ZW50X2dzc19jcmVkc19vYnRhaW5lZCA+PSBjcmVkLT5jbGllbnRfZ3NzX2NyZWRzX3RocmVz
aG9sZCAmJiAKLS0gCjIuMTcuMQoKCkZyb20gOWIwYTcwYjNlODc5ZDVjMWZlMjM1OWViNmYy
NTYzZjdhYjRhNGEzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1l
dHptYWNoZXIgPG1ldHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoy
NDoyNCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjVdIGF1dGgvY3JlZGVudGlhbHNfa3Ji
NTogcmVuYW1lIG9pZCB0byBub19jaV9mbGFnc19vaWQKClRoaXMgd2lsbCBzaW1wbGlmeSB0
aGUgZm9sbG93aW5nIGNvbW1pdC4KCkJVRzogaHR0cHM6Ly9idWd6aWxsYS5zYW1iYS5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTA3CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gTWV0em1hY2hl
ciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGF1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf
a3JiNS5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf
a3JiNS5jIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKaW5kZXggYzcy
NDdjZmU5NzkwLi4wM2MxZThhOWExMTUgMTAwNjQ0Ci0tLSBhL2F1dGgvY3JlZGVudGlhbHMv
Y3JlZGVudGlhbHNfa3JiNS5jCisrKyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf
a3JiNS5jCkBAIC04MzUsNyArODM1LDcgQEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFs
c19nZXRfY2xpZW50X2dzc19jcmVkcyhzdHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAog
CXN0cnVjdCBnc3NhcGlfY3JlZHNfY29udGFpbmVyICpnY2M7CiAJc3RydWN0IGNjYWNoZV9j
b250YWluZXIgKmNjYWNoZTsKICNpZmRlZiBIQVZFX0dTU19LUkI1X0NSRURfTk9fQ0lfRkxB
R1NfWAotCWdzc19PSUQgb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVEX05PX0NJ
X0ZMQUdTX1gpOworCWdzc19PSUQgbm9fY2lfZmxhZ3Nfb2lkID0gZGlzY2FyZF9jb25zdChH
U1NfS1JCNV9DUkVEX05PX0NJX0ZMQUdTX1gpOwogI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZ
X0JVRkZGRVIgMQogI2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19Y
ICovCiAjaWZkZWYgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSCkBAIC05NzEsNyArOTcxLDcg
QEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFsc19nZXRfY2xpZW50X2dzc19jcmVkcyhz
dHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAogCSAqIGh0dHA6Ly9rcmJkZXYubWl0LmVk
dS9ydC9UaWNrZXQvRGlzcGxheS5odG1sP2lkPTY5MzgKIAkgKi8KIAltYWpfc3RhdCA9IGdz
c19zZXRfY3JlZF9vcHRpb24oJm1pbl9zdGF0LCAmZ2NjLT5jcmVkcywKLQkJCQkgICAgICAg
b2lkLAorCQkJCSAgICAgICBub19jaV9mbGFnc19vaWQsCiAJCQkJICAgICAgICZlbXB0eV9i
dWZmZXIpOwogCWlmIChtYWpfc3RhdCkgewogCQl0YWxsb2NfZnJlZShnY2MpOwotLSAKMi4x
Ny4xCgoKRnJvbSA0NGQ5NzhmYTg2YzE1YWI0YTVkMzFiZDBlNDFhNjBiYTc5ZjY2NjFkIE1v
biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVA
c2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE3OjI0OjI0ICswMDAwClN1Ympl
Y3Q6IFtQQVRDSCAyMy8yNV0gYXV0aC9jcmVkZW50aWFsc19rcmI1OiBsZXQKIGNsaV9jcmVk
ZW50aWFsc19nZXRfY2xpZW50X2dzc19jcmVkcygpIHVzZSBOT19UUkFOU0lUX0NIRUNLX1gK
ClRoZXJlIG5vIG5lZWQgdG8gZG8gYW55IHBvc3NpYmxlIHRyYW5zaXQgY2hlY2tpbmcgb24K
dGhlIGNsaWVudCBzaWRlLgoKQlVHOiBodHRwczovL2J1Z3ppbGxhLnNhbWJhLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI5MDcKClNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBNZXR6bWFjaGVyIDxt
ZXR6ZUBzYW1iYS5vcmc+Ci0tLQogYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1
LmMgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNl
cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19r
cmI1LmMgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYwppbmRleCAwM2Mx
ZThhOWExMTUuLmI0Y2I0MzhmMDlkMyAxMDA2NDQKLS0tIGEvYXV0aC9jcmVkZW50aWFscy9j
cmVkZW50aWFsc19rcmI1LmMKKysrIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19r
cmI1LmMKQEAgLTgzOCw2ICs4MzgsMTIgQEAgX1BVQkxJQ18gaW50IGNsaV9jcmVkZW50aWFs
c19nZXRfY2xpZW50X2dzc19jcmVkcyhzdHJ1Y3QgY2xpX2NyZWRlbnRpYWxzICpjcmVkLAog
CWdzc19PSUQgbm9fY2lfZmxhZ3Nfb2lkID0gZGlzY2FyZF9jb25zdChHU1NfS1JCNV9DUkVE
X05PX0NJX0ZMQUdTX1gpOwogI2RlZmluZSBfX1RNUF9ORUVEX0VNUFRZX0JVRkZGRVIgMQog
I2VuZGlmIC8qIEhBVkVfR1NTX0tSQjVfQ1JFRF9OT19DSV9GTEFHU19YICovCisjaWZkZWYg
SEFWRV9HU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tfWAorCWdzc19PSUQgbm9fdHJh
bnNpdF9vaWQgPSBkaXNjYXJkX2NvbnN0KEdTU19LUkI1X0NSRURfTk9fVFJBTlNJVF9DSEVD
S19YKTsKKyNpZm5kZWYgX19UTVBfTkVFRF9FTVBUWV9CVUZGRkVSCisjZGVmaW5lIF9fVE1Q
X05FRURfRU1QVFlfQlVGRkZFUiAxCisjZW5kaWYgLyogX19UTVBfTkVFRF9FTVBUWV9CVUZG
RkVSICovCisjZW5kaWYgLyogSEFWRV9HU1NfS1JCNV9DUkVEX05PX1RSQU5TSVRfQ0hFQ0tf
WCAqLwogI2lmZGVmIF9fVE1QX05FRURfRU1QVFlfQlVGRkZFUgogCWdzc19idWZmZXJfZGVz
YyBlbXB0eV9idWZmZXIgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiAjZW5kaWYgLyogX19UTVBf
TkVFRF9FTVBUWV9CVUZGRkVSICovCkBAIC05ODMsNiArOTg5LDIxIEBAIF9QVUJMSUNfIGlu
dCBjbGlfY3JlZGVudGlhbHNfZ2V0X2NsaWVudF9nc3NfY3JlZHMoc3RydWN0IGNsaV9jcmVk
ZW50aWFscyAqY3JlZCwKIAkJKCplcnJvcl9zdHJpbmcpID0gdGFsbG9jX2FzcHJpbnRmKGNy
ZWQsICJnc3Nfc2V0X2NyZWRfb3B0aW9uIGZhaWxlZDogJXMiLCBlcnJvcl9tZXNzYWdlKHJl
dCkpOwogCQlyZXR1cm4gcmV0OwogCX0KKyNlbmRpZgorI2lmZGVmIEhBVkVfR1NTX0tSQjVf
Q1JFRF9OT19UUkFOU0lUX0NIRUNLX1gKKwltYWpfc3RhdCA9IGdzc19zZXRfY3JlZF9vcHRp
b24oJm1pbl9zdGF0LCAmZ2NjLT5jcmVkcywKKwkJCQkgICAgICAgbm9fdHJhbnNpdF9vaWQs
CisJCQkJICAgICAgICZlbXB0eV9idWZmZXIpOworCWlmIChtYWpfc3RhdCkgeworCQl0YWxs
b2NfZnJlZShnY2MpOworCQlpZiAobWluX3N0YXQpIHsKKwkJCXJldCA9IG1pbl9zdGF0Owor
CQl9IGVsc2UgeworCQkJcmV0ID0gRUlOVkFMOworCQl9CisJCSgqZXJyb3Jfc3RyaW5nKSA9
IHRhbGxvY19hc3ByaW50ZihjcmVkLCAiZ3NzX3NldF9jcmVkX29wdGlvbiBmYWlsZWQ6ICVz
IiwgZXJyb3JfbWVzc2FnZShyZXQpKTsKKwkJcmV0dXJuIHJldDsKKwl9CiAjZW5kaWYKIAlj
cmVkLT5jbGllbnRfZ3NzX2NyZWRzX29idGFpbmVkID0gY3JlZC0+Y2NhY2hlX29idGFpbmVk
OwogCXRhbGxvY19zZXRfZGVzdHJ1Y3RvcihnY2MsIGZyZWVfZ3NzYXBpX2NyZWRzKTsKLS0g
CjIuMTcuMQoKCkZyb20gYzBjZWZkMGEwYzcxN2Y0MGEzYTY5YjJmMDljZDg4M2YzNzQwYzFj
YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFuIE1ldHptYWNoZXIgPG1l
dHplQHNhbWJhLm9yZz4KRGF0ZTogVGh1LCAyMiBBdWcgMjAxOSAxNzoyNTowOSArMDAwMApT
dWJqZWN0OiBbUEFUQ0ggMjQvMjVdIGF1dGgvY3JlZGVudGlhbHNfa3JiNTogbGV0CiBjbGlf
Y3JlZGVudGlhbHNfZ2V0X3NlcnZlcl9nc3NfY3JlZHMoKSB1c2UgYW4gZWFybHkgcmV0dXJu
CgpUaGlzIHdpbGwgc2ltcGxpZnkgdGhlIG5leHQgY29tbWl0cy4KCkNoZWNrIHdpdGg6IGdp
dCBzaG93IC13CgpCVUc6IGh0dHBzOi8vYnVnemlsbGEuc2FtYmEub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjkwNwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIE1ldHptYWNoZXIgPG1ldHplQHNh
bWJhLm9yZz4KLS0tCiBhdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxzX2tyYjUuYyB8IDE0
ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf
a3JiNS5jIGIvYXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKaW5kZXggYjRj
YjQzOGYwOWQzLi44ZGUxOGM0NDBhMTYgMTAwNjQ0Ci0tLSBhL2F1dGgvY3JlZGVudGlhbHMv
Y3JlZGVudGlhbHNfa3JiNS5jCisrKyBiL2F1dGgvY3JlZGVudGlhbHMvY3JlZGVudGlhbHNf
a3JiNS5jCkBAIC0xMzgzLDE0ICsxMzgzLDE2IEBAIF9QVUJMSUNfIGludCBjbGlfY3JlZGVu
dGlhbHNfZ2V0X3NlcnZlcl9nc3NfY3JlZHMoc3RydWN0IGNsaV9jcmVkZW50aWFscyAqY3Jl
ZCwKIAkJCXJldCA9IEVJTlZBTDsKIAkJfQogCX0KLQlpZiAocmV0ID09IDApIHsKLQkJY3Jl
ZC0+c2VydmVyX2dzc19jcmVkc19vYnRhaW5lZCA9IGNyZWQtPmtleXRhYl9vYnRhaW5lZDsK
LQkJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywgZnJlZV9nc3NhcGlfY3JlZHMpOwotCQlj
cmVkLT5zZXJ2ZXJfZ3NzX2NyZWRzID0gZ2NjOwotCQkqX2djYyA9IGdjYzsKKwlpZiAocmV0
ICE9IDApIHsKKwkJdGFsbG9jX2ZyZWUobWVtX2N0eCk7CisJCXJldHVybiByZXQ7CiAJfQor
CWNyZWQtPnNlcnZlcl9nc3NfY3JlZHNfb2J0YWluZWQgPSBjcmVkLT5rZXl0YWJfb2J0YWlu
ZWQ7CisJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywgZnJlZV9nc3NhcGlfY3JlZHMpOwor
CWNyZWQtPnNlcnZlcl9nc3NfY3JlZHMgPSBnY2M7CisJKl9nY2MgPSBnY2M7CiAJdGFsbG9j
X2ZyZWUobWVtX2N0eCk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogLyoqIAot
LSAKMi4xNy4xCgoKRnJvbSBmNjU2ZjgxNjY3YTQ1NGQwNmFmNzJhYzhjZTZjMTIyMjdhMjZm
MTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gTWV0em1hY2hlciA8
bWV0emVAc2FtYmEub3JnPgpEYXRlOiBUaHUsIDIyIEF1ZyAyMDE5IDE3OjI1OjMwICswMDAw
ClN1YmplY3Q6IFtQQVRDSCAyNS8yNV0gYXV0aC9jcmVkZW50aWFsc19rcmI1OiBtYWtlIHVz
ZSBvZgogc21iX2dzc19rcmI1X3ByZXBhcmVfYWNjZXB0b3JfY3JlZCgpCgpXZSBzaG91bGQg
Y2hlY2sgYWxsIGtleXMgaW4gb3VyIGluIG1lbW9yeSBrZXl0YWIKYW5kIGRvbid0IG5lZWQg
YW55IHRyYW5zaXRlZCBjaGVja3MgaWYgd2UgcmVxdWlyZSBhIFBBQy4KCkJVRzogaHR0cHM6
Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTA3CkJVRzogaHR0cHM6
Ly9idWd6aWxsYS5zYW1iYS5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTI1CgpTaWduZWQtb2Zm
LWJ5OiBTdGVmYW4gTWV0em1hY2hlciA8bWV0emVAc2FtYmEub3JnPgotLS0KIGF1dGgvY3Jl
ZGVudGlhbHMvY3JlZGVudGlhbHNfa3JiNS5jIHwgMTQgKysrKysrKysrKysrKysKIDEgZmls
ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXV0aC9jcmVkZW50
aWFscy9jcmVkZW50aWFsc19rcmI1LmMgYi9hdXRoL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxz
X2tyYjUuYwppbmRleCA4ZGUxOGM0NDBhMTYuLjMxZDI5ZDNmZDkwZSAxMDA2NDQKLS0tIGEv
YXV0aC9jcmVkZW50aWFscy9jcmVkZW50aWFsc19rcmI1LmMKKysrIGIvYXV0aC9jcmVkZW50
aWFscy9jcmVkZW50aWFsc19rcmI1LmMKQEAgLTEzODcsNiArMTM4NywyMCBAQCBfUFVCTElD
XyBpbnQgY2xpX2NyZWRlbnRpYWxzX2dldF9zZXJ2ZXJfZ3NzX2NyZWRzKHN0cnVjdCBjbGlf
Y3JlZGVudGlhbHMgKmNyZWQsCiAJCXRhbGxvY19mcmVlKG1lbV9jdHgpOwogCQlyZXR1cm4g
cmV0OwogCX0KKwltYWpfc3RhdCA9IHNtYl9nc3Nfa3JiNV9wcmVwYXJlX2FjY2VwdG9yX2Ny
ZWQoJm1pbl9zdGF0LAorCQkJCQkJICAgICAgdHJ1ZSwgLyogcmVxdWlyZV9wYWMgKi8KKwkJ
CQkJCSAgICAgICZnY2MtPmNyZWRzKTsKKwlpZiAobWFqX3N0YXQpIHsKKwkJaWYgKG1pbl9z
dGF0KSB7CisJCQlyZXQgPSBtaW5fc3RhdDsKKwkJfSBlbHNlIHsKKwkJCXJldCA9IEVJTlZB
TDsKKwkJfQorCX0KKwlpZiAocmV0ICE9IDApIHsKKwkJdGFsbG9jX2ZyZWUobWVtX2N0eCk7
CisJCXJldHVybiByZXQ7CisJfQogCWNyZWQtPnNlcnZlcl9nc3NfY3JlZHNfb2J0YWluZWQg
PSBjcmVkLT5rZXl0YWJfb2J0YWluZWQ7CiAJdGFsbG9jX3NldF9kZXN0cnVjdG9yKGdjYywg
ZnJlZV9nc3NhcGlfY3JlZHMpOwogCWNyZWQtPnNlcnZlcl9nc3NfY3JlZHMgPSBnY2M7Ci0t
IAoyLjE3LjEKCg==
--------------DD547EFD1C077ADE310AA0E0--

--qMDF4UvpMrMjwzVC15MYHMNv4Q0g44VeB--

--hOf5XOdOvbTtHREDvOScwgCIBHF66RBan
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfFbGo3YXpfgryIw9DbX1YShpvVYFAl2JXbIACgkQDbX1YShp
vVYThxAAmtx3cg5n4QloeWp9npiTic0jmVrpV95+wOvq5yfCIGGVgQMQZCqkQg59
27rDyPTcMWv6f02rja262XjjBLsqnzeqeRQHwH7JaD7h8smqp1yzppbkRU6On48S
OjZZ8OoBxHNopOaRH4aCiKvMP5IApfmrVOvNz9x9IvdtLRwxnbIdKZ5Vs6lDAiD5
Qzc8o0sp1Q7hmX8ZHRForwTGfVscVWbdqJGtSOPnAspdQyPF3Ff+vNDRrXWz9rIF
te5I2tZWMnWsnMnNfMC2dLvgKwTgyVeJV+VN+EE9XD9Ol4epQ9pB8S4c4eXT84mH
h+HrAVpqYkdAWMRGFgnZhJMvq2MfVixVNn5oxSfTh54yt2Nnyqjqpe3XBBPWKqPL
/cnnTY2kEXiSyw9QdPIVZ/cjrxl4cC3awOtW+oVpElGa2Zr/M1/X+4eYBUuPRBsE
tDzLJOcMxgPYDyhVt2ABHAiS1Id+QIIQ/6GbwIR5rI6pSdiTUFBBGFakbnPvBQw+
9mHX1ZBYFdtzTSCKYwuoY1TrwZ2X+NrTkbuFV9EErIUDzgngJ5w28QnJSNbC5iJK
kI/yeQvlL2QCO5QlOBLlv1UD6CPgohaJRRJJqgOamRooXnHJNEPqBqUu0sHang+y
FXOdJ1blfS5THWTyqOFY/h2y0rT+WGVNoqJECGcXAOjXy1SFxps=
=7ZHD
-----END PGP SIGNATURE-----

--hOf5XOdOvbTtHREDvOScwgCIBHF66RBan--

--===============2708968489704256375==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
krbdev mailing list             krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev

--===============2708968489704256375==--

home help back first fref pref prev next nref lref last post