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 E261D4B825 for ; Mon, 15 Jul 2024 06:41:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5105C68D9EE; Mon, 15 Jul 2024 09:41:44 +0300 (EEST) Received: from 7.mo575.mail-out.ovh.net (7.mo575.mail-out.ovh.net [46.105.63.230]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BD3E868D786 for ; Mon, 15 Jul 2024 09:41:37 +0300 (EEST) Received: from director5.ghost.mail-out.ovh.net (unknown [10.108.17.39]) by mo575.mail-out.ovh.net (Postfix) with ESMTP id 4WMt010jvNz1KGV for ; Mon, 15 Jul 2024 06:41:37 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-xc45k (unknown [10.108.42.46]) by director5.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 46EE41FD4F for ; Mon, 15 Jul 2024 06:41:35 +0000 (UTC) Received: from courmont.net ([37.59.142.95]) by ghost-submission-6684bf9d7b-xc45k with ESMTPSA id n/aEC5/ElGb+BwAA+SOtJQ (envelope-from ) for ; Mon, 15 Jul 2024 06:41:35 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-95G00163eff8d1-ec5a-43d6-9315-abac6df860b7, 33B1A7E8B9B661A8785CDA1A8ACA7F4B61B9BB77) smtp.auth=postmaster@courmont.net X-OVh-ClientIp: 87.95.0.83 Date: Mon, 15 Jul 2024 09:41:31 +0300 From: =?ISO-8859-1?Q?R=E9mi_Denis-Courmont?= To: FFmpeg development discussions and patches User-Agent: K-9 Mail for Android In-Reply-To: <20240715055039.592571-1-jdek@itanimul.li> References: <20240715055039.592571-1-jdek@itanimul.li> Message-ID: <803DFCBE-FDA3-4297-84A8-87C6C1E88941@remlab.net> MIME-Version: 1.0 X-Ovh-Tracer-Id: 14168324431784909305 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrgedugdduudefucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepfffhvffufggjfhfkgggtgfesthhqmhdttderjeenucfhrhhomheptformhhiucffvghnihhsqdevohhurhhmohhnthcuoehrvghmihesrhgvmhhlrggsrdhnvghtqeenucggtffrrghtthgvrhhnpeehffefueefteegfeeiueejffelkeeifefftdekffeivefffffffeefhfdujefhieenucffohhmrghinhephhdvieegughsphgprhhvvhdrshgspdhffhhmphgvghdrohhrghenucfkphepuddvjedrtddrtddruddpkeejrdelhedrtddrkeefpdefjedrheelrddugedvrdelheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomheprhgvmhhisehrvghmlhgrsgdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopehffhhmphgvghdquggvvhgvlhesfhhfmhhpvghgrdhorhhgpdfovfetjfhoshhtpehmohehjeehpdhmohguvgepshhmthhpohhuth Subject: Re: [FFmpeg-devel] [PATCH v3] 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: CgpMZSAxNSBqdWlsbGV0IDIwMjQgMDg6NTA6MzggR01UKzAzOjAwLCAiSi4gRGVra2VyIiA8amRl a0BpdGFuaW11bC5saT4gYSDDqWNyaXTCoDoKPmNoZWNrYXNtOiBiZW5jaCBydW5zIDEzMTA3MiAo MSA8PCAxNykKPmgyNjRfaWRjdDRfYWRkX2RjXzhicHBfYzogMS41Cj5oMjY0X2lkY3Q0X2FkZF9k Y184YnBwX3J2dl9pNjQ6IDAuNwo+aDI2NF9pZGN0NF9hZGRfZGNfOWJwcF9jOiAxLjUKPmgyNjRf aWRjdDRfYWRkX2RjXzlicHBfcnZ2X2k2NDogMC43Cj5oMjY0X2lkY3Q0X2FkZF9kY18xMGJwcF9j OiAxLjUKPmgyNjRfaWRjdDRfYWRkX2RjXzEwYnBwX3J2dl9pNjQ6IDAuNwo+aDI2NF9pZGN0NF9h ZGRfZGNfMTJicHBfYzogMS4yCj5oMjY0X2lkY3Q0X2FkZF9kY18xMmJwcF9ydnZfaTY0OiAwLjcK PmgyNjRfaWRjdDRfYWRkX2RjXzE0YnBwX2M6IDEuMgo+aDI2NF9pZGN0NF9hZGRfZGNfMTRicHBf cnZ2X2k2NDogMC43Cj5oMjY0X2lkY3Q4X2FkZF9kY184YnBwX2M6IDUuMgo+aDI2NF9pZGN0OF9h ZGRfZGNfOGJwcF9ydnZfaTY0OiAxLjUKPmgyNjRfaWRjdDhfYWRkX2RjXzlicHBfYzogNS41Cj5o MjY0X2lkY3Q4X2FkZF9kY185YnBwX3J2dl9pNjQ6IDEuMgo+aDI2NF9pZGN0OF9hZGRfZGNfMTBi cHBfYzogNS41Cj5oMjY0X2lkY3Q4X2FkZF9kY18xMGJwcF9ydnZfaTY0OiAxLjIKPmgyNjRfaWRj dDhfYWRkX2RjXzEyYnBwX2M6IDQuMgo+aDI2NF9pZGN0OF9hZGRfZGNfMTJicHBfcnZ2X2k2NDog MS4yCj5oMjY0X2lkY3Q4X2FkZF9kY18xNGJwcF9jOiA0LjIKPmgyNjRfaWRjdDhfYWRkX2RjXzE0 YnBwX3J2dl9pNjQ6IDEuMgo+Cj5TaWduZWQtb2ZmLWJ5OiBKLiBEZWtrZXIgPGpkZWtAaXRhbmlt dWwubGk+Cj4tLS0KPiBsaWJhdmNvZGVjL3Jpc2N2L01ha2VmaWxlICAgICAgIHwgICAxICsKPiBs aWJhdmNvZGVjL3Jpc2N2L2gyNjRkc3BfaW5pdC5jIHwgIDQ0ICsrKysrKysrKystCj4gbGliYXZj b2RlYy9yaXNjdi9oMjY0ZHNwX3J2di5TICB8IDEzMCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+IDMgZmlsZXMgY2hhbmdlZCwgMTcyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9ydnYuUwo+ Cj4gQXMgUmVtaSBtZW50aW9uZWQsIGhpZ2ggYml0LWRlcHRoIDR4NCBjb3VsZCBiZSBkb25lIGlu IHRoZSBzYW1lIHdheSBhcyBsb3cKPiBiaXQtZGVwdGguIEkndmUgbGVmdCBpdCB3aXRoIHRoZSBo aWdoIGJpdC1kZXB0aCBpbnRlbnRpb25hbGx5IHNpbmNlIHRoaXMgZWFzZXMKPiB0ZW1wbGF0aW5n LiBVc2Ugb2Ygc2VnbWVudHMgcmVtb3ZlZCBhbmQgcmVwZWF0ZWQgaW5zdHJ1Y3Rpb25zIGNoYW5n ZWQgdG8gdXNlCj4gbTguCj4KPmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Jpc2N2L01ha2VmaWxl IGIvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZQo+aW5kZXggYzE4MDIyMzE0MS4uYTE1MTBlOGM2 ZSAxMDA2NDQKPi0tLSBhL2xpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUKPisrKyBiL2xpYmF2Y29k ZWMvcmlzY3YvTWFrZWZpbGUKPkBAIC0zMSw2ICszMSw3IEBAIFJWVi1PQkpTLSQoQ09ORklHX0gy NjNEU1ApICs9IHJpc2N2L2gyNjNkc3BfcnZ2Lm8KPiBPQkpTLSQoQ09ORklHX0gyNjRDSFJPTUEp ICs9IHJpc2N2L2gyNjRfY2hyb21hX2luaXRfcmlzY3Yubwo+IFJWVi1PQkpTLSQoQ09ORklHX0gy NjRDSFJPTUEpICs9IHJpc2N2L2gyNjRfbWNfY2hyb21hLm8KPiBPQkpTLSQoQ09ORklHX0gyNjRE U1ApICs9IHJpc2N2L2gyNjRkc3BfaW5pdC5vCj4rUlZWLU9CSlMtJChDT05GSUdfSDI2NERTUCkg Kz0gcmlzY3YvaDI2NGRzcF9ydnYubwo+IE9CSlMtJChDT05GSUdfSFVGRllVVl9ERUNPREVSKSAr PSByaXNjdi9odWZmeXV2ZHNwX2luaXQubwo+IFJWVi1PQkpTLSQoQ09ORklHX0hVRkZZVVZfREVD T0RFUikgKz0gcmlzY3YvaHVmZnl1dmRzcF9ydnYubwo+IE9CSlMtJChDT05GSUdfSURDVERTUCkg Kz0gcmlzY3YvaWRjdGRzcF9pbml0Lm8KPmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3Jpc2N2L2gy NjRkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy9yaXNjdi9oMjY0ZHNwX2luaXQuYwo+aW5kZXggZGJi ZjNkYjQwMC4uMzI1NjE5OTMwMyAxMDA2NDQKPi0tLSBhL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRz cF9pbml0LmMKPisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9pbml0LmMKPkBAIC0xLDQg KzEsNSBAQAo+IC8qCj4rICogQ29weXJpZ2h0IChjKSAyMDI0IEouIERla2tlciA8amRla0BpdGFu aW11bC5saT4KPiAgKiBDb3B5cmlnaHQgwqkgMjAyNCBSw6ltaSBEZW5pcy1Db3VybW9udC4KPiAg Kgo+ICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPkBAIC0yNCwyMiArMjUsNTkgQEAK PiAKPiAjaW5jbHVkZSAibGliYXZ1dGlsL2F0dHJpYnV0ZXMuaCIKPiAjaW5jbHVkZSAibGliYXZ1 dGlsL2NwdS5oIgo+KyNpbmNsdWRlICJsaWJhdnV0aWwvcmlzY3YvY3B1LmgiCj4gI2luY2x1ZGUg ImxpYmF2Y29kZWMvaDI2NGRzcC5oIgo+IAo+IGV4dGVybiBpbnQgZmZfc3RhcnRjb2RlX2ZpbmRf Y2FuZGlkYXRlX3J2Yihjb25zdCB1aW50OF90ICosIGludCk7Cj4gZXh0ZXJuIGludCBmZl9zdGFy dGNvZGVfZmluZF9jYW5kaWRhdGVfcnZ2KGNvbnN0IHVpbnQ4X3QgKiwgaW50KTsKPit2b2lkIGZm X2gyNjRfaWRjdDRfZGNfYWRkXzhfcnZ2KHVpbnQ4X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+K3Zv aWQgZmZfaDI2NF9pZGN0OF9kY19hZGRfOF9ydnYodWludDhfdCAqLCBpbnQxNl90ICosIGludCk7 Cj4rdm9pZCBmZl9oMjY0X2lkY3Q0X2RjX2FkZF85X3J2dih1aW50OF90ICosIGludDE2X3QgKiwg aW50KTsKPit2b2lkIGZmX2gyNjRfaWRjdDhfZGNfYWRkXzlfcnZ2KHVpbnQ4X3QgKiwgaW50MTZf dCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9pZGN0NF9kY19hZGRfMTBfcnZ2KHVpbnQ4X3QgKiwg aW50MTZfdCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9pZGN0OF9kY19hZGRfMTBfcnZ2KHVpbnQ4 X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9pZGN0NF9kY19hZGRfMTJfcnZ2 KHVpbnQ4X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9pZGN0OF9kY19hZGRf MTJfcnZ2KHVpbnQ4X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9pZGN0NF9k Y19hZGRfMTRfcnZ2KHVpbnQ4X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+K3ZvaWQgZmZfaDI2NF9p ZGN0OF9kY19hZGRfMTRfcnZ2KHVpbnQ4X3QgKiwgaW50MTZfdCAqLCBpbnQpOwo+IAo+LWF2X2Nv bGQgdm9pZCBmZl9oMjY0ZHNwX2luaXRfcmlzY3YoSDI2NERTUENvbnRleHQgKmRzcCwgY29uc3Qg aW50IGJpdF9kZXB0aCwKPithdl9jb2xkIHZvaWQgZmZfaDI2NGRzcF9pbml0X3Jpc2N2KEgyNjRE U1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50IGNocm9tYV9mb3JtYXRfaWRjKQo+IHsKPiAjaWYgSEFW RV9SVgo+ICAgICBpbnQgZmxhZ3MgPSBhdl9nZXRfY3B1X2ZsYWdzKCk7Cj4gCj4gICAgIGlmIChm bGFncyAmIEFWX0NQVV9GTEFHX1JWQl9CQVNJQykKPi0gICAgICAgIGRzcC0+c3RhcnRjb2RlX2Zp bmRfY2FuZGlkYXRlID0gZmZfc3RhcnRjb2RlX2ZpbmRfY2FuZGlkYXRlX3J2YjsKPisgICAgICAg IGMtPnN0YXJ0Y29kZV9maW5kX2NhbmRpZGF0ZSA9IGZmX3N0YXJ0Y29kZV9maW5kX2NhbmRpZGF0 ZV9ydmI7Cj4gIyBpZiBIQVZFX1JWVgo+ICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVfRkxBR19SVlZf STMyKQo+LSAgICAgICAgZHNwLT5zdGFydGNvZGVfZmluZF9jYW5kaWRhdGUgPSBmZl9zdGFydGNv ZGVfZmluZF9jYW5kaWRhdGVfcnZ2Owo+KyAgICAgICAgYy0+c3RhcnRjb2RlX2ZpbmRfY2FuZGlk YXRlID0gZmZfc3RhcnRjb2RlX2ZpbmRfY2FuZGlkYXRlX3J2djsKPiAjIGVuZGlmCj4rICAgIGlm IChmZl9ydl92bGVuX2xlYXN0KDEyOCkpIHsKPisgICAgICAgIHN3aXRjaChiaXRfZGVwdGgpIHsK PisgICAgICAgIGNhc2UgODoKPisgICAgICAgICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVfRkxBR19S VlZfSTY0KSB7Cj4rICAgICAgICAgICAgICAgIGMtPmgyNjRfaWRjdF9kY19hZGQgID0gZmZfaDI2 NF9pZGN0NF9kY19hZGRfOF9ydnY7Cj4rICAgICAgICAgICAgICAgIGMtPmgyNjRfaWRjdDhfZGNf YWRkID0gZmZfaDI2NF9pZGN0OF9kY19hZGRfOF9ydnY7Cj4rICAgICAgICAgICAgfQo+KyAgICAg ICAgICAgIGJyZWFrOwo+KyAgICAgICAgY2FzZSA5Ogo+KyAgICAgICAgICAgIGMtPmgyNjRfaWRj dF9kY19hZGQgID0gZmZfaDI2NF9pZGN0NF9kY19hZGRfOV9ydnY7Cj4rICAgICAgICAgICAgYy0+ aDI2NF9pZGN0OF9kY19hZGQgPSBmZl9oMjY0X2lkY3Q4X2RjX2FkZF85X3J2djsKPisgICAgICAg ICAgICBicmVhazsKPisgICAgICAgIGNhc2UgMTA6Cj4rICAgICAgICAgICAgYy0+aDI2NF9pZGN0 X2RjX2FkZCAgPSBmZl9oMjY0X2lkY3Q0X2RjX2FkZF8xMF9ydnY7Cj4rICAgICAgICAgICAgYy0+ aDI2NF9pZGN0OF9kY19hZGQgPSBmZl9oMjY0X2lkY3Q4X2RjX2FkZF8xMF9ydnY7Cj4rICAgICAg ICAgICAgYnJlYWs7Cj4rICAgICAgICBjYXNlIDEyOgo+KyAgICAgICAgICAgIGMtPmgyNjRfaWRj dF9kY19hZGQgID0gZmZfaDI2NF9pZGN0NF9kY19hZGRfMTJfcnZ2Owo+KyAgICAgICAgICAgIGMt PmgyNjRfaWRjdDhfZGNfYWRkID0gZmZfaDI2NF9pZGN0OF9kY19hZGRfMTJfcnZ2Owo+KyAgICAg ICAgICAgIGJyZWFrOwo+KyAgICAgICAgY2FzZSAxNDoKPisgICAgICAgICAgICBjLT5oMjY0X2lk Y3RfZGNfYWRkICA9IGZmX2gyNjRfaWRjdDRfZGNfYWRkXzE0X3J2djsKPisgICAgICAgICAgICBj LT5oMjY0X2lkY3Q4X2RjX2FkZCA9IGZmX2gyNjRfaWRjdDhfZGNfYWRkXzE0X3J2djsKPisgICAg ICAgICAgICBicmVhazsKPisgICAgICAgfQo+KyAgICB9Cj4gI2VuZGlmCj4gfQo+ZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9ydnYuUyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2 NGRzcF9ydnYuUwo+bmV3IGZpbGUgbW9kZSAxMDA2NDQKPmluZGV4IDAwMDAwMDAwMDAuLjBlNmMy ZTQ5ZTkKPi0tLSAvZGV2L251bGwKPisrKyBiL2xpYmF2Y29kZWMvcmlzY3YvaDI2NGRzcF9ydnYu Uwo+QEAgLTAsMCArMSwxMzAgQEAKPisvKgo+KyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UKPisgKgo+KyAqIENvcHlyaWdodCAoYykgMjAyNCBKLiBEZWtrZXIgPGpkZWtA aXRhbmltdWwubGk+Cj4rICoKPisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKPisgKiBtb2RpZmljYXRpb24sIGFyZSBw ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKPisgKiBhcmUg bWV0Ogo+KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0 aGUgYWJvdmUgY29weXJpZ2h0Cj4rICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgo+KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cj4rICogICAg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp bWVyIGluIHRoZQo+KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCj4rICoKPisgKiBUSElTIFNPRlRXQVJFIElT IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJ UyIKPisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCj4rICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKPisgKiBBUkUg RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05U UklCVVRPUlMgQkUKPisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCj4rICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKPisgKiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig QlVTSU5FU1MKPisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgo+KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCj4rICogQVJJ U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUKPisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KPisgKi8KPisK PisjaW5jbHVkZSAibGliYXZ1dGlsL3Jpc2N2L2FzbS5TIgo+Kwo+Ky5tYWNybyBpZGN0X2RjX2Fk ZDggd2lkdGgKPitmdW5jIGZmX2gyNjRfaWRjdFx3aWR0aFwoKV9kY19hZGRfOF9ydnYsIHp2ZTY0 eCwgemJhCj4rLmlmIFx3aWR0aCA9PSA4Cj4rICAgICAgICB2c2V0aXZsaSAgICAgICAgemVybywg XHdpZHRoLCBlMTYsIG0xLCB0YSwgbWEKPisuZWxzZQo+KyAgICAgICAgdnNldGl2bGkgICAgICAg IHplcm8sIFx3aWR0aCwgZTE2LCBtZjIsIHRhLCBtYQo+Ky5lbmRpZgo+KyAgICAgICAgbGggICAg ICAgICAgICAgIGEzLCAwKGExKQo+KyAgICAgICAgYWRkaSAgICAgICAgICAgIGEzLCBhMywgMzIK PisgICAgICAgIHNyYWkgICAgICAgICAgICBhMywgYTMsIDYKPisgICAgICAgIHNoICAgICAgICAg ICAgICB6ZXJvLCAwKGExKQo+Ky5pZiBcd2lkdGggPT0gOAo+KyAgICAgICAgdmxzZTY0LnYgICAg ICAgIHYyNCwgKGEwKSwgYTIKPisgICAgICAgIHZzZXR2bGkgICAgICAgICB0MCwgemVybywgZTE2 LCBtOCwgdGEsIG1hCj4rLmVsc2UKPisgICAgICAgIHZsc2UzMi52ICAgICAgICB2MjQsIChhMCks IGEyCj4rICAgICAgICB2c2V0dmxpICAgICAgICAgdDAsIHplcm8sIGUxNiwgbTQsIHRhLCBtYQo+ Ky5lbmRpZgo+KyAgICAgICAgdnpleHQudmYyICAgICAgIHYwLCB2MjQKPisgICAgICAgIHZhZGQu dnggICAgICAgICB2MCwgdjAsIGEzCj4rICAgICAgICB2bWF4LnZ4ICAgICAgICAgdjAsIHYwLCB6 ZXJvCj4rLmlmIFx3aWR0aCA9PSA4Cj4rICAgICAgICB2c2V0dmxpICAgICAgICAgemVybywgemVy bywgZTgsIG00LCB0YSwgbWEKPisuZWxzZQo+KyAgICAgICAgdnNldHZsaSAgICAgICAgIHplcm8s IHplcm8sIGU4LCBtMiwgdGEsIG1hCj4rLmVuZGlmCj4rICAgICAgICB2bmNsaXB1LndpICAgICAg djI0LCB2MCwgMAo+KyAgICAgICAgdnNldGl2bGkgICAgICAgIHplcm8sIFx3aWR0aCwgZTgsIG0x LCB0YSwgbWEKClNob3VsZCB3b3JrIHdpdGggbWYyL21mNCwgdGhvdWdoIEknbSBub3Qgc3VyZSBp ZiBpdCBtYWtlcyBhbnkgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgZGlmZmVyZW5jZS4gT3IgYWx0 ZXJuYXRpdmVseSwgYGU2NCwgbTQvbTJgIHdvdWxkIG1hdGNoIHRoZSBMTVVMIGFib3ZlLCBidXQg dGhhdCBpcyBwdXJlbHkgY29zbWV0aWMgc2luY2UgU0VXIGlzIG5vdCB1c2VkIGhlcmUuCgpObyBv YmplY3Rpb25zIGJ1dCBpdCBsb29rcyBsaWtlIHRoaXMgbmVlZHMgcmViYXNpbmcuCgo+Ky5pZiBc d2lkdGggPT0gOAo+KyAgICAgICAgdnNzZTY0LnYgICAgICAgIHYyNCwgKGEwKSwgYTIKPisuZWxz ZQo+KyAgICAgICAgdnNzZTMyLnYgICAgICAgIHYyNCwgKGEwKSwgYTIKPisuZW5kaWYKPisgICAg ICAgIHJldAo+K2VuZGZ1bmMKPisuZW5kbQo+Kwo+K2lkY3RfZGNfYWRkOCA0Cj4raWRjdF9kY19h ZGQ4IDgKPisKPisubWFjcm8gaWRjdF9kY19hZGQgd2lkdGgKPitmdW5jIGZmX2gyNjRfaWRjdFx3 aWR0aFwoKV9kY19hZGRfMTZfcnZ2LCB6dmU2NHgsIHpiYQo+KyAgICAgICAgdnNldGl2bGkgICAg ICAgIHplcm8sIFx3aWR0aCwgZTE2LCBtMSwgdGEsIG1hCj4rICAgICAgICBsdyAgICAgICAgICAg ICAgYTMsIDAoYTEpCj4rICAgICAgICBhZGRpICAgICAgICAgICAgYTMsIGEzLCAzMgo+KyAgICAg ICAgc3JhaSAgICAgICAgICAgIGEzLCBhMywgNgo+KyAgICAgICAgc3cgICAgICAgICAgICAgIHpl cm8sIDAoYTEpCj4rICAgICAgICBhZGQgICAgICAgICAgICAgdDQsIGEwLCBhMgo+KyAgICAgICAg c2gxYWRkICAgICAgICAgIHQ1LCBhMiwgYTAKPisgICAgICAgIHNoMWFkZCAgICAgICAgICB0Niwg YTIsIHQ0Cj4rLmlmIFx3aWR0aCA9PSA4Cj4rICAgICAgICBzaDJhZGQgICAgICAgICAgdDAsIGEy LCBhMAo+KyAgICAgICAgc2gyYWRkICAgICAgICAgIHQxLCBhMiwgdDQKPisgICAgICAgIHNoMmFk ZCAgICAgICAgICB0MiwgYTIsIHQ1Cj4rICAgICAgICBzaDJhZGQgICAgICAgICAgdDMsIGEyLCB0 Ngo+Ky5lbmRpZgo+KyAgICAgICAgdmxlMTYudiAgICAgICAgIHYwLCAoYTApCj4rICAgICAgICB2 bGUxNi52ICAgICAgICAgdjEsICh0NCkKPisgICAgICAgIHZsZTE2LnYgICAgICAgICB2MiwgKHQ1 KQo+KyAgICAgICAgdmxlMTYudiAgICAgICAgIHYzLCAodDYpCj4rLmlmIFx3aWR0aCA9PSA4Cj4r ICAgICAgICB2bGUxNi52ICAgICAgICAgdjQsICh0MCkKPisgICAgICAgIHZsZTE2LnYgICAgICAg ICB2NSwgKHQxKQo+KyAgICAgICAgdmxlMTYudiAgICAgICAgIHY2LCAodDIpCj4rICAgICAgICB2 bGUxNi52ICAgICAgICAgdjcsICh0MykKPisgICAgICAgIHZzZXR2bGkgICAgICAgICBhNiwgemVy bywgZTE2LCBtOCwgdGEsIG1hCj4rLmVsc2UKPisgICAgICAgIHZzZXR2bGkgICAgICAgICBhNiwg emVybywgZTE2LCBtNCwgdGEsIG1hCj4rLmVuZGlmCj4rICAgICAgICB2YWRkLnZ4ICAgICAgICAg djAsIHYwLCBhMwo+KyAgICAgICAgdm1heC52eCAgICAgICAgIHYwLCB2MCwgemVybwo+KyAgICAg ICAgdm1pbi52eCAgICAgICAgIHYwLCB2MCwgYTUKPisgICAgICAgIHZzZXRpdmxpICAgICAgICB6 ZXJvLCBcd2lkdGgsIGUxNiwgbTEsIHRhLCBtYQo+KyAgICAgICAgdnNlMTYudiAgICAgICAgIHYw LCAoYTApCj4rICAgICAgICB2c2UxNi52ICAgICAgICAgdjEsICh0NCkKPisgICAgICAgIHZzZTE2 LnYgICAgICAgICB2MiwgKHQ1KQo+KyAgICAgICAgdnNlMTYudiAgICAgICAgIHYzLCAodDYpCj4r LmlmIFx3aWR0aCA9PSA4Cj4rICAgICAgICB2c2UxNi52ICAgICAgICAgdjQsICh0MCkKPisgICAg ICAgIHZzZTE2LnYgICAgICAgICB2NSwgKHQxKQo+KyAgICAgICAgdnNlMTYudiAgICAgICAgIHY2 LCAodDIpCj4rICAgICAgICB2c2UxNi52ICAgICAgICAgdjcsICh0MykKPisuZW5kaWYKPisgICAg ICAgIHJldAo+K2VuZGZ1bmMKPisuZW5kbQo+Kwo+K2lkY3RfZGNfYWRkIDQKPitpZGN0X2RjX2Fk ZCA4Cj4rCj4rLmlycCBkZXB0aCw5LDEwLDEyLDE0Cj4rZnVuYyBmZl9oMjY0X2lkY3Q0X2RjX2Fk ZF9cZGVwdGhcKClfcnZ2LCB6dmU2NHgKPisgICAgICAgIGxpICAgICAgICAgICAgICBhNSwgKDEg PDwgXGRlcHRoKSAtIDEKPisgICAgICAgIGogICAgICAgICAgICAgICBmZl9oMjY0X2lkY3Q0X2Rj X2FkZF8xNl9ydnYKPitlbmRmdW5jCj4rCj4rZnVuYyBmZl9oMjY0X2lkY3Q4X2RjX2FkZF9cZGVw dGhcKClfcnZ2LCB6dmU2NHgKPisgICAgICAgIGxpICAgICAgICAgICAgICBhNSwgKDEgPDwgXGRl cHRoKSAtIDEKPisgICAgICAgIGogICAgICAgICAgICAgICBmZl9oMjY0X2lkY3Q4X2RjX2FkZF8x Nl9ydnYKPitlbmRmdW5jCj4rLmVuZHIKPi0tIAo+Mi40NC4xCj4KPl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj5mZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0 Cj5mZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCj4KPlRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBv ciBlbWFpbAo+ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVu c3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=