From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 8C0754B2AC for ; Wed, 3 Jul 2024 10:47:44 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF3AD68D965; Wed, 3 Jul 2024 13:47:41 +0300 (EEST) Received: from fout6-smtp.messagingengine.com (fout6-smtp.messagingengine.com [103.168.172.149]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C5C7368D941 for ; Wed, 3 Jul 2024 13:47:34 +0300 (EEST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailfout.nyi.internal (Postfix) with ESMTP id 8012113805F0 for ; Wed, 3 Jul 2024 06:47:33 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 03 Jul 2024 06:47:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=itanimul.li; h= cc:content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm3; t=1720003653; x=1720090053; bh=jKX+ZH/WPB oc/wXVzOrGnMvT51Gv3iiHQmVI5HY9rEQ=; b=i1gsJTk3AlgYb4WCOWV//snCj3 ULb4v1s3vCZ3lpgLFfjIcz36Z4vgn4/dRFXyDhDVJSPZ96FRQ294WHUlq7tfouia 48oXpDdaHIHz8a8YZ5iOmGfqkjQf1hv3sYUj00whgwXcj4H/zrxOXFdAQ4YYlw6A n5gBY/vN2at/R2fXBxZGIWAEo9kSWxqTziiUM2NwOeqGtJskHRNz2YXTa7VuyKB/ aoSFh7oeITveTdwF0kMBgaRXIdHeb5pSHq2/RZyjbROqsDzGwZTwmLP6Sd022Pob zFDiA6j142NqIkERBRKyFINWovCLKT1/TQG6c93BECMbM4AkHNk8TRNY890A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1720003653; x=1720090053; bh=jKX+ZH/WPBoc/wXVzOrGnMvT51Gv 3iiHQmVI5HY9rEQ=; b=YU1g4EVoe0N6FulnjSqcCs/Og7SGITvFWSQ8sCnbKlzy GadMsbt9MCkyUQJRWHXqgWnKxoRWu6Hr8JgeX6g7t6+1cENKmrQr2MfzHCppKcaB QjzzZBODJWeYVdaP/1ETMczPLlOKJnQs/BN25WNRtezde7d6OVdo936HEa7fPZfk UIRR9GVPdXGJe3QUM/OPEqpV0GMuLiWoC3X2PmxHq8THqu75aW8Z228KZmkaXvP1 2jHTtluQ8STUGCk9yZ94frVWkgs7eFTAhOu0tGGisilqZu0OGIvH+Hel4x5rINL6 Jw+HDmyjvw1VF7RFMdR7f2A0XawMzoO/cNQh9PcxdA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrudejgdefvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffogggtgfesthekredtre dtjeenucfhrhhomhepfdflrdcuffgvkhhkvghrfdcuoehjuggvkhesihhtrghnihhmuhhl rdhliheqnecuggftrfgrthhtvghrnhepkeeuvddvtdffledugfejfefgiefftdethefhte egvedtgfetveejgffhhfejffdunecuffhomhgrihhnpehhvdeigegushhppghrvhhvrdhs sgenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehjug gvkhesihhtrghnihhmuhhlrdhlih X-ME-Proxy: Feedback-ID: i84994747:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 3 Jul 2024 06:47:32 -0400 (EDT) From: "J. Dekker" To: ffmpeg-devel@ffmpeg.org Date: Wed, 3 Jul 2024 12:47:29 +0200 Message-ID: <20240703104730.883009-1-jdek@itanimul.li> X-Mailer: git-send-email 2.44.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avcodec/riscv: add h264 dc idct rvv X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Y2hlY2thc206IGJlbmNoIHJ1bnMgMTMxMDcyICgxIDw8IDE3KQpoMjY0X2lkY3Q0X2FkZF9kY184 YnBwX2M6IDEuNQpoMjY0X2lkY3Q0X2FkZF9kY184YnBwX3J2dl9pNjQ6IDAuNwpoMjY0X2lkY3Q0 X2FkZF9kY185YnBwX2M6IDEuNQpoMjY0X2lkY3Q0X2FkZF9kY185YnBwX3J2dl9pNjQ6IDAuNwpo MjY0X2lkY3Q0X2FkZF9kY18xMGJwcF9jOiAxLjUKaDI2NF9pZGN0NF9hZGRfZGNfMTBicHBfcnZ2 X2k2NDogMC43CmgyNjRfaWRjdDRfYWRkX2RjXzEyYnBwX2M6IDEuMgpoMjY0X2lkY3Q0X2FkZF9k Y18xMmJwcF9ydnZfaTY0OiAwLjcKaDI2NF9pZGN0NF9hZGRfZGNfMTRicHBfYzogMS4yCmgyNjRf aWRjdDRfYWRkX2RjXzE0YnBwX3J2dl9pNjQ6IDAuNwpoMjY0X2lkY3Q4X2FkZF9kY184YnBwX2M6 IDUuMgpoMjY0X2lkY3Q4X2FkZF9kY184YnBwX3J2dl9pNjQ6IDEuNQpoMjY0X2lkY3Q4X2FkZF9k Y185YnBwX2M6IDUuNQpoMjY0X2lkY3Q4X2FkZF9kY185YnBwX3J2dl9pNjQ6IDEuMgpoMjY0X2lk Y3Q4X2FkZF9kY18xMGJwcF9jOiA1LjUKaDI2NF9pZGN0OF9hZGRfZGNfMTBicHBfcnZ2X2k2NDog MS4yCmgyNjRfaWRjdDhfYWRkX2RjXzEyYnBwX2M6IDQuMgpoMjY0X2lkY3Q4X2FkZF9kY18xMmJw cF9ydnZfaTY0OiAxLjIKaDI2NF9pZGN0OF9hZGRfZGNfMTRicHBfYzogNC4yCmgyNjRfaWRjdDhf YWRkX2RjXzE0YnBwX3J2dl9pNjQ6IDEuMgoKU2lnbmVkLW9mZi1ieTogSi4gRGVra2VyIDxqZGVr QGl0YW5pbXVsLmxpPgotLS0KCiByZGN5Y2xlIGFsd2F5cyByZXR1cm5zIDAgb24gbXkgYm9hcmQs IGNsb2NrX2dldHRpbWUoKSBzZWVtcyBhcyBub2lzeSBhcwogcmR0aW1lIChqdXN0IHdpdGggYmln Z2VyIG51bWJlcnMpLgoKIGxpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUgICAgICAgfCAgIDEgKwog bGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYyB8ICA0MiArKysrKysrLQogbGliYXZjb2Rl Yy9yaXNjdi9oMjY0ZHNwX3J2di5TICB8IDE3NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMTYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Jpc2N2L2gyNjRkc3BfcnZ2LlMKCmRpZmYg LS1naXQgYS9saWJhdmNvZGVjL3Jpc2N2L01ha2VmaWxlIGIvbGliYXZjb2RlYy9yaXNjdi9NYWtl ZmlsZQppbmRleCBjMTgwMjIzMTQxLi5hMTUxMGU4YzZlIDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L3Jpc2N2L01ha2VmaWxlCisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUKQEAgLTMxLDYg KzMxLDcgQEAgUlZWLU9CSlMtJChDT05GSUdfSDI2M0RTUCkgKz0gcmlzY3YvaDI2M2RzcF9ydnYu bwogT0JKUy0kKENPTkZJR19IMjY0Q0hST01BKSArPSByaXNjdi9oMjY0X2Nocm9tYV9pbml0X3Jp c2N2Lm8KIFJWVi1PQkpTLSQoQ09ORklHX0gyNjRDSFJPTUEpICs9IHJpc2N2L2gyNjRfbWNfY2hy b21hLm8KIE9CSlMtJChDT05GSUdfSDI2NERTUCkgKz0gcmlzY3YvaDI2NGRzcF9pbml0Lm8KK1JW Vi1PQkpTLSQoQ09ORklHX0gyNjREU1ApICs9IHJpc2N2L2gyNjRkc3BfcnZ2Lm8KIE9CSlMtJChD T05GSUdfSFVGRllVVl9ERUNPREVSKSArPSByaXNjdi9odWZmeXV2ZHNwX2luaXQubwogUlZWLU9C SlMtJChDT05GSUdfSFVGRllVVl9ERUNPREVSKSArPSByaXNjdi9odWZmeXV2ZHNwX3J2di5vCiBP QkpTLSQoQ09ORklHX0lEQ1REU1ApICs9IHJpc2N2L2lkY3Rkc3BfaW5pdC5vCmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL3Jpc2N2L2gyNjRkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy9yaXNjdi9oMjY0 ZHNwX2luaXQuYwppbmRleCBkYmJmM2RiNDAwLi44Yzc3MzAzZWM2IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL3Jpc2N2L2gyNjRkc3BfaW5pdC5jCisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRz cF9pbml0LmMKQEAgLTEsNCArMSw1IEBACiAvKgorICogQ29weXJpZ2h0IChjKSAyMDI0IEouIERl a2tlciA8amRla0BpdGFuaW11bC5saT4KICAqIENvcHlyaWdodCDCqSAyMDI0IFLDqW1pIERlbmlz LUNvdXJtb250LgogICoKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KQEAgLTI0LDIy ICsyNSw1NyBAQAogCiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKICNpbmNsdWRl ICJsaWJhdnV0aWwvY3B1LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL3Jpc2N2L2NwdS5oIgogI2lu Y2x1ZGUgImxpYmF2Y29kZWMvaDI2NGRzcC5oIgogCiBleHRlcm4gaW50IGZmX3N0YXJ0Y29kZV9m aW5kX2NhbmRpZGF0ZV9ydmIoY29uc3QgdWludDhfdCAqLCBpbnQpOwogZXh0ZXJuIGludCBmZl9z dGFydGNvZGVfZmluZF9jYW5kaWRhdGVfcnZ2KGNvbnN0IHVpbnQ4X3QgKiwgaW50KTsKK3ZvaWQg ZmZfaDI2NF9pZGN0NF9kY19hZGRfOF9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpibG9jaywg aW50IHN0cmlkZSk7Cit2b2lkIGZmX2gyNjRfaWRjdDhfZGNfYWRkXzhfcnZ2KHVpbnQ4X3QgKmRz dCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwordm9pZCBmZl9oMjY0X2lkY3Q0X2RjX2Fk ZF85X3J2dih1aW50OF90ICpkc3QsIGludDE2X3QgKmJsb2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQg ZmZfaDI2NF9pZGN0OF9kY19hZGRfOV9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpibG9jaywg aW50IHN0cmlkZSk7Cit2b2lkIGZmX2gyNjRfaWRjdDRfZGNfYWRkXzEwX3J2dih1aW50OF90ICpk c3QsIGludDE2X3QgKmJsb2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQgZmZfaDI2NF9pZGN0OF9kY19h ZGRfMTBfcnZ2KHVpbnQ4X3QgKmRzdCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwordm9p ZCBmZl9oMjY0X2lkY3Q0X2RjX2FkZF8xMl9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpibG9j aywgaW50IHN0cmlkZSk7Cit2b2lkIGZmX2gyNjRfaWRjdDhfZGNfYWRkXzEyX3J2dih1aW50OF90 ICpkc3QsIGludDE2X3QgKmJsb2NrLCBpbnQgc3RyaWRlKTsKK3ZvaWQgZmZfaDI2NF9pZGN0NF9k Y19hZGRfMTRfcnZ2KHVpbnQ4X3QgKmRzdCwgaW50MTZfdCAqYmxvY2ssIGludCBzdHJpZGUpOwor dm9pZCBmZl9oMjY0X2lkY3Q4X2RjX2FkZF8xNF9ydnYodWludDhfdCAqZHN0LCBpbnQxNl90ICpi bG9jaywgaW50IHN0cmlkZSk7CiAKLWF2X2NvbGQgdm9pZCBmZl9oMjY0ZHNwX2luaXRfcmlzY3Yo SDI2NERTUENvbnRleHQgKmRzcCwgY29uc3QgaW50IGJpdF9kZXB0aCwKK2F2X2NvbGQgdm9pZCBm Zl9oMjY0ZHNwX2luaXRfcmlzY3YoSDI2NERTUENvbnRleHQgKmMsIGNvbnN0IGludCBiaXRfZGVw dGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBjaHJvbWFf Zm9ybWF0X2lkYykKIHsKICNpZiBIQVZFX1JWCiAgICAgaW50IGZsYWdzID0gYXZfZ2V0X2NwdV9m bGFncygpOwogCiAgICAgaWYgKGZsYWdzICYgQVZfQ1BVX0ZMQUdfUlZCX0JBU0lDKQotICAgICAg ICBkc3AtPnN0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZSA9IGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRp ZGF0ZV9ydmI7CisgICAgICAgIGMtPnN0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZSA9IGZmX3N0YXJ0 Y29kZV9maW5kX2NhbmRpZGF0ZV9ydmI7CiAjIGlmIEhBVkVfUlZWCiAgICAgaWYgKGZsYWdzICYg QVZfQ1BVX0ZMQUdfUlZWX0kzMikKLSAgICAgICAgZHNwLT5zdGFydGNvZGVfZmluZF9jYW5kaWRh dGUgPSBmZl9zdGFydGNvZGVfZmluZF9jYW5kaWRhdGVfcnZ2OworICAgICAgICBjLT5zdGFydGNv ZGVfZmluZF9jYW5kaWRhdGUgPSBmZl9zdGFydGNvZGVfZmluZF9jYW5kaWRhdGVfcnZ2OwogIyBl bmRpZgorICAgIGlmICgoZmxhZ3MgJiBBVl9DUFVfRkxBR19SVlZfSTY0KSAmJiBmZl9ydl92bGVu X2xlYXN0KDE2KSkgeworICAgICAgICBzd2l0Y2goYml0X2RlcHRoKSB7CisgICAgICAgIGNhc2Ug ODoKKyAgICAgICAgICAgIGMtPmgyNjRfaWRjdF9kY19hZGQgID0gZmZfaDI2NF9pZGN0NF9kY19h ZGRfOF9ydnY7CisgICAgICAgICAgICBjLT5oMjY0X2lkY3Q4X2RjX2FkZCA9IGZmX2gyNjRfaWRj dDhfZGNfYWRkXzhfcnZ2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAg ICAgICAgICAgIGMtPmgyNjRfaWRjdF9kY19hZGQgID0gZmZfaDI2NF9pZGN0NF9kY19hZGRfOV9y dnY7CisgICAgICAgICAgICBjLT5oMjY0X2lkY3Q4X2RjX2FkZCA9IGZmX2gyNjRfaWRjdDhfZGNf YWRkXzlfcnZ2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAg ICAgICBjLT5oMjY0X2lkY3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzEwX3J2djsK KyAgICAgICAgICAgIGMtPmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19hZGRf MTBfcnZ2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAg ICBjLT5oMjY0X2lkY3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzEyX3J2djsKKyAg ICAgICAgICAgIGMtPmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19hZGRfMTJf cnZ2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICBj LT5oMjY0X2lkY3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzE0X3J2djsKKyAgICAg ICAgICAgIGMtPmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19hZGRfMTRfcnZ2 OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgfQorICAgIH0KICNlbmRpZgogfQpkaWZmIC0t Z2l0IGEvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX3J2di5TIGIvbGliYXZjb2RlYy9yaXNjdi9o MjY0ZHNwX3J2di5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU3ZjA0 MzNmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3Jpc2N2L2gyNjRkc3BfcnZ2LlMK QEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI0IEouIERla2tlciA8amRla0BpdGFuaW11 bC5saT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQ UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJQUJM RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvcmlzY3YvYXNt LlMiCisKKy5tYWNybyBpZGN0X2RjX2FkZDggd2lkdGgKK2Z1bmMgZmZfaDI2NF9pZGN0XHdpZHRo XCgpX2RjX2FkZF84X3J2diwgenZlNjR4LCB6YmEKKyAgICAgICAgdnNldGl2bGkgICAgICAgIHpl cm8sIFx3aWR0aCwgZTE2LCBtMSwgdGEsIG1hCisgICAgICAgIGxoICAgICAgICAgICAgICBhMywg MChhMSkKKyAgICAgICAgYWRkaSAgICAgICAgICAgIGEzLCBhMywgMzIKKyAgICAgICAgc3JhaSAg ICAgICAgICAgIGEzLCBhMywgNgorICAgICAgICBzaCAgICAgICAgICAgICAgemVybywgMChhMSkK Ky5pZiBcd2lkdGggPT0gOAorICAgICAgICB2bHNzZWc4ZTgudiAgICAgdjI0LCAoYTApLCBhMgor LmVsc2UKKyAgICAgICAgdmxzc2VnNGU4LnYgICAgIHYyNCwgKGEwKSwgYTIKKy5lbmRpZgorICAg ICAgICB2emV4dC52ZjIgICAgICAgdjAsIHYyNAorICAgICAgICB2emV4dC52ZjIgICAgICAgdjIs IHYyNQorICAgICAgICB2emV4dC52ZjIgICAgICAgdjQsIHYyNgorICAgICAgICB2emV4dC52ZjIg ICAgICAgdjYsIHYyNworLmlmIFx3aWR0aCA9PSA4CisgICAgICAgIHZ6ZXh0LnZmMiAgICAgICB2 MTAsIHYyOAorICAgICAgICB2emV4dC52ZjIgICAgICAgdjEyLCB2MjkKKyAgICAgICAgdnpleHQu dmYyICAgICAgIHYxNCwgdjMwCisgICAgICAgIHZ6ZXh0LnZmMiAgICAgICB2MTYsIHYzMQorLmVu ZGlmCisgICAgICAgIHZhZGQudnggICAgICAgICB2MCwgdjAsIGEzCisgICAgICAgIHZhZGQudngg ICAgICAgICB2MiwgdjIsIGEzCisgICAgICAgIHZhZGQudnggICAgICAgICB2NCwgdjQsIGEzCisg ICAgICAgIHZhZGQudnggICAgICAgICB2NiwgdjYsIGEzCisuaWYgXHdpZHRoID09IDgKKyAgICAg ICAgdmFkZC52eCAgICAgICAgIHYxMCwgdjEwLCBhMworICAgICAgICB2YWRkLnZ4ICAgICAgICAg djEyLCB2MTIsIGEzCisgICAgICAgIHZhZGQudnggICAgICAgICB2MTQsIHYxNCwgYTMKKyAgICAg ICAgdmFkZC52eCAgICAgICAgIHYxNiwgdjE2LCBhMworLmVuZGlmCisgICAgICAgIHZtYXgudngg ICAgICAgICB2MCwgdjAsIHplcm8KKyAgICAgICAgdm1heC52eCAgICAgICAgIHYyLCB2MiwgemVy bworICAgICAgICB2bWF4LnZ4ICAgICAgICAgdjQsIHY0LCB6ZXJvCisgICAgICAgIHZtYXgudngg ICAgICAgICB2NiwgdjYsIHplcm8KKy5pZiBcd2lkdGggPT0gOAorICAgICAgICB2bWF4LnZ4ICAg ICAgICAgdjEwLCB2MTAsIHplcm8KKyAgICAgICAgdm1heC52eCAgICAgICAgIHYxMiwgdjEyLCB6 ZXJvCisgICAgICAgIHZtYXgudnggICAgICAgICB2MTQsIHYxNCwgemVybworICAgICAgICB2bWF4 LnZ4ICAgICAgICAgdjE2LCB2MTYsIHplcm8KKy5lbmRpZgorICAgICAgICB2c2V0dmxpICAgICAg ICAgemVybywgemVybywgZTgsIG1mMiwgdGEsIG1hCisgICAgICAgIHZuY2xpcHUud2kgICAgICB2 MjQsIHYwLCAwCisgICAgICAgIHZuY2xpcHUud2kgICAgICB2MjUsIHYyLCAwCisgICAgICAgIHZu Y2xpcHUud2kgICAgICB2MjYsIHY0LCAwCisgICAgICAgIHZuY2xpcHUud2kgICAgICB2MjcsIHY2 LCAwCisuaWYgXHdpZHRoID09IDgKKyAgICAgICAgdm5jbGlwdS53aSAgICAgIHYyOCwgdjEwLCAw CisgICAgICAgIHZuY2xpcHUud2kgICAgICB2MjksIHYxMiwgMAorICAgICAgICB2bmNsaXB1Lndp ICAgICAgdjMwLCB2MTQsIDAKKyAgICAgICAgdm5jbGlwdS53aSAgICAgIHYzMSwgdjE2LCAwCisg ICAgICAgIHZzc3NlZzhlOC52ICAgICB2MjQsIChhMCksIGEyCisuZWxzZQorICAgICAgICB2c3Nz ZWc0ZTgudiAgICAgdjI0LCAoYTApLCBhMgorLmVuZGlmCisgICAgICAgIHJldAorZW5kZnVuYwor LmVuZG0KKworaWRjdF9kY19hZGQ4IDQKK2lkY3RfZGNfYWRkOCA4CisKKy5tYWNybyBpZGN0X2Rj X2FkZCB3aWR0aAorZnVuYyBmZl9oMjY0X2lkY3Rcd2lkdGhcKClfZGNfYWRkXzE2X3J2diwgenZl NjR4LCB6YmEKKyAgICAgICAgdnNldGl2bGkgICAgICAgIHplcm8sIFx3aWR0aCwgZTE2LCBtMSwg dGEsIG1hCisgICAgICAgIGx3ICAgICAgICAgICAgICBhMywgMChhMSkKKyAgICAgICAgYWRkaSAg ICAgICAgICAgIGEzLCBhMywgMzIKKyAgICAgICAgc3JhaSAgICAgICAgICAgIGEzLCBhMywgNgor ICAgICAgICBzdyAgICAgICAgICAgICAgemVybywgMChhMSkKKyAgICAgICAgYWRkICAgICAgICAg ICAgIHQ0LCBhMCwgYTIKKyAgICAgICAgc2gxYWRkICAgICAgICAgIHQ1LCBhMiwgYTAKKyAgICAg ICAgc2gxYWRkICAgICAgICAgIHQ2LCBhMiwgdDQKKy5pZiBcd2lkdGggPT0gOAorICAgICAgICBz aDJhZGQgICAgICAgICAgdDAsIGEyLCBhMAorICAgICAgICBzaDJhZGQgICAgICAgICAgdDEsIGEy LCB0NAorICAgICAgICBzaDJhZGQgICAgICAgICAgdDIsIGEyLCB0NQorICAgICAgICBzaDJhZGQg ICAgICAgICAgdDMsIGEyLCB0NgorLmVuZGlmCisgICAgICAgIHZsZTE2LnYgICAgICAgICB2MCwg KGEwKQorICAgICAgICB2bGUxNi52ICAgICAgICAgdjIsICh0NCkKKyAgICAgICAgdmxlMTYudiAg ICAgICAgIHY0LCAodDUpCisgICAgICAgIHZsZTE2LnYgICAgICAgICB2NiwgKHQ2KQorLmlmIFx3 aWR0aCA9PSA4CisgICAgICAgIHZsZTE2LnYgICAgICAgICB2MTAsICh0MCkKKyAgICAgICAgdmxl MTYudiAgICAgICAgIHYxMiwgKHQxKQorICAgICAgICB2bGUxNi52ICAgICAgICAgdjE0LCAodDIp CisgICAgICAgIHZsZTE2LnYgICAgICAgICB2MTYsICh0MykKKy5lbmRpZgorICAgICAgICB2YWRk LnZ4ICAgICAgICAgdjAsIHYwLCBhMworICAgICAgICB2YWRkLnZ4ICAgICAgICAgdjIsIHYyLCBh MworICAgICAgICB2YWRkLnZ4ICAgICAgICAgdjQsIHY0LCBhMworICAgICAgICB2YWRkLnZ4ICAg ICAgICAgdjYsIHY2LCBhMworLmlmIFx3aWR0aCA9PSA4CisgICAgICAgIHZhZGQudnggICAgICAg ICB2MTAsIHYxMCwgYTMKKyAgICAgICAgdmFkZC52eCAgICAgICAgIHYxMiwgdjEyLCBhMworICAg ICAgICB2YWRkLnZ4ICAgICAgICAgdjE0LCB2MTQsIGEzCisgICAgICAgIHZhZGQudnggICAgICAg ICB2MTYsIHYxNiwgYTMKKy5lbmRpZgorICAgICAgICB2bWF4LnZ4ICAgICAgICAgdjAsIHYwLCB6 ZXJvCisgICAgICAgIHZtYXgudnggICAgICAgICB2MiwgdjIsIHplcm8KKyAgICAgICAgdm1heC52 eCAgICAgICAgIHY0LCB2NCwgemVybworICAgICAgICB2bWF4LnZ4ICAgICAgICAgdjYsIHY2LCB6 ZXJvCisuaWYgXHdpZHRoID09IDgKKyAgICAgICAgdm1heC52eCAgICAgICAgIHYxMCwgdjEwLCB6 ZXJvCisgICAgICAgIHZtYXgudnggICAgICAgICB2MTIsIHYxMiwgemVybworICAgICAgICB2bWF4 LnZ4ICAgICAgICAgdjE0LCB2MTQsIHplcm8KKyAgICAgICAgdm1heC52eCAgICAgICAgIHYxNiwg djE2LCB6ZXJvCisuZW5kaWYKKyAgICAgICAgdm1pbi52eCAgICAgICAgIHYwLCB2MCwgYTUKKyAg ICAgICAgdm1pbi52eCAgICAgICAgIHYyLCB2MiwgYTUKKyAgICAgICAgdm1pbi52eCAgICAgICAg IHY0LCB2NCwgYTUKKyAgICAgICAgdm1pbi52eCAgICAgICAgIHY2LCB2NiwgYTUKKy5pZiBcd2lk dGggPT0gOAorICAgICAgICB2bWluLnZ4ICAgICAgICAgdjEwLCB2MTAsIGE1CisgICAgICAgIHZt aW4udnggICAgICAgICB2MTIsIHYxMiwgYTUKKyAgICAgICAgdm1pbi52eCAgICAgICAgIHYxNCwg djE0LCBhNQorICAgICAgICB2bWluLnZ4ICAgICAgICAgdjE2LCB2MTYsIGE1CisuZW5kaWYKKyAg ICAgICAgdnNlMTYudiAgICAgICAgIHYwLCAoYTApCisgICAgICAgIHZzZTE2LnYgICAgICAgICB2 MiwgKHQ0KQorICAgICAgICB2c2UxNi52ICAgICAgICAgdjQsICh0NSkKKyAgICAgICAgdnNlMTYu diAgICAgICAgIHY2LCAodDYpCisuaWYgXHdpZHRoID09IDgKKyAgICAgICAgdnNlMTYudiAgICAg ICAgIHYxMCwgKHQwKQorICAgICAgICB2c2UxNi52ICAgICAgICAgdjEyLCAodDEpCisgICAgICAg IHZzZTE2LnYgICAgICAgICB2MTQsICh0MikKKyAgICAgICAgdnNlMTYudiAgICAgICAgIHYxNiwg KHQzKQorLmVuZGlmCisgICAgICAgIHJldAorZW5kZnVuYworLmVuZG0KKworaWRjdF9kY19hZGQg NAoraWRjdF9kY19hZGQgOAorCisuaXJwIGRlcHRoLDksMTAsMTIsMTQKK2Z1bmMgZmZfaDI2NF9p ZGN0NF9kY19hZGRfXGRlcHRoXCgpX3J2diwgenZlNjR4CisgICAgICAgIGxpICAgICAgICAgICAg ICBhNSwgKDEgPDwgXGRlcHRoKSAtIDEKKyAgICAgICAgaiAgICAgICAgICAgICAgIGZmX2gyNjRf aWRjdDRfZGNfYWRkXzE2X3J2dgorZW5kZnVuYworCitmdW5jIGZmX2gyNjRfaWRjdDhfZGNfYWRk X1xkZXB0aFwoKV9ydnYsIHp2ZTY0eAorICAgICAgICBsaSAgICAgICAgICAgICAgYTUsICgxIDw8 IFxkZXB0aCkgLSAxCisgICAgICAgIGogICAgICAgICAgICAgICBmZl9oMjY0X2lkY3Q4X2RjX2Fk ZF8xNl9ydnYKK2VuZGZ1bmMKKy5lbmRyCi0tIAoyLjQ0LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8v ZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4K