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 6D1414361F for ; Sun, 19 Jun 2022 06:43:51 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AF65F68B57E; Sun, 19 Jun 2022 09:43:48 +0300 (EEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065072.outbound.protection.outlook.com [40.92.65.72]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1267B68096A for ; Sun, 19 Jun 2022 09:43:42 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SmqFd2oL7BT32O4nywA+TcCc6ATU9oWc66DTuD+CUgmV2iBzYYh4cYvVXbRjR2ONgRrVghr0fpvtyqeY/ovbJtMxBXw52jGL77j4HaP3vnqETSL2DPLPDP/xLP1toybDOQg1ai1QcOmhnC4Vx/yvBzgvM90NImZZpQSUB1ALO8djgguuOq+AEsr3/dlb4Ycclzw2AbxfZ7CAiSPrWqq25aYVTv+Clup6eRELp5z8v3UGrSeEl7UEUISVRXPMCDPvZfhf9Q69b5mZ+ACeJL3NuzW06u+qYTcBoYHPrxMhX6LqICW6wdtpJwbs3wCPLj7FaCFKLPJwVVp3H4x8Pp8LFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PtnOunoEMzXVX9X5UtYnNpmfK9lMG01lWlpkYAd/WnU=; b=oO4aBXwZx6zkob0XS4Ba3gTyhswa37gM7ax5+PY8eeXlgx8HJumfY49zCjnVC8qQwEhLykRXjBZDn3pmR24k+/hjkbA3Ww9hJSXWW/klCcCcHzHUY4IiNCYZqFyDY6QhNu3+4OOXhwSKIN6Xlj9BSdfsZ56ie2H3tvlOYnlanRU7i/JUXTsZXAqODKjD+KCqyQV1JEmzRJvx/imnLA7zDNqCtZJ3CREeod6UGX6Xh2Y3h0PcBv6Ho8b/7btPt1cSxTiu4PZo2qLi0r1mjgOFjtfa4WqKKRBQCrsu8o2lFVCSbcARUyUYxBZe764wpjlqyq1SN9MVfj2Fvg13Spqf6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PtnOunoEMzXVX9X5UtYnNpmfK9lMG01lWlpkYAd/WnU=; b=ixgz8Z+X5auzFN+KqreMqi0fN2g6UZ6zMgfQJrbEOPWpVMUao7XiKEtnJpJRAaqL7A+/DyYYV8xG5oTQdXvMdxG/r/YCnRdMWNFJF9o3dakPBd4v5wdYdLRR1RYfHD4yQr4/yfnWXMK6x77EYLYX9X0jC/XbjDi1wS1lxmg8q8Fa/CBUm+ILAbUA+oDBx8W9Eb3p72y5tADVuRzpsoUD5KOo8uQucmQhFa72npfIpJ8Aw8iFTQ64iyho30VT9IWk8tZEP1rx5SopHotsnqKJ0pcXBWm8Qbj4KzO5yWJfYBImax+XRdFNWBTLPs9WFoMwwiNgvwAeoxmRBk009Zm6gg== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by VI1PR01MB6479.eurprd01.prod.exchangelabs.com (2603:10a6:800:15d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.16; Sun, 19 Jun 2022 06:43:40 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5353.020; Sun, 19 Jun 2022 06:43:39 +0000 Message-ID: Date: Sun, 19 Jun 2022 08:43:38 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220617093141.9826-1-nil-admirari@mailo.com> <56bf886d-8dcc-b04d-32fd-246d1869ff5@martin.st> From: Andreas Rheinhardt In-Reply-To: <56bf886d-8dcc-b04d-32fd-246d1869ff5@martin.st> X-TMN: [LhyomIuhLLTCDMBTCT9kwMEKfxIBIQKo] X-ClientProxiedBy: ZR0P278CA0154.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::9) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc20be90-7b02-491a-8490-08da51bf0b45 X-MS-TrafficTypeDiagnostic: VI1PR01MB6479:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +W5lzKFFhGAqYzOaOkdx14eXI4Cwcn0KHINCzPGldUSHFV986zoqvJyXVHZt8PoodXYoHMqjQ+R6ye42Z3BhY5GHZPbpBOlBrJO4D1aE34Izz0BNvGu6QHzfzUEiulx3dcEZr5MAlvscRut+IKEotnL8r7dPFrew0iY2wIdQo/PTbIpFOpxh5IR3HZedJ1PtZmfSzdHrTrBtVBdbDPE54LJDkAjaUF36YuQFQ8RUit4LiiPYHclz+USfdSOXY4gu0QWMdcL6+lolZF9ftapqbaWPB38LiC19dASR1LUQD9rcf3gAA+OtISlMiLfuy6E75fziQj5f0eERgnds5DKOgutYTe5YZUJgJYcFhYo15rvwH+L0EtMmxaTwsw44UZPAvqA5J0EPsKIe8/SWViA6tKV8ftsKzx4Ti3P3SRj/cdCtxWovNueD0hhpjIJBKfKo3tyvYCSiw0h6vmtJ3s4C4lB5iNfIliecCt38D2kn0vNxIkB9FwxpTSwS0MqVVXWD91zWjSwgjadytvEp9OmYX6smqIXBPmq/qyXJyU+AjGmWiu5c87E3PnvjiOcLW2A6Mql1HgC/vz/EPRNDDmT0jA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cE9USmdmSnRTZEErbzMzVGNWYys5bU54RGVqNTZUZmh0TStaWVFoblRhL0J3?= =?utf-8?B?WHlpUUJLNU1lMTY1Y0IxYWp5RG5lOUFsSkIydXBWaFBKM2ZTZ3Jjd1pOQmZy?= =?utf-8?B?RVFaaFJGRFI5eTZBYkVKdFdZL3VaQWtOOWRsMi93ODZ6dnNsaXFqYWhTUmRo?= =?utf-8?B?UVR1eFZMSkJMQjdwdEttSjNZTWxjWjlnK0hXUXlyckQvQ0hNYXFwc25lRVE0?= =?utf-8?B?V2F2aEtrcWY4Nk03Mnd6SXMrRnFSOHhQMkpPME9kaTJNWWYrRVFKRVpvQ2tD?= =?utf-8?B?Z0FiUm1zeTVjd0N6aFQwQW1BOUFaUHNCc3Y1WUJkb1VYcEZVYXlKcUVzeUtl?= =?utf-8?B?ZEJNaTh3eWNzenljZkRvSjBVZThzYVlFU2E4U2RRMFV1RjAvZWRtdlo0K0lx?= =?utf-8?B?S1EyRUM2UEZ0aWNmMXk0bzZWQ2kvRC9ObE1MbjVrTXVCZDNhQXZvczdOeGoy?= =?utf-8?B?Y0o4YTczSnUzclc3Wk5CYS9nbXRWMkJmbDFFR1lEc2VBWEVBbHEwVW01UEtE?= =?utf-8?B?eTd0UnU2TmpPNmNvSUVCU3lOYTR4Mk5ITStLcHhYUlRucUc3MTZSTHZQTGR5?= =?utf-8?B?M1hqMHhOOU9FNytOaTFqeTBwcHVka3BZUUl0TEVEU3c2U2hickROR3cvK3VR?= =?utf-8?B?VVVOWFEycGxsN1g1WG9GN2FSemVQc2tGRzJZdGs1bHp3RVB3cERrb25tKy9L?= =?utf-8?B?YXEza3UvR1JJSjZBSFhqeUlSeWpUYTlqbkNTN1JYVTBMSURZM0hSd3haOFRk?= =?utf-8?B?RDI1QlBETUEyUVhlU2JhVE96ZTdGTDVmdjIwK1BZVTExRit1d25PTTZFYTBJ?= =?utf-8?B?dXlWVkNOOVIyWVBxb09GWkZuOFRGV0RIemtONWdGK1RWbDd3eFpjeTc3U0U5?= =?utf-8?B?dkUwVENVa2RWQXhpOTc5TGZidThmVXF4SCtWamRKUDEycEV3T3RWQ3RYTnA5?= =?utf-8?B?SkxEaUZwWDU4SnVvVjJ0Z0JJQzJtOGMvWlFvTkl4Z2I3SldobXpRYVBFM1Ex?= =?utf-8?B?bkRwaUo3M3lrdTNzLy9HdlZCSkdpY21XYkk5NFFNRWNtUzVEM3pLZnJtVXpU?= =?utf-8?B?SWx6eEFzNUc4ZGUxNmZuOS9BL1FlTW1mNjVLYVkyTGdITElXTXF6cWE3OE9U?= =?utf-8?B?ZVExeUw3bUJWck4vN1M5MkptZ3dNR2pGZkNVNE4xbzh3dkJUWExPeDNTNUM1?= =?utf-8?B?R09VaWJlUnFsMjNoaVVJU1BZNXpJdnJIWVo5Z09BY2lEMjRFejgvVVczeHp3?= =?utf-8?B?NWc4Z3gyUGQwclNZUStGQ2RUWUY0SmZIcXpLaldVaHEwWEkyOG5LeUFSYkp4?= =?utf-8?B?cjhtV1F5ai9maWRLMmFWMDd2WTVTYi9rT25Ja280N3RHMS9xTmQvaFA4MTAy?= =?utf-8?B?TEN1TmcxeG1DRCtnalBINUh6VXlsb2txRFpnQndHRzgzYUxNSUxzV1Y1MDJv?= =?utf-8?B?VXB2T3Y2ZFpwVUpKdUxlRGtmeFVTSUhpNC9DZlJmbDJVTlkvNTU5b1h4WTlO?= =?utf-8?B?ZTdQTlZDeXZjU25jYW1RSlFtemhJNTl1amxkNWo3d1FpRTBoZ0llSDlFeisx?= =?utf-8?B?b0VaOGRrQXoySkhpTE0wUElwM2FER3F1RlJBa25ES0RWVitOaDBpRkl6WFFN?= =?utf-8?B?QS9PajRpUDd6ejhoMGdLMFZ2QzZEdFpjN29WQ2syaHFsTnR1R0JUYVVxdmVm?= =?utf-8?B?aVFjYUlGbkQwQ1BqTDg1ak9USkZSYVFXc1R1L0hCYlB5OElrZCsyT2NYM0hl?= =?utf-8?B?SkFjMWVGYWRjVWRQM3lWZ3pIUyt2RTFXbTZ0ek52cmZEMTNYZU5tM0dPeWEr?= =?utf-8?B?T25wSFNkbUhwWW5LMW9NY0s1TWVadTRtL20yb1dEeTN3SnJpWlRiRW1INE9v?= =?utf-8?B?dzdKT0JnZThIZnYrZVpWSld5YWNpT2pyZUlsYkxhODdTSHY4OGdkaWhidEhY?= =?utf-8?B?cWFDY2RVaVoyTlQ3Zk4yV0JHTk9KcGFBd2ZqVm5oNmc0UzFDS1V3aHdUTEE4?= =?utf-8?B?UzRhWGJrSjNBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc20be90-7b02-491a-8490-08da51bf0b45 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2022 06:43:39.8554 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR01MB6479 Subject: Re: [FFmpeg-devel] [PATCH v17 1/5] libavutil: Add wchartoutf8(), wchartoansi(), utf8toansi() and getenv_utf8() 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: TWFydGluIFN0b3JzasO2Ogo+IE9uIFN1biwgMTkgSnVuIDIwMjIsIFNvZnQgV29ya3Mgd3JvdGU6 Cj4gCj4+Cj4+Cj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4gRnJvbTogZmZtcGVn LWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YKPj4+ IEFuZHJlYXMgUmhlaW5oYXJkdAo+Pj4gU2VudDogU3VuZGF5LCBKdW5lIDE5LCAyMDIyIDY6NTkg QU0KPj4+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+Pj4gU3ViamVjdDogUmU6IFtGRm1w ZWctZGV2ZWxdIFtQQVRDSCB2MTcgMS81XSBsaWJhdnV0aWw6IEFkZAo+Pj4gd2NoYXJ0b3V0Zjgo KSwgd2NoYXJ0b2Fuc2koKSwgdXRmOHRvYW5zaSgpIGFuZCBnZXRlbnZfdXRmOCgpCj4+Pgo+Pj4g TmlsIEFkbWlyYXJpOgo+Pj4+IHdjaGFydG91dGY4KCkgY29udmVydHMgc3RyaW5ncyByZXR1cm5l ZCBieSBXaW5BUEkgaW50byBVVEYtOCwKPj4+PiB3aGljaCBpcyBGRm1wZWcncyBwcmVmZmVyZWQg ZW5jb2RpbmcuCj4+Pj4KPj4+PiBTb21lIGV4dGVybmFsIGRlcGVuZGVuY2llcywgc3VjaCBhcyBB dmlTeW50aCwgYXJlIHN0aWxsCj4+Pj4gbm90IFVuaWNvZGUtZW5hYmxlZC4gdXRmOHRvYW5zaSgp IGNvbnZlcnRzIFVURi04IHN0cmluZ3MKPj4+PiBpbnRvIEFOU0kgaW4gdHdvIHN0ZXBzOiBVVEYt OCAtPiB3Y2hhcl90IC0+IEFOU0kuCj4+Pj4gd2NoYXJ0b2Fuc2koKSBpcyByZXNwb25zaWJsZSBm b3IgdGhlIHNlY29uZCBzdGVwIG9mIHRoZSBjb252ZXJzaW9uLgo+Pj4+IENvbnZlcnNpb24gaW4g anVzdCBvbmUgc3RlcCBpcyBub3Qgc3VwcG9ydGVkIGJ5IFdpbkFQSS4KPj4+Pgo+Pj4+IFNpbmNl IHRoZXNlIGNoYXJhY3RlciBjb252ZXJ0aW5nIGZ1bmN0aW9ucyBhbGxvY2F0ZSB0aGUgYnVmZmVy Cj4+Pj4gb2YgbmVjZXNzYXJ5IHNpemUsIHRoZXkgYWxzbyBmYWNpbGl0YXRlIHRoZSByZW1vdmFs IG9mIE1BWF9QQVRICj4+PiBsaW1pdAo+Pj4+IGluIHBsYWNlcyB3aGVyZSBmaXhlZC1zaXplIEFO U0kvV0NIQVIgc3RyaW5ncyB3ZXJlIHVzZWQKPj4+PiBhcyBmaWxlbmFtZSBidWZmZXJzLgo+Pj4+ Cj4+Pj4gZ2V0ZW52X3V0ZjgoKSB3cmFwcyBfd2dldGVudigpIGNvbnZlcnRpbmcgaXRzIGlucHV0 IGZyb20KPj4+PiBhbmQgaXRzIG91dHB1dCB0byBVVEYtOC4gQ29tcGFyZWQgdG8gcGxhaW4gZ2V0 ZW52KCksCj4+Pj4gZ2V0ZW52X3V0ZjgoKSByZXF1aXJlcyBhIGNsZWFudXAuCj4+Pj4KPj4+PiBC ZWNhdXNlIG9mIHRoYXQsIGluIHBsYWNlcyB0aGF0IG9ubHkgdGVzdCB0aGUgZXhpc3RlbmNlIG9m Cj4+Pj4gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgY29tcGFyZSBpdHMgdmFsdWUgd2l0aCBh IHN0cmluZwo+Pj4+IGNvbnNpc3RpbmcgZW50aXJlbHkgb2YgQVNDSUkgY2hhcmFjdGVycywgdGhl IHVzZSBvZiBwbGFpbiBnZXRlbnYoKQo+Pj4+IGlzIHN0aWxsIHByZWZlcnJlZC4gKGxpYmF2dXRp bC9sb2cuYyBjaGVja19jb2xvcl90ZXJtaW5hbCgpCj4+Pj4gaXMgYW4gZXhhbXBsZSBvZiBzdWNo IGEgcGxhY2UuKQo+Pj4+Cj4+Pj4gUGxhaW4gZ2V0ZW52KCkgaXMgYWxzbyBwcmVmZmVyZWQgaW4g VU5JWC1vbmx5IGNvZGUsCj4+Pj4gc3VjaCBhcyBia3RyLmMsIGZiZGV2X2NvbW1vbi5jLCBvc3Mu YyBpbiBsaWJhdmRldmljZQo+Pj4+IG9yIGFmX2xhZHNwYS5jIGluIGxpYmF2ZmlsdGVyLgo+Pj4+ IC0tLQo+Pj4+IMKgY29uZmlndXJlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqAgMSArCj4+Pj4gwqBsaWJhdnV0aWwvZ2V0ZW52X3V0ZjguaMKgwqDCoCB8IDcxCj4+PiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4+IMKgbGliYXZ1dGlsL3djaGFy X2ZpbGVuYW1lLmggfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiDCoDMgZmls ZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykKPj4+PiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWJhdnV0aWwvZ2V0ZW52X3V0ZjguaAo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBi L2NvbmZpZ3VyZQo+Pj4+IGluZGV4IDNkY2ExYzRiZDMuLmZhMzdhNzQ1MzEgMTAwNzU1Cj4+Pj4g LS0tIGEvY29uZmlndXJlCj4+Pj4gKysrIGIvY29uZmlndXJlCj4+Pj4gQEAgLTIyNzIsNiArMjI3 Miw3IEBAIFNZU1RFTV9GVU5DUz0iCj4+Pj4gwqDCoMKgwqAgZmNudGwKPj4+PiDCoMKgwqDCoCBn ZXRhZGRyaW5mbwo+Pj4+IMKgwqDCoMKgIGdldGF1eHZhbAo+Pj4+ICvCoMKgwqAgZ2V0ZW52Cj4+ Pj4gwqDCoMKgwqAgZ2V0aHJ0aW1lCj4+Pj4gwqDCoMKgwqAgZ2V0b3B0Cj4+Pj4gwqDCoMKgwqAg R2V0TW9kdWxlSGFuZGxlCj4+Pj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9nZXRlbnZfdXRmOC5o IGIvbGliYXZ1dGlsL2dldGVudl91dGY4LmgKPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4+ IGluZGV4IDAwMDAwMDAwMDAuLjE2MWUzZTYyMDIKPj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4gKysr IGIvbGliYXZ1dGlsL2dldGVudl91dGY4LmgKPj4+PiBAQCAtMCwwICsxLDcxIEBACj4+Pj4gKy8q Cj4+Pj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4+PiArICoKPj4+PiArICog RkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ Pj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCj4+Pj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+Pj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIKPj4+IHZlcnNpb24uCj4+Pj4gKyAqCj4+ Pj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAo+Pj4+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+Pj4+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqAgU2VlIHRoZQo+Pj4gR05VCj4+Pj4gKyAqIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4+Pj4gKyAqCj4+ Pj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbAo+Pj4gUHVibGljCj4+Pj4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4+PiArICogRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+Pj4gMDIxMTAt MTMwMSBVU0EKPj4+PiArICovCj4+Pj4gKwo+Pj4+ICsjaWZuZGVmIEFWVVRJTF9HRVRFTlZfVVRG OF9ICj4+Pj4gKyNkZWZpbmUgQVZVVElMX0dFVEVOVl9VVEY4X0gKPj4+PiArCj4+Pj4gKyNpbmNs dWRlIDxzdGRsaWIuaD4KPj4+PiArCj4+Pj4gKyNpbmNsdWRlICJtZW0uaCIKPj4+PiArCj4+Pj4g KyNpZmRlZiBIQVZFX0dFVEVOVgo+Pj4+ICsKPj4+PiArI2lmZGVmIF9XSU4zMgo+Pj4+ICsKPj4+ PiArI2luY2x1ZGUgImxpYmF2dXRpbC93Y2hhcl9maWxlbmFtZS5oIgo+Pj4+ICsKPj4+PiArc3Rh dGljIGlubGluZSBjaGFyICpnZXRlbnZfdXRmOChjb25zdCBjaGFyICp2YXJuYW1lKQo+Pj4+ICt7 Cj4+Pj4gK8KgwqDCoCB3Y2hhcl90ICp2YXJuYW1lX3csICp2YXJfdzsKPj4+PiArwqDCoMKgIGNo YXIgKnZhcjsKPj4+PiArCj4+Pj4gK8KgwqDCoCBpZiAodXRmOHRvd2NoYXIodmFybmFtZSwgJnZh cm5hbWVfdykpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+Pj4+ICvCoMKgwqAg aWYgKCF2YXJuYW1lX3cpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+Pj4+ICsK Pj4+PiArwqDCoMKgIHZhcl93ID0gX3dnZXRlbnYodmFybmFtZV93KTsKPj4+PiArwqDCoMKgIGF2 X2ZyZWUodmFybmFtZV93KTsKPj4+PiArCj4+Pj4gK8KgwqDCoCBpZiAoIXZhcl93KQo+Pj4+ICvC oMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsKPj4+PiArwqDCoMKgIGlmICh3Y2hhcnRvdXRmOCh2 YXJfdywgJnZhcikpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+Pj4+ICsKPj4+ PiArwqDCoMKgIHJldHVybiB2YXI7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgLy8gTm8gQ1BfQUNQIGZh bGxiYWNrIGNvbXBhcmVkIHRvIG90aGVyICpfdXRmOCgpIGZ1bmN0aW9uczoKPj4+PiArwqDCoMKg IC8vIG5vbiBVVEYtOCBzdHJpbmdzIG11c3Qgbm90IGJlIHJldHVybmVkLgo+Pj4+ICt9Cj4+Pj4g Kwo+Pj4+ICsjZWxzZQo+Pj4+ICsKPj4+PiArc3RhdGljIGlubGluZSBjaGFyICpnZXRlbnZfdXRm OChjb25zdCBjaGFyICp2YXJuYW1lKQo+Pj4+ICt7Cj4+Pj4gK8KgwqDCoCByZXR1cm4gYXZfc3Ry ZHVwKGdldGVudih2YXJuYW1lKSk7Cj4+Pgo+Pj4gVGhpcyBmb3JjZXMgYWxsb2NhdGlvbnMgYW5k IGZyZWVzIGluIHNjZW5hcmlvcyB3aGVyZSB0aGlzIGlzIHdob2xseQo+Pj4gdW5uZWNlc3Nhcnku Cj4+Cj4+IFdoeSBkbyB5b3UgdGhpbmsgdGhpcyBpcyB1bm5lY2Vzc2FyeT8gQXQgbGVhc3Qgb24g V2luZG93cywgdGhlcmUgaXMKPj4gbm8gZ3VhcmFudGVlIHJlZ2FyZGluZyB0aGUgbGlmZXRpbWUg b2Ygc3RyaW5ncyByZXR1cm5lZCBmcm9tCj4+IGdldGVudigpLiBJbiBjYXNlIHdoZW4gc29tZSBv dGhlciBjb2RlIHdvdWxkIGNhbGwgX3B1dGVudiB0byBzZXQgdGhlCj4+IGVudiB2YXJpYWJsZSwg dGhpcyBjYW4gY2F1c2UgdGhlIHByZXZpb3VzbHkgcmV0dXJuZWQgc3RyaW5nIHRvIGJlY29tZQo+ PiBpbnZhbGlkIHdpdGhvdXQgdGhlIGNhbGxlciBiZWluZyBhYmxlIHRvIGtub3cuCj4gCj4gWWVz LCBpZiB5b3Ugd291bGQga2VlcCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gZ2V0ZW52IGZvciB0b28g bG9uZywgd2hpbGUKPiBzb21ldGhpbmcgZWxzZSBjaGFuZ2VzIHRoZSBlbnZpcm9ubWVudCBpbiB0 aGUgc2FtZSBwcm9jZXNzLCB5b3UnZCBoYXZlCj4gc3VjaCBhbiBpc3N1ZS4gQnV0IHRoYXQgaGFz bid0IGJlZW4gYSBjb25jZXJuIHNvIGZhciAtIHJpZ2h0PyBBbmQgaXNuJ3QKPiB3aGF0IHdlIHRy eSB0byBmaXggaGVyZS4KPiAKCkFuZCBpZiB0aGlzIHdlcmUgYW4gaXNzdWUsIHRoZW4gSSBkb24n dCBzZWUgd2hhdCB3b3VsZCBwcmVjbHVkZSBpdCBmcm9tCml0IGFscmVhZHkgaGFwcGVuaW5nIGlu IGdldGVudl91dGY4LCBpbiBlLmcuIHdjaGFydG91dGY4IChvciBpbgphdl9zdHJkdXAoKSBpbiB0 aGUgY3VycmVudCBub24tV2luZG93cyBpbXBsZW1lbnRhdGlvbikuCgotIEFuZHJlYXMKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo=