[bug#81040] [PATCH] dist: introduce AM_OPTIONAL_AUTOMAKE for best-effort dist-XXX archives.

Kamila Szewczyk <[email protected]> Tue, 19 May 2026 18:00:18 +0200
Newsgroups gmane.comp.sysutils.automake.patches
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------ZN60UbmJ7ZrlYCmXxhxWRts6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi all,

Attached is the fixed patch.

Karl/Jacob:
- Added dist-shar and dist-tarZ so all automake dist formats are
covered.  shar actually requires two tools in a pipe, so it needs a
separate dedicated format that isn't a single tool tarpipe.
- The docs now state that a given dist- option must appear in either
AM_INIT_AUTOMAKE or AM_OPTIONAL_AUTOMAKE.
- Added a rationale paragraph (minimal container images, bootstrap/CI,
cross toolchains) and an @comment pointing at the bug ID.
- On the command -v issue: I removed the probe.  The code is cleaner
without it.

Nick: the configure-time check stays the primary mechanism, as you wanted.

make dist-tar/dist-ar without gzip is a separate change to make dist's
contract, so I chose to not modify it.

I have also made some other, miscellaneous fixes. Please let me know if
I can make any other amendments.

--
With Valediction,
Kamila Szewczyk (https://iczelia.net)

On 5/16/26 11:47 PM, Kamila Szewczyk wrote:
> Hi all,
> 
> Thanks for your comments. I will have a fixed up version of the patch soon.
> 
> --
> With Valediction,
> Kamila Szewczyk (https://iczelia.net)
> 
> On 5/16/26 11:46 PM, Karl Berry wrote:
>> Hi Jacob,
>>
>>     If I remember correctly, on some systems, the /bin/sh shell does not 
>>     have command(1) as a builtin, but a "command" executable exists on the 
>>     filesystem.
>>
>> Good memory :). Indeed, this is the case on Solaris 10, at least the one
>> on cfarm.
>>
>> cfarm210$ type command
>> command is hashed (/usr/bin/command)
>>
>> Either a command or builtin should be fine for Kamila's purposes.
>>
>>     As long as `make dist-XYZ` will always either produce the "XYZ" dist
>>     or fail, we probably do not need to worry about this edge case.
>>
>> I agree. --thanks, karl.
> 

--------------ZN60UbmJ7ZrlYCmXxhxWRts6
Content-Type: text/x-patch; charset=UTF-8; name="am-optional-automake.patch"
Content-Disposition: attachment; filename="am-optional-automake.patch"
Content-Transfer-Encoding: base64

RnJvbSAzNDA0ZjJmYTNiYjNlZjEzYmY0MDc4ZTJlZjZlZGQxZTRlYjczMWE2IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYW1pbGEgU3pld2N6eWsgPGtAaWN6ZWxpYS5uZXQ+
CkRhdGU6IFR1ZSwgMTkgTWF5IDIwMjYgMTY6NDM6MDYgKzAyMDAKU3ViamVjdDogW1BBVENI
XSBOZXcgQU1fT1BUSU9OQUxfQVVUT01BS0UgbWFjcm8KCiogbTQvb3B0aW9uYWwubTQ6IE5l
dyBmaWxlLiAgQU1fT1BUSU9OQUxfQVVUT01BS0UoT1BUSU9OUykgbWFrZXMKYG1ha2UgZGlz
dCcgYnVpbGQgdGhlIGxpc3RlZCBkaXN0LVhYWCBhcmNoaXZlcyB3aGVuIHRoZWlyIHRvb2wg
aXMKYXZhaWxhYmxlIGFuZCBza2lwIHRoZW0gb3RoZXJ3aXNlLCB3aXRob3V0IGZhaWxpbmcu
ICBTdXBwb3J0cwpkaXN0LWJ6aXAyLCBkaXN0LWJ6aXAzLCBkaXN0LXh6LCBkaXN0LWx6aXAs
IGRpc3QtenN0ZCwgZGlzdC16aXAsCmRpc3Qtc2hhciBhbmQgZGlzdC10YXJaLiAgZGlzdC1z
aGFyIGlzIGhhbmRsZWQgc2VwYXJhdGVseTogc2hhciBpcwpydW4gdG8gYW4gaW50ZXJtZWRp
YXRlIGZpbGUgYmVmb3JlIGd6aXAgc28gYSBtaXNzaW5nIHNoYXIgY2Fubm90CmxlYXZlIGEg
Ym9ndXMgLnNoYXIuZ3ogYmVoaW5kLgoqIG00L2xvY2FsLm1rIChkaXN0X2F1dG9tYWtlX2Fj
X0RBVEEpOiBBZGQgbTQvb3B0aW9uYWwubTQuCiogZG9jL2F1dG9tYWtlLnRleGkgKFB1Ymxp
YyBNYWNyb3MpOiBEb2N1bWVudCBpdC4gIENyb3NzLXJlZmVyZW5jZQppdCBmcm9tIGRpc3Qt
YnppcDMsIGRpc3QtbHppcCBhbmQgZGlzdC16c3RkLgpSZWZlcmVuY2VzOiBodHRwczovL2Rl
YmJ1Z3MuZ251Lm9yZy9jZ2kvYnVncmVwb3J0LmNnaT9idWc9ODEwNDAuCiogdC9hbS1vcHRp
b25hbC1hdXRvbWFrZS5zaDogTmV3IHRlc3QsIGluY2x1ZGluZyBhIGRpc3RjaGVjayBjYXNl
LgoqIHQvbGlzdC1vZi10ZXN0cy5tazogQWRkIGl0LgoqIE5FV1M6IE1lbnRpb24gdGhlIG5l
dyBtYWNyby4KLS0tCiBORVdTICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKwogZG9j
L2F1dG9tYWtlLnRleGkgICAgICAgICB8ICA1MSArKysrKysrKy0KIG00L2xvY2FsLm1rICAg
ICAgICAgICAgICAgfCAgIDEgKwogbTQvb3B0aW9uYWwubTQgICAgICAgICAgICB8IDEzMiAr
KysrKysrKysrKysrKysrKysrKysrKysKIHQvYW0tb3B0aW9uYWwtYXV0b21ha2Uuc2ggfCAy
MTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHQvbGlzdC1vZi10
ZXN0cy5tayAgICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCA0MDUgaW5zZXJ0aW9u
cygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBtNC9vcHRpb25hbC5t
NAogY3JlYXRlIG1vZGUgMTAwNjQ0IHQvYW0tb3B0aW9uYWwtYXV0b21ha2Uuc2gKCmRpZmYg
LS1naXQgYS9ORVdTIGIvTkVXUwppbmRleCA3ODYyNTU5Li4zZGM0ZjNiIDEwMDY0NAotLS0g
YS9ORVdTCisrKyBiL05FV1MKQEAgLTEsNiArMSwxOCBAQAogRm9yIHBsYW5uZWQgaW5jb21w
YXRpYmlsaXRpZXMgaW4gYSBwb3NzaWJsZSBmdXR1cmUgQXV0b21ha2UgMi4wIHJlbGVhc2Us
CiBwbGVhc2Ugc2VlIE5FV1MtZnV0dXJlIGFuZCBzdGFydCBmb2xsb3dpbmcgdGhlIGFkdmlj
ZSB0aGVyZSBub3cuCiAKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KK05ldyBpbiAxLjE4LjIg
KD8/Pz8tPz8tPz8pOgorCisqIE5ldyBmZWF0dXJlcyBhZGRlZAorCisgIC0gTmV3IGF1dG9j
b25mIG1hY3JvIEFNX09QVElPTkFMX0FVVE9NQUtFLiAgSXQgdGFrZXMgYSBsaXN0IG9mCisg
ICAgYGRpc3QtWFhYJyBvcHRpb24gbmFtZXMgKGRpc3QtYnppcDIsIGRpc3QtYnppcDMsIGRp
c3QteHosCisgICAgZGlzdC1semlwLCBkaXN0LXpzdGQsIGRpc3QtemlwLCBkaXN0LXNoYXIs
IGRpc3QtdGFyWik7IGBtYWtlCisgICAgZGlzdCcgYnVpbGRzIGVhY2ggYXJjaGl2ZSB3aGVu
IGl0cyB0b29sIGlzIGF2YWlsYWJsZSBhbmQgc2tpcHMKKyAgICBpdCBvdGhlcndpc2UsIHdp
dGhvdXQgbWFraW5nIGBtYWtlIGRpc3QnIGZhaWwuICBUaGlzIGlzIGZvcgorICAgIHRyZWVz
IHRoYXQgaW50ZW50aW9uYWxseSBsYWNrIHNvbWUgY29tcHJlc3Npb24gdG9vbHMuCisKIH5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn4KIE5ldyBpbiAxLjE4LjEgKDIwMjUtMDYtMjUpOgogCmRp
ZmYgLS1naXQgYS9kb2MvYXV0b21ha2UudGV4aSBiL2RvYy9hdXRvbWFrZS50ZXhpCmluZGV4
IGVlYWNlZTcuLjBhNmE3MTAgMTAwNjQ0Ci0tLSBhL2RvYy9hdXRvbWFrZS50ZXhpCisrKyBi
L2RvYy9hdXRvbWFrZS50ZXhpCkBAIC00MTM3LDYgKzQxMzcsNDcgQEAgb3B0aW9uIChAcHhy
ZWZ7TGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zfSk6CiBBTV9JTklUX0FVVE9NQUtFKFtuby1k
ZWZpbmUgLi4uXSkKIEBlbmQgZXhhbXBsZQogCitAaXRlbSBBTV9PUFRJT05BTF9BVVRPTUFL
RShbQHZhcntvcHRpb25zfV0pCitAYWNpbmRleCBBTV9PUFRJT05BTF9BVVRPTUFLRQorQGNp
bmRleCBPcHRpb25hbCBAY29kZXtkaXN0LX0gYXJjaGl2ZXMKK0Bjb21tZW50IGh0dHBzOi8v
ZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQuY2dpP2J1Zz04MTA0MAorQHZhcntvcHRp
b25zfSBpcyBhIHdoaXRlc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgQGNvZGV7ZGlzdC19IG9w
dGlvbgorbmFtZXMsIHVzaW5nIHRoZSBzYW1lIHNwZWxsaW5ncyBAY29kZXtBTV9JTklUX0FV
VE9NQUtFfSBhY2NlcHRzOgorQG9wdGlvbntkaXN0LWJ6aXAyfSwgQG9wdGlvbntkaXN0LWJ6
aXAzfSwgQG9wdGlvbntkaXN0LXh6fSwKK0BvcHRpb257ZGlzdC1semlwfSwgQG9wdGlvbntk
aXN0LXpzdGR9LCBAb3B0aW9ue2Rpc3QtemlwfSwKK0BvcHRpb257ZGlzdC1zaGFyfSwgYW5k
IEBvcHRpb257ZGlzdC10YXJafS4gIEZvciBlYWNoLCBAc2FtcHttYWtlCitkaXN0fSBidWls
ZHMgdGhlIG1hdGNoaW5nIGFyY2hpdmUgd2hlbiBpdHMgY29tcHJlc3NvciBvciBhcmNoaXZl
ciBpcworYXZhaWxhYmxlIGFuZCBza2lwcyBpdCBvdGhlcndpc2UsIGluY2x1ZGluZyB3aGVu
IGEgdG9vbCBwcmVzZW50IGF0CitAY29tbWFuZHtjb25maWd1cmV9IHRpbWUgaXMgZ29uZSBi
eSBAc2FtcHttYWtlIGRpc3R9IHRpbWU7IGEgbWlzc2luZworbGlzdGVkIHRvb2wgZG9lcyBu
b3QgbWFrZSBAc2FtcHttYWtlIGRpc3R9IGZhaWwuICBBbiB1bmtub3duCitAdmFye29wdGlv
bn0gaXMgcmVwb3J0ZWQgYXMgYSBAY29kZXtzeW50YXh9IHdhcm5pbmcgYW5kIGlnbm9yZWQu
CisKK1RoaXMgaXMgbWVhbnQgZm9yIHRyZWVzIHRoYXQgaW50ZW50aW9uYWxseSBsYWNrIHNv
bWUgY29tcHJlc3Npb24KK3Rvb2xzLCBzdWNoIGFzIG1pbmltYWwgY29udGFpbmVyIG9yIENJ
IGltYWdlcywgd2hlcmUgaW5zdGFsbGluZworQGNvbW1hbmR7YnppcDN9LCBAY29tbWFuZHts
emlwfSwgQGNvbW1hbmR7enN0ZH0sIGV0Yy5AOiBvbmx5IHNvIHRoYXQKK0BzYW1we21ha2Ug
ZGlzdGNoZWNrfSBzdWNjZWVkcyBpcyBpbXByYWN0aWNhbC4gIEl0IGF2b2lkcyBvdmVycmlk
aW5nCitAY29kZXtESVNUX1RBUkdFVFN9IG9yIEBjb2Rle0RJU1RfQVJDSElWRVN9IGJ5IGhh
bmQuCisKK1RoZSBtYWNybyBkb2VzIG5vdCBwYXNzIHRoZSBvcHRpb25zIHRvIEBjb21tYW5k
e2F1dG9tYWtlfTsgaXQgdXNlcworb25seSB0aGUgQGNvZGV7ZGlzdGRpcn0gdGFyZ2V0IGFu
ZCBAY29kZXskKGFtX190YXIpfSwgcHJlc2VudCBzaW5jZQorQXV0b21ha2UgMS4xMCwgc28g
YW4gb2xkZXIgQGNvbW1hbmR7YXV0b21ha2V9IHRoYXQgZG9lcyBub3QgcmVjb2duaXplCith
biBvcHRpb24gKHN1Y2ggYXMgQG9wdGlvbntkaXN0LWJ6aXAzfSkgaXMgbm90IGEgcHJvYmxl
bS4KKworQGV4YW1wbGUKK0FNX0lOSVRfQVVUT01BS0UoWy1XYWxsIGZvcmVpZ24gZGlzdC1i
emlwMiBkaXN0LXh6IGRpc3QtemlwXSkKK0FNX09QVElPTkFMX0FVVE9NQUtFKFtkaXN0LWJ6
aXAzXSkKK0BlbmQgZXhhbXBsZQorCitIZXJlIEBmaWxley50YXIuZ3p9LCBAZmlsZXsudGFy
LmJ6Mn0sIEBmaWxley50YXIueHp9LCBhbmQgQGZpbGV7LnppcH0KK2FyZSBhbHdheXMgYnVp
bHQgKGFuZCBAc2FtcHttYWtlIGRpc3R9IGZhaWxzIGlmIHRoZWlyIHRvb2xzIGFyZQorbWlz
c2luZyksIHdoaWxlIEBmaWxley50YXIuYnozfSBpcyBidWlsdCBvbmx5IHdoZXJlIEBjb21t
YW5ke2J6aXAzfSBpcworaW5zdGFsbGVkLgorCitBIGdpdmVuIEBjb2Rle2Rpc3QtfSBvcHRp
b24gc2hvdWxkIGFwcGVhciBpbiBAY29kZXtBTV9JTklUX0FVVE9NQUtFfQorb3IgQGNvZGV7
QU1fT1BUSU9OQUxfQVVUT01BS0V9LCBub3QgYm90aDsgbGlzdGluZyBpdCBpbgorQGNvZGV7
QU1fSU5JVF9BVVRPTUFLRX0gYWxyZWFkeSBtYWtlcyB0aGF0IGZvcm1hdCBtYW5kYXRvcnku
ICBUaGUKK21hY3JvIG1heSBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2U7IHJlcGVhdGluZyBh
biBvcHRpb24gaXMgYSBuby1vcC4KKwogQGl0ZW0gQU1fUEFUSF9MSVNQRElSCiBAYWNpbmRl
eCBBTV9QQVRIX0xJU1BESVIKIEB2aW5kZXggRU1BQ1MKQEAgLTk0NjgsNyArOTUwOSw4IEBA
IG1ha2UgaXQgdXNlIGEgZGlmZmVyZW50IG9uZSwgc2V0IHRoZSBAZW52e0JaSVAyfSBlbnZp
cm9ubWVudCB2YXJpYWJsZS4KIEB2aW5kZXggQlpJUDMKIEdlbmVyYXRlIGEgQHNhbXB7Ynpp
cDN9IHRhciBhcmNoaXZlIG9mIHRoZSBkaXN0cmlidXRpb24uICBVbmxpa2UgdGhlCiBvdGhl
ciBjb21wcmVzc2lvbiBwcm9ncmFtcyBoZXJlLCBAY29tbWFuZHtiemlwM30gZG9lcyBub3Qg
cmVhZCBhbnkKLWVudmlyb25tZW50IHZhcmlhYmxlcy4KK2Vudmlyb25tZW50IHZhcmlhYmxl
cy4gIFRvIGJ1aWxkIHRoaXMgb25seSB3aGVuIEBjb21tYW5ke2J6aXAzfSBpcworcHJlc2Vu
dCwgc2VlIEBjb2Rle0FNX09QVElPTkFMX0FVVE9NQUtFfSAoQHB4cmVme1B1YmxpYyBNYWNy
b3N9KS4KIAogQGl0ZW0gQGNvZGV7ZGlzdC1semlwfQogQHRyaW5kZXggZGlzdC1semlwCkBA
IC05NDc4LDcgKzk1MjAsOSBAQCBHZW5lcmF0ZSBhbiBAc2FtcHtsemlwfSB0YXIgYXJjaGl2
ZSBvZiB0aGUgZGlzdHJpYnV0aW9uLgogQGNvbW1hbmR7bHppcH0gYXJjaGl2ZXMgYXJlIHVz
dWFsbHkgc21hbGxlciB0aGFuCiBAY29tbWFuZHtiemlwMn0tY29tcHJlc3NlZCBhcmNoaXZl
cy4gIEJ5IGRlZmF1bHQsIHRoaXMgcnVsZSBtYWtlcwogQHNhbXB7bHppcH0gdXNlIGEgY29t
cHJlc3Npb24gb3B0aW9uIG9mIEBvcHRpb257LTl9LiAgVG8gbWFrZSBpdCB1c2UgYQotZGlm
ZmVyZW50IG9uZSwgc2V0IHRoZSBAZW52e0xaSVBfT1BUfSBlbnZpcm9ubWVudCB2YXJpYWJs
ZS4KK2RpZmZlcmVudCBvbmUsIHNldCB0aGUgQGVudntMWklQX09QVH0gZW52aXJvbm1lbnQg
dmFyaWFibGUuICBUbyBidWlsZAordGhpcyBvbmx5IHdoZW4gQGNvbW1hbmR7bHppcH0gaXMg
cHJlc2VudCwgc2VlCitAY29kZXtBTV9PUFRJT05BTF9BVVRPTUFLRX0gKEBweHJlZntQdWJs
aWMgTWFjcm9zfSkuCiAKIEBpdGVtIEBjb2Rle2Rpc3QteHp9CiBAdHJpbmRleCBkaXN0LXh6
CkBAIC05NTEwLDcgKzk1NTQsOCBAQCBkZWZhdWx0IGNvbXByZXNzaW9uIHJhdGlvLCBidXQg
d2l0aCBhIHByb2dyZXNzIGluZGljYXRvcjogQHNhbXB7bWFrZQogZGlzdC16c3RkIFpTVERf
T1BUPS0xOXZ9LiAgSG93ZXZlciwgbm90ZSB0aGF0IGZvciBjb21wYXRpYmlsaXR5IHdpdGgK
IEBjb21tYW5ke3pzdGR9IGl0c2VsZiwgeW91IG1heSBpbnN0ZWFkIHNldCB0aGUgQGVudnta
U1REX0NMRVZFTH0KIGVudmlyb25tZW50IHZhcmlhYmxlLCBpbiB3aGljaCBjYXNlLCBhbnkg
QGVudntaU1REX09QVH0gc2V0dGluZyBpcwotaWdub3JlZC4KK2lnbm9yZWQuICBUbyBidWls
ZCB0aGlzIG9ubHkgd2hlbiBAY29tbWFuZHt6c3RkfSBpcyBwcmVzZW50LCBzZWUKK0Bjb2Rl
e0FNX09QVElPTkFMX0FVVE9NQUtFfSAoQHB4cmVme1B1YmxpYyBNYWNyb3N9KS4KIAogQGl0
ZW0gQGNvZGV7ZGlzdC1zaGFyfQogQHRyaW5kZXggZGlzdC1zaGFyCmRpZmYgLS1naXQgYS9t
NC9sb2NhbC5tayBiL200L2xvY2FsLm1rCmluZGV4IDVlOTgzMGEuLjZiNzZmZDIgMTAwNjQ0
Ci0tLSBhL200L2xvY2FsLm1rCisrKyBiL200L2xvY2FsLm1rCkBAIC00Myw2ICs0Myw3IEBA
IGRpc3RfYXV0b21ha2VfYWNfREFUQSA9IFwKICAgJUQlL21pc3NpbmcubTQgXAogICAlRCUv
bWtkaXJwLm00IFwKICAgJUQlL29ic29sZXRlLm00IFwKKyAgJUQlL29wdGlvbmFsLm00IFwK
ICAgJUQlL29wdGlvbnMubTQgXAogICAlRCUvcHl0aG9uLm00IFwKICAgJUQlL3Byb2ctY2Mt
Yy1vLm00IFwKZGlmZiAtLWdpdCBhL200L29wdGlvbmFsLm00IGIvbTQvb3B0aW9uYWwubTQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY2YmVlOQotLS0gL2Rldi9u
dWxsCisrKyBiL200L29wdGlvbmFsLm00CkBAIC0wLDAgKzEsMTMyIEBACisjIyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0
b2NvbmYgLSotCisjIyBBTV9PUFRJT05BTF9BVVRPTUFLRSAtLSBza2lwIGBkaXN0LVhYWCcg
Zm9ybWF0cyB3aG9zZSB0b29sIGlzIGFic2VudC4KKworIyBDb3B5cmlnaHQgKEMpIDIwMjYg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVl
IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGlt
aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy
ZXNlcnZlZC4KKworCisjIEFNX09QVElPTkFMX0FVVE9NQUtFKE9QVElPTlMpCisjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE9QVElPTlM6IHdoaXRlc3BhY2Utc2VwYXJh
dGVkIGBkaXN0LVhYWCcgbmFtZXMgKEFNX0lOSVRfQVVUT01BS0UKKyMgc3BlbGxpbmdzKSBm
b3IgZGlzdC1iemlwMi9iemlwMy94ei9semlwL3pzdGQvemlwL3NoYXIvdGFyWi4gIGBtYWtl
CisjIGRpc3QnIGJ1aWxkcyBlYWNoIGFyY2hpdmUgd2hlbiBpdHMgdG9vbCBpcyBwcmVzZW50
IGFuZCBza2lwcyBpdAorIyBvdGhlcndpc2UsIHdpdGhvdXQgZmFpbGluZy4gIFVua25vd24g
T1BUSU9OIHdhcm5zIGF0IGF1dG9yZWNvbmY7IGEKKyMgdG9vbCBhYnNlbnQgYXQgY29uZmln
dXJlIGFwcGVuZHMgbm8gcnVsZTsgYSB0b29sIGxvc3QgYWZ0ZXJ3YXJkcworIyBmYWlscyB0
aGUgcGlwZWxpbmUsIHdoaWNoIHRoZSByZWNpcGUgY2F0Y2hlcy4gIFNlZSBidWcjODEwNDAu
CitBQ19ERUZVTihbQU1fT1BUSU9OQUxfQVVUT01BS0VdLAorW200X2ZvcmVhY2hfdyhbX2Ft
X29wdF9vXSwgWyQxXSwKKyAgIFtfQU1fT1BUSU9OQUxfQVVUT01BS0VfT05FKF9tNF9kZWZu
KFtfYW1fb3B0X29dKSldKWRubAorXSkKKworCisjIF9BTV9PUFRJT05BTF9BVVRPTUFLRV9P
TkUoT1BUKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGlzcGF0Y2gg
b24gT1BUOyB1bnJlY29nbmlzZWQgT1BUIHdhcm5zIGFuZCBpcyBpZ25vcmVkLgorQUNfREVG
VU4oW19BTV9PUFRJT05BTF9BVVRPTUFLRV9PTkVdLAorW200X2Nhc2UoWyQxXSwKKyAgW2Rp
c3QtYnppcDJdLCBbX0FNX09QVElPTkFMX1RBUihbYnppcDJdLCBbYnppcDJdLCBbYnoyXSwg
Wy1jXSldLAorICBbZGlzdC1iemlwM10sIFtfQU1fT1BUSU9OQUxfVEFSKFtiemlwM10sIFti
emlwM10sIFtiejNdLCBbLWNdKV0sCisgIFtkaXN0LXh6XSwgICAgW19BTV9PUFRJT05BTF9U
QVIoW3h6XSwgICAgW3h6XSwgICAgW3h6XSwgIFstY10pXSwKKyAgW2Rpc3QtbHppcF0sICBb
X0FNX09QVElPTkFMX1RBUihbbHppcF0sICBbbHppcF0sICBbbHpdLCAgWy1jXSldLAorICBb
ZGlzdC16c3RkXSwgIFtfQU1fT1BUSU9OQUxfVEFSKFt6c3RkXSwgIFt6c3RkXSwgIFt6c3Rd
LCBbLWMgLXFdKV0sCisgIFtkaXN0LXRhclpdLCAgW19BTV9PUFRJT05BTF9UQVIoW2NvbXBy
ZXNzXSwgW2NvbXByZXNzXSwgW1pdLCBbLWNdKV0sCisgIFtkaXN0LXppcF0sICAgW19BTV9P
UFRJT05BTF9aSVAoKV0sCisgIFtkaXN0LXNoYXJdLCAgW19BTV9PUFRJT05BTF9TSEFSKCld
LAorICBbbTRfd2Fybihbc3ludGF4XSwKKyAgICAgW2FtLW9wdGlvbmFsOiB1bmtub3duIG9w
dGlvbiBgJDEnLCBpZ25vcmluZyBpdF0pXSlkbmwKK10pCisKKworIyBfQU1fT1BUSU9OQUxf
UlVMRShUQUcsIFZBUiwgUkVDSVBFLCBBUlRJRkFDVFMpCisjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQUNfQ0hFQ0tfUFJPRyBmb3IgVEFH
LCB0aGVuIG9uY2UgYXBwZW5kIFJFQ0lQRSB0byB0aGUgdG9wIE1ha2VmaWxlCisjIHZpYSBB
Q19DT05GSUdfQ09NTUFORFMgKHN1cnZpdmVzIGNvbmZpZy5zdGF0dXMgcmVydW5zKSBpZmYg
Y29uZmlndXJlCisjIGZvdW5kIHRoZSB0b29sLiAgSG9va2VkIGludG8gZGlzdC9kaXN0LWFs
bCBhcyBhbiBleHRyYSBwcmVyZXF1aXNpdGUuCisjIEFSVElGQUNUUyBzdGF5IG91dCBvZiAk
KERJU1RfQVJDSElWRVMpLCBzbyBkaXN0Y2xlYW5jaGVjayBtdXN0IHJlbW92ZQorIyB0aGUg
Y29waWVzIHRoZSBpbi10cmVlIGBtYWtlIGRpc3QnIG9mIGBtYWtlIGRpc3RjaGVjaycgbGVh
dmVzLgorQUNfREVGVU4oW19BTV9PUFRJT05BTF9SVUxFXSwKK1ttNF9pZmRlZihbX0FNX09Q
VElPTkFMX0RPTkVfJDFdLCBbXSwKKyBbbTRfZGVmaW5lKFtfQU1fT1BUSU9OQUxfRE9ORV8k
MV0pZG5sCitBQ19DSEVDS19QUk9HKFthbV9fb3B0aW9uYWxfJDJdLCBbJDFdLCBbJDFdKQor
QUNfU1VCU1QoW2FtX19vcHRpb25hbF8kMl0pZG5sCitBQ19DT05GSUdfQ09NTUFORFMoW2Ft
LS1vcHRpb25hbC1ydWxlLSQxXSwKK1thbV9fb3B0aW9uYWxfbWY9Citmb3IgYW1fX29wdGlv
bmFsX2NhbmQgaW4gTWFrZWZpbGUgR05VbWFrZWZpbGUgbWFrZWZpbGU7IGRvCisgIHRlc3Qg
LWYgIiRhbV9fb3B0aW9uYWxfY2FuZCIgJiYgeyBhbV9fb3B0aW9uYWxfbWY9JGFtX19vcHRp
b25hbF9jYW5kOyBicmVhazsgfQorZG9uZQoraWYgdGVzdCAtbiAiJGFtX19vcHRpb25hbF9t
ZiIgJiYgdGVzdCAtbiAiJGFtX19vcHRpb25hbF8kMiI7IHRoZW4KKyAgY2F0ID4+IiRhbV9f
b3B0aW9uYWxfbWYiIDw8J19hbV9vcHRfcnVsZV9lb2ZfJworCisjIEFwcGVuZGVkIGJ5IGFt
LW9wdGlvbmFsIGZvciBkaXN0LSQxLgorZGlzdCBkaXN0LWFsbDogYW0tLW9wdGlvbmFsLWRp
c3QtJDEKK2Rpc3RjbGVhbmNoZWNrOiBhbS0tb3B0aW9uYWwtcm0tJDEKKy5QSE9OWTogYW0t
LW9wdGlvbmFsLWRpc3QtJDEgYW0tLW9wdGlvbmFsLXJtLSQxCiskMworYW0tLW9wdGlvbmFs
LXJtLSQxOgorCS1ybSAtZiAkNAorX2FtX29wdF9ydWxlX2VvZl8KK2ZpCitdLAorW2FtX19v
cHRpb25hbF8kMj0iJGFtX19vcHRpb25hbF8kMiIKK10pXSlkbmwKK10pCisKKworIyBfQU1f
T1BUSU9OQUxfVEFSKFRPT0wsIFZBUi1UQUcsIEVYVCwgRkxBR1MpCisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2luZ2xlLXRvb2wgdGFyIHBp
cGU7IFRPT0wgaXMgbGFzdCwgc28gaXRzIGZhaWx1cmUgaXMgd2hhdCdzIGNhdWdodC4KK0FD
X0RFRlVOKFtfQU1fT1BUSU9OQUxfVEFSXSwKK1tfQU1fT1BUSU9OQUxfUlVMRShbJDFdLCBb
JDJdLAorW2FtLS1vcHRpb25hbC1kaXN0LSQxOiBkaXN0ZGlyCisJQGlmIHRlc3QgLW4gIiQo
YW1fX29wdGlvbmFsXyQyKSI7IHRoZW4gXAorCSAgeyB0YXJkaXI9JChkaXN0ZGlyKSBcCisJ
ICAgICYmICQoYW1fX3RhcikgfCAiJChhbV9fb3B0aW9uYWxfJDIpIiAkNCA+ICQoZGlzdGRp
cikudGFyLiQzOyB9IFwKKwkgIHx8IHsgcm0gLWYgJChkaXN0ZGlyKS50YXIuJDM7IFwKKwkg
ICAgICAgZWNobyAiYW0tb3B0aW9uYWw6IGRpc3QtJDEgZmFpbGVkOyBhcmNoaXZlIG5vdCBi
dWlsdCIgPiYyOyB9OyBcCisJZWxzZSBcCisJICBlY2hvICJhbS1vcHRpb25hbDogJDEgdW5h
dmFpbGFibGUsIHNraXBwaW5nICQoZGlzdGRpcikudGFyLiQzIiA+JjI7IFwKKwlmaTsgXAor
CTpdLCBbJChkaXN0ZGlyKS50YXIuJDNdKWRubAorXSkKKworCisjIF9BTV9PUFRJT05BTF9a
SVAKKyMgLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW19BTV9PUFRJT05BTF9aSVBdLAor
W19BTV9PUFRJT05BTF9SVUxFKFt6aXBdLCBbemlwXSwKK1thbS0tb3B0aW9uYWwtZGlzdC16
aXA6IGRpc3RkaXIKKwlAaWYgdGVzdCAtbiAiJChhbV9fb3B0aW9uYWxfemlwKSI7IHRoZW4g
XAorCSAgcm0gLWYgJChkaXN0ZGlyKS56aXA7IFwKKwkgIHsgIiQoYW1fX29wdGlvbmFsX3pp
cCkiIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpOyB9IFwKKwkgIHx8IHsgcm0gLWYg
JChkaXN0ZGlyKS56aXA7IFwKKwkgICAgICAgZWNobyAiYW0tb3B0aW9uYWw6IGRpc3Qtemlw
IGZhaWxlZDsgYXJjaGl2ZSBub3QgYnVpbHQiID4mMjsgfTsgXAorCWVsc2UgXAorCSAgZWNo
byAiYW0tb3B0aW9uYWw6IHppcCB1bmF2YWlsYWJsZSwgc2tpcHBpbmcgJChkaXN0ZGlyKS56
aXAiID4mMjsgXAorCWZpOyBcCisJOl0sIFskKGRpc3RkaXIpLnppcF0pZG5sCitdKQorCisK
KyMgX0FNX09QVElPTkFMX1NIQVIKKyMgLS0tLS0tLS0tLS0tLS0tLS0KKyMgT25seSBgc2hh
cicgaXMgb3B0aW9uYWwgKGd6aXAgaXMgYSBoYXJkIGF1dG9tYWtlIHByZXJlcSkuICBzaGFy
CisjIHdyaXRlcyBhbiBpbnRlcm1lZGlhdGUgZmlsZSBpbnN0ZWFkIG9mIHBpcGluZyBpbnRv
IGd6aXA6IHBpcGVkLCBnemlwCisjIHdvdWxkIHN1Y2NlZWQgb24gZW1wdHkgaW5wdXQgYW5k
IGxlYXZlIGEgYm9ndXMgLnNoYXIuZ3ogd2hlbiBzaGFyCisjIGZhaWxlZDsgdGhlIGAmJicg
Y2hhaW4gY2F0Y2hlcyBzaGFyJ3MgZXhpdCBpbnN0ZWFkLgorQUNfREVGVU4oW19BTV9PUFRJ
T05BTF9TSEFSXSwKK1tfQU1fT1BUSU9OQUxfUlVMRShbc2hhcl0sIFtzaGFyXSwKK1thbS0t
b3B0aW9uYWwtZGlzdC1zaGFyOiBkaXN0ZGlyCisJQGlmIHRlc3QgLW4gIiQoYW1fX29wdGlv
bmFsX3NoYXIpIjsgdGhlbiBcCisJICBybSAtZiAkKGRpc3RkaXIpLnNoYXIgJChkaXN0ZGly
KS5zaGFyLmd6OyBcCisJICB7ICIkKGFtX19vcHRpb25hbF9zaGFyKSIgJChkaXN0ZGlyKSA+
ICQoZGlzdGRpcikuc2hhciBcCisJICAgICYmIGV2YWwgR1pJUD0gZ3ppcCAkKEdaSVBfRU5W
KSAtZiAkKGRpc3RkaXIpLnNoYXI7IH0gXAorCSAgfHwgeyBybSAtZiAkKGRpc3RkaXIpLnNo
YXIgJChkaXN0ZGlyKS5zaGFyLmd6OyBcCisJICAgICAgIGVjaG8gImFtLW9wdGlvbmFsOiBk
aXN0LXNoYXIgZmFpbGVkOyBhcmNoaXZlIG5vdCBidWlsdCIgPiYyOyB9OyBcCisJZWxzZSBc
CisJICBlY2hvICJhbS1vcHRpb25hbDogc2hhciB1bmF2YWlsYWJsZSwgc2tpcHBpbmcgJChk
aXN0ZGlyKS5zaGFyLmd6IiA+JjI7IFwKKwlmaTsgXAorCTpdLCBbJChkaXN0ZGlyKS5zaGFy
ICQoZGlzdGRpcikuc2hhci5nel0pZG5sCitdKQpkaWZmIC0tZ2l0IGEvdC9hbS1vcHRpb25h
bC1hdXRvbWFrZS5zaCBiL3QvYW0tb3B0aW9uYWwtYXV0b21ha2Uuc2gKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU4OGEwZgotLS0gL2Rldi9udWxsCisrKyBiL3Qv
YW0tb3B0aW9uYWwtYXV0b21ha2Uuc2gKQEAgLTAsMCArMSwyMTEgQEAKKyMhIC9iaW4vc2gK
KyMgQ29weXJpZ2h0IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor
IworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24p
CisjIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v
dCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgQ2hlY2sgQU1f
T1BUSU9OQUxfQVVUT01BS0UuICBGaXZlIHNjZW5hcmlvczoKKyMgICgxKSBUaGUgdG9vbCBp
cyBvbiBQQVRIIGF0IGNvbmZpZ3VyZSB0aW1lIC0+IGRpc3QtYnppcDMgcHJvZHVjZXMKKyMg
ICAgICAkZGlzdGRpci50YXIuYnozIGFsb25nc2lkZSB0aGUgYWx3YXlzLWJ1aWx0ICRkaXN0
ZGlyLnRhci5nei4KKyMgICgyKSBBbiB1bmtub3duIG9wdGlvbiBwcm9kdWNlcyBhbiBhdXRv
cmVjb25mLXRpbWUgYHN5bnRheCcgd2FybmluZworIyAgICAgIGJ1dCBkb2VzIG5vdCBicmVh
ayBjb25maWd1cmUgb3IgbWFrZSBkaXN0LgorIyAgKDMpIFRoZSB0b29sIGlzIG1pc3Npbmcg
YXQgY29uZmlndXJlIHRpbWUgLT4gbm8gZXh0cmEgcnVsZSBpcworIyAgICAgIGFwcGVuZGVk
OyBgbWFrZSBkaXN0JyBydW5zIGNsZWFubHkgYW5kIGRvZXMgbm90IHByb2R1Y2UKKyMgICAg
ICAkZGlzdGRpci50YXIuYnozLgorIyAgKDQpIFRoZSB0b29sIGlzIHByZXNlbnQgYXQgY29u
ZmlndXJlIHRpbWUgYnV0IGFic2VudCB3aGVuCisjICAgICAgYG1ha2UgZGlzdCcgcnVucyAt
PiBpbnZva2luZyBpdCBmYWlscywgdGhlIHJlY2lwZSBjbGVhbnMgdXAsCisjICAgICAgcHJp
bnRzIGEgd2FybmluZyB0byBzdGRlcnIsIGBtYWtlIGRpc3QnIHN0aWxsIHN1Y2NlZWRzLCBh
bmQgbm8KKyMgICAgICAkZGlzdGRpci50YXIuYnozIGFwcGVhcnMgKG5vIGBjb21tYW5kIC12
JyBwcm9iZSBpbnZvbHZlZCkuCisjICAoNSkgZGlzdC1zaGFyIGFuZCBkaXN0LXRhclosIHRo
ZSB0d28gbm9uLXRhci1waXBlIGZvcm1hdHMuCisKK3JlcXVpcmVkPSdiemlwMycKKy4gdGVz
dC1pbml0LnNoCisKKyMgVGVzdCAxOiBiemlwMyBvbiBQQVRIIGF0IGNvbmZpZ3VyZSB0aW1l
LgorCitjYXQgPiBjb25maWd1cmUuYWMgPDwnRU5EJworQUNfSU5JVChbYW0tb3B0aW9uYWwt
YXV0b21ha2VdLCBbMS4wXSkKK0FNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ25dKQorQU1fT1BU
SU9OQUxfQVVUT01BS0UoW2Rpc3QtYnppcDNdKQorQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmls
ZV0pCitBQ19PVVRQVVQKK0VORAorOiA+IE1ha2VmaWxlLmFtCisKKyRBQ0xPQ0FMCiskQVVU
T0NPTkYKKyRBVVRPTUFLRSAtLWFkZC1taXNzaW5nCisuL2NvbmZpZ3VyZQorJE1BS0UgZGlz
dAordGVzdCAtcyBhbS1vcHRpb25hbC1hdXRvbWFrZS0xLjAudGFyLmd6Cit0ZXN0IC1zIGFt
LW9wdGlvbmFsLWF1dG9tYWtlLTEuMC50YXIuYnozCisjIFRoZXNlIGFyY2hpdmVzIGFyZSBu
b3QgaW4gJChESVNUX0FSQ0hJVkVTKTsgZGlzdGNoZWNrIG11c3Qgc3RpbGwKKyMgcGFzcyAo
aXRzIGluLXRyZWUgY29waWVzIGdldCBjbGVhbmVkIGJlZm9yZSBkaXN0Y2xlYW5jaGVjayku
CiskTUFLRSBkaXN0Y2hlY2sKK3Rlc3QgLXMgYW0tb3B0aW9uYWwtYXV0b21ha2UtMS4wLnRh
ci5iejMKKworcm0gLXJmIGF1dG9tNHRlKi5jYWNoZSBhY2xvY2FsLm00IGNvbmZpZ3VyZSBN
YWtlZmlsZS5pbiBpbnN0YWxsLXNoIFwKKyAgICAgICBtaXNzaW5nIGNvbmZpZy5zdGF0dXMg
Y29uZmlnLmxvZyBNYWtlZmlsZSBcCisgICAgICAgYW0tb3B0aW9uYWwtYXV0b21ha2UtMS4w
IGFtLW9wdGlvbmFsLWF1dG9tYWtlLTEuMC50YXIuKgorCisjIFRlc3QgMjogVW5rbm93biBv
cHRpb24gaXMgYSB3YXJuaW5nLCBub3QgYW4gZXJyb3IuCisKK2NhdCA+IGNvbmZpZ3VyZS5h
YyA8PCdFTkQnCitBQ19JTklUKFthbS1vcHRpb25hbC1hdXRvbWFrZV0sIFsxLjBdKQorQU1f
SU5JVF9BVVRPTUFLRShbZm9yZWlnbl0pCitBTV9PUFRJT05BTF9BVVRPTUFLRShbZGlzdC1i
YW5hbmEgZGlzdC1iemlwM10pCitBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlXSkKK0FDX09V
VFBVVAorRU5ECis6ID4gTWFrZWZpbGUuYW0KKworIyBhY2xvY2FsL2F1dG9jb25mIG11c3Qg
c3VjY2VlZC4gIFRoZSBgc3ludGF4JyB3YXJuaW5nIGlzIGVtaXR0ZWQgYnkKKyMgbTRfd2Fy
bigpIGR1cmluZyBtYWNybyBleHBhbnNpb24sIHdoaWNoIGhhcHBlbnMgd2hlbiBhdXRvY29u
ZiBydW5zCisjIChhY2xvY2FsIG9ubHkgc2NhbnMpLiAgV2UgZG9uJ3QgcHJvbW90ZSBpdCB0
byBlcnJvciBoZXJlOiBBTV9JTklUJ3MKKyMgZGVmYXVsdCB3YXJuaW5nIHNldCBpcyBwbGVu
dHkuICBDYXB0dXJlIGF1dG9jb25mJ3Mgc3RkZXJyIGFuZAorIyBhc3NlcnQgdGhlIHdhcm5p
bmcgbWVudGlvbnMgdGhlIG9mZmVuZGluZyB0b2tlbi4KKyRBQ0xPQ0FMCiskQVVUT0NPTkYg
LVduby1lcnJvciAyPnN0ZGVycgorZ3JlcCAiZGlzdC1iYW5hbmEiIHN0ZGVycgorCiskQVVU
T01BS0UgLS1hZGQtbWlzc2luZworLi9jb25maWd1cmUKKyRNQUtFIGRpc3QKK3Rlc3QgLXMg
YW0tb3B0aW9uYWwtYXV0b21ha2UtMS4wLnRhci5iejMKKworcm0gLXJmIGF1dG9tNHRlKi5j
YWNoZSBhY2xvY2FsLm00IGNvbmZpZ3VyZSBNYWtlZmlsZS5pbiBpbnN0YWxsLXNoIFwKKyAg
ICAgICBtaXNzaW5nIGNvbmZpZy5zdGF0dXMgY29uZmlnLmxvZyBNYWtlZmlsZSBzdGRlcnIg
XAorICAgICAgIGFtLW9wdGlvbmFsLWF1dG9tYWtlLTEuMCBhbS1vcHRpb25hbC1hdXRvbWFr
ZS0xLjAudGFyLioKKworIyBUZXN0IDM6IGJ6aXAzIG1pc3NpbmcgYXQgY29uZmlndXJlIHRp
bWUuCisKK2NhdCA+IGNvbmZpZ3VyZS5hYyA8PCdFTkQnCitBQ19JTklUKFthbS1vcHRpb25h
bC1hdXRvbWFrZV0sIFsxLjBdKQorQU1fSU5JVF9BVVRPTUFLRShbZm9yZWlnbl0pCitBTV9P
UFRJT05BTF9BVVRPTUFLRShbZGlzdC1iemlwM10pCitBQ19DT05GSUdfRklMRVMoW01ha2Vm
aWxlXSkKK0FDX09VVFBVVAorRU5ECis6ID4gTWFrZWZpbGUuYW0KKworIyBIaWRlIGJ6aXAz
IGZyb20gUEFUSCBieSB3YWxraW5nICRQQVRIIGFuZCBjcmVhdGluZyBhIGZyZXNoIHNhbmRi
b3gKKyMgZGlyZWN0b3J5IG9mIHN5bWxpbmtzIHRvIGV2ZXJ5IGV4ZWN1dGFibGUgZXhjZXB0
IGJ6aXAzLiAgT3RoZXIgdG9vbHMKKyMgdGhlIHRlc3QgaGFybmVzcyBuZWVkcyAoJGFtX2Jp
bmRpciAvIHQvYXgpIGNvbWUgZnJvbSBhdXRvbWFrZSdzCisjIGJ1aWxkIHRyZWUgYW5kIGFy
ZSBub3QgYWZmZWN0ZWQuCitta2RpciBzYW5kYm94LWJpbgorKCBJRlM9OgorICBmb3IgZCBp
biAkUEFUSDsgZG8KKyAgICB0ZXN0IC1kICIkZCIgfHwgY29udGludWUKKyAgICBmb3IgZiBp
biAiJGQiLyo7IGRvCisgICAgICB0ZXN0IC1mICIkZiIgfHwgY29udGludWUKKyAgICAgIG49
YGJhc2VuYW1lICIkZiJgCisgICAgICB0ZXN0ICIkbiIgPSBiemlwMyAmJiBjb250aW51ZQor
ICAgICAgdGVzdCAteCAiJGYiICYmIGxuIC1zZiAiJGYiICJzYW5kYm94LWJpbi8kbiIgMj4v
ZGV2L251bGwKKyAgICBkb25lCisgIGRvbmUgKQordGVzdCAhIC1lIHNhbmRib3gtYmluL2J6
aXAzCisKK3NhdmVkX1BBVEg9JFBBVEgKK1BBVEg9YHB3ZGAvc2FuZGJveC1iaW46JGFtX2Jp
bmRpcjokYW1fdG9wX3NyY2Rpci90L2F4CisKKyRBQ0xPQ0FMCiskQVVUT0NPTkYKKyRBVVRP
TUFLRSAtLWFkZC1taXNzaW5nCisuL2NvbmZpZ3VyZQorJE1BS0UgZGlzdAordGVzdCAtcyBh
bS1vcHRpb25hbC1hdXRvbWFrZS0xLjAudGFyLmd6Cit0ZXN0ICEgLWUgYW0tb3B0aW9uYWwt
YXV0b21ha2UtMS4wLnRhci5iejMKKworUEFUSD0kc2F2ZWRfUEFUSAorcm0gLXJmIHNhbmRi
b3gtYmluIGF1dG9tNHRlKi5jYWNoZSBhY2xvY2FsLm00IGNvbmZpZ3VyZSBNYWtlZmlsZS5p
biBcCisgICAgICAgaW5zdGFsbC1zaCBtaXNzaW5nIGNvbmZpZy5zdGF0dXMgY29uZmlnLmxv
ZyBNYWtlZmlsZSBcCisgICAgICAgYW0tb3B0aW9uYWwtYXV0b21ha2UtMS4wIGFtLW9wdGlv
bmFsLWF1dG9tYWtlLTEuMC50YXIuKgorCisjIFRlc3QgNDogYnppcDMgcHJlc2VudCBhdCBj
b25maWd1cmUsIHZhbmlzaGVkIGF0IGBtYWtlIGRpc3QnLgorCitjYXQgPiBjb25maWd1cmUu
YWMgPDwnRU5EJworQUNfSU5JVChbYW0tb3B0aW9uYWwtYXV0b21ha2VdLCBbMS4wXSkKK0FN
X0lOSVRfQVVUT01BS0UoW2ZvcmVpZ25dKQorQU1fT1BUSU9OQUxfQVVUT01BS0UoW2Rpc3Qt
YnppcDNdKQorQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZV0pCitBQ19PVVRQVVQKK0VORAor
OiA+IE1ha2VmaWxlLmFtCisKKyRBQ0xPQ0FMCiskQVVUT0NPTkYKKyRBVVRPTUFLRSAtLWFk
ZC1taXNzaW5nCisuL2NvbmZpZ3VyZSAgIyBiemlwMyBJUyBvbiBQQVRIIGhlcmUsIHNvIHRo
ZSBydWxlIGlzIGFwcGVuZGVkCisKKyMgTm93IHJlLXJ1biBgbWFrZSBkaXN0JyB3aXRoIGJ6
aXAzIGhpZGRlbi4gIEludm9raW5nIHRoZSBtaXNzaW5nCisjIHRvb2wgZmFpbHMgdGhlIHBp
cGVsaW5lOyB0aGUgcmVjaXBlIG11c3QgY2xlYW4gdXAsIHByaW50IGEgd2FybmluZywKKyMg
bGVhdmUgdGhlIHJlc3Qgb2YgYG1ha2UgZGlzdCcgcnVubmluZywgYW5kIGV4aXQgMC4gIFRo
ZXJlIGlzIG5vCisjIGBjb21tYW5kIC12JyBwcm9iZSwgc28gdGhpcyB3b3JrcyBvbiBzaGVs
bHMgbGFja2luZyB0aGF0IGJ1aWx0aW4uCitta2RpciBzYW5kYm94LWJpbgorKCBJRlM9Ogor
ICBmb3IgZCBpbiAkUEFUSDsgZG8KKyAgICB0ZXN0IC1kICIkZCIgfHwgY29udGludWUKKyAg
ICBmb3IgZiBpbiAiJGQiLyo7IGRvCisgICAgICB0ZXN0IC1mICIkZiIgfHwgY29udGludWUK
KyAgICAgIG49YGJhc2VuYW1lICIkZiJgCisgICAgICB0ZXN0ICIkbiIgPSBiemlwMyAmJiBj
b250aW51ZQorICAgICAgdGVzdCAteCAiJGYiICYmIGxuIC1zZiAiJGYiICJzYW5kYm94LWJp
bi8kbiIgMj4vZGV2L251bGwKKyAgICBkb25lCisgIGRvbmUgKQordGVzdCAhIC1lIHNhbmRi
b3gtYmluL2J6aXAzCisKK3NhdmVkX1BBVEg9JFBBVEgKK1BBVEg9YHB3ZGAvc2FuZGJveC1i
aW46JGFtX2JpbmRpcjokYW1fdG9wX3NyY2Rpci90L2F4CiskTUFLRSBkaXN0IDI+c3RkZXJy
CitQQVRIPSRzYXZlZF9QQVRICisKK3Rlc3QgLXMgYW0tb3B0aW9uYWwtYXV0b21ha2UtMS4w
LnRhci5negordGVzdCAhIC1lIGFtLW9wdGlvbmFsLWF1dG9tYWtlLTEuMC50YXIuYnozCitn
cmVwICdhbS1vcHRpb25hbDouKmRpc3QtYnppcDMgZmFpbGVkJyBzdGRlcnIKKworcm0gLXJm
IHNhbmRib3gtYmluIGF1dG9tNHRlKi5jYWNoZSBhY2xvY2FsLm00IGNvbmZpZ3VyZSBNYWtl
ZmlsZS5pbiBcCisgICAgICAgaW5zdGFsbC1zaCBtaXNzaW5nIGNvbmZpZy5zdGF0dXMgY29u
ZmlnLmxvZyBNYWtlZmlsZSBzdGRlcnIgXAorICAgICAgIGFtLW9wdGlvbmFsLWF1dG9tYWtl
LTEuMCBhbS1vcHRpb25hbC1hdXRvbWFrZS0xLjAudGFyLioKKworIyBUZXN0IDU6IGRpc3Qt
c2hhciBhbmQgZGlzdC10YXJaIGFsb25nc2lkZSB0aGUgdGFyLXBpcGUgZm9ybXMuCisjIFRo
ZXNlIHR3byBmb3JtYXRzIGRvIG5vdCBmb2xsb3cgdGhlIHNpbmdsZS10b29sIHRhci1waXBl
IHBhdHRlcm4sCisjIHNvIHRoZXkgZ2V0IHRoZWlyIG93biBleGVyY2lzZS4gIHNoYXIgYW5k
IGNvbXByZXNzIGFyZSByYXJlbHkKKyMgaW5zdGFsbGVkLCBzbyBvbmx5IGFzc2VydCB0aGUg
YXJjaGl2ZSB3aGVuIHRoZSB0b29sIGlzIGFjdHVhbGx5CisjIHByZXNlbnQ7IG90aGVyd2lz
ZSB3ZSBqdXN0IGNoZWNrIHRoYXQgYG1ha2UgZGlzdCcgZGlkIG5vdCBmYWlsLgorCitjYXQg
PiBjb25maWd1cmUuYWMgPDwnRU5EJworQUNfSU5JVChbYW0tb3B0aW9uYWwtYXV0b21ha2Vd
LCBbMS4wXSkKK0FNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ25dKQorQU1fT1BUSU9OQUxfQVVU
T01BS0UoW2Rpc3Qtc2hhciBkaXN0LXRhclpdKQorQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmls
ZV0pCitBQ19PVVRQVVQKK0VORAorOiA+IE1ha2VmaWxlLmFtCisKKyRBQ0xPQ0FMCiskQVVU
T0NPTkYKKyRBVVRPTUFLRSAtLWFkZC1taXNzaW5nCisuL2NvbmZpZ3VyZQorJE1BS0UgZGlz
dAordGVzdCAtcyBhbS1vcHRpb25hbC1hdXRvbWFrZS0xLjAudGFyLmd6CisKK2lmIChjb21t
YW5kIC12IHNoYXIpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICB0ZXN0IC1zIGFtLW9wdGlv
bmFsLWF1dG9tYWtlLTEuMC5zaGFyLmd6CisgICMgVGhlIGludGVybWVkaWF0ZSB1bmNvbXBy
ZXNzZWQgLnNoYXIgbXVzdCBub3QgYmUgbGVmdCBiZWhpbmQuCisgIHRlc3QgISAtZSBhbS1v
cHRpb25hbC1hdXRvbWFrZS0xLjAuc2hhcgorZmkKK2lmIChjb21tYW5kIC12IGNvbXByZXNz
KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgdGVzdCAtcyBhbS1vcHRpb25hbC1hdXRvbWFr
ZS0xLjAudGFyLloKK2ZpCisKKzoKZGlmZiAtLWdpdCBhL3QvbGlzdC1vZi10ZXN0cy5tayBi
L3QvbGlzdC1vZi10ZXN0cy5tawppbmRleCA2N2JmN2I1Li5lMDQ0Njk4IDEwMDY0NAotLS0g
YS90L2xpc3Qtb2YtdGVzdHMubWsKKysrIGIvdC9saXN0LW9mLXRlc3RzLm1rCkBAIC0xMzcs
NiArMTM3LDcgQEAgdC9hbHBoYTIuc2ggXAogdC9hbWhlbGxvLWNmbGFncy5zaCBcCiB0L2Ft
aGVsbG8tY3Jvc3MtY29tcGlsZS5zaCBcCiB0L2FtaGVsbG8tYmlucGtnLnNoIFwKK3QvYW0t
b3B0aW9uYWwtYXV0b21ha2Uuc2ggXAogdC9hbWluaXQtbW9yZWFyZ3MtZGVwcmVjYXRpb24u
c2ggXAogdC9hbWluaXQtdHJhaWxpbmctZG5sLWNvbW1lbnQtcHIxNjg0MS5zaCBcCiB0L2Ft
YXNzaWduLnNoIFwKLS0gCjIuNTMuMAoK

--------------ZN60UbmJ7ZrlYCmXxhxWRts6--