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 7BA1E48943 for ; Thu, 21 Dec 2023 20:16:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF33168D11C; Thu, 21 Dec 2023 22:16:19 +0200 (EET) Received: from 15.mo561.mail-out.ovh.net (15.mo561.mail-out.ovh.net [87.98.150.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 398D168CEF1 for ; Thu, 21 Dec 2023 22:16:13 +0200 (EET) Received: from director4.ghost.mail-out.ovh.net (unknown [10.109.148.87]) by mo561.mail-out.ovh.net (Postfix) with ESMTP id D38162B53B for ; Thu, 21 Dec 2023 20:16:11 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-nkw99 (unknown [10.110.96.141]) by director4.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 7A9061FD7D for ; Thu, 21 Dec 2023 20:16:10 +0000 (UTC) Received: from courmont.net ([37.59.142.107]) by ghost-submission-6684bf9d7b-nkw99 with ESMTPSA id 8s4+OgqdhGVdHxwAmu8PFg (envelope-from ) for ; Thu, 21 Dec 2023 20:16:10 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-107S001bf7d5fb9-b38e-45fe-9815-018a6547ce68, E5683A6F49BF55E9BFED5F0E3FDD2DD047B4073C) smtp.auth=postmaster@courmont.net X-OVh-ClientIp: 87.92.194.88 From: =?ISO-8859-1?Q?R=E9mi?= Denis-Courmont To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Dec 2023 22:16:09 +0200 Message-ID: <2897841.9JAYuftNni@basile.remlab.net> Organization: Remlab In-Reply-To: <20231219120200.24003-1-martin@martin.st> References: <20231219120200.24003-1-martin@martin.st> MIME-Version: 1.0 X-Ovh-Tracer-Id: 11316138491385879033 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvkedrvdduhedguddtkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvufffkfhojghfggfgtgesthhqredttddtjeenucfhrhhomheptformhhiucffvghnihhsqdevohhurhhmohhnthcuoehrvghmihesrhgvmhhlrggsrdhnvghtqeenucggtffrrghtthgvrhhnpeekgedtvdegudfggeduhefhleettddvtdejteetveetleeileejkedtheejtddvhfenucffohhmrghinheptghhvggtkhgrshhmrdhssgdpthhlshdrihgvpdhrvghmlhgrsgdrnhgvthenucfkphepuddvjedrtddrtddruddpkeejrdelvddrudelgedrkeekpdefjedrheelrddugedvrddutdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpeeorhgvmhhisehrvghmlhgrsgdrnhgvtheqpdhnsggprhgtphhtthhopedupdhrtghpthhtohepfhhfmhhpvghgqdguvghvvghlsehffhhmphgvghdrohhrghdpoffvtefjohhsthepmhhoheeiuddpmhhouggvpehsmhhtphhouhht Subject: Re: [FFmpeg-devel] [PATCH] checkasm: Generalize crash handling 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: TGUgdGlpc3RhaW5hIDE5LiBqb3VsdWt1dXRhIDIwMjMsIDE0LjAyLjAwIEVFVCBNYXJ0aW4gU3Rv cnNqw7YgYSDDqWNyaXQgOgo+IFRoaXMgcmVwbGFjZXMgdGhlIHJpc2N2IHNwZWNpZmljIGhhbmRs aW5nIGZyb20KPiA3MjEyNDY2ZTczNWFhMTg3ZDgyZjUxZGFkYmNlOTU3ZmUzZGE3N2YwICh3aGlj aCBlc3NlbnRpYWxseSBpcwo+IHJldmVydGVkLCB0b2dldGhlciB3aXRoIDI4NmQ2NzQyMjE4YmEw MjM1YzMyODc2YjUwYmY1OTNjYjE5ODYzNTMpCj4gd2l0aCBhIGRpZmZlcmVudCBpbXBsZW1lbnRh dGlvbiBvZiB0aGUgc2FtZSAocGx1cyBhIGJpdCBtb3JlKSwgYmFzZWQKPiBvbiB0aGUgY29ycmVz cG9uZGluZyBmZWF0dXJlIGluIGRhdjFkJ3MgY2hlY2thc20sIHN1cHBvcnRpbmcgYm90aCBVbml4 Cj4gYW5kIFdpbmRvd3MuCj4gCj4gU2VlIGluIHBhcnRpY3VsYXIgZGF2MWQgY29tbWl0cwo+IDBi NmVlMzBlYWIyNDAwZTRmODViNzM1YWQyOWE2OGE4NDJjMzRlMjEgYW5kCj4gMDQyMWY3ODdlYTU5 MmZkMmNjNzRjODg3ZjIwYjhkYzMxMzkzNzg4YiwgYXV0aG9yZWQgYnkKPiBIZW5yaWsgR3JhbW5l ci4KPiAKPiBUaGUgb3ZlcmFsbCBhcHByb2FjaCBpcyB0aGUgc2FtZTsgc2V0IHVwIGEgc2lnbmFs IGhhbmRsZXIsCj4gc3RvcmUgdGhlIHN0YXRlIHdpdGggc2V0am1wL3NpZ3NldGptcCwganVtcCBv dXQgb2YgdGhlIGNyYXNoaW5nCj4gZnVuY3Rpb24gd2l0aCBsb25nam1wL3NpZ2xvbmdqbXAuCj4g Cj4gVGhlIG1haW4gZGlmZmVyZW5jZSBpcyBpbiB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2lnbmFs IGhhbmRsZXIKPiBpcyBpbnZva2VkLiBJbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24sIGl0 IHdvdWxkIHJlc3VtZSBmcm9tCj4gcmlnaHQgYmVmb3JlIGNhbGxpbmcgdGhlIGNyYXNoaW5nIGZ1 bmN0aW9uLCBhbmQgdGhlbiBza2lwIHRoYXQgY2FsbAo+IGJhc2VkIG9uIHRoZSBzZXRqbXAgcmV0 dXJuIHZhbHVlLgo+IAo+IEluIHRoZSBpbXBvcnRlZCBpbXBsZW1lbnRhdGlvbiBmcm9tIGRhdjFk LCB3ZSByZXR1cm4gdG8gcmlnaHQgYmVmb3JlCj4gdGhlIGNoZWNrX2Z1bmMoKSBjYWxsLCB3aGlj aCB3aWxsIHNraXAgdGVzdGluZyB0aGUgY3VycmVudCBmdW5jdGlvbgo+IChhcyB0aGUgcG9pbnRl ciBpcyB0aGUgc2FtZSBhcyBpdCB3YXMgYmVmb3JlKS4KPiAKPiBPdGhlciBkaWZmZXJlbmNlcyBh cmU6Cj4gLSBTdXBwb3J0IGZvciBvdGhlciBzaWduYWwgaGFuZGxpbmcgbWVjaGFuaXNtcyAoV2lu ZG93cwo+ICAgQWRkVmVjdG9yZWRFeGNlcHRpb25IYW5kbGVyKQo+IC0gVXNpbmcgUnRsQ2FwdHVy ZUNvbnRleHQvUnRsUmVzdG9yZUNvbnRleHQgaW5zdGVhZCBvZiBzZXRqbXAvbG9uZ2ptcAo+ICAg b24gV2luZG93cyB3aXRoIFNFSCAod2hpY2ggYWRkcyB0aGUgZGVzaWduIGxpbWl0YXRpb24gdGhh dCBpdCBkb2Vzbid0Cj4gICByZXR1cm4gYSB2YWx1ZSBsaWtlIHNldGptcCBkb2VzKQo+IC0gT25s eSBjYXRjaGluZyBzaWduYWxzIG9uY2UgcGVyIGZ1bmN0aW9uIC0gaWYgbW9yZSB0aGFuIG9uZQo+ ICAgc2lnbmFsIGlzIGRlbGl2ZXJlZCBiZWZvcmUgc2lnbmFsIGhhbmRsaW5nIGlzIHJlZW5hYmxl ZCwgYW55Cj4gICBzaWduYWwgaXMgaGFuZGxlZCBhcyBpdCB3b3VsZCB3aXRob3V0IG91ciBoYW5k bGVyCj4gLSBOb3QgdXNpbmcgYW4gYXJjaCBzcGVjaWZpYyBzaWduYWwgaGFuZGxlciB3cml0dGVu IGluIGFzc2VtYmx5Cj4gLS0tCj4gIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMgICAgICAgfCAx MDAgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgdGVzdHMvY2hlY2thc20vY2hl Y2thc20uaCAgICAgICB8ICA3OSArKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIHRlc3RzL2No ZWNrYXNtL3Jpc2N2L2NoZWNrYXNtLlMgfCAgMTIgLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDE0 MCBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv Y2hlY2thc20vY2hlY2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKPiBpbmRleCA2 MzE4ZDkyOTZiLi42NjgwMzRjNjdmIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNr YXNtLmMKPiArKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCj4gQEAgLTIzLDggKzIzLDEw IEBACj4gICNpbmNsdWRlICJjb25maWcuaCIKPiAgI2luY2x1ZGUgImNvbmZpZ19jb21wb25lbnRz LmgiCj4gCj4gLSNpZm5kZWYgX0dOVV9TT1VSQ0UKPiAtIyBkZWZpbmUgX0dOVV9TT1VSQ0UgLy8g Zm9yIHN5c2NhbGwgKHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgQVBJKSwKPiBzdHJzaWduYWwoKSAr I2lmIENPTkZJR19MSU5VWF9QRVJGCj4gKyMgaWZuZGVmIF9HTlVfU09VUkNFCj4gKyMgIGRlZmlu ZSBfR05VX1NPVVJDRSAvLyBmb3Igc3lzY2FsbCAocGVyZm9ybWFuY2UgbW9uaXRvcmluZyBBUEkp Cj4gKyMgZW5kaWYKPiAgI2VuZGlmCj4gCj4gICNpbmNsdWRlIDxzaWduYWwuaD4KPiBAQCAtMzI2 LDYgKzMyOCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgewo+ICAgICAgY29uc3QgY2hhciAqY3B1X2ZsYWdf bmFtZTsKPiAgICAgIGNvbnN0IGNoYXIgKnRlc3RfbmFtZTsKPiAgICAgIGludCB2ZXJib3NlOwo+ ICsgICAgaW50IGNhdGNoX3NpZ25hbHM7CgpBRkFJQ1QsIHRoaXMgbmVlZHMgdG8gYmUgdm9sYXRp bGUgc2lnYXRvbWljX3QKCj4gIH0gc3RhdGU7Cj4gCj4gIC8qIFBSTkcgc3RhdGUgKi8KPiBAQCAt NjI3LDYgKzYzMCw2NCBAQCBzdGF0aWMgQ2hlY2thc21GdW5jICpnZXRfZnVuYyhDaGVja2FzbUZ1 bmMgKipyb290LAo+IGNvbnN0IGNoYXIgKm5hbWUpIHJldHVybiBmOwo+ICB9Cj4gCj4gK2NoZWNr YXNtX2NvbnRleHQgY2hlY2thc21fY29udGV4dF9idWY7Cj4gKwo+ICsvKiBDcmFzaCBoYW5kbGlu ZzogYXR0ZW1wdCB0byBjYXRjaCBjcmFzaGVzIGFuZCBoYW5kbGUgdGhlbQo+ICsgKiBncmFjZWZ1 bGx5IGluc3RlYWQgb2YganVzdCBhYm9ydGluZyBhYnJ1cHRseS4gKi8KPiArI2lmZGVmIF9XSU4z Mgo+ICsjaWYgV0lOQVBJX0ZBTUlMWV9QQVJUSVRJT04oV0lOQVBJX1BBUlRJVElPTl9ERVNLVE9Q KQo+ICtzdGF0aWMgTE9ORyBOVEFQSSBzaWduYWxfaGFuZGxlcihFWENFUFRJT05fUE9JTlRFUlMg KmNvbnN0IGUpIHsKPiArICAgIGNvbnN0IGNoYXIgKmVycjsKPiArCj4gKyAgICBpZiAoIXN0YXRl LmNhdGNoX3NpZ25hbHMpCj4gKyAgICAgICAgcmV0dXJuIEVYQ0VQVElPTl9DT05USU5VRV9TRUFS Q0g7Cj4gKwo+ICsgICAgc3dpdGNoIChlLT5FeGNlcHRpb25SZWNvcmQtPkV4Y2VwdGlvbkNvZGUp IHsKPiArICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9ESVZJREVfQllfWkVSTzoKPiArICAgIGNhc2Ug RVhDRVBUSU9OX0lOVF9ESVZJREVfQllfWkVSTzoKPiArICAgICAgICBlcnIgPSAiZmF0YWwgYXJp dGhtZXRpYyBlcnJvciI7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAgICBjYXNlIEVYQ0VQVElPTl9J TExFR0FMX0lOU1RSVUNUSU9OOgo+ICsgICAgY2FzZSBFWENFUFRJT05fUFJJVl9JTlNUUlVDVElP TjoKPiArICAgICAgICBlcnIgPSAiaWxsZWdhbCBpbnN0cnVjdGlvbiI7Cj4gKyAgICAgICAgYnJl YWs7Cj4gKyAgICBjYXNlIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OOgo+ICsgICAgY2FzZSBF WENFUFRJT05fQVJSQVlfQk9VTkRTX0VYQ0VFREVEOgo+ICsgICAgY2FzZSBFWENFUFRJT05fREFU QVRZUEVfTUlTQUxJR05NRU5UOgo+ICsgICAgY2FzZSBFWENFUFRJT05fU1RBQ0tfT1ZFUkZMT1c6 Cj4gKyAgICAgICAgZXJyID0gInNlZ21lbnRhdGlvbiBmYXVsdCI7Cj4gKyAgICAgICAgYnJlYWs7 Cj4gKyAgICBjYXNlIEVYQ0VQVElPTl9JTl9QQUdFX0VSUk9SOgo+ICsgICAgICAgIGVyciA9ICJi dXMgZXJyb3IiOwo+ICsgICAgICAgIGJyZWFrOwo+ICsgICAgZGVmYXVsdDoKPiArICAgICAgICBy ZXR1cm4gRVhDRVBUSU9OX0NPTlRJTlVFX1NFQVJDSDsKPiArICAgIH0KPiArICAgIHN0YXRlLmNh dGNoX3NpZ25hbHMgPSAwOwo+ICsgICAgY2hlY2thc21fZmFpbF9mdW5jKCIlcyIsIGVycik7Cj4g KyAgICBjaGVja2FzbV9sb2FkX2NvbnRleHQoKTsKPiArICAgIHJldHVybiBFWENFUFRJT05fQ09O VElOVUVfRVhFQ1VUSU9OOyAvKiBuZXZlciByZWFjaGVkLCBidXQgc2h1dHMgdXAgZ2NjCj4gKi8g K30KPiArI2VuZGlmCj4gKyNlbHNlCj4gK3N0YXRpYyB2b2lkIHNpZ25hbF9oYW5kbGVyKGNvbnN0 IGludCBzKSB7Cj4gKyAgICBpZiAoc3RhdGUuY2F0Y2hfc2lnbmFscykgewo+ICsgICAgICAgIHN0 YXRlLmNhdGNoX3NpZ25hbHMgPSAwOwo+ICsgICAgICAgIGNoZWNrYXNtX2ZhaWxfZnVuYygiJXMi LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzID09IFNJR0ZQRSA/ICJmYXRhbCBhcml0 aG1ldGljIGVycm9yIiA6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgPT0gU0lHSUxM ID8gImlsbGVnYWwgaW5zdHJ1Y3Rpb24iIDoKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg cyA9PSBTSUdCVVMgPyAiYnVzIGVycm9yIiA6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInNlZ21lbnRhdGlvbiBmYXVsdCIpOwoKVGhlIGN1cnJlbnQgY29kZSBm b3IgdGhlIGVycm9yIHByaW50LW91dCBpcyBib3RoIHNpbXBsZXIgYW5kIG1vcmUgdmVyc2F0aWxl LCAKc28gSSBkb24ndCBnZXQgdGhpcy4KCj4gKyAgICAgICAgY2hlY2thc21fbG9hZF9jb250ZXh0 KCk7Cj4gKyAgICB9IGVsc2Ugewo+ICsgICAgICAgIC8qIGZhbGwgYmFjayB0byB0aGUgZGVmYXVs dCBzaWduYWwgaGFuZGxlciAqLwo+ICsgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2lnYWN0 aW9uIGRlZmF1bHRfc2EgPSB7IC5zYV9oYW5kbGVyID0gU0lHX0RGTAo+IH07ICsgICAgICAgIHNp Z2FjdGlvbihzLCAmZGVmYXVsdF9zYSwgTlVMTCk7Cj4gKyAgICAgICAgcmFpc2Uocyk7CgpXaHkg cmFpc2UgaGVyZT8gUmV0dXJuaW5nIGZyb20gdGhlIGhhbmRsZXIgd2lsbCByZWV2YWx1YXRlIHRo ZSBzYW1lIGNvZGUgd2l0aCAKdGhlIHNhbWUgdGhyZWFkIHN0YXRlLCBhbmQgdHJpZ2dlciB0aGUg ZGVmYXVsdCBzaWduYWwgaGFuZGxlciBhbnl3YXkgKHNpbmNlIAp5b3UgZG9uJ3QgbW9kaWZ5IHRo ZSB1c2VyIGNvbnRleHQpLgoKPiArICAgIH0KPiArfQo+ICsjZW5kaWYKPiArCj4gIC8qIFBlcmZv cm0gdGVzdHMgYW5kIGJlbmNobWFya3MgZm9yIHRoZSBzcGVjaWZpZWQgY3B1IGZsYWcgaWYgc3Vw cG9ydGVkIGJ5Cj4gdGhlIGhvc3QgKi8gc3RhdGljIHZvaWQgY2hlY2tfY3B1X2ZsYWcoY29uc3Qg Y2hhciAqbmFtZSwgaW50IGZsYWcpCj4gIHsKPiBAQCAtNzM3LDE4ICs3OTgsMjQgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgICAgIHVuc2lnbmVkIGludCBzZWVkID0gYXZf Z2V0X3JhbmRvbV9zZWVkKCk7Cj4gICAgICBpbnQgaSwgcmV0ID0gMDsKPiAKPiArI2lmZGVmIF9X SU4zMgo+ICsjaWYgV0lOQVBJX0ZBTUlMWV9QQVJUSVRJT04oV0lOQVBJX1BBUlRJVElPTl9ERVNL VE9QKQo+ICsgICAgQWRkVmVjdG9yZWRFeGNlcHRpb25IYW5kbGVyKDAsIHNpZ25hbF9oYW5kbGVy KTsKPiArI2VuZGlmCj4gKyNlbHNlCj4gKyAgICBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uIHNhID0g ewo+ICsgICAgICAgIC5zYV9oYW5kbGVyID0gc2lnbmFsX2hhbmRsZXIsCj4gKyAgICAgICAgLnNh X2ZsYWdzID0gU0FfTk9ERUZFUiwKClRoYXQgZG9lcyBub3QgbG9vayB2ZXJ5IHNhbmUgdG8gbWUu IElmIGEgcmVjdXJzaXZlIHNpZ25hbCBvY2N1cnMsIHByb2Nlc3NpbmcgCml0IHJlY3Vyc2l2ZWx5 IGlzIE5PVCBhIGdvb2QgaWRlYS4gVGhpcyB3b3VsZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLCAK ZXZlbnR1YWxseSBhIGxpdGVyYWwgc3RhY2sgb3ZlcmZsb3cgYWZ0ZXIgbWF4aW5nIG91dCB0aGUg cHJvY2Vzc29yIGZvciBhIHdoaWxlLiAKSSdkIHJhdGhlciBsZXQgdGhlIE9TIGtlcm5lbCBkZWFs IHdpdGggdGhlIHByb2JsZW0sIGJ5IGtpbGxpbmcgdGhlIHByb2Nlc3Mgb3IgCndoYXRldmVyIHRo ZSBsYXN0IHJlc29ydCBpcy4KCj4gKyAgICB9Owo+ICsgICAgc2lnYWN0aW9uKFNJR0JVUywgICZz YSwgTlVMTCk7Cj4gKyAgICBzaWdhY3Rpb24oU0lHRlBFLCAgJnNhLCBOVUxMKTsKPiArICAgIHNp Z2FjdGlvbihTSUdJTEwsICAmc2EsIE5VTEwpOwo+ICsgICAgc2lnYWN0aW9uKFNJR1NFR1YsICZz YSwgTlVMTCk7Cj4gKyNlbmRpZgo+ICAjaWYgQVJDSF9BUk0gJiYgSEFWRV9BUk1WNVRFX0VYVEVS TkFMCj4gICAgICBpZiAoaGF2ZV92ZnAoYXZfZ2V0X2NwdV9mbGFncygpKSB8fCBoYXZlX25lb24o YXZfZ2V0X2NwdV9mbGFncygpKSkKPiAgICAgICAgICBjaGVja2FzbV9jaGVja2VkX2NhbGwgPSBj aGVja2FzbV9jaGVja2VkX2NhbGxfdmZwOwo+ICAjZW5kaWYKPiAtI2lmIEFSQ0hfUklTQ1YgJiYg SEFWRV9SVgo+IC0gICAgc3RydWN0IHNpZ2FjdGlvbiBhY3QgPSB7Cj4gLSAgICAgICAgLnNhX2hh bmRsZXIgPSBjaGVja2FzbV9oYW5kbGVfc2lnbmFsLAo+IC0gICAgICAgIC5zYV9mbGFncyA9IDAs Cj4gLSAgICB9Owo+IC0KPiAtICAgIHNpZ2FjdGlvbihTSUdJTEwsICZhY3QsIE5VTEwpOwo+IC0j ZW5kaWYKPiAKPiAgICAgIGlmICghdGVzdHNbMF0uZnVuYyB8fCAhY3B1c1swXS5mbGFnKSB7Cj4g ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJjaGVja2FzbTogbm8gdGVzdHMgdG8gcGVyZm9ybVxu Iik7Cj4gQEAgLTg3NiwxNSArOTQzLDYgQEAgdm9pZCBjaGVja2FzbV9mYWlsX2Z1bmMoY29uc3Qg Y2hhciAqbXNnLCAuLi4pCj4gICAgICB9Cj4gIH0KPiAKPiAtdm9pZCBjaGVja2FzbV9mYWlsX3Np Z25hbChpbnQgc2lnbnVtKQo+IC17Cj4gLSNpZmRlZiBfX0dMSUJDX18KPiAtICAgIGNoZWNrYXNt X2ZhaWxfZnVuYygiZmF0YWwgc2lnbmFsICVkOiAlcyIsIHNpZ251bSwgc3Ryc2lnbmFsKHNpZ251 bSkpOwo+IC0jZWxzZQo+IC0gICAgY2hlY2thc21fZmFpbF9mdW5jKCJmYXRhbCBzaWduYWwgJWQi LCBzaWdudW0pOwo+IC0jZW5kaWYKPiAtfQo+IC0KPiAgLyogR2V0IHRoZSBiZW5jaG1hcmsgY29u dGV4dCBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiAqLwo+ICBDaGVja2FzbVBlcmYgKmNoZWNrYXNt X2dldF9wZXJmX2NvbnRleHQodm9pZCkKPiAgewo+IEBAIC05MzIsNiArOTkwLDEwIEBAIHZvaWQg Y2hlY2thc21fcmVwb3J0KGNvbnN0IGNoYXIgKm5hbWUsIC4uLikKPiAgICAgIH0KPiAgfQo+IAo+ ICt2b2lkIGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZShjb25zdCBpbnQgZW5hYmxl ZCkgewo+ICsgICAgc3RhdGUuY2F0Y2hfc2lnbmFscyA9IGVuYWJsZWQ7Cj4gK30KPiArCj4gICNk ZWZpbmUgREVGX0NIRUNLQVNNX0NIRUNLX0ZVTkModHlwZSwgZm10KSBcCj4gIGludCBjaGVja2Fz bV9jaGVja18jI3R5cGUoY29uc3QgY2hhciAqY29uc3QgZmlsZSwgY29uc3QgaW50IGxpbmUsIFwK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlICpidWYxLCBwdHJkaWZmX3Qg c3RyaWRlMSwgXAo+IGRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oIGIvdGVz dHMvY2hlY2thc20vY2hlY2thc20uaAo+IGluZGV4IGUzYzE5NTEwZmEuLjNkMWQxNmQ1YmIgMTAw NjQ0Cj4gLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaAo+ICsrKyBiL3Rlc3RzL2NoZWNr YXNtL2NoZWNrYXNtLmgKPiBAQCAtMjMsNyArMjMsNiBAQAo+ICAjaWZuZGVmIFRFU1RTX0NIRUNL QVNNX0NIRUNLQVNNX0gKPiAgI2RlZmluZSBURVNUU19DSEVDS0FTTV9DSEVDS0FTTV9ICj4gCj4g LSNpbmNsdWRlIDxzZXRqbXAuaD4KPiAgI2luY2x1ZGUgPHN0ZGludC5oPgo+ICAjaW5jbHVkZSAi Y29uZmlnLmgiCj4gCj4gQEAgLTQzLDYgKzQyLDI3IEBACj4gICNpbmNsdWRlICJsaWJhdnV0aWwv bGZnLmgiCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvdGltZXIuaCIKPiAKPiArI2lmICFBUkNIX1g4 Nl8zMiAmJiBkZWZpbmVkKF9XSU4zMikKPiArLyogc2V0am1wL2xvbmdqbXAgb24gV2luZG93cyBv biBhcmNoaXRlY3R1cmVzIHVzaW5nIFNFSCAoYWxsIGV4Y2VwdCB4ODZfMzIpCj4gKyAqIHdpbGwg dHJ5IHRvIHVzZSBTRUggdG8gdW53aW5kIHRoZSBzdGFjaywgd2hpY2ggZG9lc24ndCB3b3JrIGZv cgo+IGFzc2VtYmx5ICsgKiBmdW5jdGlvbnMgd2l0aG91dCB1bndpbmQgaW5mb3JtYXRpb24uICov Cj4gKyNpbmNsdWRlIDx3aW5kb3dzLmg+Cj4gKyNpZiBXSU5BUElfRkFNSUxZX1BBUlRJVElPTihX SU5BUElfUEFSVElUSU9OX0RFU0tUT1ApCj4gKyNkZWZpbmUgY2hlY2thc21fY29udGV4dCBDT05U RVhUCj4gKyNkZWZpbmUgY2hlY2thc21fc2F2ZV9jb250ZXh0KCkgUnRsQ2FwdHVyZUNvbnRleHQo JmNoZWNrYXNtX2NvbnRleHRfYnVmKQo+ICsjZGVmaW5lIGNoZWNrYXNtX2xvYWRfY29udGV4dCgp IFJ0bFJlc3RvcmVDb250ZXh0KCZjaGVja2FzbV9jb250ZXh0X2J1ZiwKPiBOVUxMKSArI2Vsc2UK PiArI2RlZmluZSBjaGVja2FzbV9jb250ZXh0IHZvaWQqCj4gKyNkZWZpbmUgY2hlY2thc21fc2F2 ZV9jb250ZXh0KCkgZG8ge30gd2hpbGUgKDApCj4gKyNkZWZpbmUgY2hlY2thc21fbG9hZF9jb250 ZXh0KCkgZG8ge30gd2hpbGUgKDApCj4gKyNlbmRpZgo+ICsjZWxzZQo+ICsjaW5jbHVkZSA8c2V0 am1wLmg+Cj4gKyNkZWZpbmUgY2hlY2thc21fY29udGV4dCBqbXBfYnVmCj4gKyNkZWZpbmUgY2hl Y2thc21fc2F2ZV9jb250ZXh0KCkgc2V0am1wKGNoZWNrYXNtX2NvbnRleHRfYnVmKQo+ICsjZGVm aW5lIGNoZWNrYXNtX2xvYWRfY29udGV4dCgpIGxvbmdqbXAoY2hlY2thc21fY29udGV4dF9idWYs IDEpCj4gKyNlbmRpZgoKQmVlbiB0aGVyZSBkb25lIHRoYXQgYW5kIGl0IGRpZCBub3QgZW5kIHdl bGwuCnNpZ3NldGptcCgpICYgY28gYXJlIG5lY2Vzc2FyeSBoZXJlLgoKPiArCj4gIHZvaWQgY2hl Y2thc21fY2hlY2tfYWFjZW5jZHNwKHZvaWQpOwo+ICB2b2lkIGNoZWNrYXNtX2NoZWNrX2FhY3Bz ZHNwKHZvaWQpOwo+ICB2b2lkIGNoZWNrYXNtX2NoZWNrX2FjM2RzcCh2b2lkKTsKPiBAQCAtMTA1 LDkgKzEyNSwxMCBAQCBzdHJ1Y3QgQ2hlY2thc21QZXJmOwo+ICB2b2lkICpjaGVja2FzbV9jaGVj a19mdW5jKHZvaWQgKmZ1bmMsIGNvbnN0IGNoYXIgKm5hbWUsIC4uLikKPiBhdl9wcmludGZfZm9y bWF0KDIsIDMpOyBpbnQgY2hlY2thc21fYmVuY2hfZnVuYyh2b2lkKTsKPiAgdm9pZCBjaGVja2Fz bV9mYWlsX2Z1bmMoY29uc3QgY2hhciAqbXNnLCAuLi4pIGF2X3ByaW50Zl9mb3JtYXQoMSwgMik7 Cj4gLXZvaWQgY2hlY2thc21fZmFpbF9zaWduYWwoaW50IHNpZ251bSk7Cj4gIHN0cnVjdCBDaGVj a2FzbVBlcmYgKmNoZWNrYXNtX2dldF9wZXJmX2NvbnRleHQodm9pZCk7Cj4gIHZvaWQgY2hlY2th c21fcmVwb3J0KGNvbnN0IGNoYXIgKm5hbWUsIC4uLikgYXZfcHJpbnRmX2Zvcm1hdCgxLCAyKTsK PiArdm9pZCBjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3RhdGUoaW50IGVuYWJsZWQpOwo+ ICtleHRlcm4gY2hlY2thc21fY29udGV4dCBjaGVja2FzbV9jb250ZXh0X2J1ZjsKPiAKPiAgLyog ZmxvYXQgY29tcGFyZSB1dGlsaXRpZXMgKi8KPiAgaW50IGZsb2F0X25lYXJfdWxwKGZsb2F0IGEs IGZsb2F0IGIsIHVuc2lnbmVkIG1heF91bHApOwo+IEBAIC0xMzEsNyArMTUyLDcgQEAgc3RhdGlj IGF2X3VudXNlZCB2b2lkICpmdW5jX3JlZiwgKmZ1bmNfbmV3Owo+ICAjZGVmaW5lIEJFTkNIX1JV TlMgMTAwMCAvKiBUcmFkZS1vZmYgYmV0d2VlbiBhY2N1cmFjeSBhbmQgc3BlZWQgKi8KPiAKPiAg LyogRGVjaWRlIHdoZXRoZXIgb3Igbm90IHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gbmVlZHMgdG8g YmUgdGVzdGVkICovCj4gLSNkZWZpbmUgY2hlY2tfZnVuYyhmdW5jLCAuLi4pIChmdW5jX3JlZiA9 IGNoZWNrYXNtX2NoZWNrX2Z1bmMoKGZ1bmNfbmV3ID0KPiBmdW5jKSwgX19WQV9BUkdTX18pKQo+ ICsjZGVmaW5lIGNoZWNrX2Z1bmMoZnVuYywgLi4uKQo+IChjaGVja2FzbV9zYXZlX2NvbnRleHQo KSwgZnVuY19yZWYgPSBjaGVja2FzbV9jaGVja19mdW5jKChmdW5jX25ldyA9IGZ1bmMpLAo+IF9f VkFfQVJHU19fKSkKPiAKPiAgLyogRGVjbGFyZSB0aGUgZnVuY3Rpb24gcHJvdG90eXBlLiBUaGUg Zmlyc3QgYXJndW1lbnQgaXMgdGhlIHJldHVybiB2YWx1ZSwKPiB0aGUgcmVtYWluaW5nICogYXJn dW1lbnRzIGFyZSB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycy4gTmFtaW5nIHBhcmFtZXRlcnMgaXMK PiBvcHRpb25hbC4gKi8gQEAgLTE0Niw3ICsxNjcsMTAgQEAgc3RhdGljIGF2X3VudXNlZCB2b2lk ICpmdW5jX3JlZiwKPiAqZnVuY19uZXc7Cj4gICNkZWZpbmUgcmVwb3J0IGNoZWNrYXNtX3JlcG9y dAo+IAo+ICAvKiBDYWxsIHRoZSByZWZlcmVuY2UgZnVuY3Rpb24gKi8KPiAtI2RlZmluZSBjYWxs X3JlZiguLi4pICgoZnVuY190eXBlICopZnVuY19yZWYpKF9fVkFfQVJHU19fKQo+ICsjZGVmaW5l IGNhbGxfcmVmKC4uLilcCj4gKyAgICAoY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRl KDEpLFwKPiArICAgICAoKGZ1bmNfdHlwZSAqKWZ1bmNfcmVmKShfX1ZBX0FSR1NfXykpO1wKPiAr ICAgIGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgwKQo+IAo+ICAjaWYgQVJDSF9Y ODYgJiYgSEFWRV9YODZBU00KPiAgLyogVmVyaWZpZXMgdGhhdCBjbG9iYmVyZWQgY2FsbGVlLXNh dmVkIHJlZ2lzdGVycyBhcmUgcHJvcGVybHkgc2F2ZWQgYW5kCj4gcmVzdG9yZWQgQEAgLTE3OSwx NiArMjAzLDIyIEBAIHZvaWQgY2hlY2thc21fc3RhY2tfY2xvYmJlcih1aW50NjRfdAo+IGNsb2Ji ZXIsIC4uLik7ICgoY3B1X2ZsYWdzKSAmIGF2X2dldF9jcHVfZmxhZ3MoKSkgPyAodm9pZAo+ICop Y2hlY2thc21fY2hlY2tlZF9jYWxsX2VtbXMgOiBcICh2b2lkICopY2hlY2thc21fY2hlY2tlZF9j YWxsOyAjZGVmaW5lCj4gQ0xPQiAoVUlOVDY0X0MoMHhkZWFkYmVlZmRlYWRiZWVmKSkKPiAtI2Rl ZmluZSBjYWxsX25ldyguLi4pCj4gKGNoZWNrYXNtX3N0YWNrX2Nsb2JiZXIoQ0xPQixDTE9CLENM T0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDCj4gTE9CLFwgKyNkZWZpbmUg Y2FsbF9uZXcoLi4uKSAoY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDEpLFwKPiAr ICAgICAgICAgICAgICAgICAgICAgIAo+IGNoZWNrYXNtX3N0YWNrX2Nsb2JiZXIoQ0xPQixDTE9C LENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTAo+IE9CLFwgQ0xPQixD TE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQiksXCAtICAgICAgICAg ICAgICAgICAKPiAgICAgY2hlY2tlZF9jYWxsKGZ1bmNfbmV3LCAwLCAwLCAwLCAwLCAwLCBfX1ZB X0FSR1NfXykpICsgICAgICAgICAgICAgICAgICAKPiAgICAgY2hlY2tlZF9jYWxsKGZ1bmNfbmV3 LCAwLCAwLCAwLCAwLCAwLCBfX1ZBX0FSR1NfXykpO1wgKyAgICAgICAgICAgICAgICAKPiAgICAg IGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgwKQo+ICAjZWxpZiBBUkNIX1g4Nl8z Mgo+ICAjZGVmaW5lIGRlY2xhcmVfbmV3KHJldCwgLi4uKSByZXQgKCpjaGVja2VkX2NhbGwpKHZv aWQgKiwgX19WQV9BUkdTX18pID0KPiAodm9pZCAqKWNoZWNrYXNtX2NoZWNrZWRfY2FsbDsgI2Rl ZmluZSBkZWNsYXJlX25ld19mbG9hdChyZXQsIC4uLikgcmV0Cj4gKCpjaGVja2VkX2NhbGwpKHZv aWQgKiwgX19WQV9BUkdTX18pID0gKHZvaWQgKiljaGVja2FzbV9jaGVja2VkX2NhbGxfZmxvYXQ7 Cj4gI2RlZmluZSBkZWNsYXJlX25ld19lbW1zKGNwdV9mbGFncywgcmV0LCAuLi4pIHJldCAoKmNo ZWNrZWRfY2FsbCkodm9pZCAqLAo+IF9fVkFfQVJHU19fKSA9IFwgKChjcHVfZmxhZ3MpICYgYXZf Z2V0X2NwdV9mbGFncygpKSA/ICh2b2lkCj4gKiljaGVja2FzbV9jaGVja2VkX2NhbGxfZW1tcyA6 ICAgICAgICBcICh2b2lkICopY2hlY2thc21fY2hlY2tlZF9jYWxsOwo+IC0jZGVmaW5lIGNhbGxf bmV3KC4uLikgY2hlY2tlZF9jYWxsKGZ1bmNfbmV3LCBfX1ZBX0FSR1NfXykKPiArI2RlZmluZSBj YWxsX25ldyguLi4pXAo+ICsgICAgKGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgx KSxcCj4gKyAgICAgY2hlY2tlZF9jYWxsKGZ1bmNfbmV3LCBfX1ZBX0FSR1NfXywgMTUsIDE0LCAx MywgMTIsXAo+ICsgICAgICAgICAgICAgICAgICAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMs IDIsIDEpKTtcCj4gKyAgICBjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3RhdGUoMCkKPiAg I2VuZGlmCj4gICNlbGlmIEFSQ0hfQVJNICYmIEhBVkVfQVJNVjVURV9FWFRFUk5BTAo+ICAvKiBV c2UgYSBkdW1teSBhcmd1bWVudCwgdG8gb2Zmc2V0IHRoZSByZWFsIHBhcmFtZXRlcnMgYnkgMiwg bm90IG9ubHkgMS4KPiBAQCAtMjAwLDcgKzIzMCwxMCBAQCBleHRlcm4gdm9pZCAoKmNoZWNrYXNt X2NoZWNrZWRfY2FsbCkodm9pZCAqZnVuYywgaW50Cj4gZHVtbXksIC4uLik7ICNkZWZpbmUgZGVj bGFyZV9uZXcocmV0LCAuLi4pIHJldCAoKmNoZWNrZWRfY2FsbCkodm9pZCAqLCBpbnQKPiBkdW1t eSwgX19WQV9BUkdTX18sIFwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQs IFwgaW50LCBpbnQsCj4gaW50LCBpbnQsIGludCwgaW50LCBpbnQpID0gKHZvaWQgKiljaGVja2Fz bV9jaGVja2VkX2NhbGw7IC0jZGVmaW5lCj4gY2FsbF9uZXcoLi4uKSBjaGVja2VkX2NhbGwoZnVu Y19uZXcsIDAsIF9fVkFfQVJHU19fLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsCj4gNCwgMywgMiwg MSwgMCwgMCwgMCwgMCkgKyNkZWZpbmUgY2FsbF9uZXcoLi4uKSBcCj4gKyAgICAoY2hlY2thc21f c2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDEpLFwKPiArICAgICBjaGVja2VkX2NhbGwoZnVuY19u ZXcsIDAsIF9fVkFfQVJHU19fLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsCj4gMSwg MCwgMCwgMCwgMCkpO1wgKyAgICBjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3RhdGUoMCkK PiAgI2VsaWYgQVJDSF9BQVJDSDY0ICYmICFkZWZpbmVkKF9fQVBQTEVfXykKPiAgdm9pZCBjaGVj a2FzbV9zdGFja19jbG9iYmVyKHVpbnQ2NF90IGNsb2JiZXIsIC4uLik7Cj4gIHZvaWQgY2hlY2th c21fY2hlY2tlZF9jYWxsKHZvaWQgKmZ1bmMsIC4uLik7Cj4gQEAgLTIwOSwzNSArMjQyLDM5IEBA IHZvaWQgY2hlY2thc21fY2hlY2tlZF9jYWxsKHZvaWQgKmZ1bmMsIC4uLik7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBpbnQsIGludCwg aW50LCBpbnQsCj4gaW50LCBpbnQpXCA9ICh2b2lkICopY2hlY2thc21fY2hlY2tlZF9jYWxsOwo+ ICAjZGVmaW5lIENMT0IgKFVJTlQ2NF9DKDB4ZGVhZGJlZWZkZWFkYmVlZikpCj4gLSNkZWZpbmUg Y2FsbF9uZXcoLi4uKQo+IChjaGVja2FzbV9zdGFja19jbG9iYmVyKENMT0IsQ0xPQixDTE9CLENM T0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQwo+IExPQixDTE9CLFwgKyNkZWZpbmUg Y2FsbF9uZXcoLi4uKSAoY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDEpLFwKPiAr ICAgICAgICAgICAgICAgICAgICAgIAo+IGNoZWNrYXNtX3N0YWNrX2Nsb2JiZXIoQ0xPQixDTE9C LENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTAo+IE9CLENMT0IsXCBD TE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IsQ0xPQixDTE9CLENMT0IpLFwK PiBjaGVja2VkX2NhbGwoZnVuY19uZXcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIF9fVkFfQVJHU19f LFwgLSAgICAgICAgICAgICAgICAKPiAgICAgICAgICAgICAgICAgICA3LCA2LCA1LCA0LCAzLCAy LCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSkgKyAgICAgICAgICAKPiAgICAgICAgICAgICAg ICAgICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKSk7 XCArICAKPiAgICAgICAgICAgICAgICAgICBjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3Rh dGUoMCkKPiAgI2VsaWYgQVJDSF9SSVNDVgo+IC12b2lkIGNoZWNrYXNtX3NldF9mdW5jdGlvbih2 b2lkICosIHNpZ2ptcF9idWYpOwo+ICt2b2lkIGNoZWNrYXNtX3NldF9mdW5jdGlvbih2b2lkICop Owo+ICB2b2lkICpjaGVja2FzbV9nZXRfd3JhcHBlcih2b2lkKTsKPiAtdm9pZCBjaGVja2FzbV9o YW5kbGVfc2lnbmFsKGludCBzaWdudW0pOwo+IAo+ICAjaWYgSEFWRV9SViAmJiAoX19yaXNjdl94 bGVuID09IDY0KSAmJiBkZWZpbmVkIChfX3Jpc2N2X2QpCj4gICNkZWZpbmUgZGVjbGFyZV9uZXco cmV0LCAuLi4pIFwKPiAtICAgIGludCBjaGVja2VkX2NhbGxfc2lnbnVtID0gMDsgXAo+IC0gICAg c2lnam1wX2J1ZiBjaGVja2VkX2NhbGxfamI7IFwKPiAgICAgIHJldCAoKmNoZWNrZWRfY2FsbCko X19WQV9BUkdTX18pID0gY2hlY2thc21fZ2V0X3dyYXBwZXIoKTsKPiAgI2RlZmluZSBjYWxsX25l dyguLi4pIFwKPiAtICAgIChjaGVja2FzbV9zZXRfZnVuY3Rpb24oZnVuY19uZXcsIGNoZWNrZWRf Y2FsbF9qYiksIFwKPiAtICAgICAoY2hlY2tlZF9jYWxsX3NpZ251bSA9IHNpZ3NldGptcChjaGVj a2VkX2NhbGxfamIsIDEpKSA9PSAwIFwKPiAtICAgICAgICA/IGNoZWNrZWRfY2FsbChfX1ZBX0FS R1NfXykgXAo+IC0gICAgICAgIDogKGNoZWNrYXNtX2ZhaWxfc2lnbmFsKGNoZWNrZWRfY2FsbF9z aWdudW0pLCAwKSkKPiArICAgIChjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3RhdGUoMSks XAo+ICsgICAgIGNoZWNrYXNtX3NldF9mdW5jdGlvbihmdW5jX25ldyksIGNoZWNrZWRfY2FsbChf X1ZBX0FSR1NfXykpO1wKPiArICAgIGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgw KQo+ICAjZWxzZQo+ICAjZGVmaW5lIGRlY2xhcmVfbmV3KHJldCwgLi4uKQo+IC0jZGVmaW5lIGNh bGxfbmV3KC4uLikgKChmdW5jX3R5cGUgKilmdW5jX25ldykoX19WQV9BUkdTX18pCj4gKyNkZWZp bmUgY2FsbF9uZXcoLi4uKVwKPiArICAgIChjaGVja2FzbV9zZXRfc2lnbmFsX2hhbmRsZXJfc3Rh dGUoMSksXAo+ICsgICAgICgoZnVuY190eXBlICopZnVuY19uZXcpKF9fVkFfQVJHU19fKSk7XAo+ ICsgICAgY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDApCj4gICNlbmRpZgo+ICAj ZWxzZQo+ICAjZGVmaW5lIGRlY2xhcmVfbmV3KHJldCwgLi4uKQo+ICAjZGVmaW5lIGRlY2xhcmVf bmV3X2Zsb2F0KHJldCwgLi4uKQo+ICAjZGVmaW5lIGRlY2xhcmVfbmV3X2VtbXMoY3B1X2ZsYWdz LCByZXQsIC4uLikKPiAgLyogQ2FsbCB0aGUgZnVuY3Rpb24gKi8KPiAtI2RlZmluZSBjYWxsX25l dyguLi4pICgoZnVuY190eXBlICopZnVuY19uZXcpKF9fVkFfQVJHU19fKQo+ICsjZGVmaW5lIGNh bGxfbmV3KC4uLilcCj4gKyAgICAoY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDEp LFwKPiArICAgICAoKGZ1bmNfdHlwZSAqKWZ1bmNfbmV3KShfX1ZBX0FSR1NfXykpO1wKPiArICAg IGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgwKQo+ICAjZW5kaWYKPiAKPiAgI2lm bmRlZiBkZWNsYXJlX25ld19lbW1zCj4gQEAgLTI4NCw2ICszMjEsNyBAQCB0eXBlZGVmIHN0cnVj dCBDaGVja2FzbVBlcmYgewo+ICAgICAgICAgICAgICB1aW50NjRfdCB0c3VtID0gMDtcCj4gICAg ICAgICAgICAgIGludCB0aSwgdGNvdW50ID0gMDtcCj4gICAgICAgICAgICAgIHVpbnQ2NF90IHQg PSAwOyBcCj4gKyAgICAgICAgICAgIGNoZWNrYXNtX3NldF9zaWduYWxfaGFuZGxlcl9zdGF0ZSgx KTtcCj4gICAgICAgICAgICAgIGZvciAodGkgPSAwOyB0aSA8IEJFTkNIX1JVTlM7IHRpKyspIHtc Cj4gICAgICAgICAgICAgICAgICBQRVJGX1NUQVJUKHQpO1wKPiAgICAgICAgICAgICAgICAgIHRm dW5jKF9fVkFfQVJHU19fKTtcCj4gQEAgLTI5OSw2ICszMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBD aGVja2FzbVBlcmYgewo+ICAgICAgICAgICAgICBlbW1zX2MoKTtcCj4gICAgICAgICAgICAgIHBl cmYtPmN5Y2xlcyArPSB0O1wKPiAgICAgICAgICAgICAgcGVyZi0+aXRlcmF0aW9ucysrO1wKPiAr ICAgICAgICAgICAgY2hlY2thc21fc2V0X3NpZ25hbF9oYW5kbGVyX3N0YXRlKDApO1wKPiAgICAg ICAgICB9XAo+ICAgICAgfSB3aGlsZSAoMCkKPiAgI2Vsc2UKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv Y2hlY2thc20vcmlzY3YvY2hlY2thc20uUwo+IGIvdGVzdHMvY2hlY2thc20vcmlzY3YvY2hlY2th c20uUyBpbmRleCA5NzFkODgxMTU3Li43M2NhODVmMzQ0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2No ZWNrYXNtL3Jpc2N2L2NoZWNrYXNtLlMKPiArKysgYi90ZXN0cy9jaGVja2FzbS9yaXNjdi9jaGVj a2FzbS5TCj4gQEAgLTQxLDcgKzQxLDYgQEAgZW5kY29uc3QKPiAKPiAgY2hlY2tlZF9mdW5jOgo+ ICAgICAgICAgIC5xdWFkICAgMAo+IC0gICAgICAgIC5xdWFkICAgMAo+IAo+ICBzYXZlZF9yZWdz Ogo+ICAgICAgICAgIC8qIFNwYWNlIHRvIHNwaWxsIFJBLCBTUCwgR1AsIFRQLCBTMC1TMTEgYW5k IEZTMC1GUzExICovCj4gQEAgLTUzLDcgKzUyLDYgQEAgZnVuYyBjaGVja2FzbV9zZXRfZnVuY3Rp b24KPiAgICAgICAgICBsYS50bHMuaWUgdDAsIGNoZWNrZWRfZnVuYwo+ICAgICAgICAgIGFkZCAg ICAgdDAsIHRwLCB0MAo+ICAgICAgICAgIHNkICAgICAgYTAsICh0MCkKPiAtICAgICAgICBzZCAg ICAgIGExLCA4KHQwKQo+ICAgICAgICAgIHJldAo+ICBlbmRmdW5jCj4gCj4gQEAgLTE3NywxNCAr MTc1LDQgQEAgZnVuYyBjaGVja2FzbV9nZXRfd3JhcHBlciwgdgo+ICAgICAgICAgIGNhbGwgICAg Y2hlY2thc21fZmFpbF9mdW5jCj4gICAgICAgICAgaiAgICAgICA0Ygo+ICBlbmRmdW5jCj4gLQo+ IC1mdW5jIGNoZWNrYXNtX2hhbmRsZV9zaWduYWwKPiAtICAgICAgICBtdiAgICAgIGExLCBhMAo+ IC0gICAgICAgIGxhLnRscy5pZSBhMCwgY2hlY2tlZF9mdW5jCj4gLSAgICAgICAgYWRkICAgICBh MCwgdHAsIGEwCj4gLSAgICAgICAgbGQgICAgICBhMCwgOChhMCkKPiAtICAgICAgICBiZXF6ICAg IGEwLCA4Zgo+IC0gICAgICAgIHRhaWwgICAgc2lnbG9uZ2ptcAo+IC04OiAgICAgIHRhaWwgICAg YWJvcnQgLyogTm8ganVtcCBidWZmZXIgdG8gZ28gdG8gKi8KPiAtZW5kZnVuYwo+ICAjZW5kaWYK CgotLSAK44Os44Of44O744OH44OLLeOCr+ODvOODq+ODouODswpodHRwOi8vd3d3LnJlbWxhYi5u ZXQvCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K