From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19BCDC433DB for ; Wed, 27 Jan 2021 17:21:03 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 915A764DA0 for ; Wed, 27 Jan 2021 17:21:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 915A764DA0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=16QuXQxHOfklZcwyrIlxCCvlOcnSGbkJRJRVeh8/1n8=; b=RQBZh47ee8ahK/FQHf1tLKCAz gRuwPpDYUf2WUuSm3MzdH+pDlK4L7UyvsCUCT9FtW5eDmd5o/hK0WTLP8TiCMRkDBp6+L6s2FzHk/ kK+zHDh5xzwvbcONdywjkSmtAESAqj33FjNM+/qcSYNbXwAyL3NP9YM/x5mag2E4MCDLrJnF9A18Z qZBhu/AyqfEyxEDkOaZMUZNwISqOXBdv7gG2wVC4v8QgnHPjtKWQZt67zuxMTxX+efarVmDDdD7Sz 7MUgl3yOX3e3jo2wDoJQcSHbsjUE7Ij3mbj5w5UrETrp/VKUWPPFDE5vjdQ3U/aAFJwbmZPZhk9Vg vReEGihbA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l4oTm-0004Ej-AX; Wed, 27 Jan 2021 17:19:42 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l4oTj-0004Dc-Gt for linux-arm-kernel@lists.infradead.org; Wed, 27 Jan 2021 17:19:40 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 690DB60187; Wed, 27 Jan 2021 17:19:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611767978; bh=34HKEYL8Uu56NwWdQHHa7lTy6DQWGDrOdbZLSeUzLas=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=CcfFkYALbXpYIR968k4K6VSsCwjYIKLLVO+TvoC+Uwp/6Mcl9+I7o6GUH6bpcgxzr xjx6Ukd7k7EPj4FuuZorAxyP7AEZms03pxIi/r+8XCmB29XBl6kYFT+FuIFFNOu1Hi 8p2FFSNJTmgymdMUCY5weC7GKTkOGoQh8J2R32PZ/9E/yPS7KCOa01BGz59E2q0sX8 npXkHmlqBK9FwbDxsYK0CKrc9u4yjfxAfuZ9xhJzmupMsDW1DUFhGQnHhKc+OIqBDA EjsYtWaWd26MsVU1+Rmu42B8MqRdBh3/WqBKDL4SYU2uQ6YyRSRqmeBhV5+GyaMIra zQw1qZ9+a5YZQ== Date: Wed, 27 Jan 2021 19:19:34 +0200 From: Jarkko Sakkinen To: Sumit Garg Subject: Re: [PATCH v8 2/4] KEYS: trusted: Introduce TEE based Trusted Keys Message-ID: References: <01000177223f74d3-1eef7685-4a19-40d2-ace6-d4cd7f35579d-000000@email.amazonses.com> <1486cfe8-bc30-1266-12bd-0049f2b64820@forissier.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210127_121939_750564_41DFDDDA X-CRM114-Status: GOOD ( 45.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Thompson , Jerome Forissier , Jonathan Corbet , James Bottomley , Janne Karhunen , Linux Doc Mailing List , James Morris , Mimi Zohar , Linux Kernel Mailing List , David Howells , Casey Schaufler , "open list:SECURITY SUBSYSTEM" , op-tee@lists.trustedfirmware.org, "open list:ASYMMETRIC KEYS" , Jarkko Sakkinen , Luke Hinds , linux-integrity@vger.kernel.org, linux-arm-kernel , "Serge E. Hallyn" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBKYW4gMjUsIDIwMjEgYXQgMDI6NDc6MzhQTSArMDUzMCwgU3VtaXQgR2FyZyB3cm90 ZToKPiBIaSBKYXJra28sCj4gCj4gT24gRnJpLCAyMiBKYW4gMjAyMSBhdCAyMzo0MiwgSmFya2tv IFNha2tpbmVuIDxqYXJra29Aa2VybmVsLm9yZz4gd3JvdGU6Cj4gPgo+ID4gT24gVGh1LCBKYW4g MjEsIDIwMjEgYXQgMDU6MjM6NDVQTSArMDEwMCwgSmVyb21lIEZvcmlzc2llciB3cm90ZToKPiA+ ID4KPiA+ID4KPiA+ID4gT24gMS8yMS8yMSA0OjI0IFBNLCBKYXJra28gU2Fra2luZW4gd3JvdGU6 Cj4gPiA+ID4gT24gVGh1LCBKYW4gMjEsIDIwMjEgYXQgMDU6MDc6NDJQTSArMDIwMCwgSmFya2tv IFNha2tpbmVuIHdyb3RlOgo+ID4gPiA+PiBPbiBUaHUsIEphbiAyMSwgMjAyMSBhdCAwOTo0NDow N0FNICswMTAwLCBKZXJvbWUgRm9yaXNzaWVyIHdyb3RlOgo+ID4gPiA+Pj4KPiA+ID4gPj4+Cj4g PiA+ID4+PiBPbiAxLzIxLzIxIDE6MDIgQU0sIEphcmtrbyBTYWtraW5lbiB2aWEgT1AtVEVFIHdy b3RlOgo+ID4gPiA+Pj4+IE9uIFdlZCwgSmFuIDIwLCAyMDIxIGF0IDEyOjUzOjI4UE0gKzA1MzAs IFN1bWl0IEdhcmcgd3JvdGU6Cj4gPiA+ID4+Pj4+IE9uIFdlZCwgMjAgSmFuIDIwMjEgYXQgMDc6 MDEsIEphcmtrbyBTYWtraW5lbiA8amFya2tvQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+Pj4+ Pj4KPiA+ID4gPj4+Pj4+IE9uIFR1ZSwgSmFuIDE5LCAyMDIxIGF0IDEyOjMwOjQyUE0gKzAyMDAs IEphcmtrbyBTYWtraW5lbiB3cm90ZToKPiA+ID4gPj4+Pj4+PiBPbiBGcmksIEphbiAxNSwgMjAy MSBhdCAxMTozMjozMUFNICswNTMwLCBTdW1pdCBHYXJnIHdyb3RlOgo+ID4gPiA+Pj4+Pj4+PiBP biBUaHUsIDE0IEphbiAyMDIxIGF0IDA3OjM1LCBKYXJra28gU2Fra2luZW4gPGphcmtrb0BrZXJu ZWwub3JnPiB3cm90ZToKPiA+ID4gPj4+Pj4+Pj4+Cj4gPiA+ID4+Pj4+Pj4+PiBPbiBXZWQsIEph biAxMywgMjAyMSBhdCAwNDo0NzowMFBNICswNTMwLCBTdW1pdCBHYXJnIHdyb3RlOgo+ID4gPiA+ Pj4+Pj4+Pj4+IEhpIEphcmtrbywKPiA+ID4gPj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+IE9u IE1vbiwgMTEgSmFuIDIwMjEgYXQgMjI6MDUsIEphcmtrbyBTYWtraW5lbiA8amFya2tvQGtlcm5l bC5vcmc+IHdyb3RlOgo+ID4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+PiBPbiBUdWUs IE5vdiAwMywgMjAyMCBhdCAwOTozMTo0NFBNICswNTMwLCBTdW1pdCBHYXJnIHdyb3RlOgo+ID4g PiA+Pj4+Pj4+Pj4+Pj4gQWRkIHN1cHBvcnQgZm9yIFRFRSBiYXNlZCB0cnVzdGVkIGtleXMgd2hl cmUgVEVFIHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5Cj4gPiA+ID4+Pj4+Pj4+Pj4+PiB0byBz ZWFsIGFuZCB1bnNlYWwgdHJ1c3RlZCBrZXlzIHVzaW5nIGhhcmR3YXJlIHVuaXF1ZSBrZXkuCj4g PiA+ID4+Pj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+Pj4gUmVmZXIgdG8gRG9jdW1lbnRhdGlv bi90ZWUudHh0IGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBURUUuCj4gPiA+ID4+Pj4+ Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogU3VtaXQgR2FyZyA8c3Vt aXQuZ2FyZ0BsaW5hcm8ub3JnPgo+ID4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+PiBJ IGhhdmVuJ3QgeWV0IGdvdCBRRU1VIGVudmlyb25tZW50IHdvcmtpbmcgd2l0aCBhYXJjaDY0LCB0 aGlzIHByb2R1Y2VzCj4gPiA+ID4+Pj4+Pj4+Pj4+IGp1c3QgYSBibGFuayBzY3JlZW46Cj4gPiA+ ID4+Pj4+Pj4+Pj4+Cj4gPiA+ID4+Pj4+Pj4+Pj4+IC4vb3V0cHV0L2hvc3QvdXNyL2Jpbi9xZW11 LXN5c3RlbS1hYXJjaDY0IC1NIHZpcnQgLWNwdSBjb3J0ZXgtYTUzIC1zbXAgMSAta2VybmVsIG91 dHB1dC9pbWFnZXMvSW1hZ2UgLWluaXRyZCBvdXRwdXQvaW1hZ2VzL3Jvb3Rmcy5jcGlvIC1zZXJp YWwgc3RkaW8KPiA+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4gPj4+Pj4+Pj4+Pj4gTXkgQnVpbGRSb290 IGZvcmsgZm9yIFRQTSBhbmQga2V5cmluZyB0ZXN0aW5nIGlzIGxvY2F0ZWQgb3ZlciBoZXJlOgo+ ID4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+PiBodHRwczovL2dpdC5rZXJuZWwub3Jn L3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9qYXJra28vYnVpbGRyb290LXRwbWRkLmdpdC8KPiA+ ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4gPj4+Pj4+Pj4+Pj4gVGhlICJBUk0gdmVyc2lvbiIgaXMgYXQg dGhpcyBwb2ludCBpbiBhYXJjaDY0IGJyYW5jaC4gT3ZlciB0aW1lIEkgd2lsbAo+ID4gPiA+Pj4+ Pj4+Pj4+PiBkZWZpbmUgdHBtZGQteDg2XzY0IGFuZCB0cG1kZC1hYXJjaDY0IGJvYXJkcyBhbmQg ZXZlcnl0aGluZyB3aWxsIGJlIHRoZW4KPiA+ID4gPj4+Pj4+Pj4+Pj4gaW4gdGhlIG1hc3RlciBi cmFuY2guCj4gPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+ID4+Pj4+Pj4+Pj4+IFRvIGNyZWF0ZSBpZGVu dGljYWwgaW1hZ2VzIHlvdSBqdXN0IG5lZWQgdG8KPiA+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4gPj4+ Pj4+Pj4+Pj4gJCBtYWtlIHRwbWRkX2RlZmNvbmZpZyAmJiBtYWtlCj4gPiA+ID4+Pj4+Pj4+Pj4+ Cj4gPiA+ID4+Pj4+Pj4+Pj4+IENhbiB5b3UgY2hlY2sgaWYgeW91IHNlZSBhbnl0aGluZyBvYnZp b3VzbHkgd3Jvbmc/IEknbSBlYWdlciB0byB0ZXN0IHRoaXMKPiA+ID4gPj4+Pj4+Pj4+Pj4gcGF0 Y2ggc2V0LCBhbmQgaW4gYmlnZ2VyIHBpY3R1cmUgSSByZWFsbHkgbmVlZCB0byBoYXZlIHJlYWR5 IHRvIHJ1bgo+ID4gPiA+Pj4+Pj4+Pj4+PiBhYXJjaDY0IGVudmlyb25tZW50IGF2YWlsYWJsZS4K PiA+ID4gPj4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4+IEkgd291bGQgcmF0aGVyIHN1Z2dlc3Qg eW91IHRvIGZvbGxvdyBzdGVwcyBsaXN0ZWQgaGVyZSBbMV0gYXMgdG8gdGVzdAo+ID4gPiA+Pj4+ Pj4+Pj4+IHRoaXMgZmVhdHVyZSBvbiBRZW11IGFhcmNoNjQgd2UgbmVlZCB0byBidWlsZCBmaXJt d2FyZXMgc3VjaCBhcyBURi1BLAo+ID4gPiA+Pj4+Pj4+Pj4+IE9QLVRFRSwgVUVGSSBldGMuIHdo aWNoIGFyZSBhbGwgaW50ZWdyYXRlZCBpbnRvIE9QLVRFRSBRZW11IGJ1aWxkCj4gPiA+ID4+Pj4+ Pj4+Pj4gc3lzdGVtIFsyXS4gQW5kIHRoZW4gaXQgd291bGQgYmUgZWFzaWVyIHRvIG1pZ3JhdGUg dGhlbSB0byB5b3VyCj4gPiA+ID4+Pj4+Pj4+Pj4gYnVpbGRyb290IGVudmlyb25tZW50IGFzIHdl bGwuCj4gPiA+ID4+Pj4+Pj4+Pj4KPiA+ID4gPj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9saXN0cy50 cnVzdGVkZmlybXdhcmUub3JnL3BpcGVybWFpbC9vcC10ZWUvMjAyMC1NYXkvMDAwMDI3Lmh0bWwK PiA+ID4gPj4+Pj4+Pj4+PiBbMl0gaHR0cHM6Ly9vcHRlZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRl c3QvYnVpbGRpbmcvZGV2aWNlcy9xZW11Lmh0bWwjcWVtdS12OAo+ID4gPiA+Pj4+Pj4+Pj4+Cj4g PiA+ID4+Pj4+Pj4+Pj4gLVN1bWl0Cj4gPiA+ID4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pj4gQ2Fu IHlvdSBwcm92aWRlICdrZXljdGxfY2hhbmdlJz8gT3RoZXJ3aXNlLCB0aGUgc3RlcHMgYXJlIGVh c3kgdG8gZm9sbG93Lgo+ID4gPiA+Pj4+Pj4+Pj4KPiA+ID4gPj4+Pj4+Pj4KPiA+ID4gPj4+Pj4+ Pj4gJCBjYXQga2V5Y3RsX2NoYW5nZQo+ID4gPiA+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvY29tbW9u Lm1rIGIvY29tbW9uLm1rCj4gPiA+ID4+Pj4+Pj4+IGluZGV4IGFlYjdiNDEuLjY2M2U1MjggMTAw NjQ0Cj4gPiA+ID4+Pj4+Pj4+IC0tLSBhL2NvbW1vbi5tawo+ID4gPiA+Pj4+Pj4+PiArKysgYi9j b21tb24ubWsKPiA+ID4gPj4+Pj4+Pj4gQEAgLTIyOSw2ICsyMjksNyBAQCBCUjJfUEFDS0FHRV9P UFRFRV9URVNUX1NESyA/PSAkKE9QVEVFX09TX1RBX0RFVl9LSVRfRElSKQo+ID4gPiA+Pj4+Pj4+ PiAgQlIyX1BBQ0tBR0VfT1BURUVfVEVTVF9TSVRFID89ICQoT1BURUVfVEVTVF9QQVRIKQo+ID4g PiA+Pj4+Pj4+PiAgQlIyX1BBQ0tBR0VfU1RSQUNFID89IHkKPiA+ID4gPj4+Pj4+Pj4gIEJSMl9U QVJHRVRfR0VORVJJQ19HRVRUWV9QT1JUID89ICQoaWYKPiA+ID4gPj4+Pj4+Pj4gJChDRkdfTldf Q09OU09MRV9VQVJUKSx0dHlBTUEkKENGR19OV19DT05TT0xFX1VBUlQpLHR0eUFNQTApCj4gPiA+ ID4+Pj4+Pj4+ICtCUjJfUEFDS0FHRV9LRVlVVElMUyA6PSB5Cj4gPiA+ID4+Pj4+Pj4+Cj4gPiA+ ID4+Pj4+Pj4+ICAjIEFsbCBCUjJfKiB2YXJpYWJsZXMgZnJvbSB0aGUgbWFrZWZpbGUgb3IgdGhl IGVudmlyb25tZW50IGFyZSBhcHBlbmRlZCB0bwo+ID4gPiA+Pj4+Pj4+PiAgIyAuLi9vdXQtYnIv ZXh0cmEuY29uZi4gQWxsIHZhbHVlcyBhcmUgcXVvdGVkICIuLi4iIGV4Y2VwdCB5IGFuZCBuLgo+ ID4gPiA+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEva2NvbmZpZ3MvcWVtdS5jb25mIGIva2NvbmZpZ3Mv cWVtdS5jb25mCj4gPiA+ID4+Pj4+Pj4+IGluZGV4IDM2OGMxOGEuLjgzMmFiNzQgMTAwNjQ0Cj4g PiA+ID4+Pj4+Pj4+IC0tLSBhL2tjb25maWdzL3FlbXUuY29uZgo+ID4gPiA+Pj4+Pj4+PiArKysg Yi9rY29uZmlncy9xZW11LmNvbmYKPiA+ID4gPj4+Pj4+Pj4gQEAgLTIwLDMgKzIwLDUgQEAgQ09O RklHXzlQX0ZTPXkKPiA+ID4gPj4+Pj4+Pj4gIENPTkZJR185UF9GU19QT1NJWF9BQ0w9eQo+ID4g PiA+Pj4+Pj4+PiAgQ09ORklHX0hXX1JBTkRPTT15Cj4gPiA+ID4+Pj4+Pj4+ICBDT05GSUdfSFdf UkFORE9NX1ZJUlRJTz15Cj4gPiA+ID4+Pj4+Pj4+ICtDT05GSUdfVFJVU1RFRF9LRVlTPXkKPiA+ ID4gPj4+Pj4+Pj4gK0NPTkZJR19FTkNSWVBURURfS0VZUz15Cj4gPiA+ID4+Pj4+Pj4+Cj4gPiA+ ID4+Pj4+Pj4+PiBBZnRlciBJJ3ZlIHN1Y2Nlc3NmdWxseSB0ZXN0ZWQgMi80LCBJJ2Qgc3VnZ2Vz dCB0aGF0IHlvdSByb2xsIG91dCBvbmUgbW9yZQo+ID4gPiA+Pj4+Pj4+Pj4gdmVyc2lvbiBhbmQg Q0MgdGhlIGRvY3VtZW50YXRpb24gcGF0Y2ggdG8gRWxhaW5lIGFuZCBNaW5pLCBhbmQgY2xlYXJs eQo+ID4gPiA+Pj4+Pj4+Pj4gcmVtYXJrIGluIHRoZSBjb21taXQgbWVzc2FnZSB0aGF0IFRFRSBp cyBhIHN0YW5kYXJkLCB3aXRoIGEgbGluayB0byB0aGUKPiA+ID4gPj4+Pj4+Pj4+IHNwZWNpZmlj YXRpb24uCj4gPiA+ID4+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+Pgo+ID4gPiA+Pj4+Pj4+PiBTdXJl LCBJIHdpbGwgcm9sbCBvdXQgdGhlIG5leHQgdmVyc2lvbiBhZnRlciB5b3VyIHRlc3RpbmcuCj4g PiA+ID4+Pj4+Pj4KPiA+ID4gPj4+Pj4+PiBUaGFua3MsIEknbGwgdHJ5IHRoaXMgYXQgaW5zdGFu dCwgYW5kIGdpdmUgbXkgZmVlZGJhY2suCj4gPiA+ID4+Pj4+Pgo+ID4gPiA+Pj4+Pj4gSSBidW1w IGludG8gdGhpczoKPiA+ID4gPj4+Pj4+Cj4gPiA+ID4+Pj4+PiAkIG1ha2UgcnVuLW9ubHkKPiA+ ID4gPj4+Pj4+IGxuIC1zZiAvaG9tZS9qYXJra28vZGV2ZWwvdHBtL29wdGVlL2J1aWxkLy4uL291 dC1ici9pbWFnZXMvcm9vdGZzLmNwaW8uZ3ogL2hvbWUvamFya2tvL2RldmVsL3RwbS9vcHRlZS9i dWlsZC8uLi9vdXQvYmluLwo+ID4gPiA+Pj4+Pj4gbG46IGZhaWxlZCB0byBjcmVhdGUgc3ltYm9s aWMgbGluayAnL2hvbWUvamFya2tvL2RldmVsL3RwbS9vcHRlZS9idWlsZC8uLi9vdXQvYmluLyc6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKPiA+ID4gPj4+Pj4+IG1ha2U6ICoqKiBbTWFrZWZp bGU6MTk0OiBydW4tb25seV0gRXJyb3IgMQo+ID4gPiA+Pj4+Pj4KPiA+ID4gPj4+Pj4KPiA+ID4g Pj4+Pj4gQ291bGQgeW91IGNoZWNrIGlmIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IHRyZWUgaXMg YnVpbHQgYWZ0ZXIKPiA+ID4gPj4+Pj4gZXhlY3V0aW5nIHRoZSBiZWxvdyBjb21tYW5kPwo+ID4g PiA+Pj4+Pgo+ID4gPiA+Pj4+PiAkIG1ha2UgLWpgbnByb2NgCj4gPiA+ID4+Pj4+IENGR19JTl9U UkVFX0VBUkxZX1RBUz10cnVzdGVkX2tleXMvZjA0YTBmZTctMWY1ZC00YjliLWFiZjctNjE5Yjg1 YjRjZThjCj4gPiA+ID4+Pj4+Cj4gPiA+ID4+Pj4+ICQgdHJlZSBvdXQvYmluLwo+ID4gPiA+Pj4+ PiBvdXQvYmluLwo+ID4gPiA+Pj4+PiDilJzilIDilIAgYmwxLmJpbiAtPiAvaG9tZS9zdW1pdC9i dWlsZC9vcHRlZS9idWlsZC8uLi90cnVzdGVkLWZpcm13YXJlLWEvYnVpbGQvcWVtdS9yZWxlYXNl L2JsMS5iaW4KPiA+ID4gPj4+Pj4g4pSc4pSA4pSAIGJsMi5iaW4gLT4gL2hvbWUvc3VtaXQvYnVp bGQvb3B0ZWUvYnVpbGQvLi4vdHJ1c3RlZC1maXJtd2FyZS1hL2J1aWxkL3FlbXUvcmVsZWFzZS9i bDIuYmluCj4gPiA+ID4+Pj4+IOKUnOKUgOKUgCBibDMxLmJpbiAtPgo+ID4gPiA+Pj4+PiAvaG9t ZS9zdW1pdC9idWlsZC9vcHRlZS9idWlsZC8uLi90cnVzdGVkLWZpcm13YXJlLWEvYnVpbGQvcWVt dS9yZWxlYXNlL2JsMzEuYmluCj4gPiA+ID4+Pj4+IOKUnOKUgOKUgCBibDMyLmJpbiAtPgo+ID4g PiA+Pj4+PiAvaG9tZS9zdW1pdC9idWlsZC9vcHRlZS9idWlsZC8uLi9vcHRlZV9vcy9vdXQvYXJt L2NvcmUvdGVlLWhlYWRlcl92Mi5iaW4KPiA+ID4gPj4+Pj4g4pSc4pSA4pSAIGJsMzJfZXh0cmEx LmJpbiAtPgo+ID4gPiA+Pj4+PiAvaG9tZS9zdW1pdC9idWlsZC9vcHRlZS9idWlsZC8uLi9vcHRl ZV9vcy9vdXQvYXJtL2NvcmUvdGVlLXBhZ2VyX3YyLmJpbgo+ID4gPiA+Pj4+PiDilJzilIDilIAg YmwzMl9leHRyYTIuYmluIC0+Cj4gPiA+ID4+Pj4+IC9ob21lL3N1bWl0L2J1aWxkL29wdGVlL2J1 aWxkLy4uL29wdGVlX29zL291dC9hcm0vY29yZS90ZWUtcGFnZWFibGVfdjIuYmluCj4gPiA+ID4+ Pj4+IOKUnOKUgOKUgCBibDMzLmJpbiAtPgo+ID4gPiA+Pj4+PiAvaG9tZS9zdW1pdC9idWlsZC9v cHRlZS9idWlsZC8uLi9lZGsyL0J1aWxkL0FybVZpcnRRZW11S2VybmVsLUFBUkNINjQvUkVMRUFT RV9HQ0M0OS9GVi9RRU1VX0VGSS5mZAo+ID4gPiA+Pj4+PiDilJzilIDilIAgSW1hZ2UgLT4gL2hv bWUvc3VtaXQvYnVpbGQvb3B0ZWUvYnVpbGQvLi4vbGludXgvYXJjaC9hcm02NC9ib290L0ltYWdl Cj4gPiA+ID4+Pj4+IOKUlOKUgOKUgCByb290ZnMuY3Bpby5neiAtPgo+ID4gPiA+Pj4+PiAvaG9t ZS9zdW1pdC9idWlsZC9vcHRlZS9idWlsZC8uLi9vdXQtYnIvaW1hZ2VzL3Jvb3Rmcy5jcGlvLmd6 Cj4gPiA+ID4+Pj4+Cj4gPiA+ID4+Pj4+IDAgZGlyZWN0b3JpZXMsIDkgZmlsZXMKPiA+ID4gPj4+ Pj4KPiA+ID4gPj4+Pj4gLVN1bWl0Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBJIGFjdHVhbGx5IHNw b3R0ZWQgYSBidWlsZCBlcnJvciB0aGF0IHdhcyB1bm5vdGljZWQgbGFzdCB0aW1lOgo+ID4gPiA+ Pj4+Cj4gPiA+ID4+Pj4gbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9tZS9qYXJra28v ZGV2ZWwvdHBtL29wdGVlL2VkazIvQmFzZVRvb2xzL1Rlc3RzJwo+ID4gPiA+Pj4+IC9iaW4vc2g6 IDE6IHB5dGhvbjogbm90IGZvdW5kCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBJJ2QgcHJlZmVyIG5v dCB0byBpbnN0YWxsIFB5dGhvbjIuIEl0IGhhcyBiZWVuIEVPTCBvdmVyIGEgeWVhci4KPiA+ID4g Pj4+Cj4gPiA+ID4+PiBBRkFJSywgZXZlcnl0aGluZyBzaG91bGQgYnVpbGQgZmluZSB3aXRoIFB5 dGhvbjMuIE9uIG15IFVidW50dSAyMC4wNAo+ID4gPiA+Pj4gbWFjaGluZSwgdGhpcyBpcyBhY2Nv bXBsaXNoZWQgYnkgaW5zdGFsbGluZyBwYWNrYWdlICJweXRob24taXMtcHl0aG9uMyIKPiA+ID4g Pj4+IChhZnRlciB1bmluc3RhbGxpbmcgInB5dGhvbi1pcy1weXRob24yIiBpZiBuZWVkIGJlKS4K PiA+ID4gPj4+Cj4gPiA+ID4+PiAkIGxzIC1sIC91c3IvYmluL3B5dGhvbgo+ID4gPiA+Pj4gbHJ3 eHJ3eHJ3eCAxIHJvb3Qgcm9vdCA3IEFwciAxNSAgMjAyMCAvdXNyL2Jpbi9weXRob24gLT4gcHl0 aG9uMwo+ID4gPiA+Pgo+ID4gPiA+PiBSaWdodCwganVzdCBmb3VuZCBhYm91dCB0aGlzIGluIHVu cmVsYXRlZCBjb250ZXh0IDotKSBbKl0KPiA+ID4gPj4KPiA+ID4gPj4gSG9wZSB0aGlzIHdpbGwg d29yayBvdXQuLi4KPiA+ID4gPj4KPiA+ID4gPj4gWypdIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXJn ZS1zeW50aGVzaXplci9zdXJnZS9wdWxsLzM2NTUKPiA+ID4gPgo+ID4gPiA+IE5vdyBJIGdldAo+ ID4gPiA+Cj4gPiA+ID4gVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgo+ID4gPiA+ ICAgRmlsZSAiL2hvbWUvamFya2tvL1Byb2plY3RzL3RwbS9vcHRlZS9lZGsyL0Jhc2VUb29scy9U ZXN0cy9SdW5UZXN0cy5weSIsIGxpbmUgMzYsIGluIDxtb2R1bGU+Cj4gPiA+ID4gICAgIGFsbFRl c3RzID0gR2V0QWxsVGVzdHNTdWl0ZSgpCj4gPiA+ID4gICBGaWxlICIvaG9tZS9qYXJra28vUHJv amVjdHMvdHBtL29wdGVlL2VkazIvQmFzZVRvb2xzL1Rlc3RzL1J1blRlc3RzLnB5IiwgbGluZSAz MywgaW4gR2V0QWxsVGVzdHNTdWl0ZQo+ID4gPiA+ICAgICByZXR1cm4gdW5pdHRlc3QuVGVzdFN1 aXRlKFtHZXRDVGVzdFN1aXRlKCksIEdldFB5dGhvblRlc3RTdWl0ZSgpXSkKPiA+ID4gPiAgIEZp bGUgIi9ob21lL2phcmtrby9Qcm9qZWN0cy90cG0vb3B0ZWUvZWRrMi9CYXNlVG9vbHMvVGVzdHMv UnVuVGVzdHMucHkiLCBsaW5lIDI1LCBpbiBHZXRDVGVzdFN1aXRlCj4gPiA+ID4gICAgIGltcG9y dCBDVG9vbHNUZXN0cwo+ID4gPiA+ICAgRmlsZSAiL2hvbWUvamFya2tvL1Byb2plY3RzL3RwbS9v cHRlZS9lZGsyL0Jhc2VUb29scy9UZXN0cy9DVG9vbHNUZXN0cy5weSIsIGxpbmUgMjIsIGluIDxt b2R1bGU+Cj4gPiA+ID4gICAgIGltcG9ydCBUaWFub0NvbXByZXNzCj4gPiA+ID4gICBGaWxlICIv aG9tZS9qYXJra28vUHJvamVjdHMvdHBtL29wdGVlL2VkazIvQmFzZVRvb2xzL1Rlc3RzL1RpYW5v Q29tcHJlc3MucHkiLCBsaW5lIDY5LCBpbiA8bW9kdWxlPgo+ID4gPiA+ICAgICBUaGVUZXN0U3Vp dGUgPSBUZXN0VG9vbHMuTWFrZVRoZVRlc3RTdWl0ZShsb2NhbHMoKSkKPiA+ID4gPiAgIEZpbGUg Ii9ob21lL2phcmtrby9Qcm9qZWN0cy90cG0vb3B0ZWUvZWRrMi9CYXNlVG9vbHMvVGVzdHMvVGVz dFRvb2xzLnB5IiwgbGluZSA0MywgaW4gTWFrZVRoZVRlc3RTdWl0ZQo+ID4gPiA+ICAgICBmb3Ig bmFtZSwgaXRlbSBpbiBsb2NhbEl0ZW1zLml0ZXJpdGVtcygpOgo+ID4gPiA+IEF0dHJpYnV0ZUVy cm9yOiAnZGljdCcgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ2l0ZXJpdGVtcycKPiA+ID4KPiA+ ID4gUmlnaHQuIFNhbWUgaGVyZSBhZnRlciByZW1vdmluZyBhbGwgdHJhY2VzIG9mIFB5dGhvbjIg ZnJvbSBteSBzeXN0ZW0gOi0vCj4gPiA+Cj4gPiA+IEEgY291cGxlIG9mIGZpeGVzIGFyZSBuZWVk ZWQ6Cj4gPiA+IDEuIEVESzIgbmVlZHMgdG8gYmUgdXBncmFkZWQgdG8gdGFnIG9yIGxhdGVyIFsx XQo+ID4gPiAyLiBUaGUgUFlUSE9OM19FTkFCTEUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmVlZHMg dG8gYmUgc2V0IHRvIFRSVUUgWzJdCj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20v T1AtVEVFL21hbmlmZXN0L3B1bGwvMTc3Cj4gPiA+IFsyXSBodHRwczovL2dpdGh1Yi5jb20vT1At VEVFL2J1aWxkL3B1bGwvNDUwCj4gPgo+ID4gQlRXLCBJcyB0byAqcmVhbGx5KiBpbXBvc3NpYmxl IHRvIHRlc3QgdGhpcyB3aXRoIHBsYWluIEJ1aWxkUm9vdC4gIEl0J3MKPiA+IG9idmlvdXMgdGhh dCB0aGlzIGZvcmtzIEJSIGludGVybmFsbHkuCj4gPgo+ID4gSSBtZWFuIGV2ZW4gaWYgSSBnZXQg dGhpcyB3b3JraW5nIG9uY2UsIHRoaXMgd2lsbCBmZWVscyBsaWtlIGEgY2x1bXN5IHdheQo+ID4g dG8gdGVzdCBBYXJjaDY0IHJlZ3VsYXJseS4gSSB1c2UgQnVpbGRSb290IGV4dGVuc2l2ZWx5IGZv ciB4ODYgdGVzdGluZy4gQW5kCj4gPiBpdCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8gc3Rh cnQgZG9pbmcgcmVndWxhciBBUk0gdGVzdGluZy4KPiAKPiBUaGUgbWFpbiByZWFzb24gdG8gZ3Vp ZGUgeW91IHRvd2FyZHMgdGhlIE9QLVRFRSBidWlsZCBzeXN0ZW0gaXMgdGhhdAo+IHlvdSB3aWxs IGJlIGFibGUgdG8gYnVpbGQgYWxsIHRoZSBmaXJtd2FyZXMgKFRGLUEsIE9QLVRFRSwgZWRrMiBl dGMuKQo+IGZyb20gc291cmNlLiBJZiB5b3UgZG9uJ3QgbmVlZCB0byByZWJ1aWxkIHRob3NlIHRo ZW4gSSBoYXZlIHByZXBhcmVkIGEKPiBmbGFzaCBmaXJtd2FyZSBiaW5hcnkgYmxvYiBmb3IgeW91 ciB0ZXN0aW5nIChhdHRhY2hlZCBmbGFzaC5iaW4pLiBTbwo+IFFlbXUgY21kbGluZSB3aWxsIGxv b2sgbGlrZToKPiAKPiAkIHFlbXUtc3lzdGVtLWFhcmNoNjQgLW5vZ3JhcGhpYyAtcyAtbWFjaGlu ZSB2aXJ0LHNlY3VyZT1vbiAtY3B1Cj4gY29ydGV4LWE1NyAta2VybmVsIG91dC9iaW4vSW1hZ2Ug LW5vLWFjcGkgLWFwcGVuZAo+ICdjb25zb2xlPXR0eUFNQTAsMzg0MDAga2VlcF9ib290Y29uIHJv b3Q9L2Rldi92ZGEyJyAtaW5pdHJkCj4gb3V0L2Jpbi9yb290ZnMuY3Bpby5neiAtc21wIDIgLW0g MTAyNCAtYmlvcyBmbGFzaC5iaW4gLWQgdW5pbXAKPiAKPiBIZXJlIHlvdSBjYW4gdXNlICJJbWFn ZSIgYW5kICJyb290ZnMuY3Bpby5neiIgZnJvbSB5b3VyIHBsYWluIEJSIGJ1aWxkcy4KPiAKPiBH aXZlIGl0IGEgdHJ5IGFuZCBsZXQgbWUga25vdyBpZiB0aGlzIHdvcmtzIGZvciB5b3UuCgpIaSwg c29ycnkgc29tZXRoaW5nIGhhcHBlbmVkIHdpdGggRXZvbHV0aW9uIHRoYXQgSSBkb24ndCB1bmRl cnN0YW5kCmFuZCBpdCBqdXN0IHNlbnQgdGhlIG1lc3NhZ2UgcXVvdGVkIHdpdGhvdXQgbXkgcmVz cG9uc2UuIFNob3VsZAphbHdheXMgc3RpY2sgdG8gbXV0dC4KClRoZXJlJ3MgYSBidWcgaW4gQnVp bGRSb290IHRoYXQgcHJldmVudHMgbWUgdGVzdGluZyByaWdodCBub3csIHdoZW4KeW91IHVzZSBM SU5VWF9PVkVSUklERV9TUkNESVIuIEJSIGRldmVsb3BlcnMgYXJlIGxvb2tpbmcgaW50byB0aGF0 LgoKSSdsbCB0ZXN0IHRoaXMgb25jZSB0aGVyZSdzIGEgcmVzb2x1dGlvbiBmb3IgdGhhdC4KCi9K YXJra28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK