Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id EE8B8C0029 for ; Mon, 5 Jun 2023 14:22:34 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id C8D0D60C28 for ; Mon, 5 Jun 2023 14:22:34 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org C8D0D60C28 Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.a=rsa-sha256 header.s=protonmail3 header.b=VcmpINTS 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 smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MgQ5a93yireK for ; Mon, 5 Jun 2023 14:22:32 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 83E9360672 Received: from mail-41103.protonmail.ch (mail-41103.protonmail.ch [185.70.41.103]) by smtp3.osuosl.org (Postfix) with ESMTPS id 83E9360672 for ; Mon, 5 Jun 2023 14:22:32 +0000 (UTC) Date: Mon, 05 Jun 2023 14:22:04 +0000 Authentication-Results: mail-41103.protonmail.ch; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="VcmpINTS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1685974938; x=1686234138; bh=LY8e9CdWSftEwEXKKuT63AiYe9lngTrObyB7YHAy0nc=; 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=VcmpINTS0DEB0nSCBYfKr/D1EOEvbK9Uts3iswgKkR9ytvUDY5Br38Yi1CvbhT9JN INsad1ds3PPnX+0ZvlQihxetHQy2ItIree6aEOBiIUE5Pf8pYqU+xw7MkLxlaLfyta 1+tXJC9PJAD/xe2oOVRH5qwzOSj313VeaEPf5hPfB1Mq++UQVhT3FOM3pSC/TmYRlH 7+1dKqvd10jOjq5CXZBJmpeJ3Rqs3+WgLWxYbmOEqg9nxznEMCCTz8325l5nv/65kf 4yQCbG0mSd3B0Qbc8mBEECaHbyiJNygBsJ5v8o5Nn6j3meYyT60KY/NSsk6kwDOSYt 8rDHWvB7kL1Gg== To: Keagan McClelland From: yurisvb@pm.me Message-ID: In-Reply-To: References: Feedback-ID: 15605746:user:proton MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha256; boundary="------8e196801bc72ca777b8f9c08824fed41dce6c69fbe320e511778a84bb154cd23"; charset=utf-8 X-Mailman-Approved-At: Mon, 05 Jun 2023 16:38:11 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Formosa --- proposed improvement upon BIP39 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 Jun 2023 14:22:35 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------8e196801bc72ca777b8f9c08824fed41dce6c69fbe320e511778a84bb154cd23 Content-Type: multipart/mixed;boundary=---------------------8525f08be665010e036baebeffdc1e02 -----------------------8525f08be665010e036baebeffdc1e02 Content-Type: multipart/alternative;boundary=---------------------803737bc6fa72c4a8d4b925ae6e9c5e0 -----------------------803737bc6fa72c4a8d4b925ae6e9c5e0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 Good day, Keagan and all! It's my deepest pleasure to announce the=C2=A0publication at Toptal's Tech= nology Blog of an article on Formosa. There you will find a concise explan= ation on how it works. Since the system is, in fact, very simple --- and a= special word of thank-you is due to Toptal's editing team and their extra= ordinary power of synthesis --- any IT professional can completely underst= and it in less than the indicated 10 minutes. I avail to continue to make the case for it in the dissertative paragraph = below. It is presented as an indented list to make references easier: 1. Formosa uses simple, fixed grammatical structure of sentences; allowin= g for... 1. easy implementation; 2. customized themes; 3. keeping legacy BIP39 properties; like=C2=A0 1. checksum bits; 2. =C2=A0uniformly high entropy density of entropy density; which allows = for=C2=A0 3. efficient auto-complete; and, therefore,=C2=A0 4. resistance to side-channel attacks. Speaking of which,=C2=A0 5. Resistance to side-channel attack can be even further improved with an= interface that destroys any connection between what is typed and the resu= lting seed. Notice (and a fully functioning prototype of it is already in = place) that such an interface relieves the requirement for first two lette= r uniqueness in sublists of possible terms, which further increases the av= erage quality of sentences. 3. Bitcoin already is lost at a higher rate than it is mined.=C2=A0Consid= er the level of emotional pain of a non-technical individual who finally u= nderstands and adopts the premises of Bitcoin, and then puts up the work o= f going self-custodial, only to, some time later, undergo the=C2=A0Tantali= an penalty=C2=A0of losing their patrimony, while knowing that it can still= be traced in the Blockchain and can still=C2=A0hypothetically=C2=A0be rec= overed if, as, for example, in the case KBA, they relived the faded anxiet= y-arising memory of the seed word list 'just one more time'. Don't you agr= ee that chances are this individual won't want to have Bitcoin ever again? Some will, then, point out that KBA let's the tenant more vulnerable to wr= ench attack, and that is right. I'll then avail to mention that to the day= , we lack defenses to coercion that don't violate Kerckhoff's principle by= critically relying on obscurity. The only reason this is not yet a critic= al issue is we take for granted 3 passive defenses to coercion (also relyi= ng on obscurity): 1. Obscurity per se: the 5-dollar wrench attacker has to know the basics = of BTC before trying to rob it from someone; 2. Anonymity: even an coercing adversary who does know how to use BTC has= to spot a potential victim among a crowd of non-users; 3. Plausible deniability: even when passing 1 and 2, a coercing adversary= may be fooled by a credible denial by their victim; By definition, those defenses tend to disappear with diffusion of knowledg= e, and impose a conflict of interest in our community and each BTC holder = individually: collaborating for spread of adoption of BTC makes it use und= er self-custody less viable due to being more vulnerable to coercion. My take on this is we should build a solution for coercion-resistance that= is not reliant on obscurity. Also, assuming such solution is effective, i= t should have KBA as basis since threat of destruction of PBA hardware is = a leverage that can be used by a coercing adversary. Yuri S Villas Boas ------- Original Message ------- On Saturday, May 20th, 2023 at 1:08 AM, yurisvb@pm.me wrot= e: > Good day, Keagan and all! > = > First of all, thank you for your feedback! Yes, I made it so that Formos= a does accomplish that: BIP39 is a particular case; a degenerate 'theme' i= n which you have sentences of just 11 bits (instead of 33 in a typical For= mosa sentence), and they are made up of just one (11 bits) word with no sy= ntactic structure. The sublist of possibilities for this one field does no= t impact and is not impacted by any other (because there is no other). The= refore it is rather a list (without 'sub') and it consists of the original= BIP39 word list. > = > In addition to that, we make it so that themes (including BIP39) are con= vertible into one another. The conversion is straightforward: just map the= words back into the array of bits that originated it and derive the new s= eed from it using the new theme. This is why I made sure to have sentences= have a number of bits multiple of 11. Moreover, in order to enable forwar= ds and backwards compatibility and facilitate adoption, we set the origina= l BIP39 as standard for key derivation. Meaning: in order to derive keys f= rom a seed, we first convert back to BIP39 and then proceed the KDF step a= s originally specified in BIP39. This way legacy addresses can be kept eve= n if a user wants to choose a theme. Finally, as a bonus, one could argue = that a hyper customization would allow for a(n additional, dispensable, no= n-critical) layer of obscurity (which, therefore, wouldn't violate Kerckho= ff's principle). Example: consider, for example, that a one hyper-customiz= ed seed could be (just an extra tool) more easily stenographed in human sp= eech or written text. > = > I hope this answers your objections concerning loss of standardization. = Thank you for bringing about the issue of coercion resistance! Here is my = response to that: a user willing to avoid the additional vulnerability to = coercion that an effective brain wallet would ensue could just not put up = the effort to memorize the seed for long term, and just take advantage of = the easier transcription and checking (ie: short-term memorization). Right= now I could anticipate a response in the lines of "Such a format might as= well be so much easier to long-term memorize that a user either ends up d= oing that accidentally, and/or the denial of that becomes less plausible."= . If that is the objection, well, thank you, and, however self-serving it = is my saying it, I tend to agree that that would,=C2=A0in fact,=C2=A0be th= e case. My response to it is that: > = > 1. knowledge-based authentication, whether or not for Bitcoin, still ha= ve some properties that possession-based authentication doesn't. Whatever = master password you memorize, in whatever context, you'd better have an ef= ficient format, with uniformly high entropy density (and even possibly che= cksum), and not having to resort to a silly meme about a staple, a battery= and a horse. > 2. Mitigating the shortcomings of KBA can arguably be done better with = 2FA, instead of PBA. Having a superior format just as beneficial as before= . > 3. Once again, thank you for bringing up coercion resistance! I'd like = to point out to an elephant in the room: To this day, and to the best of m= y knowledge there is no scheme, protocol or ceremony that simultaneously a= chieves self-custody and coercion resistance with=C2=A0non-obscurity. IMHO= this is an critical problem for various reasons and I'll be making a thre= ad about it shortly. > = > = > Thank you again for your inputs and be my guest to further debate your p= oints! I hope this could have been of help! > = > Faithfully yours, Yuri S VB. > ------- Original Message ------- > On Friday, May 19th, 2023 at 11:24 PM, Keagan McClelland wrote: > = > = > > Good day Yuri, > > = > > This is a very cool idea. After reviewing the repository it seems that= there lacks a BIP style specification for this, so it is possible that so= me of my takeaways may not be correct but I figured I'd comment with some = observations anyway. Feel free to correct me where I've made a mistake. > > I think to make an idea like this work it would be necessary for it to= "extend" BIP39 rather than "replace" it. What I mean by this is that BIP3= 9 is heavily entrenched in the ecosystem and so in order for you to sidest= ep the need to get everyone in the ecosystem to adopt a new standard, you'= d want this process to be able to output a standard BIP39 seed sequence. T= his becomes even more important when you allow these different "themes" th= at are mentioned later in the document. The notion of themes practically p= recludes the standardization of the technique since customization really i= s the antithesis of standardization. > > = > > The largest value proposition of these schemes is that it allows signi= ficant wallet interoperability. This is achieved if process for translatin= g these phrases to the underlying wallet seed is deterministic. Themes may= prove to make this harder to solve. I also do not believe that themes mea= ningfully increase the ability to remember the phrase: the fact that the p= hrase has a valid semantic at all is a massive step up from an undifferent= iated sequence of words that is the current state of BIP39. The benefits a= fforded by the themes here are little by comparison. > > = > > Overall, I think exploring this idea further is a good idea. However, = there may be concerns about whether the increased memorability is a good t= hing. It would certainly make $5 wrench attacks more viable, not less. I c= an't help but ask myself the question whether more Bitcoin is lost because= of seed phrases not being memorized, or because of social engineering exe= rcises used to scrape these phrases from the brains of users. I have a hun= ch that loss is a larger problem than theft, but it is a very real possibi= lity that a wide deployment of this type of tech could change that. > > = > > Stay Inspired, > > Keags > > = > > On Tue, May 2, 2023 at 6:05=E2=80=AFAM Yuri S VB via bitcoin-dev wrote: > > = > > > Dear colleagues, > > > The following is a password format that improves upon BIP39 by allow= ing meaningful, themed sentences with a regular grammatical structure inst= ead of semantically disconnected words, while keeping the same entropy/che= cksum and total bits/non-repeating leading digits ratios (of 32/1 and 11/4= respectively). > > > = > > > https://github.com/Yuri-SVB/formosa > > > = > > > Anecdotal experiments suggest that less than one hour of moderate co= ncentration is enough for long term memorization of 128 + 4 bits (equivale= nt to the 12 words standard of BIP39) if a theme of interest is employed. > > > = > > > I hereby offer it to your scrutiny as a Bitcoin Improvement Proposal= . Please don't hesitate to ask whatever issue about the project there migh= t be. > > > = > > > Faithfully yours, Yuri S VB. > > > = > > > _______________________________________________ > > > bitcoin-dev mailing list > > > bitcoin-dev@lists.linuxfoundation.org > > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev -----------------------803737bc6fa72c4a8d4b925ae6e9c5e0 Content-Type: multipart/related;boundary=---------------------36f1b10ef2f387f417d059f4d533359c -----------------------36f1b10ef2f387f417d059f4d533359c Content-Type: text/html;charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij48c3Bhbj5Hb29kIGRheSwgS2VhZ2FuIGFuZCBhbGwhPC9zcGFuPjxkaXY+PGJyPjwvZGl2 PjxkaXY+SXQncyBteSBkZWVwZXN0IHBsZWFzdXJlIHRvIGFubm91bmNlIHRoZTxzcGFuPiZuYnNw Ozwvc3Bhbj48YSBzdHlsZT0iY29sb3I6Ymx1ZSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZl cnJlciBub2ZvbGxvdyBub29wZW5lciIgaHJlZj0iaHR0cHM6Ly93d3cudG9wdGFsLmNvbS9jcnlw dG9jdXJyZW5jeS9mb3Jtb3NhLWNyeXB0by13YWxsZXQtbWFuYWdlbWVudCIgdGl0bGU9InB1Ymxp Y2F0aW9uIGF0IFRvcHRhbCdzIFRlY2hub2xvZ3kgQmxvZyBvZiBhbiBhcnRpY2xlIG9uIEZvcm1v c2EiPnB1YmxpY2F0aW9uIGF0IFRvcHRhbCdzIFRlY2hub2xvZ3kgQmxvZyBvZiBhbiBhcnRpY2xl IG9uIEZvcm1vc2E8L2E+LiBUaGVyZSB5b3Ugd2lsbCBmaW5kIGEgY29uY2lzZSBleHBsYW5hdGlv biBvbiBob3cgaXQgd29ya3MuIFNpbmNlIHRoZSBzeXN0ZW0gaXMsIGluIGZhY3QsIHZlcnkgc2lt cGxlIC0tLSBhbmQgYSBzcGVjaWFsIHdvcmQgb2YgdGhhbmsteW91IGlzIGR1ZSB0byBUb3B0YWwn cyBlZGl0aW5nIHRlYW0gYW5kIHRoZWlyIGV4dHJhb3JkaW5hcnkgcG93ZXIgb2Ygc3ludGhlc2lz IC0tLSBhbnkgSVQgcHJvZmVzc2lvbmFsIGNhbiBjb21wbGV0ZWx5IHVuZGVyc3RhbmQgaXQgaW4g bGVzcyB0aGFuIHRoZSBpbmRpY2F0ZWQgMTAgbWludXRlcy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PkkgYXZhaWwgdG8gY29udGludWUgdG8gbWFrZSB0aGUgY2FzZSBmb3IgaXQgaW4gdGhlIGRp c3NlcnRhdGl2ZSBwYXJhZ3JhcGggYmVsb3cuIEl0IGlzIHByZXNlbnRlZCBhcyBhbiBpbmRlbnRl ZCBsaXN0IHRvIG1ha2UgcmVmZXJlbmNlcyBlYXNpZXI6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp dj48b2wgc3R5bGU9InBhZGRpbmctbGVmdDoyLjg1NzE0ZW07bWFyZ2luLXRvcDowcHg7bWFyZ2lu LWJvdHRvbTowcHgiPjxsaT5Gb3Jtb3NhIHVzZXMgc2ltcGxlLCBmaXhlZCBncmFtbWF0aWNhbCBz dHJ1Y3R1cmUgb2Ygc2VudGVuY2VzOyBhbGxvd2luZyBmb3IuLi48L2xpPjxvbCBzdHlsZT0icGFk ZGluZy1sZWZ0OjIuODU3MTRlbTttYXJnaW4tdG9wOjBweDttYXJnaW4tYm90dG9tOjBweDtsaXN0 LXN0eWxlLXR5cGU6bG93ZXItYWxwaGEiPjxsaT5lYXN5IGltcGxlbWVudGF0aW9uOzwvbGk+PGxp PmN1c3RvbWl6ZWQgdGhlbWVzOzwvbGk+PGxpPmtlZXBpbmcgbGVnYWN5IEJJUDM5IHByb3BlcnRp ZXM7IGxpa2UmbmJzcDs8L2xpPjxvbCBzdHlsZT0icGFkZGluZy1sZWZ0OjIuODU3MTRlbTttYXJn aW4tdG9wOjBweDttYXJnaW4tYm90dG9tOjBweDtsaXN0LXN0eWxlLXR5cGU6bG93ZXItcm9tYW4i PjxsaT5jaGVja3N1bSBiaXRzOzwvbGk+PGxpPiZuYnNwO3VuaWZvcm1seSBoaWdoIGVudHJvcHkg ZGVuc2l0eSBvZiBlbnRyb3B5IGRlbnNpdHk7IHdoaWNoIGFsbG93cyBmb3ImbmJzcDs8L2xpPjxs aT5lZmZpY2llbnQgYXV0by1jb21wbGV0ZTsgYW5kLCB0aGVyZWZvcmUsJm5ic3A7PC9saT48bGk+ cmVzaXN0YW5jZSB0byBzaWRlLWNoYW5uZWwgYXR0YWNrcy4gU3BlYWtpbmcgb2Ygd2hpY2gsJm5i c3A7PC9saT48L29sPjxsaT5SZXNpc3RhbmNlIHRvIHNpZGUtY2hhbm5lbCBhdHRhY2sgY2FuIGJl IGV2ZW4gZnVydGhlciBpbXByb3ZlZCB3aXRoIGFuIGludGVyZmFjZSB0aGF0IGRlc3Ryb3lzIGFu eSBjb25uZWN0aW9uIGJldHdlZW4gd2hhdCBpcyB0eXBlZCBhbmQgdGhlIHJlc3VsdGluZyBzZWVk LiBOb3RpY2UgKGFuZCBhIGZ1bGx5IGZ1bmN0aW9uaW5nIHByb3RvdHlwZSBvZiBpdCBpcyBhbHJl YWR5IGluIHBsYWNlKSB0aGF0IHN1Y2ggYW4gaW50ZXJmYWNlIHJlbGlldmVzIHRoZSByZXF1aXJl bWVudCBmb3IgZmlyc3QgdHdvIGxldHRlciB1bmlxdWVuZXNzIGluIHN1Ymxpc3RzIG9mIHBvc3Np YmxlIHRlcm1zLCB3aGljaCBmdXJ0aGVyIGluY3JlYXNlcyB0aGUgYXZlcmFnZSBxdWFsaXR5IG9m IHNlbnRlbmNlcy48L2xpPjwvb2w+PGxpPjxhIHN0eWxlPSJjb2xvcjpibHVlIiB0aXRsZT0iQml0 Y29pbiBhbHJlYWR5IGlzIGxvc3QgYXQgYSBoaWdoZXIgcmF0ZSB0aGFuIGl0IGlzIG1pbmVkLiIg aHJlZj0iaHR0cHM6Ly9lbi5jcnlwdG9ub21pc3QuY2gvMjAyMC8wOC8yNi9iaXRjb2luLWxvc3Qt YnRjLW1vcmUtdGhhbi1taW5lZC8iIHJlbD0ibm9yZWZlcnJlciBub2ZvbGxvdyBub29wZW5lciIg dGFyZ2V0PSJfYmxhbmsiPkJpdGNvaW4gYWxyZWFkeSBpcyBsb3N0IGF0IGEgaGlnaGVyIHJhdGUg dGhhbiBpdCBpcyBtaW5lZC48L2E+Jm5ic3A7Q29uc2lkZXIgdGhlIGxldmVsIG9mIGVtb3Rpb25h bCBwYWluIG9mIGEgbm9uLXRlY2huaWNhbCBpbmRpdmlkdWFsIHdobyBmaW5hbGx5IHVuZGVyc3Rh bmRzIGFuZCBhZG9wdHMgdGhlIHByZW1pc2VzIG9mIEJpdGNvaW4sIGFuZCB0aGVuIHB1dHMgdXAg dGhlIHdvcmsgb2YgZ29pbmcgc2VsZi1jdXN0b2RpYWwsIG9ubHkgdG8sIHNvbWUgdGltZSBsYXRl ciwgdW5kZXJnbyB0aGU8c3Bhbj4mbmJzcDs8L3NwYW4+PGk+VGFudGFsaWFuIHBlbmFsdHk8c3Bh bj4mbmJzcDs8L3NwYW4+PC9pPm9mIGxvc2luZyB0aGVpciBwYXRyaW1vbnksIHdoaWxlIGtub3dp bmcgdGhhdCBpdCBjYW4gc3RpbGwgYmUgdHJhY2VkIGluIHRoZSBCbG9ja2NoYWluIGFuZCBjYW4g c3RpbGwmbmJzcDs8aT5oeXBvdGhldGljYWxseTxzcGFuPiZuYnNwOzwvc3Bhbj48L2k+YmUgcmVj b3ZlcmVkIGlmLCBhcywgZm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlIEtCQSwgdGhleSByZWxpdmVk IHRoZSBmYWRlZCBhbnhpZXR5LWFyaXNpbmcgbWVtb3J5IG9mIHRoZSBzZWVkIHdvcmQgbGlzdCAn PGk+anVzdCBvbmUgbW9yZSB0aW1lJzwvaT4uIERvbid0IHlvdSBhZ3JlZSB0aGF0IGNoYW5jZXMg YXJlIHRoaXMgaW5kaXZpZHVhbCB3b24ndCB3YW50IHRvIGhhdmUgQml0Y29pbiBldmVyIGFnYWlu PzwvbGk+PC9vbD48ZGl2PjxzcGFuPjxicj48L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj5Tb21lIHdp bGwsIHRoZW4sIHBvaW50IG91dCB0aGF0IEtCQSBsZXQncyB0aGUgdGVuYW50IG1vcmUgdnVsbmVy YWJsZSB0byB3cmVuY2ggYXR0YWNrLCBhbmQgdGhhdCBpcyByaWdodC4gSSdsbCB0aGVuIGF2YWls IHRvIG1lbnRpb24gdGhhdCB0byB0aGUgZGF5LCB3ZSBsYWNrIGRlZmVuc2VzIHRvIGNvZXJjaW9u IHRoYXQgZG9uJ3QgdmlvbGF0ZSBLZXJja2hvZmYncyBwcmluY2lwbGUgYnkgY3JpdGljYWxseSBy ZWx5aW5nIG9uIG9ic2N1cml0eS4gVGhlIG9ubHkgcmVhc29uIHRoaXMgaXMgbm90IHlldCBhIGNy aXRpY2FsIGlzc3VlIGlzIHdlIHRha2UgZm9yIGdyYW50ZWQgMyBwYXNzaXZlIGRlZmVuc2VzIHRv IGNvZXJjaW9uIChhbHNvIHJlbHlpbmcgb24gb2JzY3VyaXR5KTo8L3NwYW4+PC9kaXY+PGRpdj48 b2wgc3R5bGU9InBhZGRpbmctbGVmdDoyLjg1NzE0ZW07bWFyZ2luLXRvcDowcHg7bWFyZ2luLWJv dHRvbTowcHgiPjxsaT48c3Bhbj5PYnNjdXJpdHkgcGVyIHNlOiB0aGUgNS1kb2xsYXIgd3JlbmNo IGF0dGFja2VyIGhhcyB0byBrbm93IHRoZSBiYXNpY3Mgb2YgQlRDIGJlZm9yZSB0cnlpbmcgdG8g cm9iIGl0IGZyb20gc29tZW9uZTs8L3NwYW4+PC9saT48bGk+QW5vbnltaXR5OiBldmVuIGFuIGNv ZXJjaW5nIGFkdmVyc2FyeSB3aG8gZG9lcyBrbm93IGhvdyB0byB1c2UgQlRDIGhhcyB0byBzcG90 IGEgcG90ZW50aWFsIHZpY3RpbSBhbW9uZyBhIGNyb3dkIG9mIG5vbi11c2Vyczs8L2xpPjxsaT5Q bGF1c2libGUgZGVuaWFiaWxpdHk6IGV2ZW4gd2hlbiBwYXNzaW5nIDEgYW5kIDIsIGEgY29lcmNp bmcgYWR2ZXJzYXJ5IG1heSBiZSBmb29sZWQgYnkgYSBjcmVkaWJsZSBkZW5pYWwgYnkgdGhlaXIg dmljdGltOzwvbGk+PC9vbD48ZGl2PkJ5IGRlZmluaXRpb24sIHRob3NlIGRlZmVuc2VzIHRlbmQg dG8gZGlzYXBwZWFyIHdpdGggZGlmZnVzaW9uIG9mIGtub3dsZWRnZSwgYW5kIGltcG9zZSBhIGNv bmZsaWN0IG9mIGludGVyZXN0IGluIG91ciBjb21tdW5pdHkgYW5kIGVhY2ggQlRDIGhvbGRlciBp bmRpdmlkdWFsbHk6IGNvbGxhYm9yYXRpbmcgZm9yIHNwcmVhZCBvZiBhZG9wdGlvbiBvZiBCVEMg bWFrZXMgaXQgdXNlIHVuZGVyIHNlbGYtY3VzdG9keSBsZXNzIHZpYWJsZSBkdWUgdG8gYmVpbmcg bW9yZSB2dWxuZXJhYmxlIHRvIGNvZXJjaW9uLjxicj48YnI+TXkgdGFrZSBvbiB0aGlzIGlzIHdl IHNob3VsZCBidWlsZCBhIHNvbHV0aW9uIGZvciBjb2VyY2lvbi1yZXNpc3RhbmNlIHRoYXQgaXMg bm90IHJlbGlhbnQgb24gb2JzY3VyaXR5LiBBbHNvLCBhc3N1bWluZyBzdWNoIHNvbHV0aW9uIGlz IGVmZmVjdGl2ZSwgaXQgc2hvdWxkIGhhdmUgS0JBIGFzIGJhc2lzIHNpbmNlIHRocmVhdCBvZiBk ZXN0cnVjdGlvbiBvZiBQQkEgaGFyZHdhcmUgaXMgYSBsZXZlcmFnZSB0aGF0IGNhbiBiZSB1c2Vk IGJ5IGEgY29lcmNpbmcgYWR2ZXJzYXJ5Ljxicj48YnI+WXVyaSBTIFZpbGxhcyBCb2FzPC9kaXY+ PC9kaXY+PC9kaXY+PGJyPjwvZGl2PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfcXVvdGUiPgogICAg ICAgIC0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLS0tPGJyPgogICAgICAgIE9uIFNhdHVy ZGF5LCBNYXkgMjB0aCwgMjAyMyBhdCAxOjA4IEFNLCB5dXJpc3ZiQHBtLm1lICZsdDt5dXJpc3Zi QHBtLm1lJmd0OyB3cm90ZTo8YnI+PGJyPgogICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJwcm90 b25tYWlsX3F1b3RlIiB0eXBlPSJjaXRlIj4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1m YW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij5Hb29kIGRheSwgS2Vh Z2FuIGFuZCBhbGwhPGJyPjxicj5GaXJzdCBvZiBhbGwsIHRoYW5rIHlvdSBmb3IgeW91ciBmZWVk YmFjayEgWWVzLCBJIG1hZGUgaXQgc28gdGhhdCBGb3Jtb3NhIGRvZXMgYWNjb21wbGlzaCB0aGF0 OiBCSVAzOSBpcyBhIHBhcnRpY3VsYXIgY2FzZTsgYSBkZWdlbmVyYXRlICd0aGVtZScgaW4gd2hp Y2ggeW91IGhhdmUgc2VudGVuY2VzIG9mIGp1c3QgMTEgYml0cyAoaW5zdGVhZCBvZiAzMyBpbiBh IHR5cGljYWwgRm9ybW9zYSBzZW50ZW5jZSksIGFuZCB0aGV5IGFyZSBtYWRlIHVwIG9mIGp1c3Qg b25lICgxMSBiaXRzKSB3b3JkIHdpdGggbm8gc3ludGFjdGljIHN0cnVjdHVyZS4gVGhlIHN1Ymxp c3Qgb2YgcG9zc2liaWxpdGllcyBmb3IgdGhpcyBvbmUgZmllbGQgZG9lcyBub3QgaW1wYWN0IGFu ZCBpcyBub3QgaW1wYWN0ZWQgYnkgYW55IG90aGVyIChiZWNhdXNlIHRoZXJlIGlzIG5vIG90aGVy KS4gVGhlcmVmb3JlIGl0IGlzIHJhdGhlciBhIGxpc3QgKHdpdGhvdXQgJ3N1YicpIGFuZCBpdCBj b25zaXN0cyBvZiB0aGUgb3JpZ2luYWwgQklQMzkgd29yZCBsaXN0Ljxicj48YnI+SW4gYWRkaXRp b24gdG8gdGhhdCwgd2UgbWFrZSBpdCBzbyB0aGF0IHRoZW1lcyAoaW5jbHVkaW5nIEJJUDM5KSBh cmUgY29udmVydGlibGUgaW50byBvbmUgYW5vdGhlci4gVGhlIGNvbnZlcnNpb24gaXMgc3RyYWln aHRmb3J3YXJkOiBqdXN0IG1hcCB0aGUgd29yZHMgYmFjayBpbnRvIHRoZSBhcnJheSBvZiBiaXRz IHRoYXQgb3JpZ2luYXRlZCBpdCBhbmQgZGVyaXZlIHRoZSBuZXcgc2VlZCBmcm9tIGl0IHVzaW5n IHRoZSBuZXcgdGhlbWUuIFRoaXMgaXMgd2h5IEkgbWFkZSBzdXJlIHRvIGhhdmUgc2VudGVuY2Vz IGhhdmUgYSBudW1iZXIgb2YgYml0cyBtdWx0aXBsZSBvZiAxMS4gTW9yZW92ZXIsIGluIG9yZGVy IHRvIGVuYWJsZSBmb3J3YXJkcyBhbmQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIGZhY2ls aXRhdGUgYWRvcHRpb24sIHdlIHNldCB0aGUgb3JpZ2luYWwgQklQMzkgYXMgc3RhbmRhcmQgZm9y IGtleSBkZXJpdmF0aW9uLiBNZWFuaW5nOiBpbiBvcmRlciB0byBkZXJpdmUga2V5cyBmcm9tIGEg c2VlZCwgd2UgZmlyc3QgY29udmVydCBiYWNrIHRvIEJJUDM5IGFuZCB0aGVuIHByb2NlZWQgdGhl IEtERiBzdGVwIGFzIG9yaWdpbmFsbHkgc3BlY2lmaWVkIGluIEJJUDM5LiBUaGlzIHdheSBsZWdh Y3kgYWRkcmVzc2VzIGNhbiBiZSBrZXB0IGV2ZW4gaWYgYSB1c2VyIHdhbnRzIHRvIGNob29zZSBh IHRoZW1lLiBGaW5hbGx5LCBhcyBhIGJvbnVzLCBvbmUgY291bGQgYXJndWUgdGhhdCBhIGh5cGVy IGN1c3RvbWl6YXRpb24gd291bGQgYWxsb3cgZm9yIGEobiBhZGRpdGlvbmFsLCBkaXNwZW5zYWJs ZSwgbm9uLWNyaXRpY2FsKSBsYXllciBvZiBvYnNjdXJpdHkgKHdoaWNoLCB0aGVyZWZvcmUsIHdv dWxkbid0IHZpb2xhdGUgS2VyY2tob2ZmJ3MgcHJpbmNpcGxlKS4gRXhhbXBsZTogY29uc2lkZXIs IGZvciBleGFtcGxlLCB0aGF0IGEgb25lIGh5cGVyLWN1c3RvbWl6ZWQgc2VlZCA8aT5jb3VsZCA8 L2k+YmUgKGp1c3QgYW4gZXh0cmEgdG9vbCkgbW9yZSBlYXNpbHkgc3Rlbm9ncmFwaGVkIGluIGh1 bWFuIHNwZWVjaCBvciB3cml0dGVuIHRleHQuPGJyPjxicj5JIGhvcGUgdGhpcyBhbnN3ZXJzIHlv dXIgb2JqZWN0aW9ucyBjb25jZXJuaW5nIGxvc3Mgb2Ygc3RhbmRhcmRpemF0aW9uLiBUaGFuayB5 b3UgZm9yIGJyaW5naW5nIGFib3V0IHRoZSBpc3N1ZSBvZiBjb2VyY2lvbiByZXNpc3RhbmNlISBI ZXJlIGlzIG15IHJlc3BvbnNlIHRvIHRoYXQ6IGEgdXNlciB3aWxsaW5nIHRvIGF2b2lkIHRoZSBh ZGRpdGlvbmFsIHZ1bG5lcmFiaWxpdHkgdG8gY29lcmNpb24gdGhhdCBhbiBlZmZlY3RpdmUgYnJh aW4gd2FsbGV0IHdvdWxkIGVuc3VlIGNvdWxkIGp1c3Qgbm90IHB1dCB1cCB0aGUgZWZmb3J0IHRv IG1lbW9yaXplIHRoZSBzZWVkIGZvciBsb25nIHRlcm0sIGFuZCBqdXN0IHRha2UgYWR2YW50YWdl IG9mIHRoZSBlYXNpZXIgdHJhbnNjcmlwdGlvbiBhbmQgY2hlY2tpbmcgKGllOiBzaG9ydC10ZXJt IG1lbW9yaXphdGlvbikuIFJpZ2h0IG5vdyBJIGNvdWxkIGFudGljaXBhdGUgYSByZXNwb25zZSBp biB0aGUgbGluZXMgb2YgPGk+IlN1Y2ggYSBmb3JtYXQgbWlnaHQgYXMgd2VsbCBiZSBzbyBtdWNo IGVhc2llciB0byBsb25nLXRlcm0gbWVtb3JpemUgdGhhdCBhIHVzZXIgZWl0aGVyIGVuZHMgdXAg ZG9pbmcgdGhhdCBhY2NpZGVudGFsbHksIGFuZC9vciB0aGUgZGVuaWFsIG9mIHRoYXQgYmVjb21l cyBsZXNzIHBsYXVzaWJsZS4iLiA8L2k+SWYgdGhhdCBpcyB0aGUgb2JqZWN0aW9uLCB3ZWxsLCB0 aGFuayB5b3UsIGFuZCwgaG93ZXZlciBzZWxmLXNlcnZpbmcgaXQgaXMgbXkgc2F5aW5nIGl0LCBJ IHRlbmQgdG8gYWdyZWUgdGhhdCB0aGF0IHdvdWxkLCZuYnNwOzxzcGFuIHN0eWxlPSJiYWNrZ3Jv dW5kLWNvbG9yOnJnYigyNTUsIDI1NSwgMjU1KTtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50Ij5p biBmYWN0LCZuYnNwOzwvc3Bhbj5iZSB0aGUgY2FzZS4gTXkgcmVzcG9uc2UgdG8gaXQgaXMgdGhh dDo8YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBm b250LXNpemU6IDE0cHg7Ij48b2w+PGxpPmtub3dsZWRnZS1iYXNlZCBhdXRoZW50aWNhdGlvbiwg d2hldGhlciBvciBub3QgZm9yIEJpdGNvaW4sIHN0aWxsIGhhdmUgc29tZSBwcm9wZXJ0aWVzIHRo YXQgcG9zc2Vzc2lvbi1iYXNlZCBhdXRoZW50aWNhdGlvbiBkb2Vzbid0LiBXaGF0ZXZlciBtYXN0 ZXIgcGFzc3dvcmQgeW91IG1lbW9yaXplLCBpbiB3aGF0ZXZlciBjb250ZXh0LCB5b3UnZCBiZXR0 ZXIgaGF2ZSBhbiBlZmZpY2llbnQgZm9ybWF0LCB3aXRoIHVuaWZvcm1seSBoaWdoIGVudHJvcHkg ZGVuc2l0eSAoYW5kIGV2ZW4gcG9zc2libHkgY2hlY2tzdW0pLCBhbmQgbm90IGhhdmluZyB0byBy ZXNvcnQgdG8gYSBzaWxseSBtZW1lIGFib3V0IGEgc3RhcGxlLCBhIGJhdHRlcnkgYW5kIGEgaG9y c2UuPC9saT48bGk+TWl0aWdhdGluZyB0aGUgc2hvcnRjb21pbmdzIG9mIEtCQSBjYW4gYXJndWFi bHkgYmUgZG9uZSBiZXR0ZXIgd2l0aCAyRkEsIGluc3RlYWQgb2YgUEJBLiBIYXZpbmcgYSBzdXBl cmlvciBmb3JtYXQganVzdCBhcyBiZW5lZmljaWFsIGFzIGJlZm9yZS48L2xpPjxsaT48c3Bhbj5P bmNlIGFnYWluLCB0aGFuayB5b3UgZm9yIGJyaW5naW5nIHVwIGNvZXJjaW9uIHJlc2lzdGFuY2Uh IEknZCBsaWtlIHRvIHBvaW50IG91dCB0byBhbiBlbGVwaGFudCBpbiB0aGUgcm9vbTogVG8gdGhp cyBkYXksIGFuZCB0byB0aGUgYmVzdCBvZiBteSBrbm93bGVkZ2UgdGhlcmUgaXMgbm8gc2NoZW1l LCBwcm90b2NvbCBvciBjZXJlbW9ueSB0aGF0IHNpbXVsdGFuZW91c2x5IGFjaGlldmVzIHNlbGYt Y3VzdG9keSBhbmQgY29lcmNpb24gcmVzaXN0YW5jZSB3aXRoPC9zcGFuPiZuYnNwO25vbi1vYnNj dXJpdHkuIElNSE8gdGhpcyBpcyBhbiBjcml0aWNhbCBwcm9ibGVtIGZvciB2YXJpb3VzIHJlYXNv bnMgYW5kIEknbGwgYmUgbWFraW5nIGEgdGhyZWFkIGFib3V0IGl0IHNob3J0bHkuPC9saT48L29s PjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1z aXplOiAxNHB4OyI+PGJyPlRoYW5rIHlvdSBhZ2FpbiBmb3IgeW91ciBpbnB1dHMgYW5kIGJlIG15 IGd1ZXN0IHRvIGZ1cnRoZXIgZGViYXRlIHlvdXIgcG9pbnRzISBJIGhvcGUgdGhpcyBjb3VsZCBo YXZlIGJlZW4gb2YgaGVscCE8YnI+PGJyPkZhaXRoZnVsbHkgeW91cnMsIFl1cmkgUyBWQi48YnI+ PGJyPjwvZGl2PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfcXVvdGUiPgogICAgICAgIC0tLS0tLS0g T3JpZ2luYWwgTWVzc2FnZSAtLS0tLS0tPGJyPgogICAgICAgIE9uIEZyaWRheSwgTWF5IDE5dGgs IDIwMjMgYXQgMTE6MjQgUE0sIEtlYWdhbiBNY0NsZWxsYW5kICZsdDtrZWFnYW4ubWNjbGVsbGFu ZEBnbWFpbC5jb20mZ3Q7IHdyb3RlOjxicj48YnI+CiAgICAgICAgPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSIgY2xhc3M9InByb3Rvbm1haWxfcXVvdGUiPgogICAgICAgICAgICA8ZGl2IGRpcj0ibHRy Ij48ZGl2Pkdvb2QgZGF5IFl1cmksPC9kaXY+PGRpdj48YnI+PC9kaXY+VGhpcyBpcyBhIHZlcnkg Y29vbCBpZGVhLiBBZnRlciByZXZpZXdpbmcgdGhlIHJlcG9zaXRvcnkgaXQgc2VlbXMgdGhhdCB0 aGVyZSBsYWNrcyBhIEJJUCBzdHlsZSBzcGVjaWZpY2F0aW9uIGZvciB0aGlzLCBzbyBpdCBpcyBw b3NzaWJsZSB0aGF0IHNvbWUgb2YgbXkgdGFrZWF3YXlzIG1heSBub3QgYmUgY29ycmVjdCBidXQg SSBmaWd1cmVkIEknZCBjb21tZW50IHdpdGggc29tZSBvYnNlcnZhdGlvbnMgYW55d2F5LiBGZWVs IGZyZWUgdG8gY29ycmVjdCBtZSB3aGVyZSBJJ3ZlIG1hZGUgYSBtaXN0YWtlLjxkaXY+PGJyPjwv ZGl2PjxkaXY+SSB0aGluayB0byBtYWtlIGFuIGlkZWEgbGlrZSB0aGlzIHdvcmsgaXQgd291bGQg YmUgbmVjZXNzYXJ5IGZvciBpdCB0byAiZXh0ZW5kIiBCSVAzOSByYXRoZXIgdGhhbiAicmVwbGFj ZSIgaXQuIFdoYXQgSSBtZWFuIGJ5IHRoaXMgaXMgdGhhdCBCSVAzOSBpcyBoZWF2aWx5IGVudHJl bmNoZWQgaW4gdGhlIGVjb3N5c3RlbSBhbmQgc28gaW4gb3JkZXIgZm9yIHlvdSB0byBzaWRlc3Rl cCB0aGUgbmVlZCB0byBnZXQgZXZlcnlvbmUgaW4gdGhlIGVjb3N5c3RlbSB0byBhZG9wdCBhIG5l dyBzdGFuZGFyZCwgeW91J2Qgd2FudCB0aGlzIHByb2Nlc3MgdG8gYmUgYWJsZSB0byBvdXRwdXQg YSBzdGFuZGFyZCBCSVAzOSBzZWVkIHNlcXVlbmNlLiBUaGlzIGJlY29tZXMgZXZlbiBtb3JlIGlt cG9ydGFudCB3aGVuIHlvdSBhbGxvdyB0aGVzZSBkaWZmZXJlbnQgInRoZW1lcyIgdGhhdCBhcmUg bWVudGlvbmVkIGxhdGVyIGluIHRoZSBkb2N1bWVudC4gVGhlIG5vdGlvbiBvZiB0aGVtZXMgcHJh Y3RpY2FsbHkgcHJlY2x1ZGVzIHRoZSBzdGFuZGFyZGl6YXRpb24gb2YgdGhlIHRlY2huaXF1ZSBz aW5jZSBjdXN0b21pemF0aW9uIHJlYWxseSBpcyB0aGUgYW50aXRoZXNpcyBvZiBzdGFuZGFyZGl6 YXRpb24uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUgbGFyZ2VzdCB2YWx1ZSBwcm9wb3Np dGlvbiBvZiB0aGVzZSBzY2hlbWVzIGlzIHRoYXQgaXQgYWxsb3dzIHNpZ25pZmljYW50IHdhbGxl dCBpbnRlcm9wZXJhYmlsaXR5LiBUaGlzIGlzIGFjaGlldmVkIGlmIHByb2Nlc3MgZm9yIHRyYW5z bGF0aW5nIHRoZXNlIHBocmFzZXMgdG8gdGhlIHVuZGVybHlpbmcgd2FsbGV0IHNlZWQgaXMgZGV0 ZXJtaW5pc3RpYy4gVGhlbWVzIG1heSBwcm92ZSB0byBtYWtlIHRoaXMgaGFyZGVyIHRvIHNvbHZl LiBJIGFsc28gZG8gbm90IGJlbGlldmUgdGhhdCB0aGVtZXMgbWVhbmluZ2Z1bGx5IGluY3JlYXNl IHRoZSBhYmlsaXR5IHRvIHJlbWVtYmVyIHRoZSBwaHJhc2U6IHRoZSBmYWN0IHRoYXQgdGhlIHBo cmFzZSBoYXMgYSB2YWxpZCBzZW1hbnRpYyBhdCBhbGwgaXMgYSBtYXNzaXZlIHN0ZXAgdXAgZnJv bSBhbiB1bmRpZmZlcmVudGlhdGVkIHNlcXVlbmNlIG9mIHdvcmRzIHRoYXQgaXMgdGhlIGN1cnJl bnQgc3RhdGUgb2YgQklQMzkuIFRoZSBiZW5lZml0cyBhZmZvcmRlZCBieSB0aGUgdGhlbWVzIGhl cmUgYXJlIGxpdHRsZSBieSBjb21wYXJpc29uLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+T3Zl cmFsbCwgSSB0aGluayBleHBsb3JpbmcgdGhpcyBpZGVhIGZ1cnRoZXIgaXMgYSBnb29kIGlkZWEu IEhvd2V2ZXIsIHRoZXJlIG1heSBiZSBjb25jZXJucyBhYm91dCB3aGV0aGVyIHRoZSBpbmNyZWFz ZWQgbWVtb3JhYmlsaXR5IGlzIGEgZ29vZCB0aGluZy4gSXQgd291bGQgY2VydGFpbmx5IG1ha2Ug JDUgd3JlbmNoIGF0dGFja3MgbW9yZSB2aWFibGUsIG5vdCBsZXNzLiBJIGNhbid0IGhlbHAgYnV0 IGFzayBteXNlbGYgdGhlIHF1ZXN0aW9uIHdoZXRoZXIgbW9yZSBCaXRjb2luIGlzIGxvc3QgYmVj YXVzZSBvZiBzZWVkIHBocmFzZXMgbm90IGJlaW5nIG1lbW9yaXplZCwgb3IgYmVjYXVzZSBvZiBz b2NpYWwgZW5naW5lZXJpbmcgZXhlcmNpc2VzIHVzZWQgdG8gc2NyYXBlIHRoZXNlIHBocmFzZXMg ZnJvbSB0aGUgYnJhaW5zIG9mIHVzZXJzLiBJIGhhdmUgYSBodW5jaCB0aGF0IGxvc3MgaXMgYSBs YXJnZXIgcHJvYmxlbSB0aGFuIHRoZWZ0LCBidXQgaXQgaXMgYSB2ZXJ5IHJlYWwgcG9zc2liaWxp dHkgdGhhdCBhIHdpZGUgZGVwbG95bWVudCBvZiB0aGlzIHR5cGUgb2YgdGVjaCBjb3VsZCBjaGFu Z2UgdGhhdC48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlN0YXkgSW5zcGlyZWQsPC9kaXY+PGRp dj5LZWFnczwvZGl2PjwvZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9 Imx0ciIgY2xhc3M9ImdtYWlsX2F0dHIiPk9uIFR1ZSwgTWF5IDIsIDIwMjMgYXQgNjowNeKAr0FN IFl1cmkgUyBWQiB2aWEgYml0Y29pbi1kZXYgJmx0OzxhIHRhcmdldD0iX2JsYW5rIiByZWw9Im5v cmVmZXJyZXIgbm9mb2xsb3cgbm9vcGVuZXIiIGhyZWY9Im1haWx0bzpiaXRjb2luLWRldkBsaXN0 cy5saW51eGZvdW5kYXRpb24ub3JnIj5iaXRjb2luLWRldkBsaXN0cy5saW51eGZvdW5kYXRpb24u b3JnPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90 ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQg cmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IHN0eWxlPSJmb250LWZhbWls eTpBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4Ij48c3BhbiBzdHlsZT0ibGluZS1oZWln aHQ6MS41Ij5EZWFyIGNvbGxlYWd1ZXMsPC9zcGFuPjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjEu NSI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImxpbmUtaGVpZ2h0OjEuNSI+PGRpdj48ZGl2PjxzcGFu PlRoZSBmb2xsb3dpbmcgaXMgYSBwYXNzd29yZCBmb3JtYXQgdGhhdCBpbXByb3ZlcyB1cG9uIEJJ UDM5IGJ5IGFsbG93aW5nIG1lYW5pbmdmdWwsIHRoZW1lZCBzZW50ZW5jZXMgd2l0aCBhIHJlZ3Vs YXIgZ3JhbW1hdGljYWwgc3RydWN0dXJlIGluc3RlYWQgb2Ygc2VtYW50aWNhbGx5IGRpc2Nvbm5l Y3RlZCB3b3Jkcywgd2hpbGUga2VlcGluZyB0aGUgc2FtZSBlbnRyb3B5L2NoZWNrc3VtIGFuZCB0 b3RhbCBiaXRzL25vbi1yZXBlYXRpbmcgbGVhZGluZyBkaWdpdHMgcmF0aW9zIChvZiAzMi8xIGFu ZCAxMS80IHJlc3BlY3RpdmVseSkuPGJyPjxicj48c3Bhbj48YSBocmVmPSJodHRwczovL2dpdGh1 Yi5jb20vWXVyaS1TVkIvZm9ybW9zYSIgcmVsPSJub3JlZmVycmVyIG5vZm9sbG93IG5vb3BlbmVy IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vZ2l0aHViLmNvbS9ZdXJpLVNWQi9mb3Jtb3NhPC9hPjwvc3Bhbj48YnI+PGJyPkFuZWNkb3Rh bCBleHBlcmltZW50cyBzdWdnZXN0IHRoYXQgbGVzcyB0aGFuIG9uZSBob3VyIG9mIG1vZGVyYXRl IGNvbmNlbnRyYXRpb24gaXMgZW5vdWdoIGZvciBsb25nIHRlcm0gbWVtb3JpemF0aW9uIG9mIDEy OCArIDQgYml0cyAoZXF1aXZhbGVudCB0byB0aGUgMTIgd29yZHMgc3RhbmRhcmQgb2YgQklQMzkp IGlmIGEgdGhlbWUgb2YgaW50ZXJlc3QgaXMgZW1wbG95ZWQuPGJyPjxicj5JIGhlcmVieSBvZmZl ciBpdCB0byB5b3VyIHNjcnV0aW55IGFzIGEgQml0Y29pbiBJbXByb3ZlbWVudCBQcm9wb3NhbC4g UGxlYXNlIGRvbid0IGhlc2l0YXRlIHRvIGFzayB3aGF0ZXZlciBpc3N1ZSBhYm91dCB0aGUgcHJv amVjdCB0aGVyZSBtaWdodCBiZS48YnI+PGJyPkZhaXRoZnVsbHkgeW91cnMsIFl1cmkgUyBWQi48 L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5 OkFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHgiPgo8L2Rpdj4KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CmJpdGNvaW4tZGV2IG1haWxpbmcg bGlzdDxicj4KPGEgcmVsPSJub3JlZmVycmVyIG5vZm9sbG93IG5vb3BlbmVyIiBocmVmPSJtYWls dG86Yml0Y29pbi1kZXZAbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZyIgdGFyZ2V0PSJfYmxhbmsi PmJpdGNvaW4tZGV2QGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmc8L2E+PGJyPgo8YSBocmVmPSJo dHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9iaXRjb2lu LWRldiIgcmVsPSJub3JlZmVycmVyIG5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+ aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vYml0Y29p bi1kZXY8L2E+PGJyPgo8L2Jsb2NrcXVvdGU+PC9kaXY+CgogICAgICAgIDwvYmxvY2txdW90ZT48 YnI+CiAgICA8L2Rpdj4KICAgICAgICA8L2Jsb2NrcXVvdGU+PGJyPgogICAgPC9kaXY+ -----------------------36f1b10ef2f387f417d059f4d533359c-- -----------------------803737bc6fa72c4a8d4b925ae6e9c5e0-- -----------------------8525f08be665010e036baebeffdc1e02 Content-Type: application/pgp-keys; filename="publickey - yurisvb@pm.me - 0x535F445D.asc"; name="publickey - yurisvb@pm.me - 0x535F445D.asc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="publickey - yurisvb@pm.me - 0x535F445D.asc"; name="publickey - yurisvb@pm.me - 0x535F445D.asc" LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4c0JOQkYySmpSWUJDQUM1MXlo K0s0MmF0c0V5MGdCTmgvaklXR1hzQnRFLzdJOGFuUmZkZTcvcWdHeXkKbEx4TXFZRE1OelUwN3c5 Z3VINllKRDdWdzNaUmxTVGVqNU9Hc2laOFJ2OUp4YXBYc0MxeDMrdHhOQkFQClYyVml1MVpsMnhK Y29sTDkrem9SUmhmU25lVDVaZm1IQlpBSklKbmhOdU80ajhrRi9iNDRFaEZ3NkwvTgpGbE9rK1VC SkVvS0FFQWttd09aWWpVTDd6MStRdzJBZkJIVGVwNFMzYmY4SmZMNDFOUVJsRnBSa3MrSkMKTjNa c0ozZmZhNURjWjVqTGgyK2k5Mlg2eE8yVW5nM0hLYXhJYTVtbzB3cGVvQ1JQdUxNRjE2cjVQelJ4 CjJmNldzZVlUbWVmZWVYUGUzZEhyTTR4ai9ndHpBRGNxaFd6VVZLM21ZNTdPTXhVYjJ4MWdqZ1Z6 QUJFQgpBQUhOSFhsMWNtbHpkbUpBY0cwdWJXVWdQSGwxY21semRtSkFjRzB1YldVK3dzQjFCQkFC Q0FBZkJRSmQKaVkwV0Jnc0pCd2dEQWdRVkNBb0NBeFlDQVFJWkFRSWJBd0llQVFBS0NSQXYzelY4 UzhOTVZkTkRCLzlRCnZRRlpZNkRzR3FMOTlkKzI2QjdHYmRCb0VjenUxL2NqTVpNdE9QeW9nSElF eXllalR3R1RVN3ZYNEpWZQozRHZnbnd4U2xIYjQ2dDU2VGV3OU5rZ2V4MmFIb0hGRnJBd3MraTVa ajdZN2lhL2l2RVozZE1KR3dNSUoKeVlQS08rdG1ockxNYWlSSFdnUnhtSG5mRnhUY1dFQ1dSZEk3 dDRJWFp3Rm9QN2Z3TVVVVXQrV3NTbzJSCnJhUVZEL3NTL2F2TlF5T2h6YTlLcVBQNjBZY3B2RUtj UXArL2hyTjRRcFhVSkxiaDFZMVlqeUhlbDhnQgpRa3p2QzUwUjVxTzRlY2xxSy9FMEhESnlDWmZN TThkV2o0REJrTWN2SzlsYjB5b3ZRMDFFTXp1NkU1NEcKYjZ0VFp1bktQTVpVd1J1SW5FY0hHMjV0 azdWUEM4clJTU0hqeDhTT3pzQk5CRjJKalJZQkNBQ3RiUWdNCldRSnMvTVdZbDR2THRLSlhYbFlS T2h1YkVWbjRjTFdZSmVFWHpzSllCQWRlNWh0QlEzc212UjJ2NnVJegptejJpaXFsSkVVdmYwY2xM WS9QVExoSGVTbWE5VTRodzRaRDNZKzV6WWxINURza2l1N3lLZTdIVmpEVmkKd1FJN25acWRvanJs dDhCZENiOVNMaXRNaFRvR1crS2E1VCtUOWNmbWthMk1qa3pRSFBNTEJtdVJ6a2V2ClBkZFF6M0xB MjMzZDNHREVTZklCYy91OC9YelBUNkZTZ3MzSEh4OEFJbFdQbEJaYmh6WmpQNlRLclRNRQpOSEtK cmxTRlZKclErL25QU28ya0VSL0VDczF0aUJEY0JkamVPYWx6LzdRVWN0Rnp3NGdjS0RtMGpUeEkK cVhWVlV3a2tuRkM4NDZMTjNBT2p0UWRyOVV3czVsTzhkeXBGQUJFQkFBSEN3RjhFR0FFSUFBa0ZB bDJKCmpSWUNHd3dBQ2drUUw5ODFmRXZEVEZXS2VBZ0FxRXN1QXJMZFprYXBvZDI3K2hpcHZZNUcr eVRLQW1NMApIVlhmQzJiMVdtNXQwQXhOVXVkMlJ1OTE1MHA3V09CRXpXYkxnNXdzOTc1M296dlZi cFpIQU9uVGZOeXoKUUR5QWhmZ1hNQjIvdzRERXEwT2tlQVBRNXhsQWtISDZpUW1hSkZiYy9FRjRX ZWZWeE92MnNRNDlRNks5Ci9Bb1FROG54RVh1RzRidXVrclEwTGVlTVAzNEdMWUhYK2JvWENHQmxI MGhiZm5kc3VQbEdqYnBnWVErdQplclJGTlB4N1JtSWtnQjJ0WmhwZkZ3VGtid1c2TVFmWDM5Z3F1 SitwVEVKUnA5UmpJVjFZU2txSjZJUkgKQkc4eFBocGgzT3huaWJyWkdlbGdtakpNM2QwM1k5OSs3 OXBvdTRlY09BeWYyTHMrMVVTY2NDTzA2YnI4CldlcjJ3cmI0WXc9PQo9aHJheAotLS0tLUVORCBQ R1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCg== -----------------------8525f08be665010e036baebeffdc1e02-- --------8e196801bc72ca777b8f9c08824fed41dce6c69fbe320e511778a84bb154cd23 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wsBzBAEBCAAnBYJkfe91CZAv3zV8S8NMVRYhBFNfRF3t6Z4/pmFJQy/fNXxL w0xVAADgzggAkfSR/U6NX6aljd/zE7gvyoJ6RxyVfMs6nWMRML0UutZOaXiX buEW6f0lJHkqf/qZXkIpUg9SW75kZSj++xykMJSfQKwXsumE5L4w2x3lsjdQ +mBAbW3IgqEHmQ8bgeD3VTMMAcd9VQVvLcG98hWL4sWvwGpyKH+SIegn2jz5 mdknzPH968+vBnpAOqp/TxTne+XTzs4Z/3o3ZlDxwCcwTgLw76FxwRDW3emx hZQJvvjw+cbQhs5xF5UwKJpuMLyR91EHtwpy8r/EnaEbnuqkkuyDQ6fL18ra e1DEv0KXpYq3SJKvBJli0lXgBY/RCCMafKDGv+R/35uVDhzextrUcQ== =ICjG -----END PGP SIGNATURE----- --------8e196801bc72ca777b8f9c08824fed41dce6c69fbe320e511778a84bb154cd23--