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 0AC7A1075260 for ; Thu, 19 Mar 2026 06:20:51 +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=X/vQny99caLmq60o63VchaAR42lzXgARt8mCDCxRASQ=; b=1oV/uBQ+HK/IAJ MbZ9W0Ypv+owtGLWkHsDo4EiMwxN3Z2t3MRYTpVr3Z3MUaUxHr294umjbPpmoZsuM3uW5ZMWhYkZ8 0rMqF76JmcyYsXS/pL1MAwOIB1C0dGqlzT0RGmWB8MV71qMeVFuTaNqetG5j0mo/ibcjSTxLzcX5Q s549vkcIDldKiPHT8fXpbnGfMWmzHKedkNuAozc4WiO7eSMyl4jj0xesGTlik1bmSD3ulXsNpcu9l V5Y2jaBxC1x5vrjVILIuW2NAH32rGGkl0muROWoTR6P+pRW0vgnrYQ4eravRcmh/VUQ90OTeXNoIQ kqaJsKARP7qwyUF0tctA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w36k9-0000000A11d-1XJJ; Thu, 19 Mar 2026 06:20:29 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w36j5-00000009zol-0qOV; Thu, 19 Mar 2026 06:19:23 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 83AA56185A; Thu, 19 Mar 2026 06:19:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD107C2BCC4; Thu, 19 Mar 2026 06:19:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773901162; bh=A17Or1mhILOD8g/OauvklfFcseA7rh2PNPCFHHxYHps=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rLuXxi5JU7e4lhDja+r/raWzll947pWc4MN189ypr8SfFoCCk+3TWuQLyZg5+aqur KtJWSfl0m9oJzz/nIxydzurMQxR/TXkO3B2H6vPc8ohT6HxPfCtyBjfA+jfePcJTLv iXWK9SuB8JbbOGVLAdzzUmS/keEKFG5TpF5elm5N3dm7pANpOfiyrfurP6rzophpj0 PgPEoS+zkDU/xnBynkSgZcrtmGPnxFbVyqi30/9F0B7YBbz8fyFYdGGZgkOat5RGXw RDkNDtSWLFnuvY0vc62CKN9KHXl5vaSu/UIq1pYiP609MOnMgpbb18sNPGGJfx/fIG WUzFLC7v2SSNg== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , "Jason A . Donenfeld" , Herbert Xu , linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, x86@kernel.org, Eric Biggers Subject: [PATCH 16/19] crypto: ghash - Remove ghash from crypto_shash API Date: Wed, 18 Mar 2026 23:17:17 -0700 Message-ID: <20260319061723.1140720-17-ebiggers@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260319061723.1140720-1-ebiggers@kernel.org> References: <20260319061723.1140720-1-ebiggers@kernel.org> MIME-Version: 1.0 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 Tm93IHRoYXQgdGhlcmUgYXJlIG5vIHVzZXJzIG9mIHRoZSAiZ2hhc2giIGNyeXB0b19zaGFzaCBh bGdvcml0aG0sCnJlbW92ZSBpdC4gIEdIQVNIIHJlbWFpbnMgc3VwcG9ydGVkIHZpYSB0aGUgbGli cmFyeSBBUEkuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIEJpZ2dlcnMgPGViaWdnZXJzQGtlcm5lbC5v cmc+Ci0tLQogY3J5cHRvL0tjb25maWcgICAgICAgICB8ICAgNyAtLQogY3J5cHRvL01ha2VmaWxl ICAgICAgICB8ICAgMSAtCiBjcnlwdG8vZ2hhc2gtZ2VuZXJpYy5jIHwgMTYyIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBjcnlwdG8vdGNyeXB0LmMgICAgICAgIHwg ICA5IC0tLQogY3J5cHRvL3Rlc3RtZ3IuYyAgICAgICB8ICAgNiAtLQogY3J5cHRvL3Rlc3RtZ3Iu aCAgICAgICB8IDEwOSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdl ZCwgMjk0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGNyeXB0by9naGFzaC1nZW5l cmljLmMKCmRpZmYgLS1naXQgYS9jcnlwdG8vS2NvbmZpZyBiL2NyeXB0by9LY29uZmlnCmluZGV4 IDEzY2NmNWFjMmYxYS4uZWZiNDgyZWExOTJkIDEwMDY0NAotLS0gYS9jcnlwdG8vS2NvbmZpZwor KysgYi9jcnlwdG8vS2NvbmZpZwpAQCAtODg2LDE3ICs4ODYsMTAgQEAgY29uZmlnIENSWVBUT19D TUFDCiAJc2VsZWN0IENSWVBUT19NQU5BR0VSCiAJaGVscAogCSAgQ01BQyAoQ2lwaGVyLWJhc2Vk IE1lc3NhZ2UgQXV0aGVudGljYXRpb24gQ29kZSkgYXV0aGVudGljYXRpb24KIAkgIG1vZGUgKE5J U1QgU1A4MDAtMzhCIGFuZCBJRVRGIFJGQzQ0OTMpCiAKLWNvbmZpZyBDUllQVE9fR0hBU0gKLQl0 cmlzdGF0ZSAiR0hBU0giCi0Jc2VsZWN0IENSWVBUT19IQVNICi0Jc2VsZWN0IENSWVBUT19MSUJf R0YxMjhNVUwKLQloZWxwCi0JICBHQ00gR0hBU0ggZnVuY3Rpb24gKE5JU1QgU1A4MDAtMzhEKQot CiBjb25maWcgQ1JZUFRPX0hNQUMKIAl0cmlzdGF0ZSAiSE1BQyAoS2V5ZWQtSGFzaCBNQUMpIgog CXNlbGVjdCBDUllQVE9fSEFTSAogCXNlbGVjdCBDUllQVE9fTUFOQUdFUgogCWhlbHAKZGlmZiAt LWdpdCBhL2NyeXB0by9NYWtlZmlsZSBiL2NyeXB0by9NYWtlZmlsZQppbmRleCAwNGUyNjkxMTc1 ODkuLjE3ZjRmY2E5YjllNSAxMDA2NDQKLS0tIGEvY3J5cHRvL01ha2VmaWxlCisrKyBiL2NyeXB0 by9NYWtlZmlsZQpAQCAtMTY5LDExICsxNjksMTAgQEAgQ0ZMQUdTX2ppdHRlcmVudHJvcHkubyA9 IC1PMAogS0FTQU5fU0FOSVRJWkVfaml0dGVyZW50cm9weS5vID0gbgogVUJTQU5fU0FOSVRJWkVf aml0dGVyZW50cm9weS5vID0gbgogaml0dGVyZW50cm9weV9ybmcteSA6PSBqaXR0ZXJlbnRyb3B5 Lm8gaml0dGVyZW50cm9weS1rY2FwaS5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0pJVFRFUkVOVFJP UFlfVEVTVElOVEVSRkFDRSkgKz0gaml0dGVyZW50cm9weS10ZXN0aW5nLm8KIG9iai0kKENPTkZJ R19DUllQVE9fQkVOQ0hNQVJLKSArPSB0Y3J5cHQubwotb2JqLSQoQ09ORklHX0NSWVBUT19HSEFT SCkgKz0gZ2hhc2gtZ2VuZXJpYy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX1VTRVJfQVBJKSArPSBh Zl9hbGcubwogb2JqLSQoQ09ORklHX0NSWVBUT19VU0VSX0FQSV9IQVNIKSArPSBhbGdpZl9oYXNo Lm8KIG9iai0kKENPTkZJR19DUllQVE9fVVNFUl9BUElfU0tDSVBIRVIpICs9IGFsZ2lmX3NrY2lw aGVyLm8KIG9iai0kKENPTkZJR19DUllQVE9fVVNFUl9BUElfUk5HKSArPSBhbGdpZl9ybmcubwog b2JqLSQoQ09ORklHX0NSWVBUT19VU0VSX0FQSV9BRUFEKSArPSBhbGdpZl9hZWFkLm8KZGlmZiAt LWdpdCBhL2NyeXB0by9naGFzaC1nZW5lcmljLmMgYi9jcnlwdG8vZ2hhc2gtZ2VuZXJpYy5jCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTgwM2MyNDljMTIuLjAwMDAwMDAwMDAwMAot LS0gYS9jcnlwdG8vZ2hhc2gtZ2VuZXJpYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAg QEAKLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKLS8qCi0gKiBHSEFT SDogaGFzaCBmdW5jdGlvbiBmb3IgR0NNIChHYWxvaXMvQ291bnRlciBNb2RlKS4KLSAqCi0gKiBD b3B5cmlnaHQgKGMpIDIwMDcgTm9raWEgU2llbWVucyBOZXR3b3JrcyAtIE1pa2tvIEhlcnJhbmVu IDxtaDFAaWtpLmZpPgotICogQ29weXJpZ2h0IChjKSAyMDA5IEludGVsIENvcnAuCi0gKiAgIEF1 dGhvcjogSHVhbmcgWWluZyA8eWluZy5odWFuZ0BpbnRlbC5jb20+Ci0gKi8KLQotLyoKLSAqIEdI QVNIIGlzIGEga2V5ZWQgaGFzaCBmdW5jdGlvbiB1c2VkIGluIEdDTSBhdXRoZW50aWNhdGlvbiB0 YWcgZ2VuZXJhdGlvbi4KLSAqCi0gKiBUaGUgb3JpZ2luYWwgR0NNIHBhcGVyIFsxXSBwcmVzZW50 cyBHSEFTSCBhcyBhIGZ1bmN0aW9uIEdIQVNIKEgsIEEsIEMpIHdoaWNoCi0gKiB0YWtlcyBhIDE2 LWJ5dGUgaGFzaCBrZXkgSCwgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEgQSwgYW5kIGEg Y2lwaGVydGV4dAotICogQy4gIEl0IGZvcm1hdHMgQSBhbmQgQyBpbnRvIGEgc2luZ2xlIGJ5dGUg c3RyaW5nIFgsIGludGVycHJldHMgWCBhcyBhCi0gKiBwb2x5bm9taWFsIG92ZXIgR0YoMl4xMjgp LCBhbmQgZXZhbHVhdGVzIHRoaXMgcG9seW5vbWlhbCBhdCB0aGUgcG9pbnQgSC4KLSAqCi0gKiBI b3dldmVyLCB0aGUgTklTVCBzdGFuZGFyZCBmb3IgR0NNIFsyXSBwcmVzZW50cyBHSEFTSCBhcyBH SEFTSChILCBYKSB3aGVyZSBYCi0gKiBpcyB0aGUgYWxyZWFkeS1mb3JtYXR0ZWQgYnl0ZSBzdHJp bmcgY29udGFpbmluZyBib3RoIEEgYW5kIEMuCi0gKgotICogImdoYXNoIiBpbiB0aGUgTGludXgg Y3J5cHRvIEFQSSB1c2VzIHRoZSAnWCcgKHByZS1mb3JtYXR0ZWQpIGNvbnZlbnRpb24sCi0gKiBz aW5jZSB0aGUgQVBJIHN1cHBvcnRzIG9ubHkgYSBzaW5nbGUgZGF0YSBzdHJlYW0gcGVyIGhhc2gu ICBUaHVzLCB0aGUKLSAqIGZvcm1hdHRpbmcgb2YgJ0EnIGFuZCAnQycgaXMgZG9uZSBpbiB0aGUg ImdjbSIgdGVtcGxhdGUsIG5vdCBpbiAiZ2hhc2giLgotICoKLSAqIFRoZSByZWFzb24gImdoYXNo IiBpcyBzZXBhcmF0ZSBmcm9tICJnY20iIGlzIHRvIGFsbG93ICJnY20iIHRvIHVzZSBhbgotICog YWNjZWxlcmF0ZWQgImdoYXNoIiB3aGVuIGEgc3RhbmRhbG9uZSBhY2NlbGVyYXRlZCAiZ2NtKGFl cykiIGlzIHVuYXZhaWxhYmxlLgotICogSXQgaXMgZ2VuZXJhbGx5IGluYXBwcm9wcmlhdGUgdG8g dXNlICJnaGFzaCIgZm9yIG90aGVyIHB1cnBvc2VzLCBzaW5jZSBpdCBpcwotICogYW4gIs61LWFs bW9zdC1YT1ItdW5pdmVyc2FsIGhhc2ggZnVuY3Rpb24iLCBub3QgYSBjcnlwdG9ncmFwaGljIGhh c2ggZnVuY3Rpb24uCi0gKiBJdCBjYW4gb25seSBiZSB1c2VkIHNlY3VyZWx5IGluIGNyeXB0byBt b2RlcyBzcGVjaWFsbHkgZGVzaWduZWQgdG8gdXNlIGl0LgotICoKLSAqIFsxXSBUaGUgR2Fsb2lz L0NvdW50ZXIgTW9kZSBvZiBPcGVyYXRpb24gKEdDTSkKLSAqICAgICAoaHR0cDovL2NpdGVzZWVy eC5pc3QucHN1LmVkdS92aWV3ZG9jL2Rvd25sb2FkP2RvaT0xMC4xLjEuNjk0LjY5NSZyZXA9cmVw MSZ0eXBlPXBkZikKLSAqIFsyXSBSZWNvbW1lbmRhdGlvbiBmb3IgQmxvY2sgQ2lwaGVyIE1vZGVz IG9mIE9wZXJhdGlvbjogR2Fsb2lzL0NvdW50ZXIgTW9kZSAoR0NNKSBhbmQgR01BQwotICogICAg IChodHRwczovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL2RldGFpbC9zcC84MDAtMzhkL2Zp bmFsKQotICovCi0KLSNpbmNsdWRlIDxjcnlwdG8vZ2YxMjhtdWwuaD4KLSNpbmNsdWRlIDxjcnlw dG8vZ2hhc2guaD4KLSNpbmNsdWRlIDxjcnlwdG8vaW50ZXJuYWwvaGFzaC5oPgotI2luY2x1ZGUg PGNyeXB0by91dGlscy5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotI2luY2x1ZGUgPGxpbnV4 L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3N0 cmluZy5oPgotCi1zdGF0aWMgaW50IGdoYXNoX2luaXQoc3RydWN0IHNoYXNoX2Rlc2MgKmRlc2Mp Ci17Ci0Jc3RydWN0IGdoYXNoX2Rlc2NfY3R4ICpkY3R4ID0gc2hhc2hfZGVzY19jdHgoZGVzYyk7 Ci0KLQltZW1zZXQoZGN0eCwgMCwgc2l6ZW9mKCpkY3R4KSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQot c3RhdGljIGludCBnaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19zaGFzaCAqdGZtLAotCQkJY29u c3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKLXsKLQlzdHJ1Y3QgZ2hhc2hfY3R4ICpj dHggPSBjcnlwdG9fc2hhc2hfY3R4KHRmbSk7Ci0JYmUxMjggazsKLQotCWlmIChrZXlsZW4gIT0g R0hBU0hfQkxPQ0tfU0laRSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAoY3R4LT5nZjEyOCkK LQkJZ2YxMjhtdWxfZnJlZV80ayhjdHgtPmdmMTI4KTsKLQotCUJVSUxEX0JVR19PTihzaXplb2Yo aykgIT0gR0hBU0hfQkxPQ0tfU0laRSk7Ci0JbWVtY3B5KCZrLCBrZXksIEdIQVNIX0JMT0NLX1NJ WkUpOyAvKiBhdm9pZCB2aW9sYXRpbmcgYWxpZ25tZW50IHJ1bGVzICovCi0JY3R4LT5nZjEyOCA9 IGdmMTI4bXVsX2luaXRfNGtfbGxlKCZrKTsKLQltZW16ZXJvX2V4cGxpY2l0KCZrLCBHSEFTSF9C TE9DS19TSVpFKTsKLQotCWlmICghY3R4LT5nZjEyOCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQly ZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBnaGFzaF91cGRhdGUoc3RydWN0IHNoYXNoX2Rlc2Mg KmRlc2MsCi0JCQkgY29uc3QgdTggKnNyYywgdW5zaWduZWQgaW50IHNyY2xlbikKLXsKLQlzdHJ1 Y3QgZ2hhc2hfZGVzY19jdHggKmRjdHggPSBzaGFzaF9kZXNjX2N0eChkZXNjKTsKLQlzdHJ1Y3Qg Z2hhc2hfY3R4ICpjdHggPSBjcnlwdG9fc2hhc2hfY3R4KGRlc2MtPnRmbSk7Ci0JdTggKmRzdCA9 IGRjdHgtPmJ1ZmZlcjsKLQotCWRvIHsKLQkJY3J5cHRvX3hvcihkc3QsIHNyYywgR0hBU0hfQkxP Q0tfU0laRSk7Ci0JCWdmMTI4bXVsXzRrX2xsZSgoYmUxMjggKilkc3QsIGN0eC0+Z2YxMjgpOwot CQlzcmMgKz0gR0hBU0hfQkxPQ0tfU0laRTsKLQkJc3JjbGVuIC09IEdIQVNIX0JMT0NLX1NJWkU7 Ci0JfSB3aGlsZSAoc3JjbGVuID49IEdIQVNIX0JMT0NLX1NJWkUpOwotCi0JcmV0dXJuIHNyY2xl bjsKLX0KLQotc3RhdGljIHZvaWQgZ2hhc2hfZmx1c2goc3RydWN0IHNoYXNoX2Rlc2MgKmRlc2Ms IGNvbnN0IHU4ICpzcmMsCi0JCQl1bnNpZ25lZCBpbnQgbGVuKQotewotCXN0cnVjdCBnaGFzaF9j dHggKmN0eCA9IGNyeXB0b19zaGFzaF9jdHgoZGVzYy0+dGZtKTsKLQlzdHJ1Y3QgZ2hhc2hfZGVz Y19jdHggKmRjdHggPSBzaGFzaF9kZXNjX2N0eChkZXNjKTsKLQl1OCAqZHN0ID0gZGN0eC0+YnVm ZmVyOwotCi0JaWYgKGxlbikgewotCQljcnlwdG9feG9yKGRzdCwgc3JjLCBsZW4pOwotCQlnZjEy OG11bF80a19sbGUoKGJlMTI4ICopZHN0LCBjdHgtPmdmMTI4KTsKLQl9Ci19Ci0KLXN0YXRpYyBp bnQgZ2hhc2hfZmludXAoc3RydWN0IHNoYXNoX2Rlc2MgKmRlc2MsIGNvbnN0IHU4ICpzcmMsCi0J CSAgICAgICB1bnNpZ25lZCBpbnQgbGVuLCB1OCAqZHN0KQotewotCXN0cnVjdCBnaGFzaF9kZXNj X2N0eCAqZGN0eCA9IHNoYXNoX2Rlc2NfY3R4KGRlc2MpOwotCXU4ICpidWYgPSBkY3R4LT5idWZm ZXI7Ci0KLQlnaGFzaF9mbHVzaChkZXNjLCBzcmMsIGxlbik7Ci0JbWVtY3B5KGRzdCwgYnVmLCBH SEFTSF9CTE9DS19TSVpFKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBnaGFzaF9l eGl0X3RmbShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQotewotCXN0cnVjdCBnaGFzaF9jdHggKmN0 eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7Ci0JaWYgKGN0eC0+Z2YxMjgpCi0JCWdmMTI4bXVsX2Zy ZWVfNGsoY3R4LT5nZjEyOCk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc2hhc2hfYWxnIGdoYXNoX2Fs ZyA9IHsKLQkuZGlnZXN0c2l6ZQk9IEdIQVNIX0RJR0VTVF9TSVpFLAotCS5pbml0CQk9IGdoYXNo X2luaXQsCi0JLnVwZGF0ZQkJPSBnaGFzaF91cGRhdGUsCi0JLmZpbnVwCQk9IGdoYXNoX2ZpbnVw LAotCS5zZXRrZXkJCT0gZ2hhc2hfc2V0a2V5LAotCS5kZXNjc2l6ZQk9IHNpemVvZihzdHJ1Y3Qg Z2hhc2hfZGVzY19jdHgpLAotCS5iYXNlCQk9IHsKLQkJLmNyYV9uYW1lCQk9ICJnaGFzaCIsCi0J CS5jcmFfZHJpdmVyX25hbWUJPSAiZ2hhc2gtZ2VuZXJpYyIsCi0JCS5jcmFfcHJpb3JpdHkJCT0g MTAwLAotCQkuY3JhX2ZsYWdzCQk9IENSWVBUT19BSEFTSF9BTEdfQkxPQ0tfT05MWSwKLQkJLmNy YV9ibG9ja3NpemUJCT0gR0hBU0hfQkxPQ0tfU0laRSwKLQkJLmNyYV9jdHhzaXplCQk9IHNpemVv ZihzdHJ1Y3QgZ2hhc2hfY3R4KSwKLQkJLmNyYV9tb2R1bGUJCT0gVEhJU19NT0RVTEUsCi0JCS5j cmFfZXhpdAkJPSBnaGFzaF9leGl0X3RmbSwKLQl9LAotfTsKLQotc3RhdGljIGludCBfX2luaXQg Z2hhc2hfbW9kX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gY3J5cHRvX3JlZ2lzdGVyX3NoYXNoKCZn aGFzaF9hbGcpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZ2hhc2hfbW9kX2V4aXQodm9pZCkK LXsKLQljcnlwdG9fdW5yZWdpc3Rlcl9zaGFzaCgmZ2hhc2hfYWxnKTsKLX0KLQotbW9kdWxlX2lu aXQoZ2hhc2hfbW9kX2luaXQpOwotbW9kdWxlX2V4aXQoZ2hhc2hfbW9kX2V4aXQpOwotCi1NT0RV TEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIkdIQVNIIGhhc2ggZnVuY3Rp b24iKTsKLU1PRFVMRV9BTElBU19DUllQVE8oImdoYXNoIik7Ci1NT0RVTEVfQUxJQVNfQ1JZUFRP KCJnaGFzaC1nZW5lcmljIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vdGNyeXB0LmMgYi9jcnlwdG8v dGNyeXB0LmMKaW5kZXggYWRlZDM3NTQ2MTM3Li4xNzczZjVmNzEzNTEgMTAwNjQ0Ci0tLSBhL2Ny eXB0by90Y3J5cHQuYworKysgYi9jcnlwdG8vdGNyeXB0LmMKQEAgLTE2NDgsMTQgKzE2NDgsMTAg QEAgc3RhdGljIGludCBkb190ZXN0KGNvbnN0IGNoYXIgKmFsZywgdTMyIHR5cGUsIHUzMiBtYXNr LCBpbnQgbSwgdTMyIG51bV9tYikKIAogCWNhc2UgNDU6CiAJCXJldCA9IG1pbihyZXQsIHRjcnlw dF90ZXN0KCJyZmM0MzA5KGNjbShhZXMpKSIpKTsKIAkJYnJlYWs7CiAKLQljYXNlIDQ2OgotCQly ZXQgPSBtaW4ocmV0LCB0Y3J5cHRfdGVzdCgiZ2hhc2giKSk7Ci0JCWJyZWFrOwotCiAJY2FzZSA0 ODoKIAkJcmV0ID0gbWluKHJldCwgdGNyeXB0X3Rlc3QoInNoYTMtMjI0IikpOwogCQlicmVhazsK IAogCWNhc2UgNDk6CkBAIC0yMjQ5LDE1ICsyMjQ1LDEwIEBAIHN0YXRpYyBpbnQgZG9fdGVzdChj b25zdCBjaGFyICphbGcsIHUzMiB0eXBlLCB1MzIgbWFzaywgaW50IG0sIHUzMiBudW1fbWIpCiAJ CWZhbGx0aHJvdWdoOwogCWNhc2UgMzE3OgogCQl0ZXN0X2hhc2hfc3BlZWQoImJsYWtlMmItNTEy Iiwgc2VjLCBnZW5lcmljX2hhc2hfc3BlZWRfdGVtcGxhdGUpOwogCQlpZiAobW9kZSA+IDMwMCAm JiBtb2RlIDwgNDAwKSBicmVhazsKIAkJZmFsbHRocm91Z2g7Ci0JY2FzZSAzMTg6Ci0JCWtsZW4g PSAxNjsKLQkJdGVzdF9oYXNoX3NwZWVkKCJnaGFzaCIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVk X3RlbXBsYXRlKTsKLQkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7Ci0JCWZh bGx0aHJvdWdoOwogCWNhc2UgMzE5OgogCQl0ZXN0X2hhc2hfc3BlZWQoImNyYzMyYyIsIHNlYywg Z2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKIAkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8 IDQwMCkgYnJlYWs7CiAJCWZhbGx0aHJvdWdoOwogCWNhc2UgMzIyOgpkaWZmIC0tZ2l0IGEvY3J5 cHRvL3Rlc3RtZ3IuYyBiL2NyeXB0by90ZXN0bWdyLmMKaW5kZXggMGIwYWQzNThlMDkxLi5kZDAx Zjg2ZGQ2ZmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by90ZXN0bWdyLmMKKysrIGIvY3J5cHRvL3Rlc3Rt Z3IuYwpAQCAtNDk4MywxNiArNDk4MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFsZ190ZXN0 X2Rlc2MgYWxnX3Rlc3RfZGVzY3NbXSA9IHsKIAkJLmdlbmVyaWNfZHJpdmVyID0gImdjbV9iYXNl KGN0cihzbTQtZ2VuZXJpYyksZ2hhc2gtbGliKSIsCiAJCS50ZXN0ID0gYWxnX3Rlc3RfYWVhZCwK IAkJLnN1aXRlID0gewogCQkJLmFlYWQgPSBfX1ZFQ1Moc200X2djbV90dl90ZW1wbGF0ZSkKIAkJ fQotCX0sIHsKLQkJLmFsZyA9ICJnaGFzaCIsCi0JCS50ZXN0ID0gYWxnX3Rlc3RfaGFzaCwKLQkJ LnN1aXRlID0gewotCQkJLmhhc2ggPSBfX1ZFQ1MoZ2hhc2hfdHZfdGVtcGxhdGUpCi0JCX0KIAl9 LCB7CiAJCS5hbGcgPSAiaGN0cjIoYWVzKSIsCiAJCS5nZW5lcmljX2RyaXZlciA9ICJoY3RyMl9i YXNlKHhjdHIoYWVzLWxpYikscG9seXZhbC1saWIpIiwKIAkJLnRlc3QgPSBhbGdfdGVzdF9za2Np cGhlciwKIAkJLnN1aXRlID0gewpkaWZmIC0tZ2l0IGEvY3J5cHRvL3Rlc3RtZ3IuaCBiL2NyeXB0 by90ZXN0bWdyLmgKaW5kZXggMWM2OWMxMWMwY2RiLi5hMzI3NGFiYWNmZGUgMTAwNjQ0Ci0tLSBh L2NyeXB0by90ZXN0bWdyLmgKKysrIGIvY3J5cHRvL3Rlc3RtZ3IuaApAQCAtNjE4MSwxMTkgKzYx ODEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoYXNoX3Rlc3R2ZWMgd3AyNTZfdHZfdGVtcGxh dGVbXSA9IHsKIAkJCSAgIlx4OEFceDdBXHg1QVx4NTJceERFXHhFRVx4NjVceDYyIgogCQkJICAi XHgwN1x4QzVceDYyXHhGOVx4ODhceEU5XHg1Q1x4NjkiLAogCX0sCiB9OwogCi1zdGF0aWMgY29u c3Qgc3RydWN0IGhhc2hfdGVzdHZlYyBnaGFzaF90dl90ZW1wbGF0ZVtdID0KLXsKLQl7Ci0JCS5r ZXkJPSAiXHhkZlx4YTZceGJmXHg0ZFx4ZWRceDgxXHhkYlx4MDMiCi0JCQkgICJceGZmXHhjYVx4 ZmZceDk1XHhmOFx4MzBceGYwXHg2MSIsCi0JCS5rc2l6ZQk9IDE2LAotCQkucGxhaW50ZXh0ID0g Ilx4OTVceDJiXHgyYVx4NTZceGE1XHg2MFx4MDRhXHhjMCIKLQkJCSAgICAgIlx4YjNceDJiXHg2 Nlx4NTZceGEwXHg1Ylx4NDBceGI2IiwKLQkJLnBzaXplCT0gMTYsCi0JCS5kaWdlc3QJPSAiXHhk YVx4NTNceGViXHgwYVx4ZDJceGM1XHg1Ylx4YjYiCi0JCQkgICJceDRmXHhjNFx4ODBceDJjXHhj M1x4ZmVceGRhXHg2MCIsCi0JfSwgewotCQkua2V5CT0gIlx4MGJceDBiXHgwYlx4MGJceDBiXHgw Ylx4MGJceDBiIgotCQkJICAiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGIiLAotCQku a3NpemUJPSAxNiwKLQkJLnBsYWludGV4dCA9ICJ3aGF0IGRvIHlhIHdhbnQgZm9yIG5vdGhpbmc/ IiwKLQkJLnBzaXplCT0gMjgsCi0JCS5kaWdlc3QJPSAiXHgzZVx4MWZceDVjXHg0ZFx4NjVceGYw XHhlZlx4Y2UiCi0JCQkgICJceDBkXHg2MVx4MDZceDI3XHg2Nlx4NTFceGQ1XHhlMiIsCi0JfSwg ewotCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgotCQkJICAiXHhh YVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiLAotCQkua3NpemUJPSAxNiwKLQkJLnBsYWlu dGV4dCA9ICJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQi Ci0JCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhk ZCIKLQkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRc eGRkIgotCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhk ZCIsCi0JCS5wc2l6ZQk9IDUwLAotCQkuZGlnZXN0CT0gIlx4ZmJceDQ5XHg4YVx4MzZceGUxXHg5 Nlx4ZTFceDk2IgotCQkJICAiXHhlMVx4OTZceGUxXHg5Nlx4ZTFceDk2XHhlMVx4OTYiLAotCX0s IHsKLQkJLmtleQk9ICJceGRhXHg1M1x4ZWJceDBhXHhkMlx4YzVceDViXHhiNiIKLQkJCSAgIlx4 NGZceGM0XHg4MFx4MmNceGMzXHhmZVx4ZGFceDYwIiwKLQkJLmtzaXplCT0gMTYsCi0JCS5wbGFp bnRleHQgPSAiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNk IgotCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4 Y2QiCi0JCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNk XHhjZCIKLQkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4 Y2QiLAotCQkucHNpemUJPSA1MCwKLQkJLmRpZ2VzdAk9ICJceDJiXHg1Y1x4MGNceDdmXHg1Mlx4 ZDFceDYwXHhjMiIKLQkJCSAgIlx4NDlceGVkXHg2ZVx4MzJceDdhXHhhOVx4YmVceDA4IiwKLQl9 LCB7Ci0JCS5rZXkJPSAiXHg5NVx4MmJceDJhXHg1Nlx4YTVceDYwXHgwNGFceGMwIgotCQkJICAi XHhiM1x4MmJceDY2XHg1Nlx4YTBceDViXHg0MFx4YjYiLAotCQkua3NpemUJPSAxNiwKLQkJLnBs YWludGV4dCA9ICJUZXN0IFdpdGggVHJ1bmNhdGlvbiIsCi0JCS5wc2l6ZQk9IDIwLAotCQkuZGln ZXN0CT0gIlx4ZjhceDk0XHg4N1x4MmFceDRiXHg2M1x4OTlceDI4IgotCQkJICAiXHgyM1x4Zjdc eDkzXHhmN1x4MTlceGY1XHg5Nlx4ZDkiLAotCX0sIHsKLQkJLmtleQk9ICJceDBhXHgxYlx4MmNc eDNkXHg0ZVx4NWZceDY0XHg3MSIKLQkJCSJceDgyXHg5M1x4YTRceGI1XHhjNlx4ZDdceGU4XHhm OSIsCi0JCS5rc2l6ZQk9IDE2LAotCQkucGxhaW50ZXh0ID0gIlx4NTZceDZmXHg3Mlx4MjBceDZj XHg2MVx4NzVceDc0IgotCQkJIlx4NjVceDcyXHgyMFx4NGNceDYxXHg3NVx4NzNceDYzIgotCQkJ Ilx4NjhceDY1XHg2ZVx4MjBceDc1XHg2ZVx4NjRceDIwIgotCQkJIlx4NTNceDc0XHg2MVx4NzVc eDZlXHg2NVx4NmVceDIwIgotCQkJIlx4NzNceDY1XHg2OVx4MjBceDczXHg3NFx4NjlceDZjIgot CQkJIlx4NmNceDJjXHgwYVx4NjRceDc1XHgyMFx4NmRceDY1IgotCQkJIlx4NjlceDZlXHgyMFx4 NzRceDY5XHg2NVx4NjZceDc0IgotCQkJIlx4NjlceDY1XHg2Nlx4NjVceDczXHgyMFx4NGNceDY1 IgotCQkJIlx4NjJceDY1XHg2ZVx4M2JceDBhXHg2NFx4NjFceDczIgotCQkJIlx4NzNceDIwXHg2 NFx4NzVceDIwXHg3N1x4NjVceDY5IgotCQkJIlx4YzNceDlmXHg3NFx4MjBceDc3XHg2MVx4NzNc eDIwIgotCQkJIlx4NjRceDY1XHg3Mlx4MjBceDU3XHg2OVx4NmVceDY0IgotCQkJIlx4MjBceDY0 XHg2OVx4NzJceDIwXHg3N1x4NjlceDZjIgotCQkJIlx4NmNceDJjXHgwYVx4NjVceDY4XHgyMFx4 NmVceDZmIgotCQkJIlx4NjNceDY4XHgyMFx4NjRceDY5XHg2NVx4MjBceDQyIgotCQkJIlx4Njlc eDcyXHg2Ylx4NjVceDZlXHgyMFx4NjJceDY1IgotCQkJIlx4NjJceDY1XHg2ZVx4MmVceDBhXHgw YVx4NTVceDZlIgotCQkJIlx4NjRceDIwXHg3N1x4NjVceDZlXHg2ZVx4MjBceDY0IgotCQkJIlx4 NjlceDcyXHgyMFx4NjVceDY5XHg2ZVx4NmRceDYxIgotCQkJIlx4NmNceDIwXHg2NFx4NjFceDcz XHgyMFx4NTNceDYzIgotCQkJIlx4NjhceDc3XHg2NVx4NjlceDY3XHg2NVx4NmVceDIwIgotCQkJ Ilx4NzNceDcwXHg3Mlx4NjFceDYzXHg2OFx4MmNceDBhIgotCQkJIlx4NmNceDYxXHg3M1x4NzNc eDIwXHg2NFx4NjVceDY5IgotCQkJIlx4NmVceDY1XHgyMFx4NTNceDY5XHg2ZVx4NmVceDY1Igot CQkJIlx4MjBceDYyXHg2NVx4NzNceDY5XHg2NVx4NjdceDY1IgotCQkJIlx4NmVceDJlXHgwYVx4 NGFceDY1XHg2NFx4NjVceDZkIgotCQkJIlx4MjBceDQ4XHg2MVx4NzVceDYzXHg2OFx4NjVceDIw IgotCQkJIlx4NjdceDY5XHg2Mlx4NzRceDIwXHg2NFx4NjlceDYzIgotCQkJIlx4NjhceDJjXHgy MFx4NjdceDY5XHg2Mlx4MjBceDZlIgotCQkJIlx4NjFceDYzXHg2OFx4MmNceDBhXHg2NVx4NzJc eDIwIgotCQkJIlx4NzdceDY5XHg3Mlx4NjRceDIwXHg2NFx4NjlceDYzIgotCQkJIlx4NjhceDIw XHg2Y1x4NjlceDY1XHg2Mlx4NjVceDZlIgotCQkJIlx4MjBceDc1XHg2ZVx4NjRceDIwXHg3N1x4 NjlceDY1IgotCQkJIlx4NjdceDY1XHg2ZVx4MmVceDBhXHgwYVx4NTVceDZlIgotCQkJIlx4NjRc eDIwXHg2NFx4NjFceDZlXHg2ZVx4MjBceDZkIgotCQkJIlx4NjVceDY5XHg2ZVx4NjVceDIwXHg1 M1x4NjVceDY1IgotCQkJIlx4NmNceDY1XHgyMFx4NzNceDY1XHg2OVx4NzRceDIwIgotCQkJIlx4 NzdceDY1XHg2OVx4NzRceDJjXHgyMFx4NzNceDY1IgotCQkJIlx4NjlceDIwXHg3N1x4NjVceDY5 XHg3NFx4MmNceDBhIgotCQkJIlx4NjRceDYxXHg3M1x4NzNceDIwXHg2NFx4NjlceDcyIgotCQkJ Ilx4MjBceDY0XHg2MVx4NzNceDIwXHg0Y1x4NjVceDYyIgotCQkJIlx4NjVceDZlXHgyMFx4Njdc eDY1XHg2Y1x4NjlceDZlIgotCQkJIlx4NjdceDY1XHgyY1x4MGFceDYyXHg3Mlx4NjVceDY5Igot CQkJIlx4NzRceDY1XHgyMFx4NjRceDY5XHg2M1x4NjhceDIwIgotCQkJIlx4NzdceDY5XHg2NVx4 MjBceDY1XHg2OVx4NmVceDIwIgotCQkJIlx4NDZceDY1XHg2OVx4NjVceDcyXHg2Ylx4NmNceDY1 IgotCQkJIlx4NjlceDY0XHgwYVx4YzNceGJjXHg2Mlx4NjVceDcyIgotCQkJIlx4MjBceDY0XHg2 OVx4NjVceDIwXHg3M1x4NjlceDZlIgotCQkJIlx4NmVceDY1XHg2ZVx4NjRceDY1XHg2ZVx4MjBc eDQ0IgotCQkJIlx4NjlceDZlXHg2N1x4NjVceDJlXHgyZVx4MmVceDBhIiwKLQkJLnBzaXplCT0g NDAwLAotCQkuZGlnZXN0ID0gIlx4YWRceGIxXHhjMVx4ZTlceDU2XHg3MFx4MzFceDFkIgotCQkJ Ilx4YmJceDViXHhkZlx4NWVceDcwXHg3Mlx4MWFceDU3IiwKLQl9LAotfTsKLQogLyoKICAqIEhN QUMtTUQ1IHRlc3QgdmVjdG9ycyBmcm9tIFJGQzIyMDIKICAqIChUaGVzZSBuZWVkIHRvIGJlIGZp eGVkIHRvIG5vdCB1c2Ugc3RybGVuKS4KICAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBoYXNoX3Rl c3R2ZWMgaG1hY19tZDVfdHZfdGVtcGxhdGVbXSA9Ci0tIAoyLjUzLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==