From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id oE2UMiMr42WzgQEA62LTzQ:P1 (envelope-from ) for ; Sat, 02 Mar 2024 14:35:32 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id oE2UMiMr42WzgQEA62LTzQ (envelope-from ) for ; Sat, 02 Mar 2024 14:35:31 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=WxDeAIVz; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1709386531; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=6xyhefA+ZdI8sWymhCe5pzzm/WQ7P/rgKrlKMBM2N5k=; b=oxY8IPkgo9x/QFH6WXDa0mySfypyVBPpPefYFrtkjp5kOkN18BogsCnetraSMcR7WMBtTJ t2T71ayknCEcxr/MTPNDglqVuRFlKK0Y067qIcxS4htYrwjve5aHSuL/obhIomWNfVwxAT +1SfxyhnG0K1PYbxNHX3hxchjez4WMdU17XEZLXo6un5jff6GoeZntYv3LkeNYPBMfVr5i vUuJrzovMkRYbt2rnuAFhJ99MGOq25ymNABHIkFaj56vn7RTHcmKzfPZ30WN3cTkMoiAzg csDEN02CPKToPNIacAY2/PjWD5xrcXyh1nPpmKM02icKqpKFr3phDla6z/44JA== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b=WxDeAIVz; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=pass ("zohomail.com:s=zohoarc:i=1") ARC-Seal: i=2; s=key1; d=yhetil.org; t=1709386531; a=rsa-sha256; cv=pass; b=TO/YDnGDI91SDOwnA96NMsOh6xAZy6Crn2YqHwDyGwJ1vzxaqRdMBhkssH7rWqx49cr1sq NtwYf2HKzeTryuYmA/qZHbTBKOPoIbU7N0rVLoM4ntGmVZyydgzUKAl564TcgOYldQA1Q5 CBR4EC+WgK6jjYupxK03jQ0W1t9jtzZ928srbCPoI5/FQs1cqrJcpJuQhmktnGR4tnFxww lbQup/ssImqP6eZLomUGEWL+0iTTwXmtLRYXNpkfmrEV36p1Y1L0RB0Q+UbwRCQTilxaCQ UK/52e3QupbLXsnIl4w7YFtd1vvc1DaF15ce0ZV6aKe2grkYyOw7EbkBc00A4Q== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 60E3364AA1 for ; Sat, 2 Mar 2024 14:35:30 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rgPW0-00080G-F1; Sat, 02 Mar 2024 08:35:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rgPVg-0007zV-Ji for guix-devel@gnu.org; Sat, 02 Mar 2024 08:34:42 -0500 Received: from sender4-pp-f112.zoho.com ([136.143.188.112]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rgPVe-00074Z-9T for guix-devel@gnu.org; Sat, 02 Mar 2024 08:34:40 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1709386466; cv=none; d=zohomail.com; s=zohoarc; b=TdZnKWGWV7fGRaj81uypehpaG6om5oQ2TKqTBI1N0/MHLKYG9gpBbvtn/EnQIyG3e3kT+H6Zu2lGEJSRKRyA52PmlpKk3ep+g44BybhrTad/2RZ3FExuRW44IujhPrIv5e7s6mOPbeciIIxG9j2/ge0oiYIGipqK/SVlOXPMq+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709386466; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=6xyhefA+ZdI8sWymhCe5pzzm/WQ7P/rgKrlKMBM2N5k=; b=h8Q2JF1yhQk5vspDiQkqpGZX987ZcXDY4E0bnLFpW/aJmUXGS4PfEYYKXY1wDgy1MK8fDOyNMLENPNcWF+6Pm8Ytf205HXWyOCIBKeW5B+OsX0jICS+Z+WKuGPy/6ej99fPSH/t+QGLGBgjDJw+P0ocp6yxuMPL0+FvW8gu/nZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=excalamus.com; spf=pass smtp.mailfrom=matt@excalamus.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1709386466; s=zmail; d=excalamus.com; i=matt@excalamus.com; h=Date:Date:From:From:To:To:Cc:Cc:Message-Id:Message-Id:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Reply-To; bh=6xyhefA+ZdI8sWymhCe5pzzm/WQ7P/rgKrlKMBM2N5k=; b=WxDeAIVzLB2yTOG7W7ib0du6FzuB3uIWJ74xzLxEesaG8qwtf7czJVvTKUAKgR8g 8NzeBXoX/J7vZkkTBqr0/adKtoGYhtPQI0sKLh1lRX9R0F0UuGvEPQKH1eDSrA4KgYx 9YNlx9pNvOZQkRsySgV8NRkku1dXEdK4S8e//VHI= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1709386463969185.55238248797593; Sat, 2 Mar 2024 05:34:23 -0800 (PST) Date: Sat, 02 Mar 2024 14:34:23 +0100 From: Matt To: "Matt" Cc: "Maxim Cournoyer" , "Christian Miller" , "guix-devel" , "Josselin Poiret" Message-Id: <18dff5f7ac0.12981499e295073.4475195706110749663@excalamus.com> In-Reply-To: <18dd741c397.eb3e3c20130225.478777462592413812@excalamus.com> References: <87a5p8yn4p.fsf@dadoes.de> <18d0e410102.e16898001715108.8020629039859398477@excalamus.com> <878r4ml93e.fsf@gmail.com> <18d23870de2.119d4f41c239950.5543896370981537109@excalamus.com> <18d48373140.10c55a4722276191.1969374822318990762@excalamus.com> <87r0h5ray4.fsf@gmail.com> <18dccf417d0.ca418748214075.562011919630800442@excalamus.com> <87y1bboq2i.fsf@gmail.com> <18dd741c397.eb3e3c20130225.478777462592413812@excalamus.com> Subject: Re: Feedback of the GNU Guix manual MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_949873_48881491.1709386463936" Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/209.380.67 Received-SPF: pass client-ip=136.143.188.112; envelope-from=matt@excalamus.com; helo=sender4-pp-f112.zoho.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: mx12.migadu.com X-Migadu-Spam-Score: -7.08 X-Spam-Score: -7.08 X-Migadu-Queue-Id: 60E3364AA1 X-TUID: ZPcY7I8/GCeP ------=_Part_949873_48881491.1709386463936 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit We're working through a list of feedback one item at a time: https://lists.gnu.org/archive/html/guix-devel/2024-01/msg00117.html We have completed an item and are ready to work on the next one: #+begin_quote ,** Binary Installation L88 and L95 ~root is weird. Should be root or simply ~ for the user profile which would be root as root user. #+end_quote I agree. I found it weird at first, too. Two thoughts: 1. The use of "~root" is intentional 2. Section 2.1 Binary Install can be refactored to remove the reported confusion as well as the tarpit of shell related details *1. The use of "~root" is intentional* According to the Bash info and man pages, "~root" is a TILDE-PREFIX with "root" as the LOGIN NAME. The TILDE-PREFIX is replaced with the home directory associated with the specified LOGIN NAME. Using "~root" solves the problem of operations happening in the wrong location. It ensures that commands reference the 'root' user's home directory. - (original issue) https://lists.gnu.org/archive/html/guix-devel/2015-06/msg00085.html - (separate issue) https://bugs.gnu.org/30728 *2. Section 2.1 Binary Install needs refactoring* The Binary Installation section tries to solve the problem of guiding readers to install Guix as quickly and painlessly as possible. This began as a step-by-step process which was later automated by 'guix-install.sh'. Over 6 years, 12 people have worked to make 'guix-install.sh' robust. Because of these efforts, Section 2.1 Binary Installation has effectively become high level documentation for how 'guix-install.sh' works. Like any code comment tends to drift out of sync with the source code, the current presentation of binary installations has become inconsistent and redundant. Using 'guix-install.sh' is the recommended method for binary installation. It's the first thing mentioned by Section 2 Installation and one of the first things mentioned by Section 2.1 Binary Installation. It's inconsistent to say, "This is how to do it" and then proceed to explain how to *not* use the recommended method. Key information, like the recommended installation method and the definition of "foreign distro", are improperly hidden inside notes. Note blocks act as comments which, by definition, are secondary to the main point. The main point is to use 'guix-install.sh' on foreign distros which don't provide their own packages for Guix. The attached diff addresses these issues. It fixes the root issue (pun intended) of whether or not to expect readers to understand '~root', as well as unmentioned issues also related to shell-specific knowledge like, "What does it mean to 'source'?" Readers interested in those details may read the code for 'guix-install.sh'. The diff does the following: - Clarifies at the top level that installing on a foreign distro has two methods: using packaged binaries and building from source - Places the overwrite warning at the top level node and binary installation level node - Moves the definition of "foreign distro" out of quotation - Moves the foreign distro installation instructions out of quotation - Summarizes the steps 'guix-install.sh' follows rather than trying to detail them - Splits the requirements between system requirements for binary installations, GNU/Linux or GNU/Hurd, and requirements for running 'guix-install.sh', tar, wget, Xz - Removes redundant instructions to use 'guix-install.sh' - Places directions for 'guix-install.sh' after directions to use distribution-specific package managers, giving preference to those simpler install processes over the more manual 'guix-install.sh' process ------=_Part_949873_48881491.1709386463936 Content-Type: application/octet-stream; name=v01-refactor-binary-installation-section.diff Content-Transfer-Encoding: base64 X-ZM_AttachId: 139286792639360120 Content-Disposition: attachment; filename=v01-refactor-binary-installation-section.diff ZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4IGY2NDc2ZTBk ODEuLjYzMjJjYzZmZTkgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIvZG9jL2d1aXgu dGV4aQpAQCAtNjkwLDIwICs2OTAsMjUgQEAgdG8gam9pbiEgIEB4cmVme0NvbnRyaWJ1dGluZ30s IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgeW91IGNhbiBoZWxwLgogQGNoYXB0ZXIgSW5zdGFs bGF0aW9uCiAKIEBjaW5kZXggaW5zdGFsbGluZyBHdWl4CitAY2luZGV4IGZvcmVpZ24gZGlzdHJv CitAY2luZGV4IEd1aXggU3lzdGVtCitZb3UgY2FuIGluc3RhbGwgdGhlIEd1aXggcGFja2FnZSBt YW5hZ2VtZW50IHRvb2wgb24gdG9wIG9mIGFuIGV4aXN0aW5nCitHTlUvTGludXggb3IgR05VL0h1 cmQgc3lzdGVtLCByZWZlcnJlZCB0byBhcyBhIEBkZm57Zm9yZWlnbiBkaXN0cm99LCBvcgorYXMg YSBzdGFuZGFsb25lIG9wZXJhdGluZyBzeXN0ZW0gZGlzdHJpYnV0aW9uLCB0aGUKK0BkZm57R3Vp eEB0aWV7fVN5c3RlbX0uICBUaGlzIHNlY3Rpb24gaXMgY29uY2VybmVkIHdpdGggdGhlIGluc3Rh bGxhdGlvbgorb2YgR3VpeCBvbiBhIGZvcmVpZ24gZGlzdHJvLiAgSWYsIGluc3RlYWQsIHlvdSB3 YW50IHRvIGluc3RhbGwgdGhlCitjb21wbGV0ZSBHTlUgb3BlcmF0aW5nIHN5c3RlbSwgQHB4cmVm e1N5c3RlbSBJbnN0YWxsYXRpb259LgogCi1AcXVvdGF0aW9uIE5vdGUKLVdlIHJlY29tbWVuZCB0 aGUgdXNlIG9mIHRoaXMKLUB1cmVme2h0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC9n dWl4LmdpdC9wbGFpbi9ldGMvZ3VpeC1pbnN0YWxsLnNoLAotc2hlbGwgaW5zdGFsbGVyIHNjcmlw dH0gdG8gaW5zdGFsbCBHdWl4IG9uIHRvcCBvZiBhIHJ1bm5pbmcgR05VL0xpbnV4IHN5c3RlbSwK LXRoZXJlYWZ0ZXIgY2FsbGVkIGEgQGRmbntmb3JlaWduIGRpc3Ryb30uQGZvb3Rub3Rle1RoaXMg c2VjdGlvbiBpcyBjb25jZXJuZWQKLXdpdGggdGhlIGluc3RhbGxhdGlvbiBvZiB0aGUgcGFja2Fn ZSBtYW5hZ2VyLCB3aGljaCBjYW4gYmUgZG9uZSBvbiB0b3Agb2YgYQotcnVubmluZyBHTlUvTGlu dXggc3lzdGVtLiAgSWYsIGluc3RlYWQsIHlvdSB3YW50IHRvIGluc3RhbGwgdGhlIGNvbXBsZXRl IEdOVQotb3BlcmF0aW5nIHN5c3RlbSwgQHB4cmVme1N5c3RlbSBJbnN0YWxsYXRpb259Ln0gVGhl IHNjcmlwdCBhdXRvbWF0ZXMgdGhlCi1kb3dubG9hZCwgaW5zdGFsbGF0aW9uLCBhbmQgaW5pdGlh bCBjb25maWd1cmF0aW9uIG9mIEd1aXguICBJdCBzaG91bGQgYmUgcnVuCi1hcyB0aGUgcm9vdCB1 c2VyLgorQHF1b3RhdGlvbiBJbXBvcnRhbnQKK1RoaXMgc2VjdGlvbiBvbmx5IGFwcGxpZXMgdG8g c3lzdGVtcyB3aXRob3V0IEd1aXguICBGb2xsb3dpbmcgaXQgZm9yCitleGlzdGluZyBHdWl4IGlu c3RhbGxhdGlvbnMgd2lsbCBvdmVyd3JpdGUgaW1wb3J0YW50IHN5c3RlbSBmaWxlcy4KIEBlbmQg cXVvdGF0aW9uCiAKLUBjaW5kZXggZm9yZWlnbiBkaXN0cm8KK1RoZSBmb2xsb3dpbmcgc2VjdGlv bnMgZGVzY3JpYmUgdHdvIG1ldGhvZHMgb2YgaW5zdGFsbGF0aW9uLCBiaW5hcnkKK2luc3RhbGxh dGlvbiBhbmQgYnVpbGRpbmcgZnJvbSBzb3VyY2UuICBUaGV5IGRlc2NyaWJlIHRoZSBzb2Z0d2Fy ZQorcmVxdWlyZW1lbnRzIG9mIEd1aXgsIGFzIHdlbGwgYXMgaG93IHRvIGluc3RhbGwgaXQgbWFu dWFsbHkgYW5kIGdldAorcmVhZHkgdG8gdXNlIGl0LgorCiBAY2luZGV4IGRpcmVjdG9yaWVzIHJl bGF0ZWQgdG8gZm9yZWlnbiBkaXN0cm8KIFdoZW4gaW5zdGFsbGVkIG9uIGEgZm9yZWlnbiBkaXN0 cm8sIEdOVUB0aWV7fUd1aXggY29tcGxlbWVudHMgdGhlIGF2YWlsYWJsZQogdG9vbHMgd2l0aG91 dCBpbnRlcmZlcmVuY2UuICBJdHMgZGF0YSBsaXZlcyBleGNsdXNpdmVseSBpbiB0d28gZGlyZWN0 b3JpZXMsCkBAIC03MTMsMTEgKzcxOCw2IEBAIHN1Y2ggYXMgQGZpbGV7L2V0Y30sIGFyZSBsZWZ0 IHVudG91Y2hlZC4KIE9uY2UgaW5zdGFsbGVkLCBHdWl4IGNhbiBiZSB1cGRhdGVkIGJ5IHJ1bm5p bmcgQGNvbW1hbmR7Z3VpeCBwdWxsfQogKEBweHJlZntJbnZva2luZyBndWl4IHB1bGx9KS4KIAot SWYgeW91IHByZWZlciB0byBwZXJmb3JtIHRoZSBpbnN0YWxsYXRpb24gc3RlcHMgbWFudWFsbHkg b3Igd2FudCB0byB0d2VhawotdGhlbSwgeW91IG1heSBmaW5kIHRoZSBmb2xsb3dpbmcgc3Vic2Vj dGlvbnMgdXNlZnVsLiAgVGhleSBkZXNjcmliZSB0aGUKLXNvZnR3YXJlIHJlcXVpcmVtZW50cyBv ZiBHdWl4LCBhcyB3ZWxsIGFzIGhvdyB0byBpbnN0YWxsIGl0IG1hbnVhbGx5IGFuZCBnZXQKLXJl YWR5IHRvIHVzZSBpdC4KLQogQG1lbnUKICogQmluYXJ5IEluc3RhbGxhdGlvbjo6ICAgICAgICAg R2V0dGluZyBHdWl4IHJ1bm5pbmcgaW4gbm8gdGltZSEKICogUmVxdWlyZW1lbnRzOjogICAgICAg ICAgICAgICAgU29mdHdhcmUgbmVlZGVkIHRvIGJ1aWxkIGFuZCBydW4gR3VpeC4KQEAgLTczNiwy NTQgKzczNiw1NyBAQCByZWFkeSB0byB1c2UgaXQuCiBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhv dyB0byBpbnN0YWxsIEd1aXggZnJvbSBhIHNlbGYtY29udGFpbmVkIHRhcmJhbGwKIHByb3ZpZGlu ZyBiaW5hcmllcyBmb3IgR3VpeCBhbmQgZm9yIGFsbCBpdHMgZGVwZW5kZW5jaWVzLiAgVGhpcyBp cyBvZnRlbgogcXVpY2tlciB0aGFuIGluc3RhbGxpbmcgZnJvbSBzb3VyY2UsIHdoaWNoIGlzIGRl c2NyaWJlZCBpbiB0aGUgbmV4dAotc2VjdGlvbnMuICBCaW5hcnkgaW5zdGFsbGF0aW9uIHJlcXVp cmVzIGEgc3lzdGVtIHVzaW5nIGEgSHVyZCBvciBMaW51eAota2VybmVsOyB0aGUgR05VQHRpZXt9 dGFyIGFuZCBYeiBjb21tYW5kcyBtdXN0IGFsc28gYmUgYXZhaWxhYmxlLgorc2VjdGlvbnMuCiAK IEBxdW90YXRpb24gSW1wb3J0YW50CiBUaGlzIHNlY3Rpb24gb25seSBhcHBsaWVzIHRvIHN5c3Rl bXMgd2l0aG91dCBHdWl4LiAgRm9sbG93aW5nIGl0IGZvcgogZXhpc3RpbmcgR3VpeCBpbnN0YWxs YXRpb25zIHdpbGwgb3ZlcndyaXRlIGltcG9ydGFudCBzeXN0ZW0gZmlsZXMuCitAZW5kIHF1b3Rh dGlvbgogCi1AYyBOb3RlIGR1cGxpY2F0ZWQgZnJvbSB0aGUgYGBJbnN0YWxsYXRpb24nJyBub2Rl LgotV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2YgdGhpcwotQHVyZWZ7aHR0cHM6Ly9naXQuc2F2YW5u YWguZ251Lm9yZy9jZ2l0L2d1aXguZ2l0L3BsYWluL2V0Yy9ndWl4LWluc3RhbGwuc2gsCi1zaGVs bCBpbnN0YWxsZXIgc2NyaXB0fS4gIFRoZSBzY3JpcHQgYXV0b21hdGVzIHRoZSBkb3dubG9hZCwg aW5zdGFsbGF0aW9uLCBhbmQKLWluaXRpYWwgY29uZmlndXJhdGlvbiBzdGVwcyBkZXNjcmliZWQg YmVsb3cuICBJdCBzaG91bGQgYmUgcnVuIGFzIHRoZSByb290Ci11c2VyLiAgQXMgcm9vdCwgeW91 IGNhbiB0aHVzIHJ1biB0aGlzOgotCi1AZXhhbXBsZQotY2QgL3RtcAotd2dldCBodHRwczovL2dp dC5zYXZhbm5haC5nbnUub3JnL2NnaXQvZ3VpeC5naXQvcGxhaW4vZXRjL2d1aXgtaW5zdGFsbC5z aAotY2htb2QgK3ggZ3VpeC1pbnN0YWxsLnNoCi0uL2d1aXgtaW5zdGFsbC5zaAotQGVuZCBleGFt cGxlCitTb21lIGRpc3RyaWJ1dGlvbnMsIHN1Y2ggYXMgRGViaWFuLCBVYnVudHUsIGFuZCBvcGVu U1VTRSwgcHJvdmlkZSBHdWl4Cit0aHJvdWdoIHRoZWlyIG93biBwYWNrYWdlIG1hbmFnZXJzLiAg VGhlIHZlcnNpb24gb2YgR3VpeCBtYXkgYmUgb2xkZXIKK3RoYW4gQHZhbHVle1ZFUlNJT059IGJ1 dCB5b3UgY2FuIHVwZGF0ZSBpdCBhZnRlcndhcmRzIGJ5IHJ1bm5pbmcKK0BzYW1we2d1aXggcHVs bH0pLgogCi1JZiB5b3UncmUgcnVubmluZyBEZWJpYW4gb3IgYSBkZXJpdmF0aXZlIHN1Y2ggYXMg VWJ1bnR1LCB5b3UgY2FuIGluc3RlYWQKLWluc3RhbGwgdGhlIHBhY2thZ2UgKGl0IG1pZ2h0IGJl IGEgdmVyc2lvbiBvbGRlciB0aGFuIEB2YWx1ZXtWRVJTSU9OfQotYnV0IHlvdSBjYW4gdXBkYXRl IGl0IGFmdGVyd2FyZHMgYnkgcnVubmluZyBAc2FtcHtndWl4IHB1bGx9KToKK0ZvciBEZWJpYW4g YW5kIFVidW50dS1iYXNlZCBzeXN0ZW1zIGNhbGw6CiAKIEBleGFtcGxlCiBzdWRvIGFwdCBpbnN0 YWxsIGd1aXgKIEBlbmQgZXhhbXBsZQogCi1MaWtld2lzZSBvbiBvcGVuU1VTRToKK0xpa2V3aXNl IG9uIG9wZW5TVVNFIHJ1bjoKIAogQGV4YW1wbGUKIHN1ZG8genlwcGVyIGluc3RhbGwgZ3VpeAog QGVuZCBleGFtcGxlCiAKLVdoZW4geW91J3JlIGRvbmUsIEBweHJlZntBcHBsaWNhdGlvbiBTZXR1 cH0gZm9yIGV4dHJhIGNvbmZpZ3VyYXRpb24geW91Ci1taWdodCBuZWVkLCBhbmQgQHJlZntHZXR0 aW5nIFN0YXJ0ZWR9IGZvciB5b3VyIGZpcnN0IHN0ZXBzIQotQGVuZCBxdW90YXRpb24KLQotSW5z dGFsbGluZyBnb2VzIGFsb25nIHRoZXNlIGxpbmVzOgotCi1AZW51bWVyYXRlCi1AaXRlbQotQGNp bmRleCBkb3dubG9hZGluZyBHdWl4IGJpbmFyeQotRG93bmxvYWQgdGhlIGJpbmFyeSB0YXJiYWxs IGZyb20KLUBpbmRpY2F0ZXVybHtAdmFsdWV7QkFTRS1VUkx9L2d1aXgtYmluYXJ5LUB2YWx1ZXtW RVJTSU9OfS54ODZfNjQtbGludXgudGFyLnh6fSwKLXdoZXJlIEBjb2Rle3g4Nl82NC1saW51eH0g Y2FuIGJlIHJlcGxhY2VkIHdpdGggQGNvZGV7aTY4Ni1saW51eH0gZm9yIGFuCi1AY29kZXtpNjg2 fSAoMzItYml0cykgbWFjaGluZSBhbHJlYWR5IHJ1bm5pbmcgdGhlIGtlcm5lbCBMaW51eCwgYW5k IHNvIG9uCi0oQHB4cmVme0dOVSBEaXN0cmlidXRpb259KS4KLQotQGMgVGhlIGZvbGxvd2luZyBp cyBzb21ld2hhdCBkdXBsaWNhdGVkIGluIGBgU3lzdGVtIEluc3RhbGxhdGlvbicnLgotTWFrZSBz dXJlIHRvIGRvd25sb2FkIHRoZSBhc3NvY2lhdGVkIEBmaWxley5zaWd9IGZpbGUgYW5kIHRvIHZl cmlmeSB0aGUKLWF1dGhlbnRpY2l0eSBvZiB0aGUgdGFyYmFsbCBhZ2FpbnN0IGl0LCBhbG9uZyB0 aGVzZSBsaW5lczoKLQotQGV4YW1wbGUKLSQgd2dldCBAdmFsdWV7QkFTRS1VUkx9L2d1aXgtYmlu YXJ5LUB2YWx1ZXtWRVJTSU9OfS54ODZfNjQtbGludXgudGFyLnh6LnNpZwotJCBncGcgLS12ZXJp ZnkgZ3VpeC1iaW5hcnktQHZhbHVle1ZFUlNJT059Lng4Nl82NC1saW51eC50YXIueHouc2lnCi1A ZW5kIGV4YW1wbGUKK1RoZSBHdWl4IHByb2plY3QgYWxzbyBwcm92aWRlcyBhIHNoZWxsIHNjcmlw dCwgQGZpbGV7Z3VpeC1pbnN0YWxsLnNofSwKK3doaWNoIGF1dG9tYXRlcyB0aGUgYmluYXJ5IGlu c3RhbGxhdGlvbiBwcm9jZXNzIHdpdGhvdXQgdXNlIG9mIGEgZm9yZWlnbgorZGlzdHJvIHBhY2th Z2UKK21hbmFnZXJAZm9vdG5vdGV7QHVyZWZ7aHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9j Z2l0L2d1aXguZ2l0L3BsYWluL2V0Yy9ndWl4LWluc3RhbGwuc2h9fS4KK1VzZSBvZiBAZmlsZXtn dWl4LWluc3RhbGwuc2h9IHJlcXVpcmVzIEJhc2gsIEdOVUB0aWV7fXRhciwgd2dldCwgYW5kIFh6 LgogCi1JZiB0aGF0IGNvbW1hbmQgZmFpbHMgYmVjYXVzZSB5b3UgZG8gbm90IGhhdmUgdGhlIHJl cXVpcmVkIHB1YmxpYyBrZXksCi10aGVuIHJ1biB0aGlzIGNvbW1hbmQgdG8gaW1wb3J0IGl0Ogor VGhlIHNjcmlwdCBkb2VzIHRoZSBmb2xsb3dpbmc6CiAKLUBleGFtcGxlCi0kIHdnZXQgJ0B2YWx1 ZXtPUEVOUEdQLVNJR05JTkctS0VZLVVSTH0nIFwKLSAgICAgIC1xTyAtIHwgZ3BnIC0taW1wb3J0 IC0KLUBlbmQgZXhhbXBsZQotCi1Abm9pbmRlbnQKLWFuZCByZXJ1biB0aGUgQGNvZGV7Z3BnIC0t dmVyaWZ5fSBjb21tYW5kLgotCi1UYWtlIG5vdGUgdGhhdCBhIHdhcm5pbmcgbGlrZSBgYFRoaXMg a2V5IGlzIG5vdCBjZXJ0aWZpZWQgd2l0aCBhIHRydXN0ZWQKLXNpZ25hdHVyZSEnJyBpcyBub3Jt YWwuCi0KLUBjIGVuZCBhdXRoZW50aWNhdGlvbiBwYXJ0CitAaXRlbWl6ZQorQGl0ZW0gRG93bmxv YWRzIGFuZCBleHRyYWN0cyB0aGUgYmluYXJ5IHRhcmJhbGwKK0BpdGVtIFNldHMgdXAgdGhlIGJ1 aWxkIGRhZW1vbgorQGl0ZW0gTWFrZXMgdGhlIOKAmGd1aXjigJkgY29tbWFuZCBhdmFpbGFibGUg dG8gbm9uLXJvb3QgdXNlcnMKK0BpdGVtIENvbmZpZ3VyZXMgc3Vic3RpdHV0ZSBzZXJ2ZXJzCitA ZW5kIGl0ZW1pemUKIAotQGl0ZW0KLU5vdywgeW91IG5lZWQgdG8gYmVjb21lIHRoZSBAY29kZXty b290fSB1c2VyLiAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uLAoteW91IG1heSBoYXZl IHRvIHJ1biBAY29kZXtzdSAtfSBvciBAY29kZXtzdWRvIC1pfS4gIEFzIEBjb2Rle3Jvb3R9LCBy dW46CitBcyByb290LCBydW46CiAKIEBleGFtcGxlCiAjIGNkIC90bXAKLSMgdGFyIC0td2Fybmlu Zz1uby10aW1lc3RhbXAgLXhmIFwKLSAgICAgL3BhdGgvdG8vZ3VpeC1iaW5hcnktQHZhbHVle1ZF UlNJT059Lng4Nl82NC1saW51eC50YXIueHoKLSMgbXYgdmFyL2d1aXggL3Zhci8gJiYgbXYgZ251 IC8KLUBlbmQgZXhhbXBsZQotCi1UaGlzIGNyZWF0ZXMgQGZpbGV7L2dudS9zdG9yZX0gKEBweHJl ZntUaGUgU3RvcmV9KSBhbmQgQGZpbGV7L3Zhci9ndWl4fS4KLVRoZSBsYXR0ZXIgY29udGFpbnMg YSByZWFkeS10by11c2UgcHJvZmlsZSBmb3IgQGNvZGV7cm9vdH0gKHNlZSBuZXh0Ci1zdGVwKS4K LQotRG8gQGVtcGh7bm90fSB1bnBhY2sgdGhlIHRhcmJhbGwgb24gYSB3b3JraW5nIEd1aXggc3lz dGVtIHNpbmNlIHRoYXQKLXdvdWxkIG92ZXJ3cml0ZSBpdHMgb3duIGVzc2VudGlhbCBmaWxlcy4K LQotVGhlIEBvcHRpb257LS13YXJuaW5nPW5vLXRpbWVzdGFtcH0gb3B0aW9uIG1ha2VzIHN1cmUg R05VQHRpZXt9dGFyIGRvZXMKLW5vdCBlbWl0IHdhcm5pbmdzIGFib3V0IGBgaW1wbGF1c2libHkg b2xkIHRpbWUgc3RhbXBzJycgKHN1Y2gKLXdhcm5pbmdzIHdlcmUgdHJpZ2dlcmVkIGJ5IEdOVUB0 aWV7fXRhciAxLjI2IGFuZCBvbGRlcjsgcmVjZW50Ci12ZXJzaW9ucyBhcmUgZmluZSkuCi1UaGV5 IHN0ZW0gZnJvbSB0aGUgZmFjdCB0aGF0IGFsbCB0aGUKLWZpbGVzIGluIHRoZSBhcmNoaXZlIGhh dmUgdGhlaXIgbW9kaWZpY2F0aW9uIHRpbWUgc2V0IHRvIDEgKHdoaWNoCi1tZWFucyBKYW51YXJ5 IDFzdCwgMTk3MCkuICBUaGlzIGlzIGRvbmUgb24gcHVycG9zZSB0byBtYWtlIHN1cmUgdGhlCi1h cmNoaXZlIGNvbnRlbnQgaXMgaW5kZXBlbmRlbnQgb2YgaXRzIGNyZWF0aW9uIHRpbWUsIHRodXMg bWFraW5nIGl0Ci1yZXByb2R1Y2libGUuCi0KLUBpdGVtCi1NYWtlIHRoZSBwcm9maWxlIGF2YWls YWJsZSB1bmRlciBAZmlsZXt+cm9vdC8uY29uZmlnL2d1aXgvY3VycmVudH0sIHdoaWNoIGlzCi13 aGVyZSBAY29tbWFuZHtndWl4IHB1bGx9IHdpbGwgaW5zdGFsbCB1cGRhdGVzIChAcHhyZWZ7SW52 b2tpbmcgZ3VpeCBwdWxsfSk6Ci0KLUBleGFtcGxlCi0jIG1rZGlyIC1wIH5yb290Ly5jb25maWcv Z3VpeAotIyBsbiAtc2YgL3Zhci9ndWl4L3Byb2ZpbGVzL3Blci11c2VyL3Jvb3QvY3VycmVudC1n dWl4IFwKLSAgICAgICAgIH5yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50Ci1AZW5kIGV4YW1wbGUK LQotU291cmNlIEBmaWxle2V0Yy9wcm9maWxlfSB0byBhdWdtZW50IEBlbnZ7UEFUSH0gYW5kIG90 aGVyIHJlbGV2YW50Ci1lbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0KLUBleGFtcGxlCi0jIEdVSVhf UFJPRklMRT0iYGVjaG8gfnJvb3RgLy5jb25maWcvZ3VpeC9jdXJyZW50IiA7IFwKLSAgc291cmNl ICRHVUlYX1BST0ZJTEUvZXRjL3Byb2ZpbGUKLUBlbmQgZXhhbXBsZQotCi1AaXRlbQotQ3JlYXRl IHRoZSBncm91cCBhbmQgdXNlciBhY2NvdW50cyBmb3IgYnVpbGQgdXNlcnMgYXMgZXhwbGFpbmVk IGJlbG93Ci0oQHB4cmVme0J1aWxkIEVudmlyb25tZW50IFNldHVwfSkuCi0KLUBpdGVtCi1SdW4g dGhlIGRhZW1vbiwgYW5kIHNldCBpdCB0byBhdXRvbWF0aWNhbGx5IHN0YXJ0IG9uIGJvb3QuCi0K LUlmIHlvdXIgaG9zdCBkaXN0cm8gdXNlcyB0aGUgc3lzdGVtZCBpbml0IHN5c3RlbSwgdGhpcyBj YW4gYmUgYWNoaWV2ZWQKLXdpdGggdGhlc2UgY29tbWFuZHM6Ci0KLUBjIFZlcnNpb25zIG9mIHN5 c3RlbWQgdGhhdCBzdXBwb3J0ZWQgc3ltbGlua2VkIHNlcnZpY2UgZmlsZXMgYXJlIG5vdAotQGMg eWV0IHdpZGVseSBkZXBsb3llZCwgc28gd2Ugc2hvdWxkIHN1Z2dlc3QgdGhhdCB1c2VycyBjb3B5 IHRoZSBzZXJ2aWNlCi1AYyBmaWxlcyBpbnRvIHBsYWNlLgotQGMKLUBjIFNlZSB0aGlzIHRocmVh ZCBmb3IgbW9yZSBpbmZvcm1hdGlvbjoKLUBjIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZl L2h0bWwvZ3VpeC1kZXZlbC8yMDE3LTAxL21zZzAxMTk5Lmh0bWwKLQotQGV4YW1wbGUKLSMgY3Ag fnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJlbnQvbGliL3N5c3RlbWQvc3lzdGVtL2dudS1zdG9yZS5t b3VudCBcCi0gICAgIH5yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50L2xpYi9zeXN0ZW1kL3N5c3Rl bS9ndWl4LWRhZW1vbi5zZXJ2aWNlIFwKLSAgICAgL2V0Yy9zeXN0ZW1kL3N5c3RlbS8KLSMgc3lz dGVtY3RsIGVuYWJsZSAtLW5vdyBnbnUtc3RvcmUubW91bnQgZ3VpeC1kYWVtb24KLUBlbmQgZXhh bXBsZQotCi1Zb3UgbWF5IGFsc28gd2FudCB0byBhcnJhbmdlIGZvciBAY29tbWFuZHtndWl4IGdj fSB0byBydW4gcGVyaW9kaWNhbGx5OgotCi1AZXhhbXBsZQotIyBjcCB+cm9vdC8uY29uZmlnL2d1 aXgvY3VycmVudC9saWIvc3lzdGVtZC9zeXN0ZW0vZ3VpeC1nYy5zZXJ2aWNlIFwKLSAgICAgfnJv b3QvLmNvbmZpZy9ndWl4L2N1cnJlbnQvbGliL3N5c3RlbWQvc3lzdGVtL2d1aXgtZ2MudGltZXIg XAotICAgICAvZXRjL3N5c3RlbWQvc3lzdGVtLwotIyBzeXN0ZW1jdGwgZW5hYmxlIC0tbm93IGd1 aXgtZ2MudGltZXIKLUBlbmQgZXhhbXBsZQotCi1Zb3UgbWF5IHdhbnQgdG8gZWRpdCBAZmlsZXtn dWl4LWdjLnNlcnZpY2V9IHRvIGFkanVzdCB0aGUgY29tbWFuZCBsaW5lCi1vcHRpb25zIHRvIGZp dCB5b3VyIG5lZWRzIChAcHhyZWZ7SW52b2tpbmcgZ3VpeCBnY30pLgotCi1JZiB5b3VyIGhvc3Qg ZGlzdHJvIHVzZXMgdGhlIFVwc3RhcnQgaW5pdCBzeXN0ZW06Ci0KLUBleGFtcGxlCi0jIGluaXRj dGwgcmVsb2FkLWNvbmZpZ3VyYXRpb24KLSMgY3AgfnJvb3QvLmNvbmZpZy9ndWl4L2N1cnJlbnQv bGliL3Vwc3RhcnQvc3lzdGVtL2d1aXgtZGFlbW9uLmNvbmYgXAotICAgICAvZXRjL2luaXQvCi0j IHN0YXJ0IGd1aXgtZGFlbW9uCi1AZW5kIGV4YW1wbGUKLQotT3RoZXJ3aXNlLCB5b3UgY2FuIHN0 aWxsIHN0YXJ0IHRoZSBkYWVtb24gbWFudWFsbHkgd2l0aDoKLQotQGV4YW1wbGUKLSMgfnJvb3Qv LmNvbmZpZy9ndWl4L2N1cnJlbnQvYmluL2d1aXgtZGFlbW9uIFwKLSAgICAgICAtLWJ1aWxkLXVz ZXJzLWdyb3VwPWd1aXhidWlsZAotQGVuZCBleGFtcGxlCi0KLUBpdGVtCi1NYWtlIHRoZSBAY29t bWFuZHtndWl4fSBjb21tYW5kIGF2YWlsYWJsZSB0byBvdGhlciB1c2VycyBvbiB0aGUgbWFjaGlu ZSwKLWZvciBpbnN0YW5jZSB3aXRoOgotCi1AZXhhbXBsZQotIyBta2RpciAtcCAvdXNyL2xvY2Fs L2JpbgotIyBjZCAvdXNyL2xvY2FsL2JpbgotIyBsbiAtcyAvdmFyL2d1aXgvcHJvZmlsZXMvcGVy LXVzZXIvcm9vdC9jdXJyZW50LWd1aXgvYmluL2d1aXgKLUBlbmQgZXhhbXBsZQotCi1JdCBpcyBh bHNvIGEgZ29vZCBpZGVhIHRvIG1ha2UgdGhlIEluZm8gdmVyc2lvbiBvZiB0aGlzIG1hbnVhbCBh dmFpbGFibGUKLXRoZXJlOgotCi1AZXhhbXBsZQotIyBta2RpciAtcCAvdXNyL2xvY2FsL3NoYXJl L2luZm8KLSMgY2QgL3Vzci9sb2NhbC9zaGFyZS9pbmZvCi0jIGZvciBpIGluIC92YXIvZ3VpeC9w cm9maWxlcy9wZXItdXNlci9yb290L2N1cnJlbnQtZ3VpeC9zaGFyZS9pbmZvLyogOwotICBkbyBs biAtcyAkaSA7IGRvbmUKLUBlbmQgZXhhbXBsZQotCi1UaGF0IHdheSwgYXNzdW1pbmcgQGZpbGV7 L3Vzci9sb2NhbC9zaGFyZS9pbmZvfSBpcyBpbiB0aGUgc2VhcmNoIHBhdGgsCi1ydW5uaW5nIEBj b21tYW5ke2luZm8gZ3VpeH0gd2lsbCBvcGVuIHRoaXMgbWFudWFsIChAcHhyZWZ7T3RoZXIgSW5m bwotRGlyZWN0b3JpZXMsLCwgdGV4aW5mbywgR05VIFRleGluZm99LCBmb3IgbW9yZSBkZXRhaWxz IG9uIGNoYW5naW5nIHRoZQotSW5mbyBzZWFyY2ggcGF0aCkuCi0KLUBpdGVtCi1AY2luZGV4IHN1 YnN0aXR1dGVzLCBhdXRob3JpemF0aW9uIHRoZXJlb2YKLVRvIHVzZSBzdWJzdGl0dXRlcyBmcm9t IEBjb2Rle0B2YWx1ZXtTVUJTVElUVVRFLVNFUlZFUi0xfX0sCi1AY29kZXtAdmFsdWV7U1VCU1RJ VFVURS1TRVJWRVItMn19IG9yIGEgbWlycm9yIChAcHhyZWZ7U3Vic3RpdHV0ZXN9KSwKLWF1dGhv cml6ZSB0aGVtOgotCi1AZXhhbXBsZQotIyBndWl4IGFyY2hpdmUgLS1hdXRob3JpemUgPCBcCi0g ICAgIH5yb290Ly5jb25maWcvZ3VpeC9jdXJyZW50L3NoYXJlL2d1aXgvQHZhbHVle1NVQlNUSVRV VEUtU0VSVkVSLTF9LnB1YgotIyBndWl4IGFyY2hpdmUgLS1hdXRob3JpemUgPCBcCi0gICAgIH5y b290Ly5jb25maWcvZ3VpeC9jdXJyZW50L3NoYXJlL2d1aXgvQHZhbHVle1NVQlNUSVRVVEUtU0VS VkVSLTJ9LnB1YgotQGVuZCBleGFtcGxlCi0KLUBxdW90YXRpb24gTm90ZQotSWYgeW91IGRvIG5v dCBlbmFibGUgc3Vic3RpdHV0ZXMsIEd1aXggd2lsbCBlbmQgdXAgYnVpbGRpbmcKLUBlbXBoe2V2 ZXJ5dGhpbmd9IGZyb20gc291cmNlIG9uIHlvdXIgbWFjaGluZSwgbWFraW5nIGVhY2ggaW5zdGFs bGF0aW9uCi1hbmQgdXBncmFkZSB2ZXJ5IGV4cGVuc2l2ZS4gIEB4cmVme09uIFRydXN0aW5nIEJp bmFyaWVzfSwgZm9yIGEKLWRpc2N1c3Npb24gb2YgcmVhc29ucyB3aHkgb25lIG1pZ2h0IHdhbnQg ZG8gZGlzYWJsZSBzdWJzdGl0dXRlcy4KLUBlbmQgcXVvdGF0aW9uCi0KLUBpdGVtCi1FYWNoIHVz ZXIgbWF5IG5lZWQgdG8gcGVyZm9ybSBhIGZldyBhZGRpdGlvbmFsIHN0ZXBzIHRvIG1ha2UgdGhl aXIgR3VpeAotZW52aXJvbm1lbnQgcmVhZHkgZm9yIHVzZSwgQHB4cmVme0FwcGxpY2F0aW9uIFNl dHVwfS4KLUBlbmQgZW51bWVyYXRlCi0KLVZvaWzDoCwgdGhlIGluc3RhbGxhdGlvbiBpcyBjb21w bGV0ZSEKLQotWW91IGNhbiBjb25maXJtIHRoYXQgR3VpeCBpcyB3b3JraW5nIGJ5IGluc3RhbGxp bmcgYSBzYW1wbGUgcGFja2FnZSBpbnRvCi10aGUgcm9vdCBwcm9maWxlOgotCi1AZXhhbXBsZQot IyBndWl4IGluc3RhbGwgaGVsbG8KLUBlbmQgZXhhbXBsZQotCi1UaGUgYmluYXJ5IGluc3RhbGxh dGlvbiB0YXJiYWxsIGNhbiBiZSAocmUpcHJvZHVjZWQgYW5kIHZlcmlmaWVkIHNpbXBseQotYnkg cnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gdGhlIEd1aXggc291cmNlIHRyZWU6Ci0K LUBleGFtcGxlCi1tYWtlIGd1aXgtYmluYXJ5LkB2YXJ7c3lzdGVtfS50YXIueHoKLUBlbmQgZXhh bXBsZQotCi1Abm9pbmRlbnQKLS4uLkA6IHdoaWNoLCBpbiB0dXJuLCBydW5zOgotCi1AZXhhbXBs ZQotZ3VpeCBwYWNrIC1zIEB2YXJ7c3lzdGVtfSAtLWxvY2Fsc3RhdGVkaXIgXAotICAtLXByb2Zp bGUtbmFtZT1jdXJyZW50LWd1aXggZ3VpeAorIyB3Z2V0IGh0dHBzOi8vZ2l0LnNhdmFubmFoLmdu dS5vcmcvY2dpdC9ndWl4LmdpdC9wbGFpbi9ldGMvZ3VpeC1pbnN0YWxsLnNoCisjIGNobW9kICt4 IGd1aXgtaW5zdGFsbC5zaAorIyAuL2d1aXgtaW5zdGFsbC5zaAogQGVuZCBleGFtcGxlCiAKLUB4 cmVme0ludm9raW5nIGd1aXggcGFja30sIGZvciBtb3JlIGluZm8gb24gdGhpcyBoYW5keSB0b29s LgorV2hlbiB5b3UncmUgZG9uZSBpbnN0YWxsaW5nIEd1aXgsIEBweHJlZntBcHBsaWNhdGlvbiBT ZXR1cH0gZm9yIGV4dHJhCitjb25maWd1cmF0aW9uIHlvdSBtaWdodCBuZWVkLCBhbmQgQHJlZntH ZXR0aW5nIFN0YXJ0ZWR9IGZvciB5b3VyIGZpcnN0CitzdGVwcyEKIAogQG5vZGUgUmVxdWlyZW1l bnRzCiBAc2VjdGlvbiBSZXF1aXJlbWVudHMK ------=_Part_949873_48881491.1709386463936--