Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127731 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 45DEC1A00BC for ; Fri, 20 Jun 2025 09:11:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1750410560; bh=wxieIj9u22ga14u5psH/mx0T69zIk4abAwm15R4IHfI=; h=Date:Subject:To:References:From:In-Reply-To:From; b=nfaDFg4KB/LRNTcdytohzY1LgKPJtBDbySt6/GrRkI5lRvTgbb7lLCYeyT8mcnGdc GidGZAo1ZWxsSpbWMV1FvGtnVtDnje+hFh+/SkWy2/WocUcfMRrLrwKg1Ym8oynVXG cqoZtXaRlS2shGbKfn39k355u7RzuHB84sV28EcGsp+jGes7lJwZnKXxrEqcl+WbY1 tvGM50az2cTceGJcZ1SgO7gmLVXAfaUa0MF52eTpd73rZnVGqY5rTRwbASk+gvDGkH 8kW3iTYozsGJFdTpH0HwG1hkMRiyS9IQCCYH1yrhRHZsekX7UU4mAg4/VMKqt5Q+0Y w3mbiKepLZIsQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 92C481801E4 for ; Fri, 20 Jun 2025 09:09:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,DKIM_INVALID, DKIM_SIGNED,DMARC_MISSING,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from wp160.webpack.hosteurope.de (wp160.webpack.hosteurope.de [80.237.132.167]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 20 Jun 2025 09:09:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mabe.berlin ; s=he194859; h=Content-Type:In-Reply-To:From:References:To:Subject: MIME-Version:Date:Message-ID:From:Sender:Reply-To:Subject:Date:Message-ID:To: Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=UrYTSXfcLxfh5A8FQbH4XUp2/kGeI2NI+frsqtN6Y3Q=; t=1750410675; x=1750842675; b=GD/eIRNFq2ARnrSRLDi90Tt2X7nLA8my6xDdtR3D5N7KIHQcMNx439sjwdaT8uYFOo14Aoiycsd wAGVKRqXMZ2d5Mdr1SpHb4bRpbXkRc9WFtnufvu+DkyU+rAOhPRSQUyrYf57feCZuSiNxNGqxKiNZ XsM16fUQIiSEkRf2W+MpJ2aa/8qDqpvPc7KFEtf2/nLtspBjDo1bhWD2E5iOeF08Quj3wPa+VC1cB ndndsNDpJcnOv3nFl+LXCrv63OCvyYNM9IhBNGozPgrTMJ8DTerfz9ID7vYJOHYxBSoOVtbl/U5bI +WyaOpZijVkMgcY5olvU5MDOhE4UPVi9dQyA==; Received: from [2a02:8109:b300:8f00:af78:9fdc:fa7b:87cf]; authenticated by wp160.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128) id 1uSXmE-005usR-18; Fri, 20 Jun 2025 11:11:14 +0200 Message-ID: <8d317b20-9bb5-41f9-b388-9e5ea1764deb@mabe.berlin> Date: Fri, 20 Jun 2025 11:11:13 +0200 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] [RFC] Drop support for 32bit builds To: internals@lists.php.net, Hans Henrik Bergan References: <73D7B135-ABF8-4EFC-BF16-EA26A5BD1B7A@cmpct.info> Content-Language: en-US Autocrypt: addr=marc@mabe.berlin; keydata= xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrghfO78alH c12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8Wtaeaznpdcn2gJZyA MSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT5opMNGPCVegiPmO/K37anwts gj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvEFAPJglth5FGH2En6n6HFIhxh43LqXQiN eHVjLjS2y8huNBswwc9ZVxk3ip5z/GCmpWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEB AAHNIU1hcmMgQmVubmV3aXR6IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIb AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldp xVjucGz2J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6lyRweAJR7G +JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo/M2h+gmeS1iQb29W BmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2HiOv+N/vDMCK1xV8TUeCy8w4X+ nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7ATQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1 tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJ vara/ick0wi2R3dasu1sPMu1P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNp OnxIQxviTyELUekrNw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLD qfD6O5sKoKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsMAAoJEDk2 q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9NDqlOBWQTLT69YMfV 4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWUTIVf3Vb7VbN4Rvb8HgWjeSnM 1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PCdt+Vy4EblXbIAXZXJ6eRugSKowTjst7i HXKOJxivomHFcmqmkiqjwGTGx/jrhbDtEpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5 wPe286YelBjnb0cWRJpA7GZCWDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U= In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------Zl1taMa7gLKf0yEoCjojYiVh" X-bounce-key: webpack.hosteurope.de;marc@mabe.berlin;1750410675;ce56f8b1; X-HE-SMSGID: 1uSXmE-005usR-18 From: marc@mabe.berlin (Marc Bennewitz) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------Zl1taMa7gLKf0yEoCjojYiVh Content-Type: multipart/mixed; boundary="------------Wpp0PzntGl3UOjVYea6kW1Ch"; protected-headers="v1" From: Marc Bennewitz To: internals@lists.php.net, Hans Henrik Bergan Message-ID: <8d317b20-9bb5-41f9-b388-9e5ea1764deb@mabe.berlin> Subject: Re: [PHP-DEV] [RFC] Drop support for 32bit builds References: <73D7B135-ABF8-4EFC-BF16-EA26A5BD1B7A@cmpct.info> In-Reply-To: --------------Wpp0PzntGl3UOjVYea6kW1Ch Content-Type: multipart/mixed; boundary="------------0zDLwHNCl1Cb152izD2erzEi" --------------0zDLwHNCl1Cb152izD2erzEi Content-Type: multipart/alternative; boundary="------------SH445uVNT3O6rTtUV04tw557" --------------SH445uVNT3O6rTtUV04tw557 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAyMC4wNi4yNSAxMDoxNSwgSGFucyBIZW5yaWsgQmVyZ2FuIHdyb3RlOg0KPiBPbiBG cmksIDIwIEp1biAyMDI1IGF0IDA5OjE1LCBNYXJjIEJlbm5ld2l0ejxtYXJjQG1hYmUuYmVy bGluPiB3cm90ZToNCj4+DQo+PiBPbiAxOS4wNi4yNSAxODowOCwgQ2FsdmluIEJ1Y2tsZXkg d3JvdGU6DQo+Pg0KPj4gSSB0aGluayB0aGUgYmlnZ2VzdCBhcmd1bWVudHMgYWdhaW5zdCB0 aGlzIHdvdWxkIGJlOg0KPj4NCj4+IC0gZW1iZWRkZWQgc3lzdGVtczsgdGhpbmsgb2YgUEhQ IGluIHVzZSBmb3IgaS5lLiByb3V0ZXIgd2ViIFVJcy4gV2hpbGUgSQ0KPj4gc3VzcGVjdCBh IGxvdCBvZiB0aGVzZSBhcmUgZ29pbmcgdG8gYmUgaS5lLiBBQXJjaDY0L1JWNjQgaW4gdGhl IGZ1dHVyZSwNCj4+IHRoZXJlIG1pZ2h0IGJlIGEgbG9uZyB0YWlsIG9mIGV4aXN0aW5nIHN5 c3RlbXMuIE9mIGNvdXJzZSwgaG93IG1hbnkNCj4+IHdvdWxkIHVwZ3JhZGUgdG8gUEhQIDk/ DQo+Pg0KPj4gV2hpbGUgbmV3IGRlcGxveW1lbnRzIHRyZW5kIHRvd2FyZCA2NC1iaXQgKGUu Zy4gQUFyY2g2NCksIHRoZXJlJ3MgZGVmaW5pdGVseSBhIGxvbmcgbGlzdCBvZiBkZXZpY2Vz IOKAlCBwYXJ0aWN1bGFybHkgaW4gbGVnYWN5IGVudmlyb25tZW50cyDigJQgc3RpbGwgcnVu bmluZyAzMi1iaXQgc3lzdGVtcy4gQnV0IHJlYWxpc3RpY2FsbHksIGhvdyBtYW55IG9mIHRo ZXNlIHdpbGwgZXZlciB1cGdyYWRlIHRvIFBIUCA5PyBQcm9iYWJseSB2ZXJ5IGZldy4gVGhl c2Ugc3lzdGVtcyBvZnRlbiBzdGF5IGxvY2tlZCB0byB3aGF0ZXZlciB2ZXJzaW9uIHdhcyBv cmlnaW5hbGx5IHNoaXBwZWQsIGFuZCB0aGVpciB2ZW5kb3JzIGFyZSB1bmxpa2VseSB0byBp bnZlc3QgaW4gbWFqb3IgdmVyc2lvbiBidW1wcy4NCj4+DQo+PiAtIFdlYkFzc2VtYmx5OyBJ IGRvbid0IGtub3cgaG93IHdpZGVzcHJlYWQgdGhlIE1lbW9yeTY0IHByb3Bvc2FsIGlzIHll dC4NCj4+IFdlJ3JlIHVzaW5nIFdlYkFzc2VtYmx5IGluIHRoZSBkb2NzIHBhZ2VzIGZvciBy dW5uYWJsZSBleGFtcGxlcy4NCj4+DQo+PiBJIGRvbid0IGtub3cgZWl0aGVyLiBDaGF0R1BU IHRlbGxzIDoNCj4+DQo+Pj4gVGhlIE1lbW9yeTY0IHByb3Bvc2FsIHdhcyBmb3JtYWxseSBz dGFuZGFyZGl6ZWQgKFBoYXNlIDQpIGluIE5vdmVtYmVy4oCvMjAyNCwgYmFja2VkIGJ5IHN0 cm9uZyB2b3RlcyBhbmQgZW5kb3JzZW1lbnQgZnJvbSB0aGUgV0FTTSBDb21tdW5pdHkgR3Jv dXAuDQo+Pj4NCj4+PiBJdCdzIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiBGaXJlZm94IDEzNCBh bmQgQ2hyb21lIDEzMyssIHdpdGggU2FmYXJpIHN0aWxsIHdvcmtpbmcgb24gaW1wbGVtZW50 YXRpb24uDQo+Pj4NCj4+PiBNYWpvciBydW50aW1lcyBsaWtlIFY4LCBXYXNtdGltZSwgV2Fz bWVyLCBXQVNNMkMgc3VwcG9ydCBNZW1vcnk2NA0KPj4+DQo+Pj4gVG9vbGNoYWlucyBpbmNs dWRpbmcgTExWTSwgRW1zY3JpcHRlbiwgQmluYXJ5ZW4sIFdBQlQgc3VwcG9ydCBpdDsgV0FT SeKAkVNESyBoYXMgcGF0Y2hlcyBpbiBwcm9ncmVzcw0KPj4NCj4+IEFuZCBzb21lIG5pY2hl IGNhc2VzIGxpa2UgaS5lLiBpU0ggKHdoaWNoIGVtdWxhdGVzIHg4Ni0zMiBvbiBpT1MpLg0K Pj4NCj4+IFRoaXMgc2VlbXMgdG8gYmUgZm9yIHZlcnkgbmljaGUgcHJvamVjdHMgaW4gaXRz ZWxmIGFscmVhZHkgYW5kIHJ1bm5pbmcgUEhQIHdpdGhpbiBzdWNoIGlzIGV2ZW4gbW9yZSBu aWNoZSAtIGlmIHByZXNlbnQgYXQgYWxsIChvdXRzaWRlIG9mICJiZWNhdXNlIEkgY2FuIiBy ZWFzb25zKS4NCj4+DQo+PiBUaGUgb3RoZXIgb3B0aW9ucyBpbmNsdWRlIG1ha2luZyB6ZW5k X2xvbmcgYWx3YXlzIDY0LWJpdCBhbmQgYWNjZXB0IHRoZQ0KPj4gcGVyZm9ybWFuY2UgcGVu YWx0eSBmb3IgMzItYml0LCBvciBtYWtpbmcgMzItYml0IGJlc3QtZWZmb3J0IHJhdGhlciB0 aGFuDQo+PiBwcm92aWRpbmcgYW55IGd1YXJhbnRlZXMuDQo+Pg0KPj4gSXMgaW50NjRfdCAo c2l6ZSBvZiBsb25nIGxvbmcgOCkgYXZhaWxhYmxlIG9uIGFsbCBzeXN0ZW1zIChsaWtlIFdl YkFzc2VtYmx5KT8NCj4+DQo+PiBUaGUgZG93bnNpZGUgaGVyZSwgcGxlYXNlIGNvcnJlY3Qg bWUgaWYgSSdtIHdyb25nLCBpcyB0aGF0IHRoaXMgaW5jcmVhc2VzIGNvbXBsZXhpdHkgaW5z dGVhZCBvZiByZWR1Y2luZyBpdCBmb3IgaG93IG11Y2ggdmFsdWU/DQo+DQo+PiBUaGlzIHNl ZW1zIHRvIGJlIGZvciB2ZXJ5IG5pY2hlIHByb2plY3RzIGluIGl0c2VsZiBhbHJlYWR5IGFu ZCBydW5uaW5nIFBIUCB3aXRoaW4gc3VjaCBpcyBldmVuIG1vcmUgbmljaGUgLSBpZiBwcmVz ZW50IGF0IGFsbCAob3V0c2lkZSBvZiAiYmVjYXVzZSBJIGNhbiIgcmVhc29ucykuDQo+IDN2 NGwub3JnIHVzZSAzMmJpdCBXQVNNIHBocCBpbiBwcm9kdWN0aW9uLCBzZWUgaXQgZm9yIHlv dXJzZWxmIGF0DQo+IGh0dHBzOi8vM3Y0bC5vcmcvDQoNCllvdSBtaXN1bmRlcnN0b29kIG15 IHNlbnRlbmNlIGFzIEkgaGF2ZW4ndCB0b2xkIHNvbWV0aGluZyBlbHNlLiBNeSANCmFuc3dl ciBmb3IgdGhlIG5pY2hlIHByb2plY3RzIGJlbG9uZ3MgdG8gIi4uLiBpLmUuIGlTSCAod2hp Y2ggZW11bGF0ZXMgDQp4ODYtMzIgb24gaU9TKS4iDQoNCkFib3V0IFdlYkFzc2VtYmx5IEkg d3JvdGU6DQoNCj4gSSBkb24ndCBrbm93IGVpdGhlci4gQ2hhdEdQVCB0ZWxscyA6DQoNCj4g VGhlIE1lbW9yeTY0IHByb3Bvc2FsIHdhcyBmb3JtYWxseSBzdGFuZGFyZGl6ZWQgKFBoYXNl IDQpIGluIE5vdmVtYmVy4oCvMjAyNCwgYmFja2VkIGJ5IHN0cm9uZyB2b3RlcyBhbmQgZW5k b3JzZW1lbnQgZnJvbSB0aGUgV0FTTSBDb21tdW5pdHkgR3JvdXAuDQo+DQo+IEl0J3MgZW5h YmxlZCBieSBkZWZhdWx0IGluIEZpcmVmb3ggMTM0IGFuZCBDaHJvbWUgMTMzKywgd2l0aCBT YWZhcmkgc3RpbGwgd29ya2luZyBvbiBpbXBsZW1lbnRhdGlvbi4NCj4NCj4gTWFqb3IgcnVu dGltZXMgbGlrZSBWOCwgV2FzbXRpbWUsIFdhc21lciwgV0FTTTJDIHN1cHBvcnQgTWVtb3J5 NjQNCj4NCj4gVG9vbGNoYWlucyBpbmNsdWRpbmcgTExWTSwgRW1zY3JpcHRlbiwgQmluYXJ5 ZW4sIFdBQlQgc3VwcG9ydCBpdDsgV0FTSeKAkVNESyBoYXMgcGF0Y2hlcyBpbiBwcm9ncmVz cw0KDQo= --------------SH445uVNT3O6rTtUV04tw557 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 20.06.25 10:15, Hans Henrik Bergan wrote:
On Fri, 20 Jun 2025 at 09:15=
, Marc Bennewitz <marc@mabe.berlin> wrote:

On 19.06.25 18:08, Calvin Buckley wrote:

I think the biggest arguments against this would be:

- embedded systems; think of PHP in use for i.e. router web UIs. While I
suspect a lot of these are going to be i.e. AArch64/RV64 in the future,
there might be a long tail of existing systems. Of course, how many
would upgrade to PHP 9?

While new deployments trend toward 64-bit (e.g. AArch64), there's definit=
ely a long list of devices =E2=80=94 particularly in legacy environments =
=E2=80=94 still running 32-bit systems. But realistically, how many of th=
ese will ever upgrade to PHP 9? Probably very few. These systems often st=
ay locked to whatever version was originally shipped, and their vendors a=
re unlikely to invest in major version bumps.

- WebAssembly; I don't know how widespread the Memory64 proposal is yet.
We're using WebAssembly in the docs pages for runnable examples.

I don't know either. ChatGPT tells :

The Memory64 proposal wa=
s formally standardized (Phase 4) in November=E2=80=AF2024, backed by str=
ong votes and endorsement from the WASM Community Group.

It's enabled by default in Firefox 134 and Chrome 133+, with Safari still=
 working on implementation.

Major runtimes like V8, Wasmtime, Wasmer, WASM2C support Memory64

Toolchains including LLVM, Emscripten, Binaryen, WABT support it; WASI=E2=
=80=91SDK has patches in progress

And some niche cases like i.e. iSH (which emulates x86-32 on iOS).

This seems to be for very niche projects in itself already and running PH=
P within such is even more niche - if present at all (outside of "because=
 I can" reasons).

The other options include making zend_long always 64-bit and accept the
performance penalty for 32-bit, or making 32-bit best-effort rather than
providing any guarantees.

Is int64_t (size of long long 8) available on all systems (like WebAssemb=
ly)?

The downside here, please correct me if I'm wrong, is that this increases=
 complexity instead of reducing it for how much value?

This seems to be for very =
niche projects in itself already and running PHP within such is even more=
 niche - if present at all (outside of "because I can" reasons).
3v4l.org use 32bit WASM php in production, see it for yourself at
https://3v4=
l.org/

You misunderstood my sentence as I haven't told something else. My answer for the niche projects belongs to "... i.e. iSH (which emulates x86-32 on = iOS)."

About WebAssembly I wrote:

> I don't know either. Chat=
GPT tells :

The Memory64 proposal was fo=
rmally standardized (Phase 4) in November=E2=80=AF2024, backed by strong =
votes and endorsement from the WASM Community Group.

It's enabled by default in Firefox 134 and Chrome 133+, with Safari still=
 working on implementation.

Major runtimes like V8, Wasmtime, Wasmer, WASM2C support Memory64

Toolchains including LLVM, Emscripten, Binaryen, WABT support it; WASI=E2=
=80=91SDK has patches in progress

--------------SH445uVNT3O6rTtUV04tw557-- --------------0zDLwHNCl1Cb152izD2erzEi Content-Type: application/pgp-keys; name="OpenPGP_0x3936ABF753BC88CE.asc" Content-Disposition: attachment; filename="OpenPGP_0x3936ABF753BC88CE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrg hfO78alHc12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8W taeaznpdcn2gJZyAMSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT 5opMNGPCVegiPmO/K37anwtsgj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvE FAPJglth5FGH2En6n6HFIhxh43LqXQiNeHVjLjS2y8huNBswwc9ZVxk3ip5z/GCm pWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEBAAHNIU1hcmMgQmVubmV3aXR6 IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIbAwYLCQgHAwIGFQgC CQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldpxVjucGz2 J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6ly RweAJR7G+JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo /M2h+gmeS1iQb29WBmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2Hi Ov+N/vDMCK1xV8TUeCy8w4X+nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7A TQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5 m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJvara/ick0wi2R3dasu1sPMu1 P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNpOnxIQxviTyELUekr Nw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLDqfD6O5sK oKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsM AAoJEDk2q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9N DqlOBWQTLT69YMfV4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWU TIVf3Vb7VbN4Rvb8HgWjeSnM1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PC dt+Vy4EblXbIAXZXJ6eRugSKowTjst7iHXKOJxivomHFcmqmkiqjwGTGx/jrhbDt EpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5wPe286YelBjnb0cWRJpA7GZC WDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U=3D =3Doi2m -----END PGP PUBLIC KEY BLOCK----- --------------0zDLwHNCl1Cb152izD2erzEi-- --------------Wpp0PzntGl3UOjVYea6kW1Ch-- --------------Zl1taMa7gLKf0yEoCjojYiVh Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEENJIbKB0SAX2RmUKbOTar91O8iM4FAmhVJbEFAwAAAAAACgkQOTar91O8iM5b SwgA1u3r+aitlM10oTkIj73nYvmhDn9JGGyH9cvIrEFs9JlBOyXb7HC3Hw50vrekX6svSxTq63OE LkSK5fQJTAELv1xdcyGcaNSJ1BquC4O+732uHb4FS820qgsQM6TRcestmwhfS3DGlipu5tPHow4e Pl2nJ7XcXhnf6PA/q9QGe/lUZgZKQT/zL92IIsynn3tfZ39mcz7GJFGYZ0tftHlotq6zGjzfQdyC zUn0usKWSmrED8S1uoFMpSUh4DQ5+1+Sd6NZEWoFCCnG2AwkkarWX1eTRDDFRmcmkG0lz2Vwt7Ub 8qI2OiD8w0RE7K1iiwj5zIypjs0hNp3X2sqxRrhm8w== =NubC -----END PGP SIGNATURE----- --------------Zl1taMa7gLKf0yEoCjojYiVh--