Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 44F5CC0032 for ; Mon, 5 Dec 2022 12:27:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 78C33404F5 for ; Mon, 5 Dec 2022 12:27:31 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 78C33404F5 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=toaster.cc header.i=@toaster.cc header.a=rsa-sha256 header.s=protonmail3 header.b=3Oo/ZeoH X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.101 X-Spam-Level: X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I6FYl8Hg2V4T for ; Mon, 5 Dec 2022 12:27:29 +0000 (UTC) X-Greylist: delayed 00:05:25 by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 85962400A4 Received: from mail-41103.protonmail.ch (mail-41103.protonmail.ch [185.70.41.103]) by smtp2.osuosl.org (Postfix) with ESMTPS id 85962400A4 for ; Mon, 5 Dec 2022 12:27:28 +0000 (UTC) Date: Mon, 05 Dec 2022 12:21:44 +0000 Authentication-Results: mail-41103.protonmail.ch; dkim=pass (2048-bit key) header.d=toaster.cc header.i=@toaster.cc header.b="3Oo/ZeoH" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toaster.cc; s=protonmail3; t=1670242906; x=1670502106; bh=p4m8Ua4RYOKxZh5G9le+38Sw7JkAolc13Xe782aMVXk=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=3Oo/ZeoH7GDxD2Vk80O2gH5zdIlxGG8uvpQqnmwf18VQHM3ErQ1dRGsXGtd588DTj 9duLqfcBHj2ZW08i2wpYkY6T6pqDopILYUQkmK8PvjpPewv5QY8ekJeHf77BcAMJda h25AXAlqeULqfw7hKaX44iJlbQPX2TOwWCZLwYg2oh3Kudkn7DIldCEb243nMEs3/B 66sdlxFCENlHFQd5ryJsPugmciuwLS8cSYkjfVyZ70ltx1CVyq7DZhTxMStJk5YhC2 cjw5sTLst7MdNUg/wVNeKfc5q6bvmPeJch2QKHN6R8xlcKI4hNO4Vxie+RBY+m+hQK OpPMi81Ld9qpg== To: Daniel Lipshitz , Bitcoin Protocol Discussion From: angus Message-ID: <-C_sX7ApYy_2MgXfl7e1ONddIi9gtET5jV4MTl_F_CstCvTuV0vTFfazF7tKBd53o6QbZ1xygayPIaCVjDyV-9yklnfk_t0IH23rw2LtqKQ=@toaster.cc> In-Reply-To: References: Feedback-ID: 10272201:user:proton MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------08d3d6c0cd6d0e443bc3ff44f907b6f8de77e96feb5e80858d967f3784a56dd1"; charset=utf-8 X-Mailman-Approved-At: Mon, 05 Dec 2022 13:26:26 +0000 Subject: [bitcoin-dev] [Opt-in full-RBF] Zero-conf apps in immediate danger X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Dec 2022 12:27:32 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------08d3d6c0cd6d0e443bc3ff44f907b6f8de77e96feb5e80858d967f3784a56dd1 Content-Type: multipart/mixed;boundary=---------------------0a761db651e2c3cb5c50bead64df3088 -----------------------0a761db651e2c3cb5c50bead64df3088 Content-Type: multipart/alternative;boundary=---------------------72fe99493a063dc3ad01536841344e31 -----------------------72fe99493a063dc3ad01536841344e31 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 Core adding full RBF is a change of node policy that may be highly inconve= nient for zero-conf users, but there has always been and will always be a = risk of a double-spend for anyone that treats zero-confirmation transactio= ns as settled. It's literally in the name - this transaction has zero conf= irmations and no guarantee it'll make it into a block, and so has not yet = settled. The perception seems to be that Core adding the full RBF option is increas= ing the risk to zero-conf users, but I'm not convinced that that is the ca= se - someone wanting to double-spend attack you isn't going to be bothered= to do so over a few thousand sats (unless they can do it thousands of tim= es), and losing a few thousand sats to a double-spend isn't the biggest de= al. It's always been the risk of getting double-spent out of hundreds or thous= ands of bitcoins that's worth seriously worrying about, which is much more= the kind of attack a determined attacker is able to carry out. Such a det= ermined attacker is much more likely to attempt and succeed at a sybil att= ack, or directly colluding with a miner. So your zero-conf risk increases = non-linearly as the amount of bitcoin being transacted grows. (caveat: thi= s paragraph is opinion). There does, however, seem to be a legitimate business for providing insura= nce/risk management for people that are willing to accept the zero-conf ri= sk - it is pretty similar to accepting credit cards with a chargeback risk= or any payment card with a capture risk, though there's no-one to mediate= a dispute. On-chain is final. But what doesn't make any sense is trying to avoid Bitcoin Core and nodes = from adopting a full RBF policy to try to protect this use case. As has be= en pointed out by may others before, full RBF is aligned with miner (and u= ser) economic incentives and is a node policy, not consensus, so you can't= even tell which nodes are doing it nor can you prevent them from doing so= . Second, Bitcoin core 24 with the full RBF option is already out in the w= ild at around 5%+ of running nodes and growing, so it's too late to kill i= t. So my point is that relying on node policy as part of your protection for = zero-conf transaction acceptance is fragile, and should not be relied upon= . The protocol rules have always tacitly allowed double-spending before a = confirmation, and it has always been clear that there's no consensus on wh= ich transactions have occurred until they have in a block and have at-leas= t one confirmation. The long-term 'what to do about it' is to use Lightning if you want fast p= ayments with risk-free instant settlement, or as above, accept the zero-co= nf risk and cover yourself with an insurance premium (e.g. a margin on tra= nsactions that goes into an insurance fund, and limiting max transaction a= mount so you're not exposed to uncoverable losses if you do get double-spe= nd attacked) Angus -----------------------72fe99493a063dc3ad01536841344e31 Content-Type: multipart/related;boundary=---------------------b76700fc017bd3eec593de33a2ab9d81 -----------------------b76700fc017bd3eec593de33a2ab9d81 Content-Type: text/html;charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiIGFsaWduPSJsZWZ0Ij48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdodDogbm9y bWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+Q29yZSBhZGRpbmcgZnVsbCBSQkYgaXMgYSBjaGFu Z2Ugb2Ygbm9kZSBwb2xpY3kgdGhhdCBtYXkgYmUgaGlnaGx5IGluY29udmVuaWVudCBmb3IgemVy by1jb25mIHVzZXJzLCBidXQgdGhlcmUgaGFzIGFsd2F5cyBiZWVuIGFuZCB3aWxsIGFsd2F5cyBi ZSBhIHJpc2sgb2YgYSBkb3VibGUtc3BlbmQgZm9yIGFueW9uZSB0aGF0IHRyZWF0cyB6ZXJvLWNv bmZpcm1hdGlvbiB0cmFuc2FjdGlvbnMgYXMgc2V0dGxlZC4gSXQncyBsaXRlcmFsbHkgaW4gdGhl IG5hbWUgLSB0aGlzIHRyYW5zYWN0aW9uIGhhcyB6ZXJvIGNvbmZpcm1hdGlvbnMgYW5kIG5vIGd1 YXJhbnRlZSBpdCdsbCBtYWtlIGl0IGludG8gYSBibG9jaywgYW5kIHNvIGhhcyBub3QgeWV0IHNl dHRsZWQuPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IiBhbGlnbj0i bGVmdCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJw dDsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPjxicj48L3NwYW4+ PC9kaXY+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiIGFsaWduPSJsZWZ0Ij48c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdo dDogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+VGhlIHBlcmNlcHRpb24gc2VlbXMgdG8g YmUgdGhhdCBDb3JlIGFkZGluZyB0aGUgZnVsbCBSQkYgb3B0aW9uIGlzIGluY3JlYXNpbmcgdGhl IHJpc2sgdG8gemVyby1jb25mIHVzZXJzLCBidXQgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGF0 IGlzIHRoZSBjYXNlIC0gc29tZW9uZSB3YW50aW5nIHRvIGRvdWJsZS1zcGVuZCBhdHRhY2sgeW91 IGlzbid0IGdvaW5nIHRvIGJlIGJvdGhlcmVkIHRvIGRvIHNvIG92ZXIgYSBmZXcgdGhvdXNhbmQg c2F0cyAodW5sZXNzIHRoZXkgY2FuIGRvIGl0IHRob3VzYW5kcyBvZiB0aW1lcyksIGFuZCBsb3Np bmcgYSBmZXcgdGhvdXNhbmQgc2F0cyB0byBhIGRvdWJsZS1zcGVuZCBpc24ndCB0aGUgYmlnZ2Vz dCBkZWFsLjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyIgYWxpZ249 ImxlZnQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEy cHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij48YnI+PC9zcGFu PjwvZGl2PjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IiBhbGlnbj0ibGVmdCI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJwdDsgbGluZS1oZWln aHQ6IG5vcm1hbDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPkl0J3MgYWx3YXlzIGJlZW4gdGhlIHJp c2sgb2YgZ2V0dGluZyBkb3VibGUtc3BlbnQgb3V0IG9mIGh1bmRyZWRzIG9yIHRob3VzYW5kcyBv ZiBiaXRjb2lucyB0aGF0J3Mgd29ydGggc2VyaW91c2x5IHdvcnJ5aW5nIGFib3V0LCB3aGljaCBp cyBtdWNoIG1vcmUgdGhlIGtpbmQgb2YgYXR0YWNrIGEgZGV0ZXJtaW5lZCBhdHRhY2tlciBpcyBh YmxlIHRvIGNhcnJ5IG91dC4gU3VjaCBhIGRldGVybWluZWQgYXR0YWNrZXIgaXMgbXVjaCBtb3Jl IGxpa2VseSB0byBhdHRlbXB0IGFuZCBzdWNjZWVkIGF0IGEgc3liaWwgYXR0YWNrLCBvciBkaXJl Y3RseSBjb2xsdWRpbmcgd2l0aCBhIG1pbmVyLiBTbyB5b3VyIHplcm8tY29uZiByaXNrIGluY3Jl YXNlcyBub24tbGluZWFybHkgYXMgdGhlIGFtb3VudCBvZiBiaXRjb2luIGJlaW5nIHRyYW5zYWN0 ZWQgZ3Jvd3MuPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0Ij4gKGNhdmVhdDogdGhpcyBwYXJh Z3JhcGggaXMgb3BpbmlvbikuPC9zcGFuPjxicj48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0idGV4 dC1hbGlnbjogbGVmdDsiIGFsaWduPSJsZWZ0Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0idGV4dC1h bGlnbjogbGVmdDsiIGFsaWduPSJsZWZ0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEhlbHZl dGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdodDogbm9ybWFsOyBjb2xvcjogcmdiKDAs IDAsIDApOyI+VGhlcmUgZG9lcywgaG93ZXZlciwgc2VlbSAgdG8gYmUgYSBsZWdpdGltYXRlIGJ1 c2luZXNzIGZvciBwcm92aWRpbmcgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVs dmV0aWNhOyBmb250LXNpemU6IDEycHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9yOiByZ2Io MCwgMCwgMCk7Ij5pbnN1cmFuY2UvcmlzayBtYW5hZ2VtZW50IGZvciBwZW9wbGUgdGhhdCA8aT5h cmU8L2k+IHdpbGxpbmcgdG8gYWNjZXB0IHRoZSB6ZXJvLWNvbmYgcmlzayAtIGl0IGlzIHByZXR0 eSBzaW1pbGFyIHRvIGFjY2VwdGluZyBjcmVkaXQgY2FyZHMgd2l0aCBhIGNoYXJnZWJhY2sgcmlz ayBvciBhbnkgcGF5bWVudCBjYXJkIHdpdGggYSBjYXB0dXJlIHJpc2ssIHRob3VnaCB0aGVyZSdz IG5vLW9uZSB0byBtZWRpYXRlIGEgZGlzcHV0ZS4gT24tY2hhaW4gaXMgZmluYWwuPC9zcGFuPjwv ZGl2PjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IiBhbGlnbj0ibGVmdCI+PGJyPjwvZGl2 PjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IiBhbGlnbj0ibGVmdCI+PHNwYW4gc3R5bGU9 ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJwdDsgbGluZS1oZWlnaHQ6IG5v cm1hbDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPkJ1dCB3aGF0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vu c2UgaXMgdHJ5aW5nIHRvIGF2b2lkIEJpdGNvaW4gQ29yZSBhbmQgbm9kZXMgZnJvbSBhZG9wdGlu ZyBhIGZ1bGwgUkJGIHBvbGljeSB0byB0cnkgdG8gcHJvdGVjdCB0aGlzIHVzZSBjYXNlLiBBcyBo YXMgYmVlbiBwb2ludGVkIG91dCBieSBtYXkgb3RoZXJzIGJlZm9yZSwgZnVsbCBSQkYgaXMgYWxp Z25lZCB3aXRoIG1pbmVyIChhbmQgdXNlcikgZWNvbm9taWMgaW5jZW50aXZlcyA8L3NwYW4+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJwdDsgbGluZS1o ZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPmFuZDwvc3Bhbj48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdodDog bm9ybWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+IGlzIGEgbm9kZSBwb2xpY3ksIG5vdCBjb25z ZW5zdXMsIHNvIHlvdSBjYW4ndCBldmVuIHRlbGwgd2hpY2ggbm9kZXMgYXJlIGRvaW5nIGl0IG5v ciBjYW4geW91IHByZXZlbnQgdGhlbSBmcm9tIGRvaW5nIHNvLiBTZWNvbmQsIDxhIGhyZWY9Imh0 dHBzOi8vYml0Y29pbmNvcmUub3JnL2Jpbi9iaXRjb2luLWNvcmUtMjQuMC8iIHRpdGxlPSJCaXRj b2luIGNvcmUgMjQiPkJpdGNvaW4gY29yZSAyNDwvYT4gPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox MnB0Ij53aXRoIHRoZSBmdWxsIFJCRjwvc3Bhbj4gb3B0aW9uIGlzIGFscmVhZHkgPGEgaHJlZj0i aHR0cHM6Ly9iaXRub2Rlcy5pby9ub2Rlcy8/cT1TYXRvc2hpOjI0LjAuMCIgdGl0bGU9Im91dCBp biB0aGUgd2lsZCI+b3V0IGluIHRoZSB3aWxkPC9hPiBhdCBhcm91bmQgNSUrIG9mIHJ1bm5pbmcg bm9kZXMgYW5kIGdyb3dpbmcsIHNvIGl0J3MgdG9vIGxhdGUgdG8ga2lsbCBpdC48L3NwYW4+PC9k aXY+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiIGFsaWduPSJsZWZ0Ij48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdodDog bm9ybWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxl PSJ0ZXh0LWFsaWduOiBsZWZ0OyIgYWxpZ249ImxlZnQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9y OiByZ2IoMCwgMCwgMCk7Ij5TbyBteSBwb2ludCBpcyB0aGF0IHJlbHlpbmcgb24gbm9kZSBwb2xp Y3kgYXMgcGFydCBvZiB5b3VyIHByb3RlY3Rpb24gZm9yIHplcm8tY29uZiB0cmFuc2FjdGlvbiBh Y2NlcHRhbmNlIGlzIGZyYWdpbGUsIGFuZCBzaG91bGQgbm90IGJlIHJlbGllZCB1cG9uLiBUaGUg cHJvdG9jb2wgcnVsZXMgaGF2ZSBhbHdheXMgdGFjaXRseSBhbGxvd2VkIGRvdWJsZS1zcGVuZGlu ZyBiZWZvcmUgYSBjb25maXJtYXRpb24sIGFuZCBpdCBoYXMgYWx3YXlzIGJlZW4gY2xlYXIgdGhh dCB0aGVyZSdzIG5vIGNvbnNlbnN1cyBvbiB3aGljaCB0cmFuc2FjdGlvbnMgaGF2ZSBvY2N1cnJl ZCB1bnRpbCB0aGV5IGhhdmUgaW4gYSBibG9jayBhbmQgaGF2ZSBhdC1sZWFzdCBvbmUgY29uZmly bWF0aW9uLjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyIgYWxpZ249 ImxlZnQiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyIgYWxpZ249Imxl ZnQiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHQ7 IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5UaGUgbG9uZy10ZXJt ICd3aGF0IHRvIGRvIGFib3V0IGl0JyBpcyB0byB1c2UgTGlnaHRuaW5nIGlmIHlvdSB3YW50IGZh c3QgcGF5bWVudHMgd2l0aCByaXNrLWZyZWUgaW5zdGFudCBzZXR0bGVtZW50LCBvciBhcyBhYm92 ZSwgYWNjZXB0IHRoZSB6ZXJvLWNvbmYgcmlzayBhbmQgY292ZXIgeW91cnNlbGYgd2l0aCBhbiBp bnN1cmFuY2UgcHJlbWl1bSAoZS5nLiBhIG1hcmdpbiBvbiB0cmFuc2FjdGlvbnMgdGhhdCBnb2Vz IGludG8gYW4gaW5zdXJhbmNlIGZ1bmQsIGFuZCBsaW1pdGluZyBtYXggdHJhbnNhY3Rpb24gYW1v dW50IHNvIHlvdSdyZSBub3QgZXhwb3NlZCB0byB1bmNvdmVyYWJsZSBsb3NzZXMgaWYgeW91IGRv IGdldCBkb3VibGUtc3BlbmQgYXR0YWNrZWQpPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9InRleHQt YWxpZ246IGxlZnQ7IiBhbGlnbj0ibGVmdCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2 ZXRpY2E7IGZvbnQtc2l6ZTogMTJwdDsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHJnYigw LCAwLCAwKTsiPjxicj48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsi IGFsaWduPSJsZWZ0Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1z aXplOiAxMnB0OyBsaW5lLWhlaWdodDogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+PGJy Pjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyIgYWxpZ249ImxlZnQi PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHQ7IGxp bmUtaGVpZ2h0OiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5Bbmd1czxicj48L3NwYW4+ PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJwdDsgbGlu ZS1oZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPjwvc3Bhbj48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB0OyBsaW5lLWhlaWdodDog bm9ybWFsOyBjb2xvcjogcmdiKDAsIDAsIDApOyI+PC9zcGFuPjwvZGl2Pg== -----------------------b76700fc017bd3eec593de33a2ab9d81-- -----------------------72fe99493a063dc3ad01536841344e31-- -----------------------0a761db651e2c3cb5c50bead64df3088-- --------08d3d6c0cd6d0e443bc3ff44f907b6f8de77e96feb5e80858d967f3784a56dd1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wnUEARYKACcFAmON4kgJEMIlymXPPJ1UFiEEmpQAKIPU4CpfaPPKwiXKZc88 nVQAAGoTAQCYrNx9rmGhFz3ELgDa1ysEeIN5WniMNaP4CkK8MK1uDAD/QSCC JGrISvNpkmDfPZrILY0xCrp+ZTk7De36X6/9xQo= =xnmF -----END PGP SIGNATURE----- --------08d3d6c0cd6d0e443bc3ff44f907b6f8de77e96feb5e80858d967f3784a56dd1--