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 9B04742C69 for ; Mon, 2 May 2022 23:00:11 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A29A768B18A; Tue, 3 May 2022 02:00:08 +0300 (EEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11olkn2100.outbound.protection.outlook.com [40.92.20.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BD32D68A464 for ; Tue, 3 May 2022 02:00:01 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UhqFMm3MehXAJZtuG9LbhBxYAZjwm8njZZVqg9NlgsFUUIMb1zDfWPbW1GoMtzdL/5KEZAoWvjKvr9BCCobLY2r2aMi1PbF/IwaviuWNv3s423qDl+ImA+V1cnIbYHYKf3tRf5+2ax6YQp1lCqsmhWPxQwp/fX+ymThOFeaPEJjZ/QTfGwVk48S106Q9N7QeXHhbaZuCX35paSt89qAzBFcYT6XBdJ7iGJXOCfWQi5bPVUnIQ6ZVWPA7l9UfUBZXCIr8DtMAMtHR2JbUIQoNDyoa1PC2PtV1gdCS5bXajxdSRzKbcvOIh/+2kkmFmQyeUk94UaoSjZM/dnzUJ5PN+w== 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=jU/BjGVc/svR68WQ8NO1mKlLD26jaPG8H8+AU2ZJTr4=; b=cFo57dCKkiySWhEkB7p+dMI0sjHfL4DsrvlnEDTgjP0MNxyiT6FAf17fOTHEazMgYpIfGlpKHdh4REOj99mgXVEX0cqkNlMTzrUZQ8LdmWxWpsKqDvCXvtlpdJIyx6WxbM7fQd2ILzb8TXsOqVDjfzpqIrNPjXmFst3lPzX0xY+XPet29J+PIvTvymNgorS0NiveN9+1nIV5jn/NM4Goon3MHDj97kimQTnE9jxPtVIhrdcJbRd8UhHMi9SG6P1p/Zff/B0ELtyP6Eav0G3LZuM9sKc7IRAAV6bpJsvP1NdDjX8YmkQ+0VWUXHpJu5xVsxyejV1/jjsEBA3PCebWyA== 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=jU/BjGVc/svR68WQ8NO1mKlLD26jaPG8H8+AU2ZJTr4=; b=fuoActppBl1WEBbKQIZYbFIybnPHR6VgST/EGa8x53Ai/1S8EYHJx/A8LCaYjKpd6ZrOGosBeb4n75+Mo5zL6tauexpFk+OZa2/5/jHdm+Z26SBrU34eNNmivmwm0UtK53M3n9uvrLqUDK+aNJWrBRKeW63pPjYBVhbganZ9tzuLtnRoE5Uu7QVTfY/4VReEQ4AX/QRGryOVpwm1HKwOzPU8l4trVohxlUmE53U1WfYQJiI5x13n15D38Rbkb1Crq48elfWuBS95r+Va4nvUSfEVZX9ZhyrlU+isQkzjlF8uYKVIZU61trU5GInEvIH7meCbQwZKaypUeKVgFxrQbg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM4P223MB0519.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:ac::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Mon, 2 May 2022 22:59:58 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::7472:6f83:eeb:45e3%9]) with mapi id 15.20.5206.013; Mon, 2 May 2022 22:59:58 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 1/3] avutils/hwcontext: add derive-device function which searches for existing devices in both directions Thread-Index: AQHYXM31okUFSHUnd0mZd8hUGLzrfq0I+66AgAABwGCAAZbXgIAAlKpggAEArACAAAVXcA== Date: Mon, 2 May 2022 22:59:58 +0000 Message-ID: References: <85ff784b6ff80d4f2e0f724d0b93472e50d2c256.1651349262.git.ffmpegagent@gmail.com> <994ee7a9-ab91-4d13-9538-ed4502c73bd6@jkqxz.net> <33e93072-cde1-437b-bf60-e78250f26692@jkqxz.net> In-Reply-To: <33e93072-cde1-437b-bf60-e78250f26692@jkqxz.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [9Xa0lmrYq0LgXH009a47Dr0ZEZI6+hMG] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3a5a8349-b264-431b-1952-08da2c8f7b34 x-ms-traffictypediagnostic: DM4P223MB0519:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4/xVzqxcXWqQ2WMVj+fdEC2o+059R03aTrWq91VDFk3QrEixOYznSUI7ysrpNoVuKuMf1uECZncyXBu48qI3M5Qw629PzT4e4cwbLqBeebZAx4EoSTU4KAmTNe3Eb5c9X2VZ4Y8OkjKcUfArgLC7ylgH+1qtITYix2l7rayPXKNXaVp2zM4I4objLtipiMf83ZZ0nKn5hJEfZ7d74dnHq/2fM+TxQhdKpAtmgfheWRr7kmKA8pNAHdfdJGQQHaa1UF8uIP9/Hidf55cRTCiBBMQr+i9m+J+MytlUUWZzBJgicOHXsK7ij9vwUAFaqZMB5B5Wc4FTdYShw56I4e1w71ZmRmRtJXrmC2gAfmUc6D55eEx5qo0hbbVOxChEFPA2OJsN5eDdq+Og5E9dMlsMW3DJbLBhAXPIB3N3xZub8dDWtL1I05G8J8IhOvIATG67Cce53mHZp8prbxF4pJidZZo/jnRF6JB6Ni8bL+66CELrVxWHx6Glq/Z79Y6Wbg8GEUVVHL+QwbFNsgBO66hRTTNeZ1wsnh4wYIAPxHBpEM0kqEALnCMtTEn7uSGWQdft13Iv4ffZmnOz4lUBdqe4CA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dDdmL2ZUdnpiRzBQeEJJdDJaUlhRbVdHelhwUS9lNWsyd2x0VnJLYjF0WlRp?= =?utf-8?B?WXlQMVQ3Q05oWW00b2k2ZVZBRnQzVzBvTEVQVngyR1BkVjhJQ1Y2ZXlCdVBp?= =?utf-8?B?WWtIdUQrTG5jUmRrSU85Y1ZyVDU4MEgxbGZGTDZiYTBjYlVOZ012NUQzQjF6?= =?utf-8?B?SElSZGwzRGZOWjJ0VFNQaldYd09NOFh3VFpRc21yZlVrNFZVcmE2YmJFaUN4?= =?utf-8?B?VDZEN0tDbmNhWlU4eDhtUVVPZTNYbzVrdDl5MDBVdHFpVEVndG9mVTJRVy8r?= =?utf-8?B?bzljemhoS1RTdDNmMkZuUHZncEd3emxUb3hUbTRpR2szM2FndCtCcnJtQ0ZX?= =?utf-8?B?bVlERFdYU2hmQldrWjRJcGI5M1BNT0l0djhSMkNQQnBtZ01kdHY5cHptbVcw?= =?utf-8?B?YkJFVVlaM0xrR05BajZzdUc1WExuMVFvRzR5S3BjV2tML0p4b052VDNJd0di?= =?utf-8?B?VmlvQU1EWlJlVEM5YjZKdnVVUlgzUDU2ODNYeS9hT1E4eWMwaFV5ZXZLeVdD?= =?utf-8?B?UXJLSGwvZXlJVk52VVhEaWp3ejN1b0xXNDFWOGh6NThXN2k2RHFUKytDdWRZ?= =?utf-8?B?N3U5bGs2TjRmNjlVUDhlalJVcmcvTXVBUWx4NDJJdGs0VVpKeWY5T2daN3Uv?= =?utf-8?B?VEZPUllxMld3eXMyanJGZTgxMVZSVG9PeWNJNy9paFY4bVVoMXQzUEpqU0pW?= =?utf-8?B?eW1XVHluZVVFejB6TE1BamQzVTc2b1BsVFRBbEpPZHlzZHZSZU9DdlU5MGFn?= =?utf-8?B?TnRBN1BFbkFoZHVIMXprRW5hRzZXeU0wb3FNRlZ3c011RWNVS2ZjaGtPZnNs?= =?utf-8?B?WHA5VFVYSEpBQU9sQldBc3p2cXVSN0ZWNHhDRzIzdGY4WUVqVGhYV1BtSEY5?= =?utf-8?B?WWNTSkhBUk84YktVbS9wZTNqSENSdmcyQzNIRFFvQSs5VlZKU0FWS2YrNmp2?= =?utf-8?B?NUdqZU82Nnp5NFRxZ0pseXBob1VwTW9FSTU1Z29wajAwdVFLTEZJbDM3SzQw?= =?utf-8?B?QmVsTWhRQVBwMVpNb3h0Wng3MlJNTlZydmpFWXdlZ1oyWDBOY2JLemhSR0N2?= =?utf-8?B?bEtvVElzN0tsWEE5T2FiTm4yRU16Wkg5dmxpWS9Qek92cmdBRitkOFFMbUYx?= =?utf-8?B?bzhGU1ZYWGorUnA3b2NrNEd0eFI0WmpheHZXa1RBZVdRYktxMmVGcnliMlZ0?= =?utf-8?B?NkZhSGVsU1NrTHE3bVorMmJiSnMwNGpDSnRXLzZ6TURsM0hHajlwZDJOOVNJ?= =?utf-8?B?TDVsQWp5ckNmb0Q4c1NGUnMySHBYbnJ1cjhSbU9MYzhNSXBsc0Y2NlhHa011?= =?utf-8?B?bE1aMU1tY1Y4QmNRZlNtSXBlcG4xZmlYRnRzd3R2RW02bFMzQXBtSVBKdEI2?= =?utf-8?B?T0hCRUp1ZXYwaWFWS1lrT2kwa3lkSWxNbFY1NVBNa1N0WHFUdHE1Vy9YMnFw?= =?utf-8?B?azlnRVV3M1ZqZVA1YTRkSjd5citmWDZlTUQ3dUM5WWJhOFlHTkpNS0Z3dXcv?= =?utf-8?B?cDUvNE1FT3dsWlVlOXdLNmtoZlhVMUg0ejVobTZFYVk3TE5DblpsTE8wOWN2?= =?utf-8?B?UUUxZERZUnEyQ0F3QnpsQUlBWkJ0WmE1a3QwaDlqRWxLWXFDL2lxcmhZS1I0?= =?utf-8?B?TlhlL1oyYU9SMEZTWDgzSFhmU3RUdkU3c2RPQXIrb21XMmFDazlxcjZSNzhT?= =?utf-8?B?by80QTgxTE9GczRIZGNDL1FUZ25VeWMvdGdWWHlydUg5V3pRZTU5ZlRVQWNq?= =?utf-8?B?Vmp2TkVjNGNhQ2dlR09sdFBtT080TjBVbllyMTJkOFlyaS9EQnRlS3F5c3dl?= =?utf-8?B?OFVxMTZaMHhYVTRvMHg0Zm9oNXpDZ3c2Y3ZZR0RHc3hjKzhyYUJvYkJCU21j?= =?utf-8?B?N0tYMmJQN296QWRibGZzem9ueURMNnFSWExXTVZBTjRaSEhjbFhnNWJ3K3Fl?= =?utf-8?Q?ixaqLRUdjGA=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: 3a5a8349-b264-431b-1952-08da2c8f7b34 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2022 22:59:58.4835 (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: DM4P223MB0519 Subject: Re: [FFmpeg-devel] [PATCH 1/3] avutils/hwcontext: add derive-device function which searches for existing devices in both directions 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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmZtcGVnLWRldmVsIDxm Zm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YgTWFyaw0KPiBUaG9t cHNvbg0KPiBTZW50OiBUdWVzZGF5LCBNYXkgMywgMjAyMiAxMjoxMiBBTQ0KPiBUbzogZmZtcGVn LWRldmVsQGZmbXBlZy5vcmcNCj4gU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxdIFtQQVRDSCAx LzNdIGF2dXRpbHMvaHdjb250ZXh0OiBhZGQgZGVyaXZlLQ0KPiBkZXZpY2UgZnVuY3Rpb24gd2hp Y2ggc2VhcmNoZXMgZm9yIGV4aXN0aW5nIGRldmljZXMgaW4gYm90aCBkaXJlY3Rpb25zDQo+IA0K PiBPbiAwMi8wNS8yMDIyIDA5OjE0LCBTb2Z0IFdvcmtzIHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1i b3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFsZiBPZg0KPiBNYXJrDQo+ID4+IFRob21wc29uDQo+ ID4+IFNlbnQ6IE1vbmRheSwgTWF5IDIsIDIwMjIgMTI6MDEgQU0NCj4gPj4gVG86IGZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBbUEFUQ0gg MS8zXSBhdnV0aWxzL2h3Y29udGV4dDogYWRkDQo+IGRlcml2ZS0NCj4gPj4gZGV2aWNlIGZ1bmN0 aW9uIHdoaWNoIHNlYXJjaGVzIGZvciBleGlzdGluZyBkZXZpY2VzIGluIGJvdGgNCj4gZGlyZWN0 aW9ucw0KPiA+DQo+ID4gWy4uXQ0KPiA+DQo+ID4+Pj4gKiBUaGUgdGhyZWFkLXNhZmV0eSBwcm9w ZXJ0aWVzIG9mIHRoZSBod2NvbnRleHQgQVBJIGhhdmUgYmVlbg0KPiBsb3N0DQo+ID4+IC0NCj4g Pj4+PiB5b3UgY2FuIG5vIGxvbmdlciBvcGVyYXRlIG9uIGRldmljZXMgaW5kZXBlbmRlbnRseSBh Y3Jvc3MgdGhyZWFkcw0KPiA+Pj4+IChpbnNvZmFyIGFzIHRoZSB1bmRlcmx5aW5nIEFQSSBhbGxv d3MgdGhhdCkuDQo+ID4+Pj4gICAgICBNYXliZSB0aGVyZSBpcyBhbiBhcmd1bWVudCB0aGF0IGRl cml2YXRpb24gaXMgc29tZXRoaW5nDQo+IHdoaWNoDQo+ID4+Pj4gc2hvdWxkIGhhcHBlbiBlYXJs eSBvbiBhbmQgdGhlcmVmb3JlIGRvY3VtZW50aW5nIGl0IGFzIHRocmVhZC0NCj4gPj4gdW5zYWZl DQo+ID4+Pj4gaXMgb2ssIGJ1dCB3aGVuIGh3dXBsb2FkL2h3bWFwIGNhbiB1c2UgaXQgaW5zaWRl IGZpbHRlcmdyYXBocw0KPiB0aGF0DQo+ID4+Pj4ganVzdCBpc24ndCBnb2luZyB0byBoYXBwZW4g KGFuZCB3aWxsIGJlIHZpb2xhdGVkIGluIHRoZSBGRm1wZWcNCj4gPj4gdXRpbGl0eQ0KPiA+Pj4+ IGlmIGZpbHRlcnMgZ2V0IHRocmVhZGVkLCBhcyBpcyBiZWluZyB3b3JrZWQgb24pLg0KPiA+Pj4N Cj4gPj4+ICAgRnJvbSBteSB1bmRlcnN0YW5kaW5nIHRoZXJlIHdpbGwgYmUgYSBzaW5nbGUgc2Vw YXJhdGUgdGhyZWFkDQo+IHdoaWNoDQo+ID4+PiBoYW5kbGVzIGFsbCBmaWx0ZXJncmFwaCBvcGVy YXRpb25zLg0KPiA+Pj4gSSBkb24ndCB0aGluayBpdCB3b3VsZCBldmVuIGJlIHBvc3NpYmxlICh3 aXRob3V0IG1hc3NpdmUgY2hhbmdlcykNCj4gPj4+IHRvIGFyYml0cmF0ZSBmaWx0ZXIgcHJvY2Vz c2luZyBpbiBwYXJhbGxlbC4NCj4gPj4+IEJ1dCBldmVuIGlmIHRoaXMgd291bGQgYmUgaW1wbGVt ZW50ZWQ6IHRoZSBmaWx0ZXJncmFwaCBzZXR1cA0KPiAoaW5pdCwNCj4gPj4+IHVuaW5pdCwgcXVl cnlfZm9ybWF0cywgZXRjLikgd291bGQgc3VyZWx5IGhhcHBlbiBvbiBhIHNpbmdsZQ0KPiB0aHJl YWQuDQo+ID4+DQo+ID4+IFRoZSBmZm1wZWcgdXRpbGl0eSBjcmVhdGVzIGZpbHRlcmdyYXBocyBk eW5hbWljYWxseSB3aGVuIHRoZSBmaXJzdA0KPiA+PiBmcmFtZSBpcyBhdmFpbGFibGUgZnJvbSB0 aGVpciBpbnB1dHMsIHNvIEkgZG9uJ3Qgc2VlIHdoeSB5b3UNCj4gd291bGRuJ3QNCj4gPj4gYWxs b3cgbXVsdGlwbGUgb2YgdGhlbSB0byBiZSBjcmVhdGVkIGluIHBhcmFsbGVsIGluIHRoYXQgY2Fz ZS4NCj4gPj4NCj4gPj4gSWYgeW91IGNyZWF0ZSBhbGwgZGV2aWNlcyBhdCB0aGUgYmVnaW5uaW5n IGFuZCB0aGVuIGdpdmUgcmVmZXJlbmNlcw0KPiB0bw0KPiA+PiB0aGVtIHRvIHRoZSB2YXJpb3Vz IGZpbHRlcnMgd2hpY2ggbmVlZCB0aGVtIChzbyBuZXZlciBtYW5pcHVsYXRlDQo+ID4+IGRldmlj ZXMgZHluYW1pY2FsbHkgd2l0aGluIHRoZSBncmFwaCkgdGhlbiBpdCB3b3VsZCBiZSBvaywgYnV0 IEkNCj4gdGhpbmsNCj4gPj4geW91J3ZlIGFscmVhZHkgcmVqZWN0ZWQgdGhhdCBhcHByb2FjaC4N Cj4gPg0KPiA+IFBsZWFzZSBsZXQncyBub3QgYnJlYWsgb3V0IG9mIHRoZSBzY29wZSBvZiB0aGlz IHBhdGNoc2V0Lg0KPiA+IFRoaXMgcGF0Y2hzZXQgaXMgbm90IGFib3V0IHJlLWRvaW5nIGRldmlj ZSBkZXJpdmF0aW9uLiBUaGUgb25seQ0KPiA+IHNtYWxsIGNoYW5nZSB0aGF0IGl0IGRvZXMgaXMg dGhhdCBpdCByZXR1cm5zIGFuIGV4aXN0aW5nIGRldmljZQ0KPiA+IGluc3RlYWQgb2YgY3JlYXRp bmcgYSBuZXcgb25lIHdoZW4gc3VjaCBkZXZpY2UgYWxyZWFkeSBleGlzdHMNCj4gPiBpbiB0aGUg c2FtZSghKSBjaGFpbi4NCj4gPg0KPiA+IFRoZSBjaGFuZ2UgaXQgbWFrZXMgaGFzIHJlYWxseSBu b3RoaW5nIHRvIGRvIHdpdGggdGhyZWFkaW5nIG9yDQo+ID4gYW55dGhpbmcgYXJvdW5kIGl0Lg0K PiANCj4gVGhlIGNoYW5nZSBtYWtlcyBleGlzdGluZyB0aHJlYWQtc2FmZSBod2NvbnRleHQgQVBJ cyB1bnNhZmUuICBUaGF0IGlzDQo+IGRlZmluaXRlbHkgbm90ICJub3RoaW5nIHRvIGRvIHdpdGgg dGhyZWFkaW5nIiwgYW5kIGhhcyB0byBiZSByZXNvbHZlZA0KPiBzaW5jZSB0aGV5IGNhbiBjdXJy ZW50bHkgYmUgY2FsbGVkIGZyb20gY29udGV4dHMgd2hpY2ggZXhwZWN0IHRocmVhZC0NCj4gc2Fm ZXR5IChzdWNoIGFzIG1ha2luZyBmaWx0ZXJncmFwaHMpLg0KDQpBcyBJIHNhaWQsIEknbSBub3Qg YXdhcmUgdGhhdCBmaWx0ZXJncmFwaCBjcmVhdGlvbiB3b3VsZCBiZSBhIGNvbnRleHQgDQp3aGlj aCByZXF1aXJlcyB0aHJlYWQtc2FmZXR5LCBldmVuIHdoZW4gY29uc2lkZXJpbmcgZnJhbWVzIHdo aWNoIGdldCANCnB1c2hlZCBpbnRvIGEgZmlsdGVyZ3JhcGggKGxpa2UgZnJvbSBhIGRlY29kZXIp Lg0KDQpDb3VsZCB5b3UgcGxlYXNlIHNob3cgYSBjb21tYW5kIGxpbmUgd2hpY2ggY2F1c2VzIGEg c2l0dWF0aW9uIHdoZXJlDQpkZXZpY2VfZGVyaXZlIGlzIGJlaW5nIGNhbGxlZCBmcm9tIG11bHRp cGxlIHRocmVhZHM/DQoNCg0KPiA+Pj4+ICogSSdtIG5vdCBzdXJlIHRoYXQgaXQgaXMgcmVhc29u YWJsZSB0byBpZ25vcmUgb3B0aW9ucy4gIElmIGFuDQo+ID4+Pj4gdW5yZWxhdGVkIGNvbXBvbmVu dCBkZXJpdmVkIGEgZGV2aWNlIGJlZm9yZSB5b3Ugd2l0aCBzcGVjaWFsDQo+ID4+IG9wdGlvbnMs DQo+ID4+Pj4geW91IG1pZ2h0IGdldCB0aGF0IGRldmljZSBldmVuIGlmIHlvdSBoYXZlIGluY29t cGF0aWJsZSBkaWZmZXJlbnQNCj4gPj4+PiBvcHRpb25zLg0KPiA+Pj4NCj4gPj4+IEkgdW5kZXJz dGFuZCB3aGF0IHlvdSBtZWFuLCBidXQgdGhpcyBpcyBvdXRzaWRlIHRoZSBzY29wZSBvZg0KPiA+ Pj4gdGhpcyBwYXRjaHNldCwgYmVjYXVzZSB3aGVuIHlvdSB3b3VsZCB3YW50IHRvIGRvIHRoaXMs IGl0DQo+ID4+PiB3b3VsZCBuZWVkIHRvIGJlIGltcGxlbWVudGVkIGZvciBkZXJpdmF0aW9uIGlu IGdlbmVyYWwsIG5vdA0KPiA+Pj4gaW4gdGhpcyBwYXRjaHNldCB3aGljaCBvbmx5IGFkZHMgcmV2 ZXJzZS1zZWFyY2ggdG8gdGhlDQo+ID4+PiBleGlzdGluZyBkZXJpdmF0aW9uIGZ1bmN0aW9uYWxp dHkuDQo+ID4+DQo+ID4+IEknbSBub3Qgc3VyZSB3aGF0IHlvdSBtZWFuIGJ5IHRoYXQ/ICBUaGUg ZmVhdHVyZSBhbHJlYWR5IGV4aXN0czsNCj4gaGVyZQ0KPiA+PiBpcyBhIGNvbmNyZXRlIGV4YW1w bGUgb2Ygd2hlcmUgeW91IHdvdWxkIGdldCB0aGUgd3JvbmcgcmVzdWx0Og0KPiA+Pg0KPiA+PiBT dGFydCB3aXRoIFZBQVBJIGRldmljZSBBLg0KPiA+Pg0KPiA+PiBDb21wb25lbnQgUCBkZXJpdmVz IFZ1bGthbiBkZXZpY2UgQiB3aXRoIHNvbWUgZXh0ZW5zaW9uIG9wdGlvbnMgWC4NCj4gPj4NCj4g Pj4gQ29tcG9uZW50IFEgd2FudHMgdGhlIHNhbWUgZGV2aWNlIGFzIFAsIHNvIGl0IGRlcml2ZXMg YWdhaW4gd2l0aA0KPiA+PiBleHRlbnNpb24gb3B0aW9ucyBYIGFuZCBnZXRzIEIuDQo+ID4+DQo+ ID4+IEV2ZXJ5dGhpbmcgd29ya3MgZmluZSBmb3IgYSB3aGlsZS4NCj4gPj4NCj4gPj4gTGF0ZXIs IHVucmVsYXRlZCBjb21wb25lbnQgUiBpcyBpbnNlcnRlZCBiZWZvcmUgUCBhbmQgUS4gIEl0IHdh bnRzDQo+IGENCj4gPj4gVnVsa2FuIGRldmljZSBDIHdpdGggZXh0ZW5zaW9uIG9wdGlvbnMgWSwg c28gaXQgZGVyaXZlcyB0aGF0Lg0KPiA+Pg0KPiA+PiBOb3cgY29tcG9uZW50IFEgaXMgYnJva2Vu IGJlY2F1c2UgaXQgZ2V0cyBDIGluc3RlYWQgb2YgQiBhbmQgaGFzDQo+IHRoZQ0KPiA+PiB3cm9u ZyBleHRlbnNpb25zIGVuYWJsZWQuDQo+ID4NCj4gPiBBcyBwZXIgeW91ciByZXF1ZXN0LCB0aGlz IHBhdGNoc2V0J3MgY2hhbmdlcyBhcmUgbm93IGxpbWl0ZWQgdG8NCj4gPiB1c2UgZmZtcGVnIGNs aS4gQW5kIHRoZXJlIGlzIGN1cnJlbnRseSBubyBzdXBwb3J0IGZvciAiZXh0ZW5zaW9uDQo+ID4g b3B0aW9ucyIgd2hlbiBkZXJpdmluZyBhIGRldmljZS4NCj4gDQo+IFllcyB0aGVyZSBpcyAtIHNl ZSB0aGUgImluc3RhbmNlX2V4dGVuc2lvbnMiIGFuZCAiZGV2aWNlX2V4dGVuc2lvbnMiDQo+IG9w dGlvbnMgdG8gVnVsa2FuIGRldmljZSBkZXJpdmF0aW9uLiAgKEhlbmNlIHRoZSBWQUFQSStWdWxr YW4NCj4gZXhhbXBsZS4pDQoNCk9LLCBidXQgd2hlbiBkZXJpdmluZyBhIGRldmljZSB2aWEgY29t bWFuZCBsaW5lLCBpdCBkb2Vzbid0IGNvbnNpZGVyDQpzdWNoIHBhcmFtZXRlcnMgaW4gdGhlIGN1 cnJlbnQgZGV2aWNlX2Rlcml2ZSBmdW5jdGlvbiwgYW5kIGhlbmNlIGl0J3MNCm5vdCBzb21ldGhp bmcgdGhhdCBjYW4gYmUgYnVyZGVuZWQgb250byB0aGlzIHBhdGNoc2V0Lg0KDQoNCj4gPiBXaGF0 IEkgbWVhbnQgYWJvdmUgaXMgdGhpczoNCj4gPg0KPiA+IEFzc3VtZSB0aGlzIHBhdGNoc2V0IHdv dWxkbid0IGJlIGFwcGxpZWQsIGJ1dCBhIHBhdGNoc2V0IHdvdWxkDQo+ID4gYmUgYXBwbGllZCB0 aGF0IGFsbG93cyB0byBzcGVjaWZ5ICJleHRlbnNpb24gb3B0aW9ucyIuDQo+ID4gVGhlbiwgZXZl biB3aXRob3V0IHRoaXMgcGF0Y2hzZXQsIEkgY291bGQgY29uc3RydWN0IGEgc2ltaWxhcg0KPiA+ IGV4YW1wbGUsIHdoZXJlIHlvdSB3b3VsZCBnZXQgdGhlIHNhbWUgZGV2aWNlIHdoZW4gZGVyaXZp bmcNCj4gPiB0d28gdGltZXMgZnJvbSB0aGUgc2FtZSBkZXZpY2UgYnV0IHdpdGggZGlmZmVyZW50 IGV4dGVuc2lvbg0KPiA+IG9wdGlvbnMuDQo+IA0KPiBIb3c/DQoNClZBQVBJID4+IFFTVihQYXJh bTEpID4+IE9wZW5DTA0KDQpOb3csIGZyb20gT3BlbkNMLCB5b3Ugd2FudCB0byBkZXJpdmUgUVNW IGJ1dCB3aXRoIGRpZmZlcmVudCBwYXJhbWV0ZXJzDQooUGFyYW0yKS4gWW91IHdvbid0IGdldCBh IG5ldyBkZXZpY2UsIHlvdSBnZXQgdGhlIGV4aXN0aW5nIFFTViBkZXZpY2UuDQoNCg0KPiBUaGUg ZXhpc3RpbmcgZGVyaXZhdGlvbiBzZXR1cCBhbHdheXMgbWFrZXMgYSBuZXcgZGV2aWNlLCBzbyB5 b3UgY2FuJ3QNCj4gYWNjaWRlbnRhbGx5IGdldCBhbiBvbGQgb25lLg0KDQpObywgbm90IGFsd2F5 cywgc2VlIGFib3ZlLg0KDQo+IFRoZSBleGlzdGluZyB3YXkgb2YgcmV1c2luZyBkZXZpY2VzIGlz IHRvIGtlZXAgdGhlIHJlZmVyZW5jZSBhbmQgcmV1c2UNCj4gaXQgZGlyZWN0bHksIHdoaWNoIG1l YW5zIHlvdSBuZWVkIHRvIHBhc3MgdGhlIHJlZmVyZW5jZSBhcm91bmQNCj4gZXhwbGljaXRseSBh bmQgdGhlcmUgaXMgbm8gcHJvYmxlbS4NCg0KWW91IGNhbiBkbyB0aGlzIGFzIEFQSSB1c2VyLCBi dXQgdGhpcyBwYXRjaCBpcyBhYm91dCBmZm1wZWcgY2xpIGFuZCBhcw0KcGVyIHlvdXIgcmVxdWVz dCBsaW1pdGVkIHRvIGZmbXBlZyBjbGkgdXNhZ2UuDQoNCg0KPiA+PiBDYW4geW91IGV4cGxhaW4g eW91ciBleGFtcGxlIGZ1cnRoZXI/DQo+ID4NCj4gPiBNYXliZSB3ZSBzaG91bGQgZ2V0IGNsZWFy IGFib3V0IHdoYXQgdGhpcyBwYXRjaHNldCBkb2VzIGV4YWN0bHkuDQo+ID4gTGV0J3MgbG9vayBh dCB0aGUgZm9sbG93aW5nIGRlcml2YXRpb24gY2hhaW4gb2YgZGV2aWNlczoNCj4gPg0KPiA+IEEN Cj4gPiDilJzilIAgWA0KPiA+IOKUgiAg4pSU4pSAIFkNCj4gPiDilJzilIAgQg0KPiA+IOKUgiAg 4pSU4pSAIEMNCj4gPiDilJTilIAgVg0KPiA+ICAgICDilJTilIAgVw0KPiA+DQo+ID4gVGhlIG1l YW5pbmcgaXM6DQo+ID4NCj4gPiAtIFkgaXMgZGVyaXZlZCBmcm9tIFgsIFggaXMgZGVyaXZlZCBm cm9tIEENCj4gPiAtIEMgaXMgZGVyaXZlZCBmcm9tIEIsIEIgaXMgZGVyaXZlZCBmcm9tIEENCj4g PiAtIFcgaXMgZGVyaXZlZCBmcm9tIFYsIFYgaXMgZGVyaXZlZCBmcm9tIEENCj4gPg0KPiA+IElu IHRoZSBleGlzdGluZyBpbXBsZW1lbnRhdGlvbiwgZWFjaCBkZXZpY2UgImtub3dzIiBpdHMgcGFy ZW50DQo+ID4gKHZpYSB0aGUgJ3NvdXJjZV9kZXZpY2UnIGZpZWxkKS4NCj4gPg0KPiA+IFdoZW4g eW91IGNhbGwgYXZfaHdkZXZpY2VfY3R4X2NyZWF0ZV9kZXJpdmVkKCkgYW5kIHNwZWNpZnkgIkMi DQo+ID4gYXMgdGhlIHNvdXJjZSBkZXZpY2UsIHRoZW4gaXQgd2lsbCBpdGVyYXRlIHRoZSB0cmVl IHVwd2FyZHMsDQo+ID4gc28gd2hlbiBCIGlzIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSwgaXQgd2ls bCByZXR1cm4gQiBvciBpZg0KPiA+IEEgaXMgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLCBpdCB3aWxs IHJldHVybiBBLg0KPiA+IE90aGVyd2lzZSwgaXQgd2lsbCBjcmVhdGUgYSBuZXcgZGV2aWNlIG9m IHRoZSByZXF1ZXN0ZWQgdHlwZQ0KPiA+IGFuZCBzZXRzIEMgYXMgaXRzIHBhcmVudC4NCj4gPg0K PiA+IEJ1dCBpdCBkb2Vzbid0IHJldHVybiBYLCBZLCBWIG9yIFcgKHdoZW4gYW55IHdvdWxkIG1h dGNoIHRoZQ0KPiA+IHJlcXVlc3RlZCB0eXBlKS4NCj4gPg0KPiA+IFRoaXMgaXMgdGhlIGN1cnJl bnQgYmVoYXZpb3IuDQo+ID4NCj4gPg0KPiA+IFdoYXQgdGhpcyBwYXRjaHNldCBkb2VzIGlzIHRo YXQgd2UgYWxzbyBzdG9yZSB0aGUgZGVyaXZlZA0KPiA+IGNoaWxkcmVuIGZvciBlYWNoIGRldmlj ZSAoZGVyaXZlZF9kZXZpY2VzIGFycmF5KS4NCj4gPg0KPiA+IEluIHRoZSBleGFtcGxlIGFib3Zl LCBpdCBtZWFucyBoYXQgQSBoYXMgcmVmZXJlbmNlcyB0bw0KPiA+IFgsIEIgYW5kIFYuIFggdG8g WSwgQiB0byBDIGFuZCBWIHRvIFcuDQo+ID4NCj4gPiBUaGUgYmVoYXZpb3Igb2YgdGhlIG5ldyBm dW5jdGlvbiBpcyBhcyBmb2xsb3dzOg0KPiA+DQo+ID4gV2hlbiB5b3UgY2FsbCBhdl9od2Rldmlj ZV9jdHhfZ2V0X29yX2NyZWF0ZV9kZXJpdmVkKCkgYW5kIHNwZWNpZnkNCj4gIkMiDQo+ID4gYXMg dGhlIHNvdXJjZSBkZXZpY2UsIHRoZW4gaXQgd2lsbCBpdGVyYXRlIHRoZSB0cmVlIHVwd2FyZHMs DQo+ID4gc28gd2hlbiBCIGlzIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSwgaXQgd2lsbCByZXR1cm4g QiBvciBpZg0KPiA+IEEgaXMgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLCBpdCB3aWxsIHJldHVybiBB IChsaWtlIGJlZm9yZSkuDQo+ID4NCj4gPiBBZGRpdGlvbmFsbHksIGl0IHdpbGwgYWxzbyBpdGVy YXRlIGFsbCB0aHJvdWdoIG90aGVyIGNoaWxkcmVuDQo+ID4gb2YgQiBhbmQgb3RoZXIgY2hpbGRy ZW4gb2YgQS4gV2hpY2ggbWVhbnMgdGhhdCBpZiBYLCBZLCBWIG9yIFcNCj4gPiBtYXRjaGVzIHRo ZSByZXF1ZXN0ZWQgdHlwZSwgaXQgd291bGQgcmV0dXJuIGl0Lg0KPiANCj4gTm8gaXQgZG9lc24n dD8gIFlvdXIgbmV3IGZ1bmN0aW9uIGZpbmRfZGVyaXZlZF9od2RldmljZV9jdHgoKSBpcw0KPiBj YWxsZWQgb25seSBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSBkZXZpY2UsIGFuZCByZWN1cnNlcyBp bnRvIGl0cw0KPiAodHJhbnNpdGl2ZSkgY2hpbGRyZW4uICBJdCBjYW4ndCByZXR1cm4gYW55IG9m IFgsIFksIFYgb3IgVyB3aGVuDQo+IHN0YXJ0aW5nIGZyb20gQy4NCg0KT0ssIHRoYXQncyBteSBt aXN0YWtlLiBJdCdzIGJlZW4gYSB3aGlsZS4uLg0KV2hhdCBJIGRlc2NyaWJlZCBpcyB0aGUgb3Jp Z2luYWwgYmVoYXZpb3IuIFRoZXJlIHdlcmUgcmVhc29ucw0KdG8gbGltaXQgaXQgdGhpcyB3YXku DQoNCkJlc3QgcmVnYXJkcw0Kc29mdHdvcmt6DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZl bEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1k ZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==