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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E74A5CAC5B8 for ; Thu, 2 Oct 2025 15:31:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CXbuDqHyNr0Axu/6PSN7+RQwtMdRdurM4snJhEyDbgI=; b=dEnaKeICtvRmFJ wJvki6DGjSn1lu2QVpkUMFoCOBd/He8gvQgSKBnuiQwjp6evoK6uqSotCOgVy1W+J7GrI5/PNmUft cXPW8/YzG68hb/xjLctCOqSGp56qSj9Nc9ZHcWCDgqUAuuxNS58cUoXKq91XjVlEZzd1Ig5p8YIKH CvV5uImmJdX+tLOYzH7IygXkxg2i4KEt9v9WNPu8jntgm7MzXbDnTEmKvlPwmTqpr/Pabcf588zl+ jDkym33nKYPMWflYItsL/cZiEfvTiUN6dxnmpPPxklW7xgnVbFZllWa/ffuHSGuMUzkIZgDLyOgWJ xjj8ly4ZZgg2sAPOaDHA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGn-0000000Aj8s-25Jw; Thu, 02 Oct 2025 15:31:01 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGl-0000000Aj82-1J7a for linux-riscv@lists.infradead.org; Thu, 02 Oct 2025 15:31:00 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id EDC7448E3B; Thu, 2 Oct 2025 15:30:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B894DC4CEF9; Thu, 2 Oct 2025 15:30:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759419058; bh=RZRhAPwruDBinADBth5fXOP0gpo3S6ZqgzdwnXe25xI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BJTg+RgyOKe6pmjDZTGHq0zizZAAoDeqBotApCpsd2WDYvaVCNKq5H6yh3nTaBy3a evmdGCY4u5b4+xYM3ShAc2jFOaY8swmesZWGoD0OJpAeo9p6xsDACB44VXMpIay9kv FoU20f2l6465CRrLSAKE5M8eJ/GLs3EUe6AepiJKYubbStqedW9wJ+qXo9aTa+M89B lhZN+gAFXCIo/QEc8fizQFVf6k2qQqbgXxGy/UpKB6QTSrZQpw+T9WhIR+lPN3U8Tr 7Psn53rwGqR+79pV7YG0NlEA3CX4vOYLeYiwmm/BUZPh6ixt/ruTACc/fc2tRGYNJe WkRwR3/yMAhmw== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Conor Dooley , Paul Walmsley , Sasha Levin , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.17-6.16] riscv: cpufeature: add validation for zfa, zfh and zfhmin Date: Thu, 2 Oct 2025 11:30:11 -0400 Message-ID: <20251002153025.2209281-24-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251002153025.2209281-1-sashal@kernel.org> References: <20251002153025.2209281-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251002_083059_394986_75C4A64E X-CRM114-Status: GOOD ( 15.52 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgoKWyBVcHN0cmVhbSBj b21taXQgMmUyY2Y1NTgxZmNjYzU2MmY3ZmFmMTc0ZmZiOTg2NmZlZDVjYWZiZCBdCgpUaGVzZSBl eHRlbnNpb25zIGRlcGVuZHMgb24gdGhlIEYgb25lLiBBZGQgYSB2YWxpZGF0aW9uIGNhbGxiYWNr CmNoZWNraW5nIGZvciB0aGUgRiBleHRlbnNpb24gdG8gYmUgcHJlc2VudC4gTm93IHRoYXQgZXh0 ZW5zaW9ucyBhcmUKY29ycmVjdGx5IHJlcG9ydGVkIHVzaW5nIHRoZSBGL0QgcHJlc2VuY2UsIHdl IGNhbiByZW1vdmUgdGhlCmhhc19mcHUoKSBjaGVjayBpbiBod3Byb2JlX2lzYV9leHQwKCkuCgpT aWduZWQtb2ZmLWJ5OiBDbMOpbWVudCBMw6lnZXIgPGNsZWdlckByaXZvc2luYy5jb20+ClJldmll d2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPgpMaW5rOiBo dHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjUwNTI3MTAwMDAxLjMzMjg0LTEtY2xlZ2VyQHJp dm9zaW5jLmNvbQpTaWduZWQtb2ZmLWJ5OiBQYXVsIFdhbG1zbGV5IDxwandAa2VybmVsLm9yZz4K U2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJuZWwub3JnPgotLS0KCkxMTSBH ZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBtYXkgYmUgY29tcGxldGVseSBib2d1czoKCkJhc2VkIG9u IG15IGNvbXByZWhlbnNpdmUgYW5hbHlzaXMgb2YgdGhpcyBjb21taXQsIGhlcmUgaXMgbXkKYXNz ZXNzbWVudDoKCioqQmFja3BvcnQgU3RhdHVzOiBZRVMqKgoKIyMgRXh0ZW5zaXZlIEFuYWx5c2lz CgojIyMgV2hhdCBUaGlzIENvbW1pdCBGaXhlcwoKVGhpcyBjb21taXQgYWRkcmVzc2VzICoqaW5j b3JyZWN0IENQVSBmZWF0dXJlIHJlcG9ydGluZyoqIGZvciB0aHJlZQpSSVNDLVYgZmxvYXRpbmct cG9pbnQgZXh0ZW5zaW9ucyAoWkZBLCBaRkgsIFpGSE1JTikgdGhhdCB3ZXJlIGJlaW5nCmV4cG9z ZWQgdG8gdXNlcnNwYWNlIHdpdGhvdXQgcHJvcGVyIHZhbGlkYXRpb24gdGhhdCB0aGVpciByZXF1 aXJlZApkZXBlbmRlbmN5ICh0aGUgRiBleHRlbnNpb24pIGlzIHByZXNlbnQuCgojIyMgQ29kZSBD aGFuZ2VzIEFuYWx5c2lzCgpUaGUgY29tbWl0IG1ha2VzIHR3byBrZXkgY2hhbmdlczoKCjEuICoq SW4gYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jIChsaW5lcyA0NzctNDgwKSoqOgogICAt IENoYW5nZXMgWkZBLCBaRkgsIGFuZCBaRkhNSU4gZnJvbSBgX19SSVNDVl9JU0FfRVhUX0RBVEFg IHRvCiAgICAgYF9fUklTQ1ZfSVNBX0VYVF9EQVRBX1ZBTElEQVRFYAogICAtIEFkZHMgYHJpc2N2 X2V4dF9mX2RlcGVuZHNgIHZhbGlkYXRpb24gY2FsbGJhY2sgKGxpbmVzIDgzLTkwKSB3aGljaAog ICAgIGNoZWNrcyB0aGF0IHRoZSBGIGV4dGVuc2lvbiBpcyBhdmFpbGFibGUgYmVmb3JlIGFsbG93 aW5nIHRoZXNlCiAgICAgZXh0ZW5zaW9ucyB0byBiZSByZXBvcnRlZAogICAtIFRoZSB2YWxpZGF0 aW9uIGZ1bmN0aW9uIHJldHVybnMgYC1FUFJPQkVfREVGRVJgIGlmIEYgaXMgbm90CiAgICAgcHJl c2VudCwgcHJldmVudGluZyBpbmNvcnJlY3QgZmVhdHVyZSByZXBvcnRpbmcKCjIuICoqSW4gYXJj aC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUuYyAobGluZXMgMTU2LTE2MykqKjoKICAgLSBSZW1v dmVzIHRoZSBgaGFzX2ZwdSgpYCBjb25kaXRpb25hbCBjaGVjayB0aGF0IHdhcyBwcmV2aW91c2x5 CiAgICAgZ2F0aW5nIHRoZXNlIGV4dGVuc2lvbnMKICAgLSBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0 aGUgdmFsaWRhdGlvbiBpcyBub3cgcHJvcGVybHkgaGFuZGxlZCBpbgogICAgIGNwdWZlYXR1cmUu YyB0aHJvdWdoIHRoZSB2YWxpZGF0aW9uIGNhbGxiYWNrcwoKIyMjIFdoeSBUaGlzIGlzIGEgQnVn IEZpeAoKQWNjb3JkaW5nIHRvIHRoZSBSSVNDLVYgSVNBIHNwZWNpZmljYXRpb246Ci0gKipaRkEq KiAoQWRkaXRpb25hbCBGbG9hdGluZy1Qb2ludCBJbnN0cnVjdGlvbnMpIHJlcXVpcmVzIEYKLSAq KlpGSCoqIChIYWxmLVByZWNpc2lvbiBGbG9hdGluZy1Qb2ludCkgcmVxdWlyZXMgRgotICoqWkZI TUlOKiogKE1pbmltYWwgSGFsZi1QcmVjaXNpb24gRmxvYXRpbmctUG9pbnQpIHJlcXVpcmVzIEYK CldpdGhvdXQgdGhpcyBmaXgsIHRoZSBrZXJuZWwgY291bGQgaW5jb3JyZWN0bHkgcmVwb3J0IHRo ZXNlIGV4dGVuc2lvbnMKYXMgYXZhaWxhYmxlIGV2ZW4gd2hlbiB0aGUgYmFzZSBGIGV4dGVuc2lv biBpcyBub3QgcHJlc2VudC4gVGhpcwp2aW9sYXRlcyB0aGUgSVNBIHNwZWNpZmljYXRpb24gYW5k IGNvdWxkIGxlYWQgdG86CgoxLiAqKkluY29ycmVjdCB1c2Vyc3BhY2UgYmVoYXZpb3IqKjogQXBw bGljYXRpb25zIHVzaW5nIGh3cHJvYmUoKSBtaWdodAogICBkZXRlY3QgdGhlc2UgZXh0ZW5zaW9u cyBhbmQgYXR0ZW1wdCB0byB1c2UgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlbid0CiAgIHN1cHBvcnRl ZAoyLiAqKklsbGVnYWwgaW5zdHJ1Y3Rpb24gZXhjZXB0aW9ucyoqOiBJZiB1c2Vyc3BhY2UgdHJp ZXMgdG8gZXhlY3V0ZQogICB0aGVzZSBpbnN0cnVjdGlvbnMgd2l0aG91dCBGIHN1cHBvcnQKMy4g KipJbmNvbnNpc3RlbnQgQ1BVIGNhcGFiaWxpdHkgcmVwb3J0aW5nKio6IFRoZSBrZXJuZWwgd291 bGQgcmVwb3J0CiAgIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBoYXJkd2FyZSBkb2Vzbid0IGFjdHVh bGx5IHN1cHBvcnQKCiMjIyBDb250ZXh0IGZyb20gUmVsYXRlZCBDb21taXRzCgpUaGlzIGNvbW1p dCBpcyBwYXJ0IG9mIGEgbGFyZ2VyIHZhbGlkYXRpb24gZWZmb3J0OgotICoqZTE4NmMyOGRkYTEx ZSoqIChGZWIgMjAyNSk6IEludHJvZHVjZWQgYHJpc2N2X2V4dF9mX2RlcGVuZHNgCiAgdmFsaWRh dGlvbiBmb3IgWkZCRk1JTgotICoqMTJlN2ZiYjZhODRlNioqIChNYXIgMjAyNSk6IEFkZGVkIEYg JiBEIGV4dGVuc2lvbiB2YWxpZGF0aW9uIGNoZWNrcwotICoqMDA0OTYxODQzMzg5ZSoqIChBcHIg MjAyNSk6IE1lcmdlZCB0aGUgdmFsaWRhdGlvbiBzZXJpZXMKLSAqKjJlMmNmNTU4MWZjY2MqKiAo TWF5IDIwMjUpOiBUaGlzIGNvbW1pdCAtIGNvbXBsZXRlcyB0aGUgdmFsaWRhdGlvbgogIGJ5IGFk ZGluZyBpdCBmb3IgWkZBL1pGSC9aRkhNSU4gd2hpY2ggd2VyZSBtaXNzZWQKClRoZSBjb21taXQg bWVzc2FnZSBzdGF0ZXM6ICJOb3cgdGhhdCBleHRlbnNpb25zIGFyZSBjb3JyZWN0bHkgcmVwb3J0 ZWQKdXNpbmcgdGhlIEYvRCBwcmVzZW5jZSwgd2UgY2FuIHJlbW92ZSB0aGUgaGFzX2ZwdSgpIGNo ZWNrIiAtIGluZGljYXRpbmcKdGhpcyBpcyBjbGVhbnVwIHRoYXQgZm9sbG93cyB0aGUgcHJvcGVy IHZhbGlkYXRpb24gaW5mcmFzdHJ1Y3R1cmUgYmVpbmcKcHV0IGluIHBsYWNlLgoKIyMjIEJhY2tw b3J0aW5nIENyaXRlcmlhIEFzc2Vzc21lbnQKCuKchSAqKkZpeGVzIGEgYnVnIGFmZmVjdGluZyB1 c2VycyoqOiBZZXMgLSBpbmNvcnJlY3QgQ1BVIGZlYXR1cmUgcmVwb3J0aW5nCmNhbiBjYXVzZSB1 c2Vyc3BhY2UgYXBwbGljYXRpb25zIHRvIG1hbGZ1bmN0aW9uCgrinIUgKipTbWFsbCBhbmQgY29u dGFpbmVkKio6IFllcyAtIG9ubHkgMTQgbGluZXMgY2hhbmdlZCBhY3Jvc3MgMiBmaWxlcywKZm9s bG93aW5nIGFuIGVzdGFibGlzaGVkIHBhdHRlcm4KCuKchSAqKkNsZWFyIHNpZGUgZWZmZWN0cyoq OiBObyB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyAtIG1ha2VzIHJlcG9ydGluZwptb3JlIGNvcnJl Y3QKCuKchSAqKk5vIGFyY2hpdGVjdHVyYWwgY2hhbmdlcyoqOiBObyAtIHVzZXMgZXhpc3Rpbmcg dmFsaWRhdGlvbgppbmZyYXN0cnVjdHVyZQoK4pyFICoqTWluaW1hbCByZWdyZXNzaW9uIHJpc2sq KjogVmVyeSBsb3cgLSB0aGUgY2hhbmdlIG1ha2VzIGZlYXR1cmUKcmVwb3J0aW5nIG1vcmUgY29u c2VydmF0aXZlICh3b24ndCByZXBvcnQgZmVhdHVyZXMgdW5sZXNzIGRlcGVuZGVuY2llcwphcmUg bWV0KQoK4pyFICoqQ29uZmluZWQgdG8gc3Vic3lzdGVtKio6IFllcyAtIG9ubHkgYWZmZWN0cyBS SVNDLVYgYXJjaGl0ZWN0dXJlIGNvZGUKCiMjIyBDb25jbHVzaW9uCgpUaGlzIGNvbW1pdCBzaG91 bGQgYmUgYmFja3BvcnRlZCBiZWNhdXNlIGl0OgoxLiBGaXhlcyBpbmNvcnJlY3QgQ1BVIGNhcGFi aWxpdHkgcmVwb3J0aW5nIHRoYXQgdmlvbGF0ZXMgdGhlIFJJU0MtViBJU0EKICAgc3BlY2lmaWNh dGlvbgoyLiBQcmV2ZW50cyBwb3RlbnRpYWwgaWxsZWdhbCBpbnN0cnVjdGlvbiBleGNlcHRpb25z IGluIHVzZXJzcGFjZQozLiBJcyBzbWFsbCwgZm9jdXNlZCwgYW5kIGxvdy1yaXNrCjQuIEZvbGxv d3MgdGhlIHN0YWJsZSB0cmVlIHJ1bGVzIGZvciBpbXBvcnRhbnQgYnVnIGZpeGVzIHdpdGggbWlu aW1hbAogICByaXNrCjUuIENvbXBsZXRlcyBhIHZhbGlkYXRpb24gc2VyaWVzIHRoYXQgd2FzIGFs cmVhZHkgbWVyZ2VkIHVwc3RyZWFtCgpUaGUgZml4IGVuc3VyZXMgUklTQy1WIHN5c3RlbXMgY29y cmVjdGx5IHJlcG9ydCB0aGVpciBjYXBhYmlsaXRpZXMgdG8KdXNlcnNwYWNlLCB3aGljaCBpcyBj cml0aWNhbCBmb3IgcHJvcGVyIHN5c3RlbSBvcGVyYXRpb24uCgogYXJjaC9yaXNjdi9rZXJuZWwv Y3B1ZmVhdHVyZS5jICB8ICA2ICsrKy0tLQogYXJjaC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUu YyB8IDE0ICsrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwg MTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVy ZS5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jCmluZGV4IDc0M2Q1MzQxNTU3MmUu LjY3YjU5Njk5MzU3ZGEgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL2NwdWZlYXR1cmUu YworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKQEAgLTQ3NCwxMCArNDc0LDEw IEBAIGNvbnN0IHN0cnVjdCByaXNjdl9pc2FfZXh0X2RhdGEgcmlzY3ZfaXNhX2V4dFtdID0gewog CV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHphY2FzLCBSSVNDVl9JU0FfRVhUX1pBQ0FTKSwKIAlfX1JJ U0NWX0lTQV9FWFRfREFUQSh6YWxyc2MsIFJJU0NWX0lTQV9FWFRfWkFMUlNDKSwKIAlfX1JJU0NW X0lTQV9FWFRfREFUQSh6YXdycywgUklTQ1ZfSVNBX0VYVF9aQVdSUyksCi0JX19SSVNDVl9JU0Ff RVhUX0RBVEEoemZhLCBSSVNDVl9JU0FfRVhUX1pGQSksCisJX19SSVNDVl9JU0FfRVhUX0RBVEFf VkFMSURBVEUoemZhLCBSSVNDVl9JU0FfRVhUX1pGQSwgcmlzY3ZfZXh0X2ZfZGVwZW5kcyksCiAJ X19SSVNDVl9JU0FfRVhUX0RBVEFfVkFMSURBVEUoemZiZm1pbiwgUklTQ1ZfSVNBX0VYVF9aRkJG TUlOLCByaXNjdl9leHRfZl9kZXBlbmRzKSwKLQlfX1JJU0NWX0lTQV9FWFRfREFUQSh6ZmgsIFJJ U0NWX0lTQV9FWFRfWkZIKSwKLQlfX1JJU0NWX0lTQV9FWFRfREFUQSh6ZmhtaW4sIFJJU0NWX0lT QV9FWFRfWkZITUlOKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFUQV9WQUxJREFURSh6ZmgsIFJJU0NW X0lTQV9FWFRfWkZILCByaXNjdl9leHRfZl9kZXBlbmRzKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFU QV9WQUxJREFURSh6ZmhtaW4sIFJJU0NWX0lTQV9FWFRfWkZITUlOLCByaXNjdl9leHRfZl9kZXBl bmRzKSwKIAlfX1JJU0NWX0lTQV9FWFRfREFUQSh6Y2EsIFJJU0NWX0lTQV9FWFRfWkNBKSwKIAlf X1JJU0NWX0lTQV9FWFRfREFUQV9WQUxJREFURSh6Y2IsIFJJU0NWX0lTQV9FWFRfWkNCLCByaXNj dl9leHRfemNhX2RlcGVuZHMpLAogCV9fUklTQ1ZfSVNBX0VYVF9EQVRBX1ZBTElEQVRFKHpjZCwg UklTQ1ZfSVNBX0VYVF9aQ0QsIHJpc2N2X2V4dF96Y2RfdmFsaWRhdGUpLApkaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3N5c19o d3Byb2JlLmMKaW5kZXggMGIxNzBlMThhMmJlYi4uM2U5MjU5NzkwODE2ZSAxMDA2NDQKLS0tIGEv YXJjaC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUuYworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9z eXNfaHdwcm9iZS5jCkBAIC0xNTMsMTQgKzE1MywxMiBAQCBzdGF0aWMgdm9pZCBod3Byb2JlX2lz YV9leHQwKHN0cnVjdCByaXNjdl9od3Byb2JlICpwYWlyLAogCQkJRVhUX0tFWShaVktUKTsKIAkJ fQogCi0JCWlmIChoYXNfZnB1KCkpIHsKLQkJCUVYVF9LRVkoWkNEKTsKLQkJCUVYVF9LRVkoWkNG KTsKLQkJCUVYVF9LRVkoWkZBKTsKLQkJCUVYVF9LRVkoWkZCRk1JTik7Ci0JCQlFWFRfS0VZKFpG SCk7Ci0JCQlFWFRfS0VZKFpGSE1JTik7Ci0JCX0KKwkJRVhUX0tFWShaQ0QpOworCQlFWFRfS0VZ KFpDRik7CisJCUVYVF9LRVkoWkZBKTsKKwkJRVhUX0tFWShaRkJGTUlOKTsKKwkJRVhUX0tFWSha RkgpOworCQlFWFRfS0VZKFpGSE1JTik7CiAKIAkJaWYgKElTX0VOQUJMRUQoQ09ORklHX1JJU0NW X0lTQV9TVVBNKSkKIAkJCUVYVF9LRVkoU1VQTSk7Ci0tIAoyLjUxLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==