From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-dm3nam07on2061.outbound.protection.outlook.com ([40.107.95.61] helo=NAM02-DM3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mOJgk-009g1h-AD for kexec@lists.infradead.org; Thu, 09 Sep 2021 13:02:01 +0000 Subject: Re: [PATCH v3 0/8] Implement generic cc_platform_has() helper function References: From: Tom Lendacky Message-ID: <9b343e40-d892-b556-c5e6-fa46fae61079@amd.com> Date: Thu, 9 Sep 2021 08:01:49 -0500 In-Reply-To: Content-Language: en-US MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Christian Borntraeger , linux-kernel@vger.kernel.org, x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-graphics-maintainer@vmware.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-fsdevel@vger.kernel.org Cc: Borislav Petkov , Brijesh Singh , Joerg Roedel , Andi Kleen , Sathyanarayanan Kuppuswamy , Tianyu Lan , Christoph Hellwig , Andy Lutomirski , Ard Biesheuvel , Baoquan He , Benjamin Herrenschmidt , Daniel Vetter , Dave Hansen , Dave Young , David Airlie , Heiko Carstens , Ingo Molnar , Maarten Lankhorst , Maxime Ripard , Michael Ellerman , Paul Mackerras , Peter Zijlstra , Thomas Gleixner , Thomas Zimmermann , Vasily Gorbik , Will Deacon T24gOS85LzIxIDI6MzIgQU0sIENocmlzdGlhbiBCb3JudHJhZWdlciB3cm90ZToKPiAKPiAKPiBP biAwOS4wOS4yMSAwMDo1OCwgVG9tIExlbmRhY2t5IHdyb3RlOgo+PiBUaGlzIHBhdGNoIHNlcmll cyBwcm92aWRlcyBhIGdlbmVyaWMgaGVscGVyIGZ1bmN0aW9uLCBjY19wbGF0Zm9ybV9oYXMoKSwK Pj4gdG8gcmVwbGFjZSB0aGUgc21lX2FjdGl2ZSgpLCBzZXZfYWN0aXZlKCksIHNldl9lc19hY3Rp dmUoKSBhbmQKPj4gbWVtX2VuY3J5cHRfYWN0aXZlKCkgZnVuY3Rpb25zLgo+Pgo+PiBJdCBpcyBl eHBlY3RlZCB0aGF0IGFzIG5ldyBjb25maWRlbnRpYWwgY29tcHV0aW5nIHRlY2hub2xvZ2llcyBh cmUKPj4gYWRkZWQgdG8gdGhlIGtlcm5lbCwgdGhleSBjYW4gYWxsIGJlIGNvdmVyZWQgYnkgYSBz aW5nbGUgZnVuY3Rpb24gY2FsbAo+PiBpbnN0ZWFkIG9mIGEgY29sbGVjdGlvbiBvZiBzcGVjaWZp YyBmdW5jdGlvbiBjYWxscyBhbGwgY2FsbGVkIGZyb20gdGhlCj4+IHNhbWUgbG9jYXRpb25zLgo+ Pgo+PiBUaGUgcG93ZXJwYyBhbmQgczM5MCBwYXRjaGVzIGhhdmUgYmVlbiBjb21waWxlIHRlc3Rl ZCBvbmx5LiBDYW4gdGhlCj4+IGZvbGtzIGNvcGllZCBvbiB0aGlzIHNlcmllcyB2ZXJpZnkgdGhh dCBub3RoaW5nIGJyZWFrcyBmb3IgdGhlbS4KPiAKPiBJcyB0aGVyZSBhIHRyZWUgc29tZXdoZXJl PwoKSSBwdXNoZWQgaXQgdXAgdG8gZ2l0aHViOgoKaHR0cHM6Ly9naXRodWIuY29tL0FNREVTRS9s aW51eC90cmVlL3Byb3QtZ3Vlc3QtaGFzLXYzCgpUaGFua3MsClRvbQoKPiAKPiAgwqBBbHNvLAo+ PiBhIG5ldyBmaWxlLCBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvY2NfcGxhdGZvcm0u YywgaGFzIGJlZW4KPj4gY3JlYXRlZCBmb3IgcG93ZXJwYyB0byBob2xkIHRoZSBvdXQgb2YgbGlu ZSBmdW5jdGlvbi4KPj4KPj4gQ2M6IEFuZGkgS2xlZW4gPGFrQGxpbnV4LmludGVsLmNvbT4KPj4g Q2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0BrZXJuZWwub3JnPgo+PiBDYzogQXJkIEJpZXNoZXV2 ZWwgPGFyZGJAa2VybmVsLm9yZz4KPj4gQ2M6IEJhb3F1YW4gSGUgPGJoZUByZWRoYXQuY29tPgo+ PiBDYzogQmVuamFtaW4gSGVycmVuc2NobWlkdCA8YmVuaEBrZXJuZWwuY3Jhc2hpbmcub3JnPgo+ PiBDYzogQm9yaXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+Cj4+IENjOiBDaHJpc3RpYW4gQm9y bnRyYWVnZXIgPGJvcm50cmFlZ2VyQGRlLmlibS5jb20+Cj4+IENjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWxAZmZ3bGwuY2g+Cj4+IENjOiBEYXZlIEhhbnNlbiA8ZGF2ZS5oYW5zZW5AbGludXguaW50 ZWwuY29tPgo+PiBDYzogRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+Cj4+IENjOiBEYXZp ZCBBaXJsaWUgPGFpcmxpZWRAbGludXguaWU+Cj4+IENjOiBIZWlrbyBDYXJzdGVucyA8aGNhQGxp bnV4LmlibS5jb20+Cj4+IENjOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KPj4gQ2M6 IEpvZXJnIFJvZWRlbCA8am9yb0A4Ynl0ZXMub3JnPgo+PiBDYzogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IE1heGltZSBSaXBhcmQg PG1yaXBhcmRAa2VybmVsLm9yZz4KPj4gQ2M6IE1pY2hhZWwgRWxsZXJtYW4gPG1wZUBlbGxlcm1h bi5pZC5hdT4KPj4gQ2M6IFBhdWwgTWFja2VycmFzIDxwYXVsdXNAc2FtYmEub3JnPgo+PiBDYzog UGV0ZXIgWmlqbHN0cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgo+PiBDYzogVGhvbWFzIEdsZWl4 bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+Cj4+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1l cm1hbm5Ac3VzZS5kZT4KPj4gQ2M6IFZhc2lseSBHb3JiaWsgPGdvckBsaW51eC5pYm0uY29tPgo+ PiBDYzogVk13YXJlIEdyYXBoaWNzIDxsaW51eC1ncmFwaGljcy1tYWludGFpbmVyQHZtd2FyZS5j b20+Cj4+IENjOiBXaWxsIERlYWNvbiA8d2lsbEBrZXJuZWwub3JnPgo+PiBDYzogQ2hyaXN0b3Bo IEhlbGx3aWcgPGhjaEBpbmZyYWRlYWQub3JnPgo+Pgo+PiAtLS0KPj4KPj4gUGF0Y2hlcyBiYXNl ZCBvbjoKPj4gICAgCj4+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdC5rZXJuZWwub3JnJTJGcHViJTJGc2NtJTJGbGlu dXglMkZrZXJuZWwlMkZnaXQlMkZ0b3J2YWxkcyUyRmxpbnV4LmdpdCZhbXA7ZGF0YT0wNCU3QzAx JTdDdGhvbWFzLmxlbmRhY2t5JTQwYW1kLmNvbSU3QzVjZDcxZWYyYzJjZTRiOTAwNjA3MDhkOTcz NjQwMzU4JTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzY2 NzY5NTY1NzEyMTQzMiU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURB aUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFt cDtzZGF0YT1GVm5nclBTeENDUkt1dEFhSU10VTJOazhXQXJGUUIxZEVFMndON3Y4UmdBJTNEJmFt cDtyZXNlcnZlZD0wIAo+PiBtYXN0ZXIKPj4gwqDCoCA0YjkzYzU0NGU5MGUgKCJ0aHVuZGVyYm9s dDogdGVzdDogc3BsaXQgdXAgdGVzdCBjYXNlcyBpbiAKPj4gdGJfdGVzdF9jcmVkaXRfYWxsb2Nf YWxsIikKPj4KPj4gQ2hhbmdlcyBzaW5jZSB2MjoKPj4gLSBDaGFuZ2VkIHRoZSBuYW1lIGZyb20g cHJvdF9ndWVzdF9oYXMoKSB0byBjY19wbGF0Zm9ybV9oYXMoKQo+PiAtIFRvb2sgdGhlIGNjX3Bs YXRmb3JtX2hhcygpIGZ1bmN0aW9uIG91dCBvZiBsaW5lLiBDcmVhdGVkIHR3byBuZXcgZmlsZXMs Cj4+IMKgwqAgY2NfcGxhdGZvcm0uYywgaW4gYm90aCB4ODYgYW5kIHBwYyB0byBpbXBsbWVudCB0 aGUgZnVuY3Rpb24uIEFzIGEKPj4gwqDCoCByZXN1bHQsIGFsc28gY2hhbmdlZCB0aGUgYXR0cmli dXRlIGRlZmluZXMgaW50byBlbnVtcy4KPj4gLSBSZW1vdmVkIGFueSByZWNlaXZlZCBSZXZpZXdl ZC1ieSdzIGFuZCBBY2tlZC1ieSdzIGdpdmVuIGNoYW5nZXMgaW4gdGhpcwo+PiDCoMKgIHZlcnNp b24uCj4+IC0gQWRkZWQgcmVtb3ZhbCBvZiBuZXcgaW5zdGFuY2VzIG9mIG1lbV9lbmNyeXB0X2Fj dGl2ZSgpIHVzYWdlIGluIHBvd2VycGMKPj4gwqDCoCBhcmNoLgo+PiAtIEJhc2VkIG9uIGxhdGVz dCBMaW51eCB0cmVlIHRvIHBpY2sgdXAgcG93ZXJwYyBjaGFuZ2VzIHJlbGF0ZWQgdG8gdGhlCj4+ IMKgwqAgbWVtX2VuY3J5cHRfYWN0aXZlKCkgZnVuY3Rpb24uCj4+Cj4+IENoYW5nZXMgc2luY2Ug djE6Cj4+IC0gTW92ZWQgc29tZSBhcmNoIGlvcmVtYXAgZnVuY3Rpb25zIHdpdGhpbiAjaWZkZWYg Q09ORklHX0FNRF9NRU1fRU5DUllQVAo+PiDCoMKgIGluIHByZXAgZm9yIHVzZSBvZiBwcm90X2d1 ZXN0X2hhcygpIGJ5IFREWC4KPj4gLSBBZGRlZCB0eXBlIGluY2x1ZGVzIHRvIHRoZSB0aGUgcHJv dGVjdGVkX2d1ZXN0LmggaGVhZGVyIGZpbGUgdG8gcHJldmVudAo+PiDCoMKgIGJ1aWxkIGVycm9y cyBvdXRzaWRlIG9mIHg4Ni4KPj4gLSBNYWRlIGFtZF9wcm90X2d1ZXN0X2hhcygpIEVYUE9SVF9T WU1CT0xfR1BMCj4+IC0gVXNlZCBhbWRfcHJvdF9ndWVzdF9oYXMoKSBpbiBwbGFjZSBvZiBjaGVj a2luZyBzbWVfbWVfbWFzayBpbiB0aGUKPj4gwqDCoCBhcmNoL3g4Ni9tbS9tZW1fZW5jcnlwdC5j IGZpbGUuCj4+Cj4+IFRvbSBMZW5kYWNreSAoOCk6Cj4+IMKgwqAgeDg2L2lvcmVtYXA6IFNlbGVj dGl2ZWx5IGJ1aWxkIGFyY2ggb3ZlcnJpZGUgZW5jcnlwdGlvbiBmdW5jdGlvbnMKPj4gwqDCoCBt bTogSW50cm9kdWNlIGEgZnVuY3Rpb24gdG8gY2hlY2sgZm9yIGNvbmZpZGVudGlhbCBjb21wdXRp bmcgZmVhdHVyZXMKPj4gwqDCoCB4ODYvc2V2OiBBZGQgYW4geDg2IHZlcnNpb24gb2YgY2NfcGxh dGZvcm1faGFzKCkKPj4gwqDCoCBwb3dlcnBjL3BzZXJpZXMvc3ZtOiBBZGQgYSBwb3dlcnBjIHZl cnNpb24gb2YgY2NfcGxhdGZvcm1faGFzKCkKPj4gwqDCoCB4ODYvc21lOiBSZXBsYWNlIG9jY3Vy cmVuY2VzIG9mIHNtZV9hY3RpdmUoKSB3aXRoIGNjX3BsYXRmb3JtX2hhcygpCj4+IMKgwqAgeDg2 L3NldjogUmVwbGFjZSBvY2N1cnJlbmNlcyBvZiBzZXZfYWN0aXZlKCkgd2l0aCBjY19wbGF0Zm9y bV9oYXMoKQo+PiDCoMKgIHg4Ni9zZXY6IFJlcGxhY2Ugb2NjdXJyZW5jZXMgb2Ygc2V2X2VzX2Fj dGl2ZSgpIHdpdGggY2NfcGxhdGZvcm1faGFzKCkKPj4gwqDCoCB0cmVld2lkZTogUmVwbGFjZSB0 aGUgdXNlIG9mIG1lbV9lbmNyeXB0X2FjdGl2ZSgpIHdpdGgKPj4gwqDCoMKgwqAgY2NfcGxhdGZv cm1faGFzKCkKPj4KPj4gwqAgYXJjaC9LY29uZmlnwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArCj4+IMKgIGFyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9tZW1fZW5jcnlwdC5owqDCoMKgwqDCoMKgIHzCoCA1IC0tCj4+ IMKgIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9LY29uZmlnwqDCoMKgwqDCoMKgIHzC oCAxICsKPj4gwqAgYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL01ha2VmaWxlwqDCoMKg wqDCoCB8wqAgMiArCj4+IMKgIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9jY19wbGF0 Zm9ybS5jIHwgMjYgKysrKysrCj4+IMKgIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9z dm0uY8KgwqDCoMKgwqDCoMKgwqAgfMKgIDUgKy0KPj4gwqAgYXJjaC9zMzkwL2luY2x1ZGUvYXNt L21lbV9lbmNyeXB0LmjCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgLQo+PiDCoCBhcmNoL3g4Ni9L Y29uZmlnwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfMKgIDEgKwo+PiDCoCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDggKysKPj4gwqAgYXJjaC94ODYvaW5jbHVk ZS9hc20va2V4ZWMuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICstCj4+ IMKgIGFyY2gveDg2L2luY2x1ZGUvYXNtL21lbV9lbmNyeXB0LmjCoMKgwqDCoMKgwqDCoMKgwqDC oCB8IDE0ICstLS0KPj4gwqAgYXJjaC94ODYva2VybmVsL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArCj4+IMKgIGFyY2gveDg2L2tlcm5lbC9j Y19wbGF0Zm9ybS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMjEgKysrKysKPj4g wqAgYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfNjQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCA0ICstCj4+IMKgIGFyY2gveDg2L2tlcm5lbC9oZWFkNjQuY8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKy0KPj4gwqAgYXJjaC94ODYva2VybmVs L2t2bS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg MyArLQo+PiDCoCBhcmNoL3g4Ni9rZXJuZWwva3ZtY2xvY2suY8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArLQo+PiDCoCBhcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9r ZXhlY182NC5jwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxOSArKystLQo+PiDCoCBhcmNoL3g4Ni9r ZXJuZWwvcGNpLXN3aW90bGIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgOSAr LQo+PiDCoCBhcmNoL3g4Ni9rZXJuZWwvcmVsb2NhdGVfa2VybmVsXzY0LlPCoMKgwqDCoMKgwqDC oMKgIHzCoCAyICstCj4+IMKgIGFyY2gveDg2L2tlcm5lbC9zZXYuY8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDYgKy0KPj4gwqAgYXJjaC94ODYva3Zt L3N2bS9zdm0uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oCAzICstCj4+IMKgIGFyY2gveDg2L21tL2lvcmVtYXAuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxOCArKy0tCj4+IMKgIGFyY2gveDg2L21tL21lbV9l bmNyeXB0LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDU3ICsrKysr KystLS0tLS0KPj4gwqAgYXJjaC94ODYvbW0vbWVtX2VuY3J5cHRfaWRlbnRpdHkuY8KgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoCAzICstCj4+IMKgIGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArLQo+PiDCoCBhcmNoL3g4Ni9w bGF0Zm9ybS9lZmkvZWZpXzY0LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5ICst Cj4+IMKgIGFyY2gveDg2L3JlYWxtb2RlL2luaXQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgIDggKy0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rydi5jwqDCoMKgwqDCoCB8wqAgNCArLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vZHJt X2NhY2hlLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICstCj4+IMKg IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jwqDCoMKgwqDCoMKgwqDCoMKgIHzC oCA0ICstCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21zZy5jwqDCoMKgwqDC oMKgwqDCoMKgIHzCoCA2ICstCj4+IMKgIGRyaXZlcnMvaW9tbXUvYW1kL2luaXQuY8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDcgKy0KPj4gwqAgZHJpdmVycy9p b21tdS9hbWQvaW9tbXUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oCAzICstCj4+IMKgIGRyaXZlcnMvaW9tbXUvYW1kL2lvbW11X3YyLmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgMyArLQo+PiDCoCBkcml2ZXJzL2lvbW11L2lvbW11LmPCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICstCj4+IMKg IGZzL3Byb2Mvdm1jb3JlLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgNiArLQo+PiDCoCBpbmNsdWRlL2xpbnV4L2NjX3BsYXRmb3Jt LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgODggKysrKysrKysrKysrKysr KysrKysKPj4gwqAgaW5jbHVkZS9saW51eC9tZW1fZW5jcnlwdC5owqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgNCAtCj4+IMKgIGtlcm5lbC9kbWEvc3dpb3RsYi5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICstCj4+IMKg IDQwIGZpbGVzIGNoYW5nZWQsIDI2NyBpbnNlcnRpb25zKCspLCAxMTQgZGVsZXRpb25zKC0pCj4+ IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvY2Nf cGxhdGZvcm0uYwo+PiDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC94ODYva2VybmVsL2NjX3Bs YXRmb3JtLmMKPj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvY2NfcGxhdGZv cm0uaAo+Pgo+Pgo+PiBiYXNlLWNvbW1pdDogNGI5M2M1NDRlOTBlMmIyODMyNjE4MmQzMWVlMDA4 ZWI4MGUwMjA3NAo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo=