From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cx6M1-00038i-1R for mharc-grub-devel@gnu.org; Sun, 09 Apr 2017 02:29:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35390) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cx6Ly-00036z-J3 for grub-devel@gnu.org; Sun, 09 Apr 2017 02:29:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cx6Lt-00059L-Lu for grub-devel@gnu.org; Sun, 09 Apr 2017 02:29:36 -0400 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:33758) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cx6Lt-00059A-An; Sun, 09 Apr 2017 02:29:33 -0400 Received: by mail-lf0-x243.google.com with SMTP id r36so8968387lfi.0; Sat, 08 Apr 2017 23:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=6E3r63Rl0cBUv8MbabMqoV/muqHA0WAfs7ofdR02JJg=; b=nJKpfy26ehb7ttneKNGA1xT2MFxCAa0AboT3DIYAPEipUQBVbww4PK/bzYD4jFm4AU OYaeSviqJEhydyvtuyPqBiu+ht6jTUmpcCs6uxAtw0Aa72pdyzLyG6h22qQBI8Roy7rN bAr6d44qY1z60iBcffB5VC++Y5Nr9bEKHA/arN0eBlK5A4wzMoADImoFC+fzO4F83rpH C68a47Axp5xQ2skbXNqspEqtiEA4cfeGFP9oDrQ4Ggeiq4c1iAWGH9GKO+QoQlVI7ndd 1yeJKdMKOMJ35QUjUnOGA14tzT2TsRTMyaHA77aQ7Ksa3Nr9rVS4geUjqz6pEBsHjA99 89xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=6E3r63Rl0cBUv8MbabMqoV/muqHA0WAfs7ofdR02JJg=; b=c1+d8HOGNiXuaXy4Lb7vbVUrmRPJwB9L+mvb21Ez5Ybt+EUu5urFx2GQz3G6bv+v2h sDhwRQSHgvEGOM7HNQ4CXxjXW2JirLFWfEpRgS3md7FIALIBYC7ZEM7NOkFMwHAlv5Zm +/fgyir5XOx7WRJpamhBgr4Nzzo8fSMp5NqlxBtExkQmtuKtzfMDFMSRndwjwOY1hwhw 7rd32KPzBrbEPSFoHdNFRhKHVbX26ImevILjuAxBb9UBMxJZBhRQ/eJQUWmScthQu59B 9WoU+SrNm7bHLQJZEs5Mv1dXTlHsz1y6PJeM1B12wh/vEjphXCf8EGHYp4Wy1PTNZgjG 9Pzg== X-Gm-Message-State: AFeK/H3CR7xthow9T04j4bSwrpYaPe29BafAHIN5mt2/T6F+/M3faKEozNeIAOagWwXlbA== X-Received: by 10.25.149.74 with SMTP id x71mr16918095lfd.100.1491719371551; Sat, 08 Apr 2017 23:29:31 -0700 (PDT) Received: from [192.168.1.5] (ppp109-252-90-38.pppoe.spdop.ru. [109.252.90.38]) by smtp.gmail.com with ESMTPSA id y81sm210341lfg.45.2017.04.08.23.29.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 08 Apr 2017 23:29:30 -0700 (PDT) Subject: Re: Support for plain dm-crypt and detached LUKS header To: Mat628 , "grub@jelmail.com" , "help-grub@gnu.org" , The development of GNU GRUB References: <4gDHpwpSsh5XJ-vHQwcowPqEhqLjNLizrokGB4Tb3SlFV--IOCSIYmogammiHB3CmC1AL9Qa1GLO_05eZeTZoHEKBbyoDDUCk3ImfTGDy98=@protonmail.com> From: Andrei Borzenkov Message-ID: Date: Sun, 9 Apr 2017 09:29:29 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <4gDHpwpSsh5XJ-vHQwcowPqEhqLjNLizrokGB4Tb3SlFV--IOCSIYmogammiHB3CmC1AL9Qa1GLO_05eZeTZoHEKBbyoDDUCk3ImfTGDy98=@protonmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c07::243 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 06:29:40 -0000 VGhhbmsgeW91IGZvciB0aGUgcGF0Y2guIFVuZm9ydHVuYXRlbHkgaXQgZG9lcyBub3Qgc29s dmUgZnVuZGFtZW50YWwNCnByb2JsZW0gLSBncnViLWluc3RhbGwgaXMgZXhwZWN0ZWQgdG8g YXV0by1kZXRlY3QgZXZlcnl0aGluZyB0aGF0IGlzDQpyZXF1aXJlZCB0byBhY2Nlc3MgL2Jv b3QvZ3J1YiAoaXQgdmlvbGF0ZXMgaXQgbm93IGZvciBlbmNyeXB0ZWQgL2Jvb3QsDQpidXQg SSBwbGFuIHRvIHN1Ym1pdCBwYXRjaCBhZnRlciByZWxlYXNlIHRvIGRlY291cGxlIGl0IGZy b20NCi9ldGMvZGVmYXVsdC9ncnViKS4gU28gYW55IHNvbHV0aW9uIHRoYXQgaW50ZWdyYXRl cyBwbGFpbg0KZG0tY3J5cHQvZGV0YWNoZWQgaGVhZGVyIGludG8gZ3J1Yi1pbnN0YWxsIG5l ZWRzIHRvIHdvcmsgd2l0aG91dCB1c2VyDQppbnRlcnZlbnRpb24gYW5kIHByb3ZpZGVzIHNv bWUgbWVhbnMgdG8gYXV0by1kZXRlY3QgdGhpcy4NCg0KQWx0aG91Z2ggd2UgYWxyZWFkeSBo YXZlIHNvbWUgb3B0aW9ucyB0aGF0IGNhbm5vdCBiZSBhdXRvZGV0ZWN0ZWQgKGUuZy4NCmtl eXMpLiBTbyBtYXkgYmUgdGhpcyBjYW4gYmUgcmVsYXhlZC4NCg0KQnV0IGF0IHRoZSB2ZXJ5 IGxlYXN0IGl0IG5lZWRzIHRvIGNoZWNrIHdoZXRoZXIgTFVLUyBkZXZpY2UgaGFzIGRldGFj aGVkDQpoZWFkZXIgYW5kIGFib3J0IGJ5IGRlZmF1bHQgaWYgaXQgaGFzLCBvdGhlcndpc2Ug d2UgY2Fubm90IGV2ZW4gZmluZA0KZGV2aWNlIHRvIG9wZW4gYXQgYm9vdCB0aW1lLiBJdCBh bHNvIG5lZWRzIGNvZGUgdG8gZGV0ZWN0IHVuZGVybHlpbmcNCmJsb2NrIGRldmljZSBhbmQg YWdhaW4gYWJvcnQgaWYgcGFydGl0aW9uIG1hcCBkb2VzIG5vdCBzdXBwb3J0IFBUVVVJRA0K KGkuZS4gaXMgbm90IE1TRE9TIG9yIEdQVCksIGFzIHRoaXMgaXMgdGhlIG9ubHkgbWVhbnMg dG8gZmluZCBpdC4NCg0KSW4gZ2VuZXJhbGx5LCBpZiBncnViLWluc3RhbGwgY29tcGxldGVk IHdpdGhvdXQgZXJyb3IgZ3J1YiBzaG91bGQgYm9vdCAtDQpvdGhlcndpc2Ugd2UgaGF2ZSBh IGJ1Zy4NCg0KMDguMDQuMjAxNyAxOToxNiwgTWF0NjI4INC/0LjRiNC10YI6DQo+IEhpLCBJ J2QgbGlrZSB0byBmaXJzdCBzYXkgdGhhbmtzIHRvIHRoZSBhZGRpdGlvbnMgeW91IG1hZGUg dG8gY3J5cHRvbW91bnQuIEkgY2FtZSBhY3Jvc3MgeW91ciBwYXRjaGVzIDItMyBtb250aHMg YWdvIHdoZW4gSSB3YXMgbG9va2luZyB0byBkbyBGREUgaW5jbHVkaW5nIC9ib290IGZvciBM Vk0gb24gTFVLUy4gSSBjcmVhdGVkIGEgZmV3IHBhdGNoZXMgb3V0bGluZWQgd2l0aCB0aGVp ciBmZWF0dXJlcyBiZWxvdy4gSSB3b3VsZCBoYXZlIG1lc3NhZ2VkIHNvb25lciBidXQgSSBk aWRuJ3Qga25vdyBhYm91dCB0aGVzZSBwb3N0cyBvbiBncnViLWhlbHAgdW50aWwgYWZ0ZXIg ZmluZGluZyB0aGUgbGluayBmcm9tIHlvdXIgZ2l0aHViLiBBZnRlciBhbHNvIGNvbWluZyBh Y3Jvc3MgdGhlIHByb2JsZW0gb2YgaGF2aW5nIG5vIHdheSB0byByZWxpYWJseSBwcmVkaWN0 IHdoYXQgYSBkZXZpY2UgKGhkMCxtc2RvczEpIHdpbGwgbWFwIHRvLCBJIGVuZGVkIHVwIGNy ZWF0aW5nIGFuIGFkZC1vbiBjb21tYW5kLCB0aGF0IHVzZXMgdGhlIHBhcnRpdGlvbiBVVUlE L0dVSUQsIHRvIHNlYXJjaCAoLS1wdC11dWlkKSBhbmQgYW4gYWNjb21wYW55aW5nIG1vZHVs ZSBzZWFyY2gucHRfdXVpZC4gVGhlc2UgdHdvIGNvbW1hbmRzIG1pcnJvciB0aGUgc2VhcmNo IC0tZnMtdXVpZCBhbmQgc2VhcmNoLmZzX3V1aWQgd2hlcmUgZ2l2ZW4gYSB1dWlkIGl0IHdp bGwgcmV0dXJuIHRoZSBkZXZpY2UuIFdoZW4gZ2l2ZW4gYSBkaXNrL3BhcnRpdGlvbiBVVUlE L0dVSUQgdGhhdCBjb3JyZXNwb25kcyB0byBhIGRpc2sgdGhhdCBpcyBlaXRoZXIgYSBiaW9z ZGlzayBvciBlZmlkaXNrLCBvciBhIHBhcnRpdGlvbiB3aXRoIGEgcGFydG1hcCBuYW1lIG9m IGVpdGhlciAibXNkb3MiIG9yICJncHQiIG9uIG9uZSBvZiB0aGUgcHJldmlvdXMgZGlza3Mg aXQgd2lsbCByZXR1cm4gdGhhdCBkZXZpY2UuDQo+IA0KPiBQYXRjaCAxIHN0b3BzIHNlYXJj aCBmcm9tIHByaW50aW5nIHNhbWUgZGV2aWNlIHR3aWNlIGlmIGNhbGxlZCBtdWx0aXBsZSB0 aW1lcy4NCj4gDQo+IFBhdGNoIDIgYWxsb3dzIHRoaXMtLS0+QWRkZWQgbW9kdWxlIHNlYXJj aF9wdF91dWlkLiBXaGVuIGdpdmVuIGEgZGlzay9wYXJ0IFVVSUQvR1VJRCBpdCB3aWxsIHJl dHVybiB0aGUgYXNzb2NpYXRlZCBkZXZpY2UuDQo+IE9uIGEgYmlvc2Rpc2svbWJyIGl0IHdp bGwgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGZvciB0aGUgZGV2aWNlIChoZDApLyhoZDAsbXNk b3MxKSBhcyBsc2JsayAtbyBQQVJUVVVJRCByZXR1cm5zLiBUaGlzIHNob3VsZCBiZSB0aGUg c2FtZSBhcyB0aGUgTlQgZGlzayBzaWduYXR1cmUgbG9jYXRlZCBhdCBtYnIuY29kZVs0NDBd IGZvciA0IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0IHBsdXMgdGhlIHBhcnRpdGlv biBudW1iZXIgYXBwZW5kZWQgaWYgYXBwbGljYWJsZSB4eHh4eHh4eC15eS4gT24gYW4gZWZp ZGlzay9ncHQgaXQgd2lsbCByZXR1cm4gdGhlIHNhbWUgdmFsdWUgZm9yIHRoZSBkZXZpY2Ug KGhkMCkvKGhkMCxncHQxKSBhcyBsc2JsayAtbyBQQVJUVVVJRCByZXR1cm5zLiBUaGlzIHdp bGwgYmUgdGhlIGRpc2svcGFydGl0aW9uIFVVSUQvR1VJRC4NCj4gDQo+IEFuIGV4YW1wbGUg b2YgdXNpbmcgdGhpcyBjb21tYW5kIGluc2lkZSBsb2FkLmNmZyBvciBkaXJlY3RseSBvbiB0 aGUgZ3J1YiBjb21tYW5kIGxpbmUuIFRoaXMgZXhhbXBsZSBpcyBmb3IgYSBkZXRhY2hlZCBo ZWFkZXIgTFVLUyB2b2x1bWUgb24gKGhkWCxtc2Rvc1kpIHdoaWNoIGNvcnJlc3BvbmRzIHRv IGEgcGFydHV1aWQgb2YgMTIzNDU2NzgtMDEgd2l0aCB0aGUgaGVhZGVyIGZpbGUgc3RvcmVk IG9uIGEgcGxhaW4gdGV4dCBwYXJ0aXRpb24gZWl0aGVyIG9uIHRoZSBzYW1lIGRldmljZSBv ciBhIGRpZmZlcmVudCBvbmUgd2l0aCBhIGZzX3V1aWQ9NTQzMi03NjU0Lg0KPiANCj4gRnJv bSB5b3VyIHNpdGUgdGhpcyB3b3VsZCBsb29rIGxpa2UNCj4gDQo+IGNyeXB0b21vdW50IC1I IChoZDAsMSkvaGVhZGVyIGhkMSwxDQo+IA0KPiBCdXQgd2l0aCBteSBwYXRjaCBpdCB3b3Vs ZCBiZS4NCj4gDQo+IHNlYXJjaC5mc191dWlkIDU0MzItNzY1NCBoZWFkZXJfZmlsZV9kZXZp Y2UgLS0tLUxpbmUgZm9yIHNldHRpbmcgKGhkMCwxKQ0KPiBzZWFyY2gucHRfdXVpZCAxMjM0 NTY3OC0wMSBjcnlwdG9kZXZpY2UgLS0tLUxpbmUgZm9yIHNldHRpbmcgKGhkMSwxKQ0KPiBj cnlwdG9tb3VudCAoJGNyeXB0b2RldmljZSkgLS1oZWFkZXI9KCRoZWFkZXJfZmlsZV9kZXZp Y2UpL2hlYWRlci5iaW4NCj4gDQo+IE9yIGlmIHRoZSBoZWFkZXIgZmlsZSBpcyBpbiBhIHNl cGFyYXRlIGVuY3J5cHRlZCBMVUtTIHZvbHVtZS4gTFVLUyB2b2x1bWUgVVVJRCBpcyAxMjM0 NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwYWIuIFdoZW4gdGhlIExVS1Mgdm9sdW1l IGlzIG9wZW4gdGhlIG1vdW50ZWQgZnNfdXVpZCBpcyAxMTExMjIyMi0zMzMzLTQ0NDQtNTU1 NS0xMjM0NTY2NTQzMjEgZm9yIGEgZXh0NCBwYXJ0aXRpb24uDQo+IA0KPiBjcnlwdG9tb3Vu dCAtdSAxMjM0NTY3OC0xMjM0LTEyMzQtMTIzNC0xMjM0NTY3ODkwYWIgLS0tLUxpbmUgZm9y IG9wZW5pbmcgdGhlIExVS1Mgdm9sdW1lIHdpdGggdGhlIGhlYWRlciBmaWxlIGluIGl0Lg0K PiBzZWFyY2guZnNfdXVpZCAxMTExMjIyMi0zMzMzLTQ0NDQtNTU1NS0xMjM0NTY2NTQzMjEg aGVhZGVyX2ZpbGVfZGV2aWNlIC0tLS1MaW5lIGZvciBzZXR0aW5nIChoZDAsMSkNCj4gc2Vh cmNoLnB0X3V1aWQgMTIzNDU2NzgtMDEgY3J5cHRvZGV2aWNlIC0tLS1MaW5lIGZvciBzZXR0 aW5nIChoZDEsMSkNCj4gY3J5cHRvbW91bnQgKCRjcnlwdG9kZXZpY2UpIC0taGVhZGVyPSgk aGVhZGVyX2ZpbGVfZGV2aWNlKS9oZWFkZXIuYmluIC0tLS1MaW5lIGZvciBvcGVuaW5nIExV S1Mgdm9sdW1lIHdpdGggL2Jvb3QNCj4gDQo+IFBhdGNoIDMgYWxsb3dzIHRoaXMtLS0tPklu Y2x1c2lvbiBvZiBhbHRlcmVkICJsb2FkLmNmZyIgdG8gZ3J1Yi1pbnN0YWxsL21rY29uZmln Lg0KPiBtYXR0bGVfb3B0cyAoTW9yZSBBZHZhbmNlZCBUaGFuIFRyYWRpdGlvbmFsIExVS1Mg RW5jcnlwdGlvbiBPcHRpb25zKS4gQWRkZWQgbWF0dGxlX29wdHMuY2ZnIGZpbGUgd2hpY2gg YWxsb3dzIHRoZSB1c2VyIHRvIGN1c3RvbWl6ZSBsb2FkLmNmZyB0byBhbGxvdyBmb3IgZXh0 cmEgb3B0aW9ucyBmb3IgY3J5cHRvbW91bnQuIG1hdHRsZV9vcHRzLmNmZyBpcyBsb2NhdGVk IGluIHVzZXItZGVmaW5lZC9ldGMvIGZvbGRlci4gU2FtZSBmb2xkZXIgYXMgY3J5cHR0YWIg YW5kIGZzdGFiLiBPbmx5IGFmZmVjdHMgY3J5cHRvbW91bnQgb3B0aW9ucyBpbiBsb2FkLmNm ZyBhbmQgb25seSBpZiBHUlVCX0VOQUJMRV9DUllQVE9ESVNLX01BVFRMRV9PUFRTPXkgaXMg c2V0IGluIGdydWIuY2ZnLiBJZiBub3Qgc2V0IHRoZW4gbm9ybWFsICdjcnlwdG9tb3VudCAt dSAkdXVpZCcgaXMgcHJpbnRlZCB0byBsb2FkLmNmZy4gSSBhbHRlcmVkIGdydWItaW5zdGFs bCBhbmQgZ3J1Yi1ta2NvbmZpZyB0byBhbGxvdyBpdCB0byBoYXZlIGVzc2VudGlhbGx5IGFu IGFsdGVybmF0ZSBsb2FkLmNmZyAobWF0dGxlX29wdHMuY2ZnKSB0byBiZSBlYXNpbHkgZWRp dHRlZCBieSB0aGUgdXNlciBwcmlvciB0byBydW5uaW5nIGdydWItaW5zdGFsbCB0byBhbGxv dyBncnViLWluc3RhbGwgdG8gdGhlbiByZWFkIGZyb20gdGhpcyBmaWxlIGFuZCB0aGVuIGZw cmludCB0aGlzIGFsdGVybmF0ZSBmaWxlcyBjb250ZW50cyBpbnRvIGxvYWQuY2ZnIHRvIGFs bG93IHlvdXIgYWx0ZXJuYXRlIGNyeXB0b21vdW50IGNvbW1hbmRzIHRvIGJlIHJ1biBkdXJp bmcgYm9vdCB1cC4gVGhpcyBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCBhbnkgb2YgZ3J1Yi1p bnN0YWxsJ3Mgb3RoZXIgYWN0aW9ucyB3aXRoIGxvYWQuY2ZnIGl0IG1lcmVseSByZXBsYWNl cyB0aGUgbm9ybWFsICdjcnlwdG9tb3VudCAtdSAkdXVpZCcgdGhhdCBpcyBwcmludGVkIGZy b20gZ3J1Yi1pbnN0YWxsIGludG8gbG9hZC5jZmcuIFRoaXMgbWFrZXMgaXQgc28geW91IGRv bid0IGhhdmUgdG8gZG8gZ3J1Yi1ta2ltYWdlIGFuZCB0aGUgYXNzb2NpYXRlZCBjb21tYW5k cy4gQWxzbyBhZGRlZCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgZ3J1Yi1pbnN0YWxsL21r Y29uZmlnIHRvIGFsbG93IGFuIGFsdGVybmF0ZSBtYXR0bGVfb3B0cy5jZmcgdG8gYWxsb3cg dGhlIHVzZXIgdG8gcXVpY2tseSBpbnN0YWxsIGdydWIgdG8gYW5vdGhlciBkZXZpY2Ugd2l0 aG91dCBoYXZpbmcgdG8gbW9kaWZ5IHRoZSBkZWZhdWx0IG1hdHRsZV9vcHRzLmNmZy4NCj4g DQo+IFBhdGNoIDQgYWxsb3dzIHRoaXMtLS0tPiBncnViLWluc3RhbGwgYW5kIGdydWItbWtj b25maWcgbWFnaWMgZm9yIC9ib290IG9uIGEgZGV0YWNoZWQgaGVhZGVyIExVS1Mgdm9sdW1l DQo+IEFkZGVkIGdydWItaW5zdGFsbCBtYWdpYyBmb3IgYSBjcnlwdG8tZGV2aWNlIHRoYXQg aXMgb24gYSBkaXNrIHdpdGggZWl0aGVyIGFuIG1zZG9zIG9yIGdwdCBwYXJ0aXRpb24gdGFi bGUgYW5kIGVpdGhlciBvbiBhIGJpb3NkaXNrIG9yIGVmaWRpc2suIEdydWItaW5zdGFsbCBt YWdpYyB3b3JrcyB3aXRoIGdydWItbWtjb25maWcgZm9yIGJvb3RpbmcgYSBkZXRhY2hlZCBo ZWFkZXIgTFVLUyB2b2x1bWUgd2hlbiB1c2VkIHdpdGggLS1jcnlwdG8tZGV2aWNlIGFuZCAt LWNyeXB0by1oZWFkZXIuIEJ5IHJlYWRpbmcgdGhlIGFjdHVhbCBoZWFkZXIgZmlsZSB0aGF0 IGNvcnJlc3BvbmRzIHRvIHRoYXQgcGFydGl0Y3VsYXIgTFVLUyB2b2x1bWUgdGhpcyBhbGxv d3MgZ3J1Yi1pbnN0YWxsL21rY29uZmlnIHRvIGhhdmUgdGhlIHByb3BlciBtb2R1bGVzIGxv YWRlZCBieSBncnViLiBUaGUgZ3J1Yi1pbnN0YWxsIGNvbW1hbmQgZm9yIC9ib290IGxvY2F0 ZWQgb24gL2Rldi9zZGExIHdoZXJlIC9kZXYvc2RhMSBpcyBhIGRldGFjaGVkIGhlYWRlciBM VUtTIHZvbHVtZSBhbmQgdGhlIGhlYWRlciBpcyBsb2NhdGVkIG9uIHRoZSByb290IC8gZGly ZWN0b3J5IGFuZCB3ZSBhcmUgaW5zdGFsbGluZyB0byAvZGV2L3NkYS4NCj4gDQo+IGdydWIt aW5zdGFsbCAtLWJvb3QtZGlyZWN0b3J5PS9ib290IC0tY3J5cHRvLWRldmljZT0vZGV2L3Nk YTEgLS1jcnlwdG8taGVhZGVyPS9oZWFkZXIuYmluIC9kZXYvc2RhDQo+IGdydWItbWtjb25m aWcgLW8gL2Jvb3QvZ3J1Yi9ncnViLmNmZw0KPiANCj4gRm9yIGFib3ZlIHBhdGNoIDQgZ3J1 Yi1pbnN0YWxsIG5lZWRzIHRvIGJlIHJ1biBwcmlvciB0byBncnViLW1rY29uZmlnIHNvIHRo ZSBwcm9wZXIgKi5jZmcgZmlsZXMgYXJlIGNyZWF0ZWQgYW5kIGNvbmZpZ3VyZWQgdG8gYWxs b3cgY3J5cHRvZGlzay5jIGFuZCBsdWsuYyB0byBjcmVhdGUgYSBjcnlwdG9kaXNrIGJhc2Vk IG9mZiB0aGUgc3RhdGVkIGNyeXB0by1kZXZpY2UuDQo+IA0KPiBBIGZldyBub3RlczogbWF0 dGxlX29wdHMuY2ZnIGlzIHJlYWQgb25seSBieSBncnViLWluc3RhbGwvbWtjb25maWcgYW5k IG11c3QgYmUgZWRpdGVkIG91dHNpZGUgb2YgZ3J1YiB1c2luZyBuYW5vL3RleHQgZWRpdG9y Lg0KPiBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGdydWItaW5zdGFsbCBkbyBub3Qg YWx0ZXIgbWF0dGxlX29wdHMuY2ZnIHNvIGlmIGluc3RhbGxpbmcgdG8gdHdvIGRpZmZlcmVu dCBkZXZpY2VzIGkuZSBhIHVzYiBzdGljayBhbmQgYSBoYXJkIGRyaXZlLCBtYXR0bGVfb3B0 cy5jZmcgbWF5IG5lZWQgdG8gYmUgZWRpdGVkLiBpLmUuIGRlcGVuZGluZyBvbiB3aGVyZSBo ZWFkZXIva2V5IGZpbGVzIGFyZSBzdG9yZWQuDQo+IFRoZSBlYXNpZXN0IHNldHVwIHNlZW1z IHRvIGJlIC9ib290L2dydWIgb24gdGhlIHJvb3RmcyBhbmQgb25seSBoYXZlIHRoZSBhcHBs aWNhYmxlIGhlYWRlci9rZXkgZmlsZXMgb24gdGhlIHVzYiBlaXRoZXIgaW4gcGxhaW4gdGV4 dCBvciBpbiBhbiBlbmNyeXB0ZWQgcGFydGl0aW9uLCBhbmQgaGF2ZSB0aGUgYm9vdC5pbWcg YW5kIGNvcmUuaW1nIGluc3RhbGxlZCB0byB0aGUgdXNiIGFzIHdlbGwuDQo+IFRoZSBjaGFu Z2VzIHRvIGx1a3MuYyBzaG91bGQgb25seSBiZSBpbiBlZmZlY3QgZm9yIGdydWIgdXRpbHMg YW5kIG5vdCBpbiBlZmZlY3QgZHVyaW5nIGJvb3RpbmcuDQo+IA0KPiBJJ3ZlIGFsc28gaW5j bHVkZWQgeW91ciBmaXJzdCAzIExVS1MgcGF0Y2hlcyBhcyB0aGV5IHdvdWxkIGFwcGx5IGFm dGVyIG15IHBhdGNoZXMuIFRoZXNlIHBhdGNoZXMgYXJlIGJhc2VkIG9mZiBvZiBncnViLTIu MDItcmMyLiBJIHRlc3RlZCB0aGVzZSB0byB3b3JrIG9uIHg2NCB2ZXJzaW9uIG9mIFVidW50 dSAxNi4wNCBMVFMgcnVubmluZyBiaW9zLiBGb3IgdGhlIGVmaSB3aXRoIGdwdCBpdCB3YXMg dGVzdGVkIG9uIGEgdmlydHVhbCBtYWNoaW5lIHg2NCBVYnVudHUgMTYuMDQgTFRTLg0KPiAN Cj4gQmVzdCByZWdhcmRzLA0KPiBNYXR0DQo+IA0KPiANCj4gDQo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IEhlbHAtZ3J1YiBtYWlsaW5n IGxpc3QNCj4gSGVscC1ncnViQGdudS5vcmcNCj4gaHR0cHM6Ly9saXN0cy5nbnUub3JnL21h aWxtYW4vbGlzdGluZm8vaGVscC1ncnViDQo+IA0KDQo=