From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5928742B2C; Wed, 17 May 2023 18:57:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4A1754161A; Wed, 17 May 2023 18:57:18 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) by mails.dpdk.org (Postfix) with ESMTP id 7BFF3411F3 for ; Wed, 17 May 2023 18:57:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Te1VIaFkrE91tqtTKriOEuhYwMfMPxoi9rcrRNpl+mmJn60uwo//V+sgmHf5F+g6cwefyJyU/Nj9dBBFmB4mKFb8o5p8MNP3hMQvqZbgBL846bmPL4vCuXZ5mbQafiQ8uID7XHhijlxGvThQfp3q7i7plLLUWth00xcIavBxUivOgdpShyMC0Wa7XhZZNUZSEq44LT3wyZ6bY6mPsUIJUlsTZsAmu2GSwi/hdHst5paAjHtUBtWXwczNFzKJo90nLKLrANwgS59Lthp0G7EeYXFHORMfI/rxlcMxiXv5G2A1NawJ8vxwXt+Lc9yJZzcDidPOvHqGEEr4wk5+4gXLYQ== 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=8c4DVfXN2TPnOcpRlI9qcfjGh953fj6d0crQ/zE9+8k=; b=O3UrYlKjZf77mFzA0gruPeOYLwZeIfQHXfeFNV2HjCZQfIZjwKF+RKzrVLNi8mtVYlq1HTaskRFlqAr/hpUybNqAqGiIvHXXT6DeDtWC2AkWq53eCOazR82reglu1W7CB9y2o/T4YWS/QMJdYKlce56XpXD+3KHC8F3Zh5MMtFcrAxeNuKKzvdaXywGSkcswSZLvJWsuJSZarrKEF5Z6VMRbh8Zdb4o4YxKJsOUAq/6hWq7Vnc9PajYZx8empheqyxkXbRdig1ePYP24QwsEDV2MN7CYLI3eDWbG/3+Mwc7Qk4E2t9YsevDB8kp/2C2BMU++tPwJAqjrobZOMhGcow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8c4DVfXN2TPnOcpRlI9qcfjGh953fj6d0crQ/zE9+8k=; b=Xq4RO85bklrsa2fakVCeXd48Qu7NN4cwWrR+yUNoV+Fe2SWbvlIff9T5XrBgKtc88b1hKQRbxv/JOGZIIN3nwqpcOYxm4i5hWOptNgemwu3vC96+XQ+ee0TdlgDNzOtnFtsB0lMnmTgFZVyLT/s+02/bd+3gEO5ohya2K36gWyTIZb1pZMGJKlPPQemYJA82ZvWc17Qb0MJxQs4WinOairSuECC1+ZlKzZHc0BDYIfs0Irm7vCGoBws0FuLwdPBcoOMJsv+SHjgIRjDCCBUJSy9ej88r2e3NnzZj3hP19R4nZnNqHXM+A+eecALi3iXRHOKIc5GY44Kx/xnBq6DpKQ== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by SN7PR12MB8172.namprd12.prod.outlook.com (2603:10b6:806:352::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Wed, 17 May 2023 16:57:13 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf%4]) with mapi id 15.20.6411.017; Wed, 17 May 2023 16:57:12 +0000 From: Ori Kam To: Gregory Etelson , "dev@dpdk.org" CC: Maayan Kashani , Raslan Darawsheh , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Ferruh Yigit , Andrew Rybchenko Subject: RE: [RFC PATCH v3] ethdev: add indirect list flow action Thread-Topic: [RFC PATCH v3] ethdev: add indirect list flow action Thread-Index: AQHZgMl1HaW6q6pG8ECy/T6wAPsDUK9euF9g Date: Wed, 17 May 2023 16:57:12 +0000 Message-ID: References: <20230418172144.24365-1-getelson@nvidia.com> <20230507095046.5456-1-getelson@nvidia.com> In-Reply-To: <20230507095046.5456-1-getelson@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW2PR12MB4666:EE_|SN7PR12MB8172:EE_ x-ms-office365-filtering-correlation-id: 715b02ce-e6a4-445d-3938-08db56f7c27c x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3YaNg7+E4CymPqkUD40AjbKVO/ZYmXNjloh5CtRq/ElbRsk26KCq3Vk9mV54om/P1H+cL+lAm87E9Bd4n0din6CyFbcxb+/265ixWacTPHXqtteKdWVWYwDqHcLKztXpZMqwydJe4tQS9p8nlP+gdbXWYVRzE4oTGIdWwYmWrHwH9/HGENZiVW3YXqvFJeG/dDLeA1FJOKecDTMwBYfZTL7LIsEFXIqF7SHuGMmr+11gfKCN5WDZ5L6JWgxPp6RO2KcqKQtbmEopzyPlqtljsSx7OxeB8OYeqxDMvd9Kw0/Jkp/dLfgscMY9q4X8BJQ8DAlA5EDJFzA3guyQI1/DRd4NH9Ua/22ZzohzQxqjlu2cKysGuI1te4oEOl6jCtRjqv2Wx3k9Z5bW9+vB8qXC0crHZDiEb0030VT0du2JpCU7mE9SUTj1xp9eN7Knc3CjdrRudmuuRUldHTMy1DkNWOXC9uai1oOWvEfiWPc2RXow+7kN1ZMA9Ka7NI+6mhomjdBBK0fzasvRM6iPkP0bi7PxkqFD55cqDh9VHr/gdNVCQ3RF2szlVCLUN/fAZBlBRr0N32e+6Z3WP7AOORRg5Vxn9RA3GjzMMgYaczeI33HqrudF2/CAs0Nrr5DK3o45 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(136003)(366004)(376002)(396003)(39860400002)(451199021)(5660300002)(8676002)(52536014)(4326008)(66446008)(66556008)(66476007)(76116006)(66946007)(8936002)(64756008)(30864003)(478600001)(54906003)(2906002)(110136005)(7696005)(41300700001)(316002)(71200400001)(9686003)(6506007)(26005)(186003)(83380400001)(38070700005)(38100700002)(55016003)(33656002)(122000001)(86362001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bSt1ZTFrK1AvK01KbU9IMk9KNEVyaVc5YUduR1RVR3ZTbFBFNEplUzhEQ2ZM?= =?utf-8?B?VFlKVlBNMFdmYlhTZlJWRWNMalc1YWRvY2tWZXE3bWJ2WkZ4UUFDa1RQUFVT?= =?utf-8?B?YjVKcjYybXNvUlRRRDhGaXRXeW0xL1BSdTl2OStJcE5Nc2F0Sm5XREI4d0F3?= =?utf-8?B?RU1XeTBRZUhCdVZjVjZicXptQ2pnWjREL3dvSXA3SEpSbDVkcmdveHR2Y29V?= =?utf-8?B?a1Rzd2ZsT1RqKy94R3BkbDhjSURwUFduL3E0OTBmczFmUnNkaE9sUGZEY1Jj?= =?utf-8?B?K2NDaEUwVW4yaDNsRUNVandEcTJscnB6cjBFZDFyTHRPRGM0eEhFSDhsbEJ3?= =?utf-8?B?OC91bWNORWNXT1QvMDF4Vkh2cDFnYTFIS09jVFBWNG9JNVQ0Wjh4V2tscDNT?= =?utf-8?B?bm9wYml2MGY3SG1iZXcrWUpxQmp1OVprcm5WNjZrT2U2VERxUnBFOXJaemNk?= =?utf-8?B?V2xiK1hPQjE1alVXM3hPL0ZXZVVvNHlXTXJqeHBLNFRwam9uazIwWFNYN1VW?= =?utf-8?B?YWNKVlllKzAxdUpSc3U1amhxemxZRTRiMDAzZ1FhMkdwMnFYWGdEcGFHYzdo?= =?utf-8?B?WENSMHBmcFpxOWhvRFA5Ly92UmNTWUFDYSt1Nkp4aVphVi9ybkV0aG9PRTlq?= =?utf-8?B?Uml4SjFNcTZXcytxalB6SXpPelRmM1BEMXhwWU1jYW9oQnI1SGR3eEZrdFpU?= =?utf-8?B?bXpGbUVROVBvdWEreGkvdDBTYlorc3BvT2I3eXoxbTVpNEduLzNQMXgwM01I?= =?utf-8?B?aXJtOEdIWUlMaDF5V3M4RTNlbkZVWnM4MG1SOFlLc3R0UVZZQW5ZWC9xYXdz?= =?utf-8?B?Y3ZOQmgxa2FmYVpXNHk3eFl4dW05dURtMjluanlWRkFTYmlUMWhPdGpHZUVh?= =?utf-8?B?V0xlRi9yeFlMNUFkSVBoc2JFS1Y4YzZnN05hTTZoM2o3ZXBSWSsxM1dENTBz?= =?utf-8?B?d2ZXRHYvRkV3VklSbEJ1bUZCeDNLRjdsbGRDZkFiMkh6UXNvOFE2OUtoVjlK?= =?utf-8?B?Y3NUeSsvcVBIcWdTOFhqMjhOMVRNZkNLcWRkcGFsQk95aThYWHFZQ3JqY0kr?= =?utf-8?B?NmJzTm4wWXNNeWxVdGo2ckJwZVY1THJtOHVva1hmV2JuYnlQOFpHeUJpWWNV?= =?utf-8?B?TWQzNEdQUVhraVdEV2VyL1VtMjZhUUg4QTg0bC9ZdjNvNnV5RjBsa3JhTlBV?= =?utf-8?B?NnJ1SVQ3Tkpxbm82RkVDWDQwQ2Z3bWNHcGIyMEk2cWE1K1pLa29ScjlJMmZs?= =?utf-8?B?S0hYRklQN1lsU25VRE1xQk1Oem5XOEQ0T1JJd1RxaFpVV1NKSmcveEVvZ21T?= =?utf-8?B?d2syelZTNXl4NFFnRk1ianlDbUZtZmlDTFdGT0NadURuR2N4T21BMUNUUUdU?= =?utf-8?B?Rjc2RjlWZS9iY084U2VCQjl5d01ndVF4emdpaS81akxLYnlUeGlKKytHdlpK?= =?utf-8?B?RFNmQU12bUFUa0R0bXFmbS9INldvU0ZBTklMaFBFaFJHaWhFNkFGMS9WczVx?= =?utf-8?B?b2JuM1ZuY0xpQ2cvbEdua0xlQ1hJRFVBdHV3YTFHTWtYU3lLaENpcThwM0oy?= =?utf-8?B?L2xDam9FSmxPWEtrSGoyYzRUbFZsc0x1WWl6MHJVb0piNm1hT3FjN0k4QVpn?= =?utf-8?B?VHJySWtYTUYrbUpZM0tpYkdmdHpDTVlwVWZIbEdJQy9QOHhoVUpLaHo0d25H?= =?utf-8?B?MGdTUVpoQy9ZT3Vzc3g0cHdOdThnV2ZLTWxybmpIVTNHbFNCV2RFbnNMK29n?= =?utf-8?B?cUFvb1ZOOWp0Wm5GSGZtQUxndit4ai9DdDVuejVvK3ZpcUZQQnVtU0lFVzBm?= =?utf-8?B?UzVFV1FRaGR6eDcyTGdnQVVtSU9rUnlmdlpPLzVIbmUzeEkzVDF5YzRhV044?= =?utf-8?B?QitBL0xpa1FwUE9sNm0xR3pNREdNano3bHlDN21XWGdpWTJEbmdWZjZNNTJa?= =?utf-8?B?MTRoN1N6MnNSNkdiS2x4bjVjYlY4dmFWanVmR0lpd2RxcEw2N21TWkN6d29B?= =?utf-8?B?SzVDK3RURnQzYnNjOFM0N1JZYkhpOGhPMVdMODF3Y2lid212UWJXQ1g2ZjlO?= =?utf-8?B?N3dDd1dzcWJMWVErUFZRYjZtQ0l2Z2kvdW9UdkRWMEFybllGVkNqMHZUTjhS?= =?utf-8?Q?eNdU=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 715b02ce-e6a4-445d-3938-08db56f7c27c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2023 16:57:12.2521 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KP+2t5EOn6GSZ3+EPrZStwRwkzasUuePup4seIC+vZBI6MCeSW/K2HUSPlaBzW7I53M3laXCLMpk456xpJL89Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8172 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgR3JlZ29yeQ0KDQpGaXJzdCBJJ20gYXNzdW1pbmcgdGhpcyBpcyBqdXN0IFJGQywgc2luY2Ug dGhlcmUgaXMgbm8gY29kZSBpbXBsZW1lbnRhdGlvbi4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBHcmVnb3J5IEV0ZWxzb24gPGdldGVsc29uQG52aWRpYS5jb20+DQo+ IFNlbnQ6IFN1bmRheSwgTWF5IDcsIDIwMjMgMTI6NTEgUE0NCj4gDQo+IEluZGlyZWN0IEFQSSBj cmVhdGVzIGEgc2hhcmVkIGZsb3cgYWN0aW9uIHdpdGggdW5pcXVlIGFjdGlvbiBoYW5kbGUuDQo+ IEZsb3cgcnVsZXMgY2FuIGFjY2VzcyB0aGUgc2hhcmVkIGZsb3cgYWN0aW9uIGFuZCByZXNvdXJj ZXMgcmVsYXRlZCB0bw0KPiB0aGF0IGFjdGlvbiB0aHJvdWdoIHRoZSBpbmRpcmVjdCBhY3Rpb24g aGFuZGxlLg0KPiBJbiBhZGRpdGlvbiwgdGhlIEFQSSBhbGxvd3MgdG8gdXBkYXRlIGV4aXN0aW5n IHNoYXJlZCBmbG93IGFjdGlvbg0KPiBjb25maWd1cmF0aW9uLiAgQWZ0ZXIgdGhlIHVwZGF0ZSBj b21wbGV0ZXMsIG5ldyBhY3Rpb24gY29uZmlndXJhdGlvbg0KPiBpcyBhdmFpbGFibGUgdG8gYWxs IGZsb3dzIHRoYXQgcmVmZXJlbmNlIHRoYXQgc2hhcmVkIGFjdGlvbi4NCj4gDQo+IEluZGlyZWN0 IGFjdGlvbnMgbGlzdCBleHBhbmRzIHRoZSBpbmRpcmVjdCBhY3Rpb24gQVBJOg0KPiDigKIgSW5k aXJlY3QgYWN0aW9uIGxpc3QgY3JlYXRlcyBhIGhhbmRsZSBmb3Igb25lIG9yIHNldmVyYWwNCj4g ICBmbG93IGFjdGlvbnMsIHdoaWxlIGxlZ2FjeSBpbmRpcmVjdCBhY3Rpb24gaGFuZGxlIHJlZmVy ZW5jZXMNCj4gICBzaW5nbGUgYWN0aW9uIG9ubHkuDQo+ICAgSW5wdXQgZmxvdyBhY3Rpb25zIGFy cmFuZ2VkIGluIEVORCB0ZXJtaW5hdGVkIGxpc3QuDQo+IOKAoiBGbG93IHJ1bGUgY2FuIHByb3Zp ZGUgcnVsZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgdG8NCj4gICBleGlzdGlu ZyBzaGFyZWQgaGFuZGxlLg0KPiAgIFVwZGF0ZXMgb2YgZmxvdyBydWxlIHNwZWNpZmljIGNvbmZp Z3VyYXRpb24gd2lsbCBub3QgY2hhbmdlIHRoZSBiYXNlDQo+ICAgYWN0aW9uIGNvbmZpZ3VyYXRp b24uDQo+ICAgQmFzZSBhY3Rpb24gY29uZmlndXJhdGlvbiB3YXMgc2V0IGR1cmluZyB0aGUgYWN0 aW9uIGNyZWF0aW9uLg0KPiANCj4gSW5kaXJlY3QgYWN0aW9uIGxpc3QgaGFuZGxlIGRlZmluZXMg MiB0eXBlcyBvZiByZXNvdXJjZXM6DQo+IOKAoiBNdXRhYmxlIGhhbmRsZSByZXNvdXJjZSBjYW4g YmUgY2hhbmdlZCBkdXJpbmcgaGFuZGxlIGxpZmVzcGFuLg0KPiDigKIgSW1tdXRhYmxlIGhhbmRs ZSByZXNvdXJjZSB2YWx1ZSBpcyBzZXQgZHVyaW5nIGhhbmRsZSBjcmVhdGlvbg0KPiAgIGFuZCBj YW5ub3QgYmUgY2hhbmdlZC4NCj4gDQo+IFRoZXJlIGFyZSAyIHR5cGVzIG9mIG11dGFibGUgaW5k aXJlY3QgaGFuZGxlIGNvbnRleHRzOg0KPiDigKIgQWN0aW9uIG11dGFibGUgY29udGV4dCBpcyBh bHdheXMgc2hhcmVkIGJldHdlZW4gYWxsIGZsb3dzDQo+ICAgdGhhdCByZWZlcmVuY2VkIGluZGly ZWN0IGFjdGlvbnMgbGlzdCBoYW5kbGUuDQo+ICAgQWN0aW9uIG11dGFibGUgY29udGV4dCBjYW4g YmUgY2hhbmdlZCBieSBleHBsaWNpdCBpbnZvY2F0aW9uDQo+ICAgb2YgaW5kaXJlY3QgaGFuZGxl IHVwZGF0ZSBmdW5jdGlvbi4NCj4g4oCiIEZsb3cgbXV0YWJsZSBjb250ZXh0IGlzIHByaXZhdGUg dG8gYSBmbG93Lg0KPiAgIEZsb3cgbXV0YWJsZSBjb250ZXh0IGNhbiBiZSB1cGRhdGVkIGJ5IGlu ZGlyZWN0IGxpc3QgaGFuZGxlDQo+ICAgZmxvdyBydWxlIGNvbmZpZ3VyYXRpb24uDQo+IA0KPiBm bG93IDE6DQo+ICAvIGluZGlyZWN0IGhhbmRsZSBIIGNvbmYgQzEgLw0KPiAgICAgICAgICAgICAg ICAgICAgfCAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwNCj4gICAgICAg ICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgIGZsb3cgMjoNCj4gICAgICAgICAgICAgICAg ICAgIHwgICAgICAgfCAgICAgICAgIC8gaW5kaXJlY3QgaGFuZGxlIEggY29uZiBDMiAvDQo+ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgfA0KPiAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgIHwNCj4gICAgICAgICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICB8DQo+ICAgICAgICAgICAgID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAgICAgICAgICAgICBe ICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwNCj4gICAg ICAgICAgICAgfCAgICAgIHwgICAgICAgViAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICBWDQo+ICAgICAgICAgICAgIHwgICAgfn5+fn5+fn5+fn5+fn4gICAgICAgICAgICAgICAgICAg ICAgfn5+fn5+fn5+fn5+fn5+DQo+ICAgICAgICAgICAgIHwgICAgIGZsb3cgbXV0YWJsZSAgICAg ICAgICAgICAgICAgICAgICAgIGZsb3cgbXV0YWJsZQ0KPiAgICAgICAgICAgICB8ICAgICBjb250 ZXh0IDEgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0IDINCj4gICAgICAgICAgICAg fCAgICB+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn4N Cj4gICBpbmRpcmVjdCAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwNCj4gICBhY3Rpb24gICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwNCj4gICBjb250ZXh0ICAgfCAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFYNCj4gICAgICAgICAgICAgfCAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg IGFjdGlvbiBtdXRhYmxlIGNvbnRleHQNCj4gICAgICAgICAgICAgfCAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAgICAgICAgICAgIHYg ICAgICAgICAgICAgICAgYWN0aW9uIGltbXV0YWJsZSBjb250ZXh0DQo+ICAgICAgICAgICAgID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K PiANCj4gSW5kaXJlY3QgYWN0aW9uIHR5cGVzIC0gaW1tdXRhYmxlLCBhY3Rpb24gLyBmbG93IG11 dGFibGUsIGFyZSBtdXR1YWxseQ0KPiBleGNsdXNpdmUgYW5kIGRlcGVuZCBvbiB0aGUgYWN0aW9u IGRlZmluaXRpb24uDQo+IEZvciBleGFtcGxlOg0KPiDigKIgSW5kaXJlY3QgTUVURVJfTUFSSyBw b2xpY3kgaXMgaW1tdXRhYmxlIGFjdGlvbiBtZW1iZXIgYW5kIHByb2ZpbGUgaXMNCj4gICBhY3Rp b24gbXV0YWJsZSBhY3Rpb24gbWVtYmVyLg0KPiDigKIgSW5kaXJlY3QgTUVURVJfTUFSSyBmbG93 IGFjdGlvbiBkZWZpbmVzIGluaXRfY29sb3IgYXMgZmxvdyBtdXRhYmxlDQo+ICAgbWVtYmVyLg0K PiDigKIgSW5kaXJlY3QgUVVPVEEgZmxvdyBhY3Rpb24gZG9lcyBub3QgZGVmaW5lIGZsb3cgbXV0 YWJsZSBtZW1iZXJzLg0KPiANCj4gVGVtcGxhdGUgQVBJOg0KPiANCj4gQWN0aW9uIHRlbXBsYXRl IGZvcm1hdDoNCj4gDQo+ICAgICB0ZW1wbGF0ZSAuLiBpbmRpcmVjdF9saXN0IGhhbmRsZSBIdG1w bCBjb25mIEN0bXBsIC4uDQo+ICAgICBtYXNrICAgICAuLiBpbmRpcmVjdF9saXN0IGhhbmRsZSBI bWFzayBjb25mIENtYXNrIC4uDQo+IA0KPiAxIElmIEh0bXBsIHdhcyBtYXNrZWQgKEhtYXNrICE9 IDApLCBQTUQgY29tcGlsZXMgYmFzZSBhY3Rpb24NCj4gICBjb25maWd1cmF0aW9uIGR1cmluZyBh Y3Rpb24gdGVtcGxhdGUsIHRhYmxlIHRlbXBsYXRlIGFuZCBmbG93IHJ1bGUNCj4gICBwaGFzZXMg LSBkZXBlbmRpbmcgb24gUE1EIGFjdGlvbiBpbXBsZW1lbnRhdGlvbi4NCj4gICBPdGhlcndpc2Us IGFjdGlvbiBpcyBjb21waWxlZCBmcm9tIHNjcmF0Y2ggZHVyaW5nIGZsb3cgcnVsZQ0KPiAgIHBy b2Nlc3NpbmcuDQo+IA0KV2h5IG5vdCBqdXN0IHNheSBpZiBIbWFzayAhPSBOVUxMIHRoaXMgYWN0 aW9uIGlzIGZpeGVkIGZvciB0aGlzIHRlbXBsYXRlLA0KZWxzZSBhY3Rpb24gd2lsbCBiZSBzZXQg cGVyIGVhY2ggZmxvdz8NCg0KQWxzbyBzaW5jZSB0aGlzIGlzIGEgbGlzdCBvZiBhY3Rpb24gaXQg aXMgcG9zc2libGUgdGhhdCBvbmUgYWN0aW9uIHdpbGwgaGF2ZSBudWxsDQp3aGlsZSBvdGhlciB3 aWxsIGhhdmUgYSBmaXhlZCB2YWx1ZS4NClRoaXMgbWVhbnMgdGhhdCB0aGUgQ3RtcGwgc2hvdWxk IGFsc28gYmUgY2hlY2tlZCBwZXIgZWFjaCBlbnRlcnk6DQpDb25mWzBdICE9IG51bGwsIGNvbmZb MV0gIT0gbnVsbC4NClRoaXMgd2lsbCBhbHNvIG1lYW4gdGhhdCBpZiBhcHBsaWNhdGlvbiB3YW50 cyB0byB1c2UgZml4ZWQgY29uZnMgaGUgYWxzbyANCm11c3Qgc3VwcGx5IGEgdmFsaWQgZXhhbXBs ZSBhY3Rpb25fbGlzdCwgKGNhbiBiZSBkaWZmZXJlbnQgYWN0aW9uX2xpc3Qgb2JqZWN0DQpwZXIg ZmxvdyBidXQgbXVzdCBiZSBjb21wb3NlZCBvZiB0aGUgc2FtZSBhY3Rpb25zLikNCg0KPiAyIElm IEh0bXBsIGFuZCBDdG1wbCB3ZXJlIG1hc2tlZCAoSG1hc2sgIT0wIGFuZCBDbWFzayAhPSAwKSwg dGFibGUNCj4gICB0ZW1wbGF0ZSBwcm9jZXNzaW5nIG92ZXJ3cml0ZXMgYmFzZSBhY3Rpb24gY29u ZmlndXJhdGlvbiB3aXRoIEN0bXBsDQo+ICAgcGFyYW1ldGVycy4NCj4gDQpXaGF0IGRvIHlvdSBt ZWFuIGJhc2VkIGFjdGlvbj8NCklmIHRoZSBIdG1wbCBhbmQgQ21hc2sgaXMgbm9uIHplcm8gaXQg bWVhbnMgdGhhdCB0aGUgY29uZmlndXJhdGlvbiBhbmQNCmFjdGlvbiBhcmUgYmFzZWQgb24gdGhl IG9uZSBzZXQgaW4gdGhlIHRlbXBsYXRlIGNyZWF0ZSBhbmQgbm90IHBlciBmbG93Lg0KDQo+IEZs b3cgcnVsZSBmb3JtYXQ6DQo+IA0KPiAgICAgYWN0aW9ucyAuLiBpbmRpcmVjdF9saXN0IGhhbmRs ZSBIZmxvdyBjb25mIENmbG93IC4uDQo+IA0KPiAzIElmIEh0bXBsIHdhcyBtYXNrZWQsIEhmbG93 IGNhbiByZWZlcmVuY2UgYSBkaWZmZXJlbnQgYWN0aW9uIG9mIHRoZQ0KPiAgIHNhbWUgdHlwZSBh cyBIdG1wbC4NCj4gDQo+IDQgSWYgQ2Zsb3cgd2FzIHNwZWNpZmllZCwgaXQgb3ZlcndyaXRlcyBh Y3Rpb24gY29uZmlndXJhdGlvbi4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEdyZWdvcnkgRXRlbHNv biA8Z2V0ZWxzb25AbnZpZGlhLmNvbT4NCj4gLS0tDQo+IHYzOiBkbyBub3QgZGVwcmVjYXRlIGlu ZGlyZWN0IGZsb3cgYWN0aW9uLg0KPiAtLS0NCj4gIGxpYi9ldGhkZXYvcnRlX2Zsb3cuaCAgICAg ICAgfCAyNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9ldGhk ZXYvcnRlX2Zsb3dfZHJpdmVyLmggfCAgNDEgKysrKysrDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDMw NyBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZmxvdy5o IGIvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+IGluZGV4IDcxM2JhOGI2NWMuLmFjMWY1MWU1NjQg MTAwNjQ0DQo+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiArKysgYi9saWIvZXRoZGV2 L3J0ZV9mbG93LmgNCj4gQEAgLTI5MTIsNiArMjkxMiwxMyBAQCBlbnVtIHJ0ZV9mbG93X2FjdGlv bl90eXBlIHsNCj4gIAkgKiBhcHBsaWVkIHRvIHRoZSBnaXZlbiBldGhkZXYgUnggcXVldWUuDQo+ ICAJICovDQo+ICAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0tJUF9DTUFOLA0KPiArDQo+ICsJLyoq DQo+ICsJICogQWN0aW9uIGhhbmRsZSB0byByZWZlcmVuY2UgZmxvdyBhY3Rpb25zIGxpc3QuDQo+ ICsJICoNCj4gKwkgKiBAc2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25faW5kaXJlY3RfbGlzdA0K PiArCSAqLw0KPiArCVJURV9GTE9XX0FDVElPTl9UWVBFX0lORElSRUNUX0xJU1QsDQo+ICB9Ow0K PiANCj4gIC8qKg0KPiBAQCAtNjExOCw2ICs2MTI1LDI2NSBAQA0KPiBydGVfZmxvd19hc3luY19h Y3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdA0KPiBx dWV1ZV9pZCwNCj4gIAkJCQkJICB2b2lkICp1c2VyX2RhdGEsDQo+ICAJCQkJCSAgc3RydWN0IHJ0 ZV9mbG93X2Vycm9yICplcnJvcik7DQo+IA0KPiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9saXN0 X2hhbmRsZTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVO VEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4g KyAqIENvbmZpZ3VyZSBJTkRJUkVDVF9MSVNUIGZsb3cgYWN0aW9uLg0KPiArICoNCj4gKyAqIEBz ZWUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5ESVJFQ1RfTElTVA0KPiArICovDQo+ICtzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX2luZGlyZWN0X2xpc3Qgew0KPiArCXN0cnVjdCBydGVfZmxvd19hY3Rp b25fbGlzdF9oYW5kbGU7IC8qKjwgSW5kaXJlY3QgYWN0aW9uIGxpc3QgaGFuZGxlICovDQpTaW5j ZSB0aGUgY29tbWVudHMgYWJvdmUgdGhlIG1lbWJlciB0aGUgY29tbWVudCBzaG91bGQgc3RhcnQg d2l0aCAvKiogb25seQ0KDQo+ICsJLyoqDQo+ICsJICogRmxvdyBtdXRhYmxlIGNvbmZpZ3VyYXRp b24gYXJyYXkuDQo+ICsJICogTlVMTCBpZiB0aGUgaGFuZGxlIGhhcyBubyBmbG93IG11dGFibGUg Y29uZmlndXJhdGlvbiB1cGRhdGUuDQo+ICsJICogT3RoZXJ3aXNlLCBpZiB0aGUgaGFuZGxlIHdh cyBjcmVhdGVkIHdpdGggbGlzdCBBMSAvIEEyIC4uIEFuIC8gRU5EDQo+ICsJICogc2l6ZSBvZiBj b25mIGlzIG4uDQo+ICsJICogY29uZltpXSBwb2ludHMgdG8gZmxvdyBtdXRhYmxlIHVwZGF0ZSBv ZiBBaSBpbiB0aGUgaGFuZGxlDQo+ICsJICogYWN0aW9ucyBsaXN0IG9yIE5VTEwgaWYgQWkgaGFz IG5vIHVwZGF0ZS4NCj4gKwkgKi8NCj4gKwljb25zdCB2b2lkICoqY29uZjsNCj4gK307DQo+ICsN Cj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlz IEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAqIENyZWF0 ZSBhbiBpbmRpcmVjdCBmbG93IGFjdGlvbiBvYmplY3QgZnJvbSBmbG93IGFjdGlvbnMgbGlzdC4N Cj4gKyAqIFRoZSBvYmplY3QgaXMgaWRlbnRpZmllZCBieSBhIHVuaXF1ZSBoYW5kbGUuDQo+ICsg KiBUaGUgaGFuZGxlIGhhcyBzaW5nbGUgc3RhdGUgYW5kIGNvbmZpZ3VyYXRpb24NCj4gKyAqIGFj cm9zcyBhbGwgdGhlIGZsb3cgcnVsZXMgdXNpbmcgaXQuDQo+ICsgKg0KPiArICogQHBhcmFtW2lu XSBwb3J0X2lkDQo+ICsgKiAgICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBk ZXZpY2UuDQo+ICsgKiBAcGFyYW1baW5dIGNvbmYNCj4gKyAqICAgQWN0aW9uIGNvbmZpZ3VyYXRp b24gZm9yIHRoZSBpbmRpcmVjdCBhY3Rpb24gbGlzdCBjcmVhdGlvbi4NCj4gKyAqIEBwYXJhbVtp bl0gYWN0aW9ucw0KPiArICogICBTcGVjaWZpYyBjb25maWd1cmF0aW9uIG9mIHRoZSBpbmRpcmVj dCBhY3Rpb24gbGlzdHMuDQo+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiArICogICBQZXJmb3Jt IHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQTURzIGluaXRpYWxpemUgdGhp cw0KPiArICogICBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiArICogQHJldHVy bg0KPiArICogICBBIHZhbGlkIGhhbmRsZSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIE5VTEwgb3RoZXJ3 aXNlIGFuZCBydGVfZXJybm8gaXMgc2V0DQo+ICsgKiAgIHRvIG9uZSBvZiB0aGUgZXJyb3IgY29k ZXMgZGVmaW5lZDoNCj4gKyAqICAgLSAoLUVOT0RFVikgaWYgKnBvcnRfaWQqIGludmFsaWQuDQo+ ICsgKiAgIC0gKC1FTk9TWVMpIGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQg dGhpcyBmdW5jdGlvbmFsaXR5Lg0KPiArICogICAtICgtRUlPKSBpZiB1bmRlcmx5aW5nIGRldmlj ZSBpcyByZW1vdmVkLg0KPiArICogICAtICgtRUlOVkFMKSBpZiAqYWN0aW9ucyogbGlzdCBpbnZh bGlkLg0KPiArICogICAtICgtRU5PVFNVUCkgaWYgKmFjdGlvbiogbGlzdCBlbGVtZW50IHZhbGlk IGJ1dCB1bnN1cHBvcnRlZC4NCj4gKyAqICAgLSAoLUUyQklHKSB0byBtYW55IGVsZW1lbnRzIGlu ICphY3Rpb25zKg0KSG93IGNhbiB5b3UgZ2V0IHRoaXMgZXJyb3I/DQoNCj4gKyAqLw0KPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICoN Cj4gK3J0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUodWludDE2X3QgcG9ydF9pZCwN Cj4gKwkJCQkgICBjb25zdA0KPiArCQkJCSAgIHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rpb25f Y29uZiAqY29uZiwNCj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rp b25zLA0KPiArCQkJCSAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiArDQo+ICsv KioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBj aGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ICsgKg0KPiArICogQXN5bmMgZnVuY3Rpb24g Y2FsbCB0byBjcmVhdGUgYW4gaW5kaXJlY3QgZmxvdyBhY3Rpb24gb2JqZWN0DQo+ICsgKiBmcm9t IGZsb3cgYWN0aW9ucyBsaXN0Lg0KPiArICogVGhlIG9iamVjdCBpcyBpZGVudGlmaWVkIGJ5IGEg dW5pcXVlIGhhbmRsZS4NCj4gKyAqIFRoZSBoYW5kbGUgaGFzIHNpbmdsZSBzdGF0ZSBhbmQgY29u ZmlndXJhdGlvbg0KPiArICogYWNyb3NzIGFsbCB0aGUgZmxvdyBydWxlcyB1c2luZyBpdC4NCj4g KyAqDQo+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gKyAqICAgIFRoZSBwb3J0IGlkZW50aWZp ZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gKyAqIEBwYXJhbVtpbl0gcXVldWVfaWQNCj4g KyAqICAgRmxvdyBxdWV1ZSB3aGljaCBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgcnVsZS4NCj4gKyAq IEBwYXJhbVtpbl0gYXR0cg0KPiArICogICBJbmRpcmVjdCBhY3Rpb24gdXBkYXRlIG9wZXJhdGlv biBhdHRyaWJ1dGVzLg0KPiArICogQHBhcmFtW2luXSBjb25mDQo+ICsgKiAgIEFjdGlvbiBjb25m aWd1cmF0aW9uIGZvciB0aGUgaW5kaXJlY3QgYWN0aW9uIGxpc3QgY3JlYXRpb24uDQo+ICsgKiBA cGFyYW1baW5dIGFjdGlvbnMNCj4gKyAqICAgU3BlY2lmaWMgY29uZmlndXJhdGlvbiBvZiB0aGUg aW5kaXJlY3QgYWN0aW9uIGxpc3QuDQo+ICsgKiBAcGFyYW1baW5dIHVzZXJfZGF0YQ0KPiArICog ICBUaGUgdXNlciBkYXRhIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBvbiBhc3luYyBjb21wbGV0aW9u IGV2ZW50Lg0KPiArICogQHBhcmFtW291dF0gZXJyb3INCj4gKyAqICAgUGVyZm9ybSB2ZXJib3Nl IGVycm9yIHJlcG9ydGluZyBpZiBub3QgTlVMTC4gUE1EcyBpbml0aWFsaXplIHRoaXMNCj4gKyAq ICAgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25seS4NCj4gKyAqIEByZXR1cm4NCj4gKyAq ICAgQSB2YWxpZCBoYW5kbGUgaW4gY2FzZSBvZiBzdWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQg cnRlX2Vycm5vIGlzIHNldA0KPiArICogICB0byBvbmUgb2YgdGhlIGVycm9yIGNvZGVzIGRlZmlu ZWQ6DQo+ICsgKiAgIC0gKC1FTk9ERVYpIGlmICpwb3J0X2lkKiBpbnZhbGlkLg0KPiArICogICAt ICgtRU5PU1lTKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZnVu Y3Rpb25hbGl0eS4NCj4gKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVt b3ZlZC4NCj4gKyAqICAgLSAoLUVJTlZBTCkgaWYgKmFjdGlvbnMqIGxpc3QgaW52YWxpZC4NCj4g KyAqICAgLSAoLUVOT1RTVVApIGlmICphY3Rpb24qIGxpc3QgZWxlbWVudCB2YWxpZCBidXQgdW5z dXBwb3J0ZWQuDQo+ICsgKiAgIC0gKC1FMkJJRykgdG8gbWFueSBlbGVtZW50cyBpbiAqYWN0aW9u cyoNClNhbWUgYXMgYWJvdmUgcXVlc3Rpb24NCg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50 YWwNCj4gK3N0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUgKg0KPiArcnRlX2Zsb3df YXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxlX2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJf dA0KPiBxdWV1ZV9pZCwNCj4gKwkJCQkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICph dHRyLA0KPiArCQkJCQkgY29uc3Qgc3RydWN0DQo+ICsJCQkJCSBydGVfZmxvd19pbmRpcl9hY3Rp b25fY29uZiAqY29uZiwNCj4gKwkJCQkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24NCj4g KmFjdGlvbnMsDQo+ICsJCQkJCSB2b2lkICp1c2VyX2RhdGEsDQo+ICsJCQkJCSBzdHJ1Y3QgcnRl X2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICog QGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNl Lg0KPiArICoNCj4gKyAqIERlc3Ryb3kgaW5kaXJlY3QgYWN0aW9ucyBsaXN0IGJ5IGhhbmRsZS4N Cj4gKyAqDQo+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gKyAqICAgIFRoZSBwb3J0IGlkZW50 aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gKyAqIEBwYXJhbVtpbl0gaGFuZGxlDQo+ ICsgKiAgIEhhbmRsZSBmb3IgdGhlIGluZGlyZWN0IGFjdGlvbnMgbGlzdCB0byBiZSBkZXN0cm95 ZWQuDQo+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJy b3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQTURzIGluaXRpYWxpemUgdGhpcw0KPiArICogICBz dHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiArICogQHJldHVybg0KPiArICogICAt ICgwKSBpZiBzdWNjZXNzLg0KPiArICogICAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxp ZC4NCj4gKyAqICAgLSAoLUVOT1NZUykgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3Vw cG9ydCB0aGlzIGZ1bmN0aW9uYWxpdHkuDQo+ICsgKiAgIC0gKC1FSU8pIGlmIHVuZGVybHlpbmcg ZGV2aWNlIGlzIHJlbW92ZWQuDQo+ICsgKiAgIC0gKC1FTk9FTlQpIGlmIGFjdGlvbnMgbGlzdCBw b2ludGVkIGJ5ICphY3Rpb24qIGhhbmRsZSB3YXMgbm90IGZvdW5kLg0KPiArICogICAtICgtRUJV U1kpIGlmIGFjdGlvbnMgbGlzdCBwb2ludGVkIGJ5ICphY3Rpb24qIGhhbmRsZSBzdGlsbCB1c2Vk DQo+ICsgKiAgIHJ0ZV9lcnJubyBpcyBhbHNvIHNldC4NCldoeSBub3Qga2VlcCB0aGUgc2FtZSBy ZXR1cm4gZGVzY3JpcHRpb24gYXMgYWJvdmU/DQoNCj4gKyAqLw0KPiArX19ydGVfZXhwZXJpbWVu dGFsDQo+ICtpbnQNCj4gK3J0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZV9kZXN0cm95KHVpbnQx Nl90IHBvcnRfaWQsDQo+ICsJCQkJICAgIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5k bGUNCj4gKmhhbmRsZSwNCj4gKwkJCQkgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7 DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhp cyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gKyAqDQo+ICsgKiBFbnF1 ZXVlIGluZGlyZWN0IGFjdGlvbiBsaXN0IGRlc3RydWN0aW9uIG9wZXJhdGlvbi4NCj4gKyAqIFRo ZSBkZXN0cm95IHF1ZXVlIG11c3QgYmUgdGhlIHNhbWUNCj4gKyAqIGFzIHRoZSBxdWV1ZSBvbiB3 aGljaCB0aGUgYWN0aW9uIHdhcyBjcmVhdGVkLg0KPiArICoNCj4gKyAqIEBwYXJhbVtpbl0gcG9y dF9pZA0KPiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNlLg0KPiArICog QHBhcmFtW2luXSBxdWV1ZV9pZA0KPiArICogICBGbG93IHF1ZXVlIHdoaWNoIGlzIHVzZWQgdG8g ZGVzdHJveSB0aGUgcnVsZS4NCj4gKyAqIEBwYXJhbVtpbl0gb3BfYXR0cg0KPiArICogICBJbmRp cmVjdCBhY3Rpb24gZGVzdHJ1Y3Rpb24gb3BlcmF0aW9uIGF0dHJpYnV0ZXMuDQo+ICsgKiBAcGFy YW1baW5dIGhhbmRsZQ0KPiArICogICBIYW5kbGUgZm9yIHRoZSBpbmRpcmVjdCBhY3Rpb24gb2Jq ZWN0IHRvIGJlIGRlc3Ryb3llZC4NCj4gKyAqIEBwYXJhbVtpbl0gdXNlcl9kYXRhDQo+ICsgKiAg IFRoZSB1c2VyIGRhdGEgdGhhdCB3aWxsIGJlIHJldHVybmVkIG9uIHRoZSBjb21wbGV0aW9uIGV2 ZW50cy4NCj4gKyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBl cnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuDQo+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlz IHN0cnVjdHVyZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ICsgKg0KPiArICogQHJldHVybg0K PiArICogICAwIG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gdmFsdWUgb3RoZXJ3aXNlIGFu ZCBydGVfZXJybm8gaXMgc2V0Lg0KU2FtZSBlcnJvcnMgYXMgYWJvdmU/DQoNCj4gKyAqLw0KPiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ICtpbnQNCj4gK3J0ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0 X2hhbmRsZV9kZXN0cm95DQo+ICsJCSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdCBxdWV1ZV9p ZCwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICpvcF9hdHRyLA0KPiArCQkg c3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqaGFuZGxlLA0KPiArCQkgdm9pZCAq dXNlcl9kYXRhLCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKw0KPiArLyoqDQo+ ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdl IHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAqIFF1ZXJ5IGFuZC9vciB1cGRhdGUg aW5kaXJlY3QgZmxvdyBhY3Rpb25zIGxpc3QuDQo+ICsgKiBJZiBib3RoIHF1ZXJ5IGFuZCB1cGRh dGUgbm90IE5VTEwsIHRoZSBmdW5jdGlvbiBhdG9taWNhbGx5DQo+ICsgKiBxdWVyaWVzIGFuZCB1 cGRhdGVzIGluZGlyZWN0IGFjdGlvbi4gUXVlcnkgYW5kIHVwZGF0ZSBhcmUgY2FycmllZCBpbg0K PiBvcmRlcg0KPiArICogc3BlY2lmaWVkIGluIHRoZSBtb2RlIHBhcmFtZXRlci4NCj4gKyAqIElm IGV0aGVyIHF1ZXJ5IG9yIHVwZGF0ZSBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gZXhlY3V0ZXMNCj4g KyAqIGNvbXBsZW1lbnRpbmcgb3BlcmF0aW9uLg0KPiArICoNCj4gKyAqIEBwYXJhbSBwb3J0X2lk DQo+ICsgKiAgIFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5ldCBkZXZpY2UuDQo+ICsgKiBAcGFy YW0gaGFuZGxlDQo+ICsgKiAgIEhhbmRsZSBmb3IgdGhlIGluZGlyZWN0IGFjdGlvbnMgbGlzdCBv YmplY3QgdG8gYmUgdXBkYXRlZC4NCj4gKyAqIEBwYXJhbSB1cGRhdGUNCj4gKyAqICAgSWYgbm90 IE5VTEwsIHVwZGF0ZSBwcm9maWxlIHNwZWNpZmljYXRpb24gdXNlZCB0byBtb2RpZnkgdGhlIGFj dGlvbg0KPiArICogICBwb2ludGVkIGJ5IGhhbmRsZS4NCj4gKyAqICAgQHNlZSBzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX2luZGlyZWN0X2xpc3QNCkl0IHNob3VsZCBiZSBjbGVhciB0aGF0IHRoZSB1 cGRhdGUvcXVlcnkgaXMgaW4gdGhlIG9yZGVyIHRoZSBhY3Rpb24gd2FzDQpjcmVhdGVkIGFuZCBp ZiB0aGUgYWN0aW9uIGkgZG9lc24ndCBoYXZlIGNvbmZpZ3VyYXRpb24gaXQgc2hvdWxkIGJlIHMg c2V0IHRvIE5VTEwuDQpBbmQgZ29lcyB3aXRob3V0IHNheWluZyB0aGF0IHRoZSBsaXN0IHNpemUg bXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGFjdGlvbnMsDQp0aGF0IHRoaXMgbGlzdCBp cyBidWlsZCBmcm9tLg0KDQo+ICsgKiBAcGFyYW0gcXVlcnkNCj4gKyAqICAgSWYgbm90IE5VTEwg cG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBkYXRhIHR5cGUuDQo+ ICsgKiAgIEBzZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9pbmRpcmVjdF9saXN0DQo+ICsgKiBA cGFyYW0gbW9kZQ0KPiArICogICBPcGVyYXRpb25hbCBtb2RlLg0KPiArICogQHBhcmFtIGVycm9y DQo+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90IE5VTEwuDQo+ ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVjdHVyZSBpbiBjYXNlIG9mIGVycm9yIG9u bHkuDQo+ICsgKg0KPiArICogQHJldHVybg0KPiArICogMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZl IGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4NCj4gKyAqIC0gKC1F Tk9ERVYpIGlmICpwb3J0X2lkKiBpbnZhbGlkLg0KPiArICogLSAoLUVOT1RTVVApIGlmIHVuZGVy bHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFsaXR5Lg0KPiArICog LSAoLUVJTlZBTCkgaWYgKmhhbmRsZSogb3IgKm1vZGUqIGludmFsaWQgb3INCj4gKyAqICAgICAg ICAgICAgIGJvdGggKnF1ZXJ5KiBhbmQgKnVwZGF0ZSogYXJlIE5VTEwuDQo+ICsgKi8NCj4gK19f cnRlX2V4cGVyaW1lbnRhbA0KPiAraW50DQo+ICtydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVf cXVlcnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCQkJCSBjb25zdCBzdHJ1Y3QNCj4g KwkJCQkJIHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqaGFuZGxlLA0KPiArCQkJCQkgY29u c3Qgdm9pZCAqKnVwZGF0ZSwgdm9pZCAqKnF1ZXJ5LA0KPiArCQkJCQkgZW51bSBydGVfZmxvd19x dWVyeV91cGRhdGVfbW9kZQ0KPiBtb2RlLA0KPiArCQkJCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9y ICplcnJvcik7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1F TlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gKyAqDQo+ ICsgKiBFbnF1ZXVlIGFzeW5jIGluZGlyZWN0IGZsb3cgYWN0aW9ucyBsaXN0IHF1ZXJ5IGFuZC9v ciB1cGRhdGUNCj4gKyAqDQo+ICsgKiBAcGFyYW0gcG9ydF9pZA0KPiArICogICBQb3J0IGlkZW50 aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNlLg0KPiArICogQHBhcmFtIHF1ZXVlX2lkDQo+ICsgKiAg IEZsb3cgcXVldWUgd2hpY2ggaXMgdXNlZCB0byB1cGRhdGUgdGhlIHJ1bGUuDQo+ICsgKiBAcGFy YW0gYXR0cg0KPiArICogICBJbmRpcmVjdCBhY3Rpb24gdXBkYXRlIG9wZXJhdGlvbiBhdHRyaWJ1 dGVzLg0KPiArICogQHBhcmFtIGhhbmRsZQ0KPiArICogICBIYW5kbGUgZm9yIHRoZSBpbmRpcmVj dCBhY3Rpb25zIGxpc3Qgb2JqZWN0IHRvIGJlIHVwZGF0ZWQuDQo+ICsgKiBAcGFyYW0gdXBkYXRl DQo+ICsgKiAgIElmIG5vdCBOVUxMLCB1cGRhdGUgcHJvZmlsZSBzcGVjaWZpY2F0aW9uIHVzZWQg dG8gbW9kaWZ5IHRoZSBhY3Rpb24NCj4gKyAqICAgcG9pbnRlZCBieSBoYW5kbGUuDQo+ICsgKiAg IEBzZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9pbmRpcmVjdF9saXN0DQo+ICsgKiBAcGFyYW0g cXVlcnkNCj4gKyAqICAgSWYgbm90IE5VTEwsIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIGFz c29jaWF0ZWQgcXVlcnkgZGF0YSB0eXBlLg0KPiArICogICBRdWVyeSByZXN1bHQgcmV0dXJuZWQg b24gYXN5bmMgY29tcGxldGlvbiBldmVudC4NCj4gKyAqICAgQHNlZSBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX2luZGlyZWN0X2xpc3QNCj4gKyAqIEBwYXJhbSBtb2RlDQo+ICsgKiAgIE9wZXJhdGlv bmFsIG1vZGUuDQo+ICsgKiBAcGFyYW0gdXNlcl9kYXRhDQo+ICsgKiAgIFRoZSB1c2VyIGRhdGEg dGhhdCB3aWxsIGJlIHJldHVybmVkIG9uIGFzeW5jIGNvbXBsZXRpb24gZXZlbnQuDQo+ICsgKiBA cGFyYW0gZXJyb3INCj4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJlcG9ydGluZyBpZiBu b3QgTlVMTC4NCj4gKyAqICAgUE1EcyBpbml0aWFsaXplIHRoaXMgc3RydWN0dXJlIGluIGNhc2Ug b2YgZXJyb3Igb25seS4NCj4gKyAqDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIDAgb24gc3VjY2Vz cywgYSBuZWdhdGl2ZSBlcnJubyB2YWx1ZSBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBpcyBzZXQu DQo+ICsgKiAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxpZC4NCj4gKyAqIC0gKC1FTk9U U1VQKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZnVuY3Rpb25h bGl0eS4NCj4gKyAqIC0gKC1FSU5WQUwpIGlmICpoYW5kbGUqIG9yICptb2RlKiBpbnZhbGlkIG9y DQo+ICsgKiAgICAgICAgICAgICBib3RoICp1cGRhdGUqIGFuZCAqcXVlcnkqIGFyZSBOVUxMLg0K PiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2ludA0KPiArcnRlX2Zsb3dfYXN5bmNf YWN0aW9uX2xpc3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiB1aW50 MzJfdCBxdWV1ZV9pZCwNCj4gKwkJCQkJICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAq YXR0ciwNCj4gKwkJCQkJICBjb25zdCBzdHJ1Y3QNCj4gKwkJCQkJICBydGVfZmxvd19hY3Rpb25f bGlzdF9oYW5kbGUNCj4gKmhhbmRsZSwNCj4gKwkJCQkJICBjb25zdCB2b2lkICp1cGRhdGUsIHZv aWQgKnF1ZXJ5LA0KPiArCQkJCQkgIGVudW0NCj4gcnRlX2Zsb3dfcXVlcnlfdXBkYXRlX21vZGUg bW9kZSwNCj4gKwkJCQkJICB2b2lkICp1c2VyX2RhdGEsDQo+ICsJCQkJCSAgc3RydWN0IHJ0ZV9m bG93X2Vycm9yICplcnJvcik7DQo+ICsNCj4gKw0KPiAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICB9 DQo+ICAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgg Yi9saWIvZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oDQo+IGluZGV4IGExMjlhNDYwNWQuLjhkYzgw MzAyM2MgMTAwNjQ0DQo+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gKysr IGIvbGliL2V0aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiBAQCAtMTIxLDYgKzEyMSwxNyBAQCBz dHJ1Y3QgcnRlX2Zsb3dfb3BzIHsNCj4gIAkJIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVl cnksDQo+ICAJCSBlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIHF1X21vZGUsDQo+ICAJ CSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKwkvKiogQHNlZSBydGVfZmxvd19h Y3Rpb25fbGlzdF9oYW5kbGVfY3JlYXRlKCkgKi8NCj4gKwlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X2xpc3RfaGFuZGxlICooKmFjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUpDQo+ICsJCShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rp b25fY29uZiAqY29uZiwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gYWN0aW9u c1tdLA0KPiArCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ICsJLyoqIEBzZWUg cnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3koKSAqLw0KPiArCWludCAoKmFjdGlv bl9saXN0X2hhbmRsZV9kZXN0cm95KQ0KPiArCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ICsJCSBz dHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gIAkvKiogU2VlIHJ0ZV9mbG93X3R1bm5l bF9kZWNhcF9zZXQoKSAqLw0KPiAgCWludCAoKnR1bm5lbF9kZWNhcF9zZXQpDQo+ICAJCShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gQEAgLTMwMiw2ICszMTMsMzYgQEAgc3RydWN0IHJ0ZV9m bG93X29wcyB7DQo+ICAJCSBjb25zdCB2b2lkICp1cGRhdGUsIHZvaWQgKnF1ZXJ5LA0KPiAgCQkg ZW51bSBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9kZSBxdV9tb2RlLA0KPiAgCQkgdm9pZCAqdXNl cl9kYXRhLCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKwkvKiogQHNlZSBydGVf Zmxvd19hc3luY19hY3Rpb25fbGlzdF9oYW5kbGVfY3JlYXRlKCkgKi8NCj4gKwlzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICoNCj4gKwkoKmFzeW5jX2FjdGlvbl9saXN0X2hhbmRs ZV9jcmVhdGUpDQo+ICsJCShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDMyX3QgcXVldWVf aWQsDQo+ICsJCSBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqYXR0ciwNCj4gKwkJIGNv bnN0IHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rpb25fY29uZiAqY29uZiwNCj4gKwkJIGNvbnN0 IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnMsDQo+ICsJCSB2b2lkICp1c2VyX2RhdGEs IHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiArCS8qKiBAc2VlIHJ0ZV9mbG93X2Fz eW5jX2FjdGlvbl9saXN0X2hhbmRsZV9kZXN0cm95KCkgKi8NCj4gKwlpbnQgKCphc3luY19hY3Rp b25fbGlzdF9oYW5kbGVfZGVzdHJveSkNCj4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MzJfdCBxdWV1ZV9pZCwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICpv cF9hdHRyLA0KPiArCQkgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqYWN0aW9u X2hhbmRsZSwNCj4gKwkJIHZvaWQgKnVzZXJfZGF0YSwgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICpl cnJvcik7DQo+ICsJLyoqIEBzZWUgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlX3F1ZXJ5X3Vw ZGF0ZSgpICovDQo+ICsJaW50ICgqYWN0aW9uX2xpc3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZSkNCj4g KwkJKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCSBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ICsJCSBjb25zdCB2b2lkICoqdXBkYXRlLCB2b2lkICoq cXVlcnksDQo+ICsJCSBlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIG1vZGUsDQo+ICsJ CSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKwkvKiogQHNlZSBydGVfZmxvd19h c3luY19hY3Rpb25fbGlzdF9oYW5kbGVfcXVlcnlfdXBkYXRlKCkgKi8NCj4gKwlpbnQgKCphc3lu Y19hY3Rpb25fbGlzdF9oYW5kbGVfcXVlcnlfdXBkYXRlKQ0KPiArCQkodWludDE2X3QgcG9ydF9p ZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ICsJCSBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0 ciAqYXR0ciwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUg KmhhbmRsZSwNCj4gKwkJIGNvbnN0IHZvaWQgKip1cGRhdGUsIHZvaWQgKipxdWVyeSwNCj4gKwkJ IGVudW0gcnRlX2Zsb3dfcXVlcnlfdXBkYXRlX21vZGUgbW9kZSwNCj4gKwkJIHZvaWQgKnVzZXJf ZGF0YSwgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ICsNCj4gIH07DQo+IA0KPiAg LyoqDQo+IC0tDQo+IDIuMzQuMQ0KDQpCZXN0LA0KT3JpDQoNCg==