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 ESMTPS id C67DB4DF6B for ; Wed, 5 Mar 2025 20:58:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 88CD168F1C0; Wed, 5 Mar 2025 22:58:48 +0200 (EET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12olkn2106.outbound.protection.outlook.com [40.92.22.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F9CA68C21E for ; Wed, 5 Mar 2025 22:58:36 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wDnAatG/NI3Zlh1ymX8fLWpxFQy9YoKrdiSzLOInrKdTZR9u0sAUtaJ2hBjwHjee/ekC92UVKjjsi1zFePZrSiqivQoI64ia192Z5KGACYfroXSJLvDkxmcK0EyJOUBkOFz8gjg+sXGxF5GbJa8uzOM3RugXtMerdEWXIOKwSSFmJjGCWXOzUMVqsCYCW/nqV0PCVjMCzyyDaug0qSnthg9SMK/vtJABWbX9yqyWnWjD+fejl3i6wc1yAYqrHN4P3/WvSD3A+orn0KVb9qGEvYHrzZn7Jzk5oA+d8yS+xILEuqOi97OFrDCqIFuNKxmU90eHYOEJCYmyZYK9CJsxoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=vdZT56mJA5mlbwNvuB5KWJvGWXoQC4UlOBbNjkTHtv8=; b=YTkV+os64eawbhSdg7nNUSxWTKiAGAgYaDR3rWdJIQRtJ1bt7hhfXAIOZTvS3mEEYYML5egGXnfl+wrCGRe3ry6GlEq+MY1X47VbT4IDkEAFsNCH9BITx1tNYXvKc1jHFupmaWKk1caet8jYwm71yRTv/TLWJZa/YuyCTU9gbjaMauuiIAE4eeeQGVkYASOxUTNXGkabu567EdLZEHM45YoybT3LHDJZjGr1YTuufaxNrNGo0y/jnGHqmuvek0UP9rKJlPg5Wp4cZf9MHkNTSwcw2esEz9bNb8tnMdE5z07KPg0K6aZ1AstEKOUeoARhEzkLMDDEkBFI1mfXTasreA== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vdZT56mJA5mlbwNvuB5KWJvGWXoQC4UlOBbNjkTHtv8=; b=LTu4Y45EoVyfQoZbGTIoEwQ+uEYfzX/wDNT9HN2eQbbWoI2qBddHvJbksME4a8xu+1zHqOjOoJrd4tqFempDzXD+yBjaCmTzgsWF1sPPgnNXtEm+3tidRr2mHq50odG5MBrg9r5MiDKXkzqrxfXTLt2plTXDjr3y1z+DVHmKrkUh1qyceviuvG2yrh+8azcGgOMMgMnmqnOiU+fxzUnF4StdE9WkawD8VkpbpBWJCGiXEI3hKa3KhdAGZ27qDwv4sTOgCvZs2ou74E3LuZpf36DuR/HvftrBNDbWxnQ3zlApQYHpmrycxJIzsRq2nNqSFdJkMGhMDgzBPuqP1QocSw== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BL4P223MB1311.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:5a6::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.28; Wed, 5 Mar 2025 20:58:33 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%7]) with mapi id 15.20.8511.017; Wed, 5 Mar 2025 20:58:33 +0000 From: Soft Works To: Stefano Sabatini Thread-Topic: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c Thread-Index: AQHbipEFizx1C9jbWEO+DATMb/mrbbNgI0uAgAAVOzCABMp3gIAABafw Date: Wed, 5 Mar 2025 20:58:32 +0000 Message-ID: References: <6239813ba0e293bd427cecf8437aadef778ea3ee.1740823324.git.ffmpegagent@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|BL4P223MB1311:EE_ x-ms-office365-filtering-correlation-id: 6b54d6dc-337a-4f9f-db6f-08dd5c287d6e x-microsoft-antispam: BCL:0; ARA:14566002|8060799006|7092599003|12121999004|19110799003|8062599003|15080799006|461199028|12091999003|41001999003|1602099012|102099032|10035399004|3412199025|4302099013|440099028; x-microsoft-antispam-message-info: =?utf-8?B?enJJR1VobENPNmp0aVlDWU4zVXFMa2tMZ0xMZHFoUDEyYzIwUm9EMWswbVJJ?= =?utf-8?B?aHlUVTNuT1F5SzJEWnpSRUZDT3ZGMk0zcHdXTkdHVmQxbVMvWU5VRGw4SEJR?= =?utf-8?B?QWU1Z2dTU3FXWHhrM2FsL1FuNE5sQnVNeDZUMWRIUVhqMVRQUTJHdEIyMktJ?= =?utf-8?B?dFBzVjQ5UnhSK0Jpb3lDRjI4SjcwRzJGZlRrOFcrdCtlUkNSQ1lLWCtYVFM1?= =?utf-8?B?ZzFYVWl1TG9vRFVDak1BZHVKTkxUU2h6STVMVG9QWXV4elB2WWJhSVpPZjFm?= =?utf-8?B?Ris5R05XYjNVM0F5U2NrYnpQeGFhN0NDaHBkYUxUaUFTd1FuZG1COGIzb2h3?= =?utf-8?B?eE9QT241UkM2Qy9UQnZjc1lES3JxNGptUnd4c0hFclZmVjlqNnVpYXF0a01I?= =?utf-8?B?Z0VpRHBLZFBIUHJqbHhpbExraFNCUnhKcGlxVjAvcmRoWmVPVFdPNTlQUEhD?= =?utf-8?B?czIxdldaZUQ3d0hQR0pidTlBazkxVTZGVlU1QnoyelJQYjJ4SGVpVmJaRHpu?= =?utf-8?B?RWhRSTl5L1JrL3ZqdVpDNTFBbmhFSk9SRmFhbS9zRWVQM2dzMmwycE1NZXFO?= =?utf-8?B?RXRFa2tTOXpWRlk2NEpaOC9oZm9ULzlTL0tpOVJZVDdKNE56YVlVckdVNkJs?= =?utf-8?B?WHROUUx3Vjd2Zk9YQVVBamQwM3ZzeERXN1hEV0gwcHJwNFo1WXRGK0pETHBI?= =?utf-8?B?bHRJZkE1V3A2K0RJbHhKTmh5cDlFdXU4V0Z6Nzh2NUdDV2JMYkJUa0huODFy?= =?utf-8?B?UThOQk1CWCs2Qk1oazFxUDFyMzBvTS9sbmNrVDJ4K2xLUVd3OHhvVGRiSVJG?= =?utf-8?B?UWswQWtYNXdRK1RNeUZuZXhDd0NJR2hJNTBuU0orWTFVOHdNaythNlRPQ2xo?= =?utf-8?B?Mm1uenhaL3VRTkpKMm9UUS9ZSjNMK1VDQnVoaG9qV01PbnNCaytDTk1wU09X?= =?utf-8?B?U0hnL1IrY3RBMDYzL0laMk56V3ZXa2RTY3hrYWVzeUs3bTNaR2lGSmxJVmlF?= =?utf-8?B?TUJWMTgvL1lrT3dHY0RGRnczYjQzQlVpeEFkMk5wMHBZRURSUlM0TjBzUXNk?= =?utf-8?B?K05qTWluM2dDNjdaR1luM1hyNHZmZ1d0dURUeGljYVZyc3NMY2Vzc2c2MmU2?= =?utf-8?B?UWlDY0RGUTU1WGNYcS9yK2UvNUJxZm9ZUkg0aVg1ZmxHeXRQZFJGbzJSS3Jr?= =?utf-8?B?YVpacHJKcU1yUTMrcjI4dmY5bzZHNWxZT3NsZ1VjbjJUeHlram9XUjBQK0dE?= =?utf-8?B?TEV0ZUt1M3lrdkYySE90MjI3K2NkcjB5Z0xuMFA2RmIrL2dmWTdzVnlDdk02?= =?utf-8?B?TUVwMkxGZlNZWjdiYUpYbC9vRVNJUHlGSi9BcFBKbW1kQkRPeGJGYmFlNXp5?= =?utf-8?B?eXhYeElFZFlHYmdtUytucE0wNGN1TTdkb0N0aVBVNUlUMHZEQ203UFZkdWNL?= =?utf-8?B?WDVsZmhNV21EemhjOXJCazk4RmV4K2g2ZW10YTJVWnZISklXSHhrWjQvR25l?= =?utf-8?B?WlJ6Q3E5YmFiL3Y4bzNFMWZnbUg0NG5GcUVvUEhxeVdneE82c0NuOUpRbU5R?= =?utf-8?B?dHlZUVREZm8zUXpac2hGd2xvVjBkVTRvdHJ6MWM0ZTk2YmZLaGUzd3N0RHVW?= =?utf-8?B?K0E2eFg2TWVjM04ydTlEcDhST0M0S0R4bWhkWEhNQmY4L29TRkJ6Z0Vyd3BY?= =?utf-8?B?NlZVVGVVa2NLZzQ2a2dGbUxEQ2NNSi9pcXpjclJ3RlFOSkxjVTUxQUFNWlJ3?= =?utf-8?Q?7yjCCKKtTJdNMDbdh0=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bENPa3BycmFYN3lKWnNMRDZobnYzS0puQ1d2L3AxV0pIZGJ6V3p6SUZtRFhK?= =?utf-8?B?U1pYMUJJdWpjZ1YrRDliTzY0RzFvNTBmYVVVNzVzb2hLVTFEeTVwNi9OcEx4?= =?utf-8?B?aVBtcjIzK3BxVzFhZ1dEWk1TZHdiT3BIVThHMWxUWWdXbWZVNG5OVGlkaEh5?= =?utf-8?B?WjBCTmpLZGZYS1FHeStES2RZYVAwelFuRmZDQWVQRnpJMWFneGJERWlVOW9U?= =?utf-8?B?eW43aGlqR24xKytiWm8vQzlleEdUelRleHgxaXMzb2pwTWN2ZFZqMG5iY3Vz?= =?utf-8?B?Y0JBWTNlRFpqQUpCeWJUUzZqdFdJWCtlcTJyMUFNKzJBM0RrWGhhd0RXWklj?= =?utf-8?B?WWg5ekdiaUJEc2Y2Y2NibDVWTTRHaHhJdFhsVFhKRWxLNTFEbHgwZm1wQWRn?= =?utf-8?B?aW9pK0RVTUtZVCtUQTZtWnMrWGdraG1Wb1c4NzlseXdNUVZVNXViNkpibXc0?= =?utf-8?B?eURTRlk2WUZMUEFjbG1CNkVxZmdPeG5jNkx0ZTFkRDYwZXgxQVVRZi9KWkd1?= =?utf-8?B?SEV2bDZ1b0FhRlRqN0tRZVRPTEZZR3ZtWFJoRUk3Vy9wOUNVNUNNeUxkZkxD?= =?utf-8?B?UkhsTWtNY0lEK2NTMEpVdDFmamxqQTJZSVJmNThNM0M5MUgrM1BtZHV5RkVq?= =?utf-8?B?aUtiREhPbVc0WjcwK0VNaVAwZ0dXdUgxWENSVkduUGxzcWRJdEZGV0dRaERP?= =?utf-8?B?UXViOWZjbFEwVlpXNS9qdkgxUnFkSDJSeEIzRjk5Nm1ZRm03QWVHeXdBa00y?= =?utf-8?B?TFk2YjV5MTI5WXBOa0lBUlFvc3dZUWpGclpCOWFuOE5hUlVSK1JZeWhvQVJB?= =?utf-8?B?SDV2ZmxtQ0tPelEyRVJ4WW1tbGZ0QnRLOVhlTnRGVHoyeTlpWFlvbGdTSFFn?= =?utf-8?B?RzlPWTZ6TlJxZUpScSswU3l6YjlKUjVaN0dwc0hiU3ltS3pxZEp0enhQTjhO?= =?utf-8?B?WWVHa2E0ZzJNQWxyNWFCdUF2bHFMRCtERjYzazdwZy82dVczaGoxMzNweW5J?= =?utf-8?B?cTZhS3E1V0dQWnNwcmg1UmI0M1lIWWR2SnlPdzR1ZTdES3ovT28raEYxZ25H?= =?utf-8?B?Q3p2SCtwVTFQNk1Ga3RJcW5nTjFwVWlyRGV6aXZxeExNbFZqdE5QUXo3M1dH?= =?utf-8?B?dGt2NHpYd2FBU3d6dHc1cW83eC8zanQvWktIRVZKdFpkeEQ1cUFNRG11WE5O?= =?utf-8?B?bWlLZittOWJIWlZtbFg1c2xUeG51YzU2S2JOb25ldG80bGhhR3NpNERIQTBO?= =?utf-8?B?WEpVMUIyMW1qdVFLdGMweW13cm5Ic0x1ZzhsWE9BTVNyNXNDOUhrMi9lcE1R?= =?utf-8?B?T0tRTFV3YnVQMDZlRVhPeGc0ejhyVkRuNUx4VTM3YnV6dlVyMDkwSk5hZnlJ?= =?utf-8?B?bnRCL2RmNGk3andqbnZ4cnRUaWdZZUl2MFByTGN4Y0Q2MzN4alQyU0ZGY3RV?= =?utf-8?B?by9UV3NaY0xVdnFUVXp6RE5iZ0diNEZmNUxyNnNrWThzRjcrVFhmUkFyOUx1?= =?utf-8?B?NENYTTUvMjBKdHUzeUxFeU55bENXRlN2eGFhNVpQYW5ycFhEMDh6QWxYelJz?= =?utf-8?B?cHQ0RDMrMzZpQjRIQk9KTzlzY3krTXBwVytLSHVYOWtOVElhWGhqbGJPOUdN?= =?utf-8?Q?9hgemG8P+GFZkXJwt2d6FAF77Sl2qIxobdXdaR7YGGaM=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 6b54d6dc-337a-4f9f-db6f-08dd5c287d6e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2025 20:58:32.9176 (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: BL4P223MB1311 Subject: Re: [FFmpeg-devel] [PATCH v3 1/7] fftools/textformat: Extract and generalize textformat api from ffprobe.c 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 Cc: Soft Works , FFmpeg development discussions and patches , Andreas Rheinhardt 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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU3RlZmFubyBTYWJhdGlu aSA8c3RlZmFzYWJAZ21haWwuY29tPg0KPiBTZW50OiBNaXR0d29jaCwgNS4gTcOkcnogMjAyNSAy MToyMQ0KPiBUbzogU29mdCBXb3JrcyA8c29mdHdvcmt6QGhvdG1haWwuY29tPg0KPiBDYzogRkZt cGVnIGRldmVsb3BtZW50IGRpc2N1c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+IGRldmVs QGZmbXBlZy5vcmc+OyBTb2Z0IFdvcmtzIDxzb2Z0d29ya3otYXQtaG90bWFpbC5jb21AZmZtcGVn Lm9yZz47DQo+IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2su Y29tPg0KPiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIHYzIDEvN10gZmZ0b29s cy90ZXh0Zm9ybWF0OiBFeHRyYWN0DQo+IGFuZCBnZW5lcmFsaXplIHRleHRmb3JtYXQgYXBpIGZy b20gZmZwcm9iZS5jDQo+IA0KPiBPbiBkYXRlIFN1bmRheSAyMDI1LTAzLTAyIDE5OjQ0OjM0ICsw MDAwLCBTb2Z0IFdvcmtzIHdyb3RlOg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBTdGVmYW5vIFNhYmF0aW5pIDxzdGVmYXNhYkBnbWFpbC5j b20+DQo+ID4gPiBTZW50OiBTb25udGFnLCAyLiBNw6RyeiAyMDI1IDE4OjU1DQo+ID4gPiBUbzog RkZtcGVnIGRldmVsb3BtZW50IGRpc2N1c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+IGRl dmVsQGZmbXBlZy5vcmc+DQo+ID4gPiBDYzogU29mdCBXb3JrcyA8c29mdHdvcmt6LWF0LWhvdG1h aWwuY29tQGZmbXBlZy5vcmc+OyBzb2Z0d29ya3oNCj4gPiA+IDxzb2Z0d29ya3pAaG90bWFpbC5j b20+OyBBbmRyZWFzIFJoZWluaGFyZHQNCj4gPiA+IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9v ay5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIHYzIDEvN10g ZmZ0b29scy90ZXh0Zm9ybWF0Og0KPiBFeHRyYWN0DQo+ID4gPiBhbmQgZ2VuZXJhbGl6ZSB0ZXh0 Zm9ybWF0IGFwaSBmcm9tIGZmcHJvYmUuYw0KPiA+ID4NCj4gPiA+IEhpLA0KPiA+ID4NCj4gPiA+ IEknbGwgaGF2ZSBhIGxvb2sgYXQgdGhpcyBpbiB0aGUgd2Vlay4gVGhlcmUgYXJlIGEgZmV3IHRo aW5ncyB3aGljaCBJDQo+ID4gPiB3YW50IHRvIGRvdWJsZWNoZWNrICh0aGVyZSBpcyBzb21lIGFk LWhvYyBhcHBsaWNhdGlvbiBsb2dpYyB3aGljaA0KPiA+ID4gbWlnaHQgYmUgYnJva2VuIHdoZW4g Z2VuZXJhbGl6aW5nIHRoaXMpLCBidXQgSSBsaWtlIHRoZSBvdmVyYWxsDQo+ID4gPiBkaXJlY3Rp b24gb2YgdGhpcyBjaGFuZ2VzZXQuDQo+ID4NCj4gPiBIaSBTdGVmYW5vLA0KPiA+DQo+ID4gdGhh bmtzIGEgbG90IGZvciB5b3VyIGludGVyZXN0IGluIHRoaXMgY2hhbmdlc2V0Lg0KPiA+DQo+ID4g SSB0aGluayBJIGtub3cgd2hhdCB5b3UgYXJlIHRhbGtpbmcgYWJvdXQgd2l0aCByZWdhcmRzIHRv IHBvc3NpYmxlDQo+IGJyZWFrYWdlIPCfmIouDQo+ID4NCj4gPiBJbiB0aGlzIGNoYW5nZXNldCwg SSB3YW50ZWQgdG8ga2VlcCB0aGUgY2hhbmdlcyBjb21wYWN0IHRvIHJlZHVjZSB0aGUNCj4gbnVt YmVyIG9mIGxpbmVzIHdoaWNoIG5lZWRzIHRvIGJlIHJldmlld2VkLiBCdXQgdGhlcmUncyBhIHBy ZWNlZGluZw0KPiBwYXRjaHNldA0KPiA+DQo+ID4gIltGRm1wZWctZGV2ZWwsdjIsMC84LFJGQ10g YXZ0ZXh0Zm9ybWF0OiBUcmFuc2Zvcm0gdGV4dCB3cml0aW5nIGludG8NCj4gYW4gaW5kZXBlbmRl bnQgQVBJIg0KPiA+DQo+ID4gd2hpY2ggYWxsb3dzIHRvIGZvbGxvdyB0aGUgY2hhbmdlcyBzdGVw LWJ5LXN0ZXAuDQo+ID4NCj4gPiBUaGUgcGFydCB5b3UgYXJlIHByb2JhYmx5IHRhbGtpbmcgYWJv dXQgaXMgZG9uZSBoZXJlOg0KPiA+DQo+ID4NCj4gaHR0cHM6Ly9wYXRjaHdvcmsuZmZtcGVnLm9y Zy9wcm9qZWN0L2ZmbXBlZy9wYXRjaC8wMTQxM2RmYmMwYzYwZWUxN2M3OTM3DQo+IDAwODZhYmI4 OGQ3ODU1MjkyOS4xNzQwNzE4OTM2LmdpdC5mZm1wZWdhZ2VudEBnbWFpbC5jb20vDQo+ID4NCj4g Pg0KPiA+IEkgaGF2ZSByZW1vdmVkIHRoZSBzcGVjaWZpYyBmaWVsZHMuLg0KPiA+DQo+ID4gdW5z aWduZWQgaW50IG5iX3NlY3Rpb25fcGFja2V0OyAvLy88IG51bWJlciBvZiB0aGUgcGFja2V0IHNl Y3Rpb24NCj4gPiB1bnNpZ25lZCBpbnQgbmJfc2VjdGlvbl9mcmFtZTsgIC8vLzwgbnVtYmVyIG9m IHRoZSBmcmFtZSAgc2VjdGlvbg0KPiA+IHVuc2lnbmVkIGludCBuYl9zZWN0aW9uX3BhY2tldF9m cmFtZTsgLy8vPCBuYl9zZWN0aW9uX3BhY2tldCBvcg0KPiBuYl9zZWN0aW9uX2ZyYW1lDQo+ID4N Cj4gPiAuLmFuZCByZXBsYWNlZCBpdCB3aXRoIGEgMi1kaW1lbnNpb25hbCBhcnJheToNCj4gPg0K PiA+IHVuc2lnbmVkIGludCBuYl9pdGVtW1NFQ1RJT05fTUFYX05CX0xFVkVMU107DQo+ID4gdW5z aWduZWQgaW50DQo+IG5iX2l0ZW1fdHlwZVtTRUNUSU9OX01BWF9OQl9MRVZFTFNdW1NFQ1RJT05f TUFYX05CX1NFQ1RJT05TXTsgPD0gbmV3DQo+ID4NCj4gPiBXaGlsZSBuYl9pdGVtIGNvdW50cyB0 aGUgdG90YWwgbnVtYmVyIG9mIGN1cnJlbnQgaXRlbXMgYXQgYSBjZXJ0YWluDQo+IGxldmVsLCBu Yl9pdGVtX3R5cGUgY291bnRzIHRoZSBudW1iZXIgb2YgaXRlbXMgZm9yIGVhY2ggdHlwZSBzZXBh cmF0ZWx5Lg0KPiA+DQo+ID4gVGhlbiwNCj4gPg0KPiA+IFdSSVRFUl9GTEFHX1BVVF9QQUNLRVRT X0FORF9GUkFNRVNfSU5fU0FNRV9DSEFQVEVSDQo+ID4NCj4gPiBpcyByZXBsYWNlZCB3aXRoDQo+ ID4NCj4gPiBURVhURk9STUFUX0ZMQUdfU1VQUE9SVFNfTUlYRURfQVJSQVlfQ09OVEVOVA0KPiA+ DQo+IA0KPiA+IGFuZCBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciB0aGUgc3BlY2lmaWMgSUQNCj4g PiAoU0VDVElPTl9JRF9QQUNLRVRTX0FORF9GUkFNRVMpLCB0aGlzIGlzIGRvbmUgd2l0aCBhIG5l dyBmbGFnDQo+ID4gKFNFQ1RJT05fRkxBR19OVU1CRVJJTkdfQllfVFlQRSkuIEFsbCB0aGF0IGNv bWJpbmVkIGFsbG93cyB0bw0KPiA+IGFjaGlldmUgdGhlIHNhbWUgcmVzdWx0IGFzIGJlZm9yZSAo c2VwYXJhdGUgbnVtYmVyaW5nIG9mIG1peGVkIGFycmF5DQo+ID4gY29udGVudCBzZWN0aW9ucyku DQo+ID4NCj4gPg0KPiA+IEdlbmVyYWxseSwgaXQgd2FzIGRvbmUgaW4gYSByZWZhY3RvcmluZyB3 YXkgKG5vdCBhIHJld3JpdGUpLCBzbw0KPiA+IG5vdGhpbmcgc2hvdWxkIGhhdmUgZ290dGVuIGxv c3QsIG9ubHkgdGhlIG91dHB1dCB3cml0ZXJzIGFyZSBuZXcNCj4gPiAoYXZpb3dyaXRlciwgc3Rk b3V0d3JpdGVyLCBidWZmZXJ3cml0ZXIpLg0KPiANCj4gQ29vbCwgSSB0aGluayB0aGlzIHNob3Vs ZCB3b3JrIGluZGVlZC4NCg0KVGhhbmtzIGZvciBsb29raW5nIGF0IGl0IQ0KDQoNCg0KPiA+ID4g Tm90IHN1cmUgaWYgdGhpcyBpcyBmZm1wZWctaXNoIGJ1dCB3ZSBtaWdodCBtb3ZlIHRoZSBmb3Jt YXRzIHdpdGhpbg0KPiBhDQo+ID4gPiBkZWRpY2F0ZWQgc3ViZGlyZWN0b3J5IHRvIG1ha2UgbW9y ZSBhcHBhcmVudCB0aGUgY29yZS9jb21wb25lbnRzDQo+ID4gPiBkaXN0aW5jdGlvbiAtIGFueXdh eSB0aGlzIGlzIG5vdCBhIGJsb2NrZXIuDQo+ID4NCj4gPiBJJ2xsIGRvIHRoYXQsIGJ1dCBpdCdz IG5vdCBxdWl0ZSBjbGVhciBob3cgeW91IG1lYW4gaXQsIGFzIHRoZXkgX2FyZV8NCj4gaW4gYSBz dWJkaXJlY3RvcnkgYWxyZWFkeSAodGV4dGZvcm1hdCkuDQo+ID4gT3IgZG8geW91IG1lYW4gdHdv IHNlcGFyYXRlIHN1YmRpcmVjdG9yaWVzICh0ZXh0Zm9ybWF0IGFuZA0KPiB0ZXh0d3JpdGVycyk/ DQo+IA0KPiBXaGF0IEkgbWVhbiBpcyB0aGF0IHdlIG1pZ2h0IG1vdmUgdGhlIHRleHQgZm9ybWF0 cyB0byBhIGRlZGljYXRlZA0KPiBkaXJlY3RvcnkgKGUuZy4gZmZ0b29scy90ZXh0Zm9ybWF0L2Zv cm1hdHMvY29tcGFjdC5jKSBidXQgaXQncyBub3QNCj4gYmxvY2tpbmcgYXQgYWxsLg0KDQpPcmln aW5hbGx5LCBJIGhhZCB0aG91Z2h0IHRoZSBzaW1pbGFyIGluIGEgd2F5IHRoYXQgaXQgbWlnaHQg bm90IGJlICJmZm1wZWctaXNoIjsgYWN0dWFsbHkgSSd2ZSBldmVuIGJlIGFmcmFpZCB0aGF0IHNv bWVib2R5IG1pZ2h0IG9iamVjdCB0aGUgdGV4dGZvcm1hdCBzdWJmb2xkZXIuIA0KVGhlIGFib3Zl IChmZnRvb2xzL3RleHRmb3JtYXQvZm9ybWF0cy8pIGlzIGhvdyBJJ2QgcGVyc29uYWxseSBvcmdh bml6ZSBpdCBhcyB3ZWxsLCBidXQgb2YgY291cnNlIGV2ZXJ5Ym9keSBuZWVkcyB0byBhZGFwdCBp biBhIGNvbW11bml0eSBwcm9qZWN0Lg0KDQpTb21lIG1vcmUgb3BpbmlvbnMgd291bGQgYmUgaGVs cGZ1bC4uDQoNCg0KPiANCj4gPiBBbm90aGVyIHF1ZXN0aW9uOiBzaGFsbCBJIGFkZCB5b3VyIG5h bWUvY29weXJpZ2h0IGxpbmUgaW4gdGhlIGhlYWRlcg0KPiA+IG9mIHRoZSB3cml0ZXIgZmlsZXM/ IEl0J3Mgc3RpbGwgeW91ciBjb2RlIChJIGFzc3VtZSksIEkndmUganVzdA0KPiA+IHRyYW5zZm9y bWVkIGl0IGEgYml0Lg0KPiANCj4gRmVlbCBmcmVlIHRvIHNraXAgaXQsIGdpdCBibGFtZSBkb2Vz IGEgYmV0dGVyIGpvYiBhdCB0cmFja2luZyB0aGUNCj4gYXV0aG9yc2hpcCBhbmQgSSBkb24ndCBt aW5kIGEgbG90IGFib3V0IGNvcHlyaWdodCBhbnl3YXkuDQoNCk5laXRoZXIgZG8gSS4gKFdlbGws IHRoZXJlJ3Mgbm90IG11Y2ggcmlnaHRzIHRvIGdldCBhbnl3YXkgd2l0aCBhIHN0dXBpZCBwc2V1 ZG9ueW0g8J+YgykuDQoNClRoYW5rcywNCnN3DQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBl Zy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZm bXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIu Cg==