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 413D945499; Thu, 20 Jun 2024 11:41:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 31592410FA; Thu, 20 Jun 2024 11:41:37 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2074.outbound.protection.outlook.com [40.107.243.74]) by mails.dpdk.org (Postfix) with ESMTP id B2828402D0 for ; Thu, 20 Jun 2024 11:41:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GBNGpvHylbpgtBtKMQd3HI3f3OkNDkWooVZ+Effp7v0YjycqM2CbiIXU4OcWmtFBKh+YUN6n3X4Q6bmAirgiFKVGy33oGfpf6jYph4JH8o/2o4xsRXhpy/N9QXiQrsS1jBpzOnbzQmDU+sbJBVnQejo9lhRrG/mGnvsa2a39Zzg1xVjJqKOoEc3soT+g23lrTJ7kyzZcNqqm3I80unmBk3srQgWx/k+/hOMnEaebn2pkIFsTDsZYhqprxQo0NrxKCOXl4N+fGkj8ERNYBDcwZtsnMmDzj15vvjusxn86iB2vD3Q+JGnECrOVoWHh/F642N5EvctW5TACJ2zBPuTVhg== 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=lwRcsG1QDbStaekzlhzxSWriVQj8bHudKjR8oP8fPhs=; b=PV2FxvJ8ZZjVG4piGJgxE2nIKf79IaFXTSS/ND4yKQd9kOU/K7JyaQqLqxPGpyvQm+mE8TVeXMRGrUQvtnIXOFQH4LoIbc6tlVeBCFnMwW8hCbnOc8BDG85C7F2n8yD/YAlGhqLYBQz8K7QSLKfXjQuOSmaGJe8CJrb0JXvJ/eiaYCiUkUYdeA2s+QnW1DwS1U33gllN3C2/NHpb4XnlLP/ROEpe/RBxtUaFkPBl8JNebLc/kzdeSOsEFvUGn25xXhCD8pp44zS2A0Hyqrw4JVMAzDO8mT1ZMfhT9Jdhd1I+x4hezh7Rc3lRfI391aQmXKOfpLiAEWplSudon0BX2A== 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=lwRcsG1QDbStaekzlhzxSWriVQj8bHudKjR8oP8fPhs=; b=Xr+TkOu2F5ogUwMC+jlf1MZf0uJTIDSSfx8Tmqzp/D/KevBiuNBVukB+YBalr2e54pPmVL1YzD5jhsebxW4V6rZNn52V17kfKbeS77fnAVN3rz4WYorrRYre5QwQOjJDeJHBH/VXT9w7VbkAUJvalFC09ZYTXt7i2KZWEj6MHeBiH3Oig2y3TaWiQefu2XPvEzJ14/EmUckaEKvO4qHIUBlKqlEPi2kvobvNk+GstR5TB0RGGbQWMvJfRAS+32/TgZHCMuSUDT0RSFJ/YCT8rZva5wxWlU0i34K122qPRK/J69bnG5AbbnoUt67esAynl6IzWjJhXy2ILBmlJfBszQ== Received: from CO6PR12MB5396.namprd12.prod.outlook.com (2603:10b6:303:139::8) by DS0PR12MB8219.namprd12.prod.outlook.com (2603:10b6:8:de::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.19; Thu, 20 Jun 2024 09:41:33 +0000 Received: from CO6PR12MB5396.namprd12.prod.outlook.com ([fe80::25bf:da1b:77ac:ed7c]) by CO6PR12MB5396.namprd12.prod.outlook.com ([fe80::25bf:da1b:77ac:ed7c%7]) with mapi id 15.20.7698.017; Thu, 20 Jun 2024 09:41:32 +0000 From: Suanming Mou To: Akhil Goyal , Matan Azrad CC: "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v2 1/2] crypto/mlx5: optimize AES-GCM IPsec operation Thread-Topic: [EXTERNAL] [PATCH v2 1/2] crypto/mlx5: optimize AES-GCM IPsec operation Thread-Index: AQHavfIs3Mx4p6I/E0ifQ+WKXCfqjbHG0hSAgAADKaCAACM6gIAAAQBggAlUxQCAAATjkIAAE1QAgAADgrA= Date: Thu, 20 Jun 2024 09:41:32 +0000 Message-ID: References: <20240530072413.1602343-1-suanmingm@nvidia.com> <20240614003031.2006131-1-suanmingm@nvidia.com> <20240614003031.2006131-2-suanmingm@nvidia.com> In-Reply-To: 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: CO6PR12MB5396:EE_|DS0PR12MB8219:EE_ x-ms-office365-filtering-correlation-id: 23aff820-79f9-463a-4cae-08dc910d2b67 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230037|1800799021|366013|376011|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?UzJGWkR1aFkvY3dkUzBrZVZYcE5uYktpSThiWVY3M05pbjBzLzl2WmZNV0lG?= =?utf-8?B?SzFUdmc0WUxnUkFQcFRUVHZQNElwQ1pjR0lyVVkvbzR2cFFkS2YyNnNBUEl3?= =?utf-8?B?VkIzb0JBMkwwSFg4VFdqMmJPVEd6T0J3blNsai95SEkvVXZxNFA3WUZhdWQ0?= =?utf-8?B?a2pkVGtSZldOUElzYTArK2YrdTNJb0JMa0o3c3UzOTBTY29KdW96QW9XbmpQ?= =?utf-8?B?b1RUekp0ZUd3WnhwV0JhN3llRHRjVG9KNWt5QTVML2o1Ym9iQXBpOVh0NGVR?= =?utf-8?B?V2ovZ3dxL3U5Z0NWRW5uNWpaUUZmZ2VoQk5qcHlJcDNobW9IRmEvbUZhc25Q?= =?utf-8?B?U1BBWEt5cEtmNlFsYis5S0xkN3dISVkrNm4zcGF5WDVnd0FFKzAyWnZFQmtp?= =?utf-8?B?bUNRT2ZrYjVnWWVkVTFoZDZyRERYRHRwcENpVFhmaGdDSzBNenV5dWRlVlM5?= =?utf-8?B?U280V1JwNGI1S3NtM1A4N25lSXZHRWR5aEVYWnRSSVdpdVJFNzdQT0QwTlQw?= =?utf-8?B?VGVXVW5KOGZJMG40Tm1xNGkyWVdJbTlJYkE5L29DMlgwL2dGTk9XV09WaTJa?= =?utf-8?B?UThUMDZoVjJSN25jOG1GVjVNYXF1ekdwemhGVXdoeHVhUEZqZWZOQ3R1K0pN?= =?utf-8?B?VlhXTStqbW9XUGJLSFE3d0VPbnZ4eXJQVUF4R004dTBCbFRMTkFxY1pIaXFv?= =?utf-8?B?UzZpekhkcDFyZUNNenU2YU5WT05PU2MrL0huTFpuZTVWUkdBcm1zTXRPN3ht?= =?utf-8?B?WENvbXNXM3E3N1lFUGhCMDZxZjRPeDhMR0hQbitVMER1TERGcWFEQzB3RUFm?= =?utf-8?B?RXQrZm9QT0U2b0F3NFltRTdTOEFmVERyVXZUVGFiQStPRUJ3L29WaDJkV0Fr?= =?utf-8?B?NVl1L054ejVCeG1IT2ErL1RaMnVQUU5yQXFRbHJ4SHBoaXJSS09TVlhHZVZr?= =?utf-8?B?UExCZmxObk83a1dhbVczT1FDcURlRWZCYnY1WnZFeWo3UjNvSUp3RjJabWQ4?= =?utf-8?B?bEhHSDk2Ym4yRkJERHprc1cvdURyUC9hRWdFeFF2UHgwY3ZxOG04cEhVQzFw?= =?utf-8?B?NUU0U0dJL2FpaFVyT0ZpV3Y1QmZKTStza0NWWVpKa0JoeDR5aDhKS3IwNUlB?= =?utf-8?B?VFI1UHpkSG9Ha0ZtL1RqS0RORkNEMVdaVFo1TDlmaGtucHoreDhCL1Z2T21M?= =?utf-8?B?UXZPUDNKUkd0bzRkMFErL1h5NlRueFNRbnBiUzZyS1pON0k2NDg4WDUzVnI3?= =?utf-8?B?ck4zNHRVR2gxaFhsRmQ5ZHlQcXVKMnZ1cUtMcHF3NkZoTitNNUpsS2ZMK1d1?= =?utf-8?B?clhEYmtIYlhNU1hrbFdNWWd6N1FTMEhQZjlyVlhSUytVVmxzeVV2R1MyT0Rr?= =?utf-8?B?NGVlTC9GN1RZTndsU3VJSTd2SDdIenBkRzh5VGRTVjlnOHJlUE5CMjNHaEFF?= =?utf-8?B?cmIxcXp1OE1zT1p1NUxYM21DSUo2Z3AvVHR5c2JZYXdDM3hMUndEdGdKZDNo?= =?utf-8?B?V1ZLQ090VjVDVklGTEJVdzJuQ3FHSWVKVmtubzBLT0ZJQ0VwMk1LSnNWeThJ?= =?utf-8?B?WTl1aWpmK3VzaVQzTkxtYzVLUUswSEVOcGpMUm1JZkkwQkpnc2h4UGordE5x?= =?utf-8?B?NUM2eWdsVTN3VVFzR2U3eW96dWtEenBvdjZwUEE0WHl0Vk9xT1NlWnhvc0JH?= =?utf-8?B?dXhqNWwxejM3QXRQOWd1b1IvOVUwblJ3L1lnc051VFZnSEt3R1RUc1MyaGh4?= =?utf-8?B?T05PQmNLWE1ucEtyMWV3Y1IveGp4dW02OWE2eEFCRFRBcDVlRWlpeGczdnAr?= =?utf-8?Q?Krp8iOo1x2kmT2hq2tmRyNU0g0H/S4+MoA6ZI=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR12MB5396.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230037)(1800799021)(366013)(376011)(38070700015); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Vmk1dlhBL28weG5QZEprT0tQY1lYam50a3FNMGcyT2gvcmhNbVkrZ1AxK2VF?= =?utf-8?B?bXVKU2xNaGJqcUZLa0hMYndyOXRqQTBEeGxqbDZ3VW5KeTJQeEsvY2pjYzZG?= =?utf-8?B?YllRMDJMYWFLTE54bjZ2YktHYzdnYmNXTHJtZmNBbjdqRUpaSU4yWE8vWFd0?= =?utf-8?B?ZTIzYnBaeHZHa28vWnp5THFzeUZ2aUpNODRHWUxnWGNkMVg2Z3FtNVNnK0hS?= =?utf-8?B?b1VsUU1xYTB0SkdOdDlkU3NWbWRvWFZjNWFKa1NDMkR6UXZ3VEdLamNGVC9k?= =?utf-8?B?czgwemtqbER5K1FiQ3p5eHN2RXQ1cVkvVTFaMDRmVCtzSi9jR1NvdHFFVXhj?= =?utf-8?B?Rm94S3dtOEI1NHVLOUVTV01hdTA3eEEwTmZKT2FLRHVNTzZ2SXdsYUVmUlBR?= =?utf-8?B?WmEzL09IcHErT0ZJbzBZVjVtclBDSHBraWIxcGM3UEtEaHhtbG0yQ0NYaHRi?= =?utf-8?B?UnU5QkZybWtDVm5KZWVTbDlpRndmYm5uREdMUkJHOWNVQUIzYTJKM2lUVjZF?= =?utf-8?B?ZGdlemcvZDNPVHRlOFNFanZyVmxPelJlMWNQb3dCeE5hQ2JETlFqQnMycWVl?= =?utf-8?B?eGE0VjhCdlJTRVQ3RDNMNVR3N3hXWXN4RGU4ZTFkMDlMZlBkRUt2OFB5dFJ2?= =?utf-8?B?QkZHcW04dWliMFRQMHlrM2U3SmZYOVQrTStwak0vczByNVliSjYrVDZSZG94?= =?utf-8?B?TFRmVEtDaDVmTFdGRlFFSVhXREsxeGJobXdOcjBVbHFNak1HY1BUeEN5aGNR?= =?utf-8?B?SVpJd3dhbjBKRWhMUmNPeTJBUXREOTFDOStkN2NqenR1QWNEMDJ2NUhoOG9w?= =?utf-8?B?VDlTZy9jRDBocTg4T3BhU0FleDR2MUR0Z2tqMEdPTlZWelZ1a09sY0ZrUEFU?= =?utf-8?B?b2Q5VXNVWlZoQTJybktReVFPaVZRN1RET1FNdzVMQ29aMXczTUJyUHV3ZjY2?= =?utf-8?B?L21RSytiMGFOQVNPcEFPV1BHM3RSWUJGeW5yQXQrcEpWVUgxMVByWi9qTUFi?= =?utf-8?B?a1AvSEgwUjM1WUxaNWVwc1lURmtpM0szS2JWN3lkTGYwRGx1YktCSmExTjlD?= =?utf-8?B?OTQ0SGZ3Z0xqWWdWNFhzL3ltQUhmK3NTWmhuZEpBcVVIalNDNEt5Vk9BQW41?= =?utf-8?B?N3JWbWFCeFZ4WTY0TkFNWjU3aGtrb29KWVBOU29jOWFJVjJRcXh1cTMvaFRQ?= =?utf-8?B?VG1XR0tGdDNjQUp1MTlVeGhlTHdwM1YvY2RLNkFKTmVYSng2WVJqM1ZCRU5Q?= =?utf-8?B?NWFnak5nT3EzZWtpY1ZxUVk0V0JDUldaQkl0YStWd3hIWnVpQkMzZXBBbTBt?= =?utf-8?B?aU5wZ0pRTzR2M1o3UHBwZytkOVlvMTNLNC9ObHh0WDE2cWYybGRWTlhJcWtH?= =?utf-8?B?aXc0MUQ3TDFzeStYQjRXcUZwMXJkb2dBeTRTTkkxaDh0eW51NFRDdmRUUzBD?= =?utf-8?B?NWMyYUhWckJrNDdIVEJHVGhZYlVNeURMNEZCS2hQU3hhSCszT3FFYnRXcENY?= =?utf-8?B?N1Z4VTN3VlQxeHliVThoTEc0Mlk0ZTc4V3c3RncyOFYvSllJRnVTOE1kYnE2?= =?utf-8?B?TDhmRjhRSEtubXdmeUtMSzFxUlNFRFVwZXZKbEVRbStJOVlyZk1VclJFYnJi?= =?utf-8?B?VkpBWlAzd3BiUUxtUFVWUUtYQTB4ZXdkdVJzZHc1dFNZTkRJY2lEbE9sQ1dq?= =?utf-8?B?VjVrZXNTNlVYcDQ3TzNQY1I0WEZaUE9HYStTVHFMeGEwc2ZOTmpWK01kbW9G?= =?utf-8?B?ZmVHNGh5TDJyY3RaSk1wS3pneEN4cUp5a0wrUHA4c1YxYlNqU00xeC9pS2xp?= =?utf-8?B?ZGxyZ0ZYTm5QazFhMzJVR3NFd2dTUklZb01NVHprMzVYUzY5dVk0cWVwbG9W?= =?utf-8?B?RWZ0SXh2K0tJUW44aGl2TDFrRjlOcHdLcEZSRnhNTTI4ejV4ZlNjS2d4SFcz?= =?utf-8?B?dStkRlpwdmJtSWl0WStkZ2VMQ2RLbHVKeGhsaUk3MksvOWxkelo4a2ZlejhS?= =?utf-8?B?UGxCRjZhY01xeGtZYVVJN3g1OU5uRHFBVHVEaXlnSmJmS0RYTklOd1cxclQ2?= =?utf-8?B?NmxCN01nMUpqSUpDeXJxYjRkaWFhcFNVTWRoeXVKaHdyQzc5RmpqekIydEJZ?= =?utf-8?Q?nMZP1Ht9C6MUxsmF+CXudMT8p?= 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: CO6PR12MB5396.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23aff820-79f9-463a-4cae-08dc910d2b67 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2024 09:41:32.7953 (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: Yncm24Vh0FeVsEe2cAgmRNeEaDlhMD7/rCkt0XSHP0NvxXGRg4/vf3I1Tx4qMki6xiNpUyGXowxHYzxUZxua8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8219 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwgR295YWwgPGdh a2hpbEBtYXJ2ZWxsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bmUgMjAsIDIwMjQgNTowNyBQ TQ0KPiBUbzogU3Vhbm1pbmcgTW91IDxzdWFubWluZ21AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFk DQo+IDxtYXRhbkBudmlkaWEuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJF OiBbRVhURVJOQUxdIFtQQVRDSCB2MiAxLzJdIGNyeXB0by9tbHg1OiBvcHRpbWl6ZSBBRVMtR0NN DQo+IElQc2VjIG9wZXJhdGlvbg0KPiANCj4gPiA+IFN1YmplY3Q6IFJFOiBbRVhURVJOQUxdIFtQ QVRDSCB2MiAxLzJdIGNyeXB0by9tbHg1OiBvcHRpbWl6ZSBBRVMtR0NNDQo+ID4gPiBJUHNlYyBv cGVyYXRpb24NCj4gPiA+DQo+ID4gPiA+IEhpLA0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogQWtoaWwgR295YWwgPGdha2hpbEBt YXJ2ZWxsLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIEp1bmUgMTQsIDIwMjQgNTowNyBQ TQ0KPiA+ID4gPiA+IFRvOiBTdWFubWluZyBNb3UgPHN1YW5taW5nbUBudmlkaWEuY29tPjsgTWF0 YW4gQXpyYWQNCj4gPiA+ID4gPiA8bWF0YW5AbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiBDYzogZGV2 QGRwZGsub3JnDQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtFWFRFUk5BTF0gW1BBVENIIHYyIDEv Ml0gY3J5cHRvL21seDU6IG9wdGltaXplDQo+ID4gPiA+ID4gQUVTLUdDTSBJUHNlYyBvcGVyYXRp b24NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGkgQWtoaWwsDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiBGcm9tOiBB a2hpbCBHb3lhbCA8Z2FraGlsQG1hcnZlbGwuY29tPg0KPiA+ID4gPiA+ID4gPiBTZW50OiBGcmlk YXksIEp1bmUgMTQsIDIwMjQgMjo0OSBQTQ0KPiA+ID4gPiA+ID4gPiBUbzogU3Vhbm1pbmcgTW91 IDxzdWFubWluZ21AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ID4gPiA+ID4gPiA+IDxtYXRh bkBudmlkaWEuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4g PiA+IFN1YmplY3Q6IFJFOiBbRVhURVJOQUxdIFtQQVRDSCB2MiAxLzJdIGNyeXB0by9tbHg1OiBv cHRpbWl6ZQ0KPiA+ID4gPiA+ID4gPiBBRVMtR0NNIElQc2VjIG9wZXJhdGlvbg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRvIG9wdGltaXplIEFFUy1HQ00gSVBzZWMgb3BlcmF0aW9u IHdpdGhpbiBjcnlwdG8vbWx4NSwNCj4gPiA+ID4gPiA+ID4gPiB0aGUgRFBESyBBUEkgdHlwaWNh bGx5IHN1cHBsaWVzIEFFU19HQ00gQUFEL1BheWxvYWQvRGlnZXN0DQo+ID4gPiA+ID4gPiA+ID4g aW4gc2VwYXJhdGUgbG9jYXRpb25zLCBwb3RlbnRpYWxseSBkaXNydXB0aW5nIHRoZWlyDQo+ID4g PiA+ID4gPiA+ID4gY29udGlndW91cyBsYXlvdXQuIEluIGNhc2VzIHdoZXJlIHRoZSBtZW1vcnkg bGF5b3V0IGZhaWxzDQo+ID4gPiA+ID4gPiA+ID4gdG8gbWVldCBoYXJkd2FyZSAoSFcpIHJlcXVp cmVtZW50cywgYW4gVU1SIFdRRSBpcw0KPiA+ID4gPiA+ID4gPiA+IGluaXRpYXRlZCBhaGVhZCBv ZiB0aGUgR0NNJ3MgR0dBIFdRRSB0byBlc3RhYmxpc2ggYQ0KPiA+ID4gPiA+ID4gPiA+IGNvbnRp bnVvdXMgQUFEL1BheWxvYWQvRGlnZXN0IHZpcnR1YWwgbWVtb3J5IHNwYWNlIGZvcg0KPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiBIVyBNTVUuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiBGb3IgSVBzZWMgc2NlbmFyaW9zLCB3aGVyZSB0aGUgbWVtb3J5IGxheW91dCBjb25zaXN0ZW50 bHkNCj4gPiA+ID4gPiA+ID4gPiBhZGhlcmVzIHRvIHRoZSBmaXhlZCBvcmRlciBvZiBBQUQvSVYv UGF5bG9hZC9EaWdlc3QsDQo+ID4gPiA+ID4gPiA+ID4gZGlyZWN0bHkgc2hyaW5raW5nIG1lbW9y eSBmb3IgQUFEIHByb3ZlcyBtb3JlIGVmZmljaWVudA0KPiA+ID4gPiA+ID4gPiA+IHRoYW4gcHJl cGFyaW5nIGEgVU1SIFdRRS4gVG8gYWRkcmVzcyB0aGlzLCBhIG5ldyBkZXZhcmcNCj4gPiA+ID4g PiA+ID4gPiAiY3J5cHRvX21vZGUiIHdpdGggbW9kZSAiaXBzZWNfb3B0IiBpcyBpbnRyb2R1Y2Vk IGluIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IGNvbW1pdCwgb2ZmZXJpbmcgYW4gb3B0aW1pemF0aW9u IGhpbnQgc3BlY2lmaWNhbGx5IGZvcg0KPiA+ID4gPiA+ID4gPiA+IElQc2VjIGNhc2VzLiBXaGVu IGVuYWJsZWQsIHRoZSBQTUQgY29waWVzIEFBRCBkaXJlY3RseQ0KPiA+ID4gPiA+ID4gPiA+IGJl Zm9yZSBQYXlsb2FkIGluIHRoZSBlbnF1ZXVlX2J1cnN0IGZ1bmN0aW9uIGluc3RlYWQgb2YNCj4g ZW1wbG95aW5nIHRoZSBVTVIgV1FFLg0KPiA+ID4gPiA+ID4gPiA+IFN1YnNlcXVlbnRseSwgaW4g dGhlIGRlcXVldWVfYnVyc3QgZnVuY3Rpb24sIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IG92ZXJyaWRk ZW4gSVYgYmVmb3JlIFBheWxvYWQgaXMgcmVzdG9yZWQgZnJvbSB0aGUgR0dBIFdRRS4NCj4gPiA+ ID4gPiA+ID4gPiBJdCdzIGNydWNpYWwgZm9yIHVzZXJzIHRvIGF2b2lkIHV0aWxpemluZyB0aGUg aW5wdXQgbWJ1Zg0KPiA+ID4gPiA+ID4gPiA+IGRhdGENCj4gPiA+ID4gZHVyaW5nDQo+ID4gPiA+ ID4gcHJvY2Vzc2luZy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhpcyBzZWVtcyB2 ZXJ5IHNwZWNpZmljIHRvIG1seDUgYW5kIGlzIG5vdCBhcyBwZXIgdGhlDQo+ID4gPiA+ID4gPiA+ IGV4cGVjdGF0aW9ucyBvZiBjcnlwdG9kZXYgQVBJcy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gSXQgc2VlbXMgeW91IGFyZSBhc2tpbmcgdG8gYWx0ZXIgdGhlIHVzZXIgYXBwbGljYXRp b24gdG8NCj4gPiA+ID4gPiA+ID4gYWNjb21tb2RhdGUgdGhpcyB0byBzdXBwb3J0IElQc2VjLg0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBDcnlwdG9kZXYgQVBJcyBhcmUgZm9yIGdlbmVy aWMgY3J5cHRvIHByb2Nlc3Npbmcgb2YgZGF0YSBhcw0KPiA+ID4gPiA+ID4gPiBkZWZpbmVkIGlu IHJ0ZV9jcnlwdG9fb3AuDQo+ID4gPiA+ID4gPiA+IFdpdGggeW91ciBwcm9wb3NlZCBjaGFuZ2Vz LCBpdCBzZWVtcyB0aGUgYmVoYXZpb3Igb2YgdGhlDQo+ID4gPiA+ID4gPiA+IGNyeXB0byBBUElz IHdpbGwgYmUgZGlmZmVyZW50IGluIGNhc2Ugb2YgbWx4NSB3aGljaCBJIGJlbGlldmUgaXMgbm90 DQo+IGNvcnJlY3QuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElzIGl0IG5vdCBwb3Nz aWJsZSBmb3IgeW91IHRvIHVzZSBydGVfc2VjdXJpdHkgSVBzZWMgcGF0aD8NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTb3JyeSBJIGRvbid0IHVuZGVyc3RhbmQgd2h5 IHRoYXQgY29uZmxpY3RzIHRoZSBBUEksIElJVUMNCj4gPiA+ID4gPiA+IGNyeXB0byBBUEkgb25s eSBqdXN0IGRlZmluZXMgdGhlIEFBRC9QYXlsb2FkL0RpZ2VzdCBpbiBzdHJ1Y3QNCj4gPiA+ID4g PiA+IHJ0ZV9jcnlwdG9fc3ltX29wLCBidXQgbm90IHJlc3RyaWN0IHRoZSBzZXF1ZW5jZSwgYW5k DQo+ID4gPiA+ID4gPiBBQUQvUGF5bG9hZC9EaWdlc3QgbWF5IGNvbWUgZnJvbQ0KPiA+ID4gPiA+ IGRpZmZlcmVuY2UgbWVtb3J5IHNwYWNlLg0KPiA+ID4gPiA+ID4gQW0gSSBtaXNzaW5nIHNvbWV0 aGluZyBoZXJlPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gWWVzIHlvdSBhcmUgY29ycmVjdCB0aGF0 IHRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIHRoZXJlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBU aGUgaW5wdXQgcmVxdWlyZW1lbnRzIGZyb20gbWx4NSBIVyBpcyBBQUQvUGF5bG9hZC9EaWdlc3QN Cj4gPiA+ID4gPiA+IHNlcXVlbmNlLCBpZiB0aGUgaW5wdXQgbWVtb3J5IG9mIEFBRC9QYXlsb2Fk L0RpZ2VzdCBkb2VzIG5vdA0KPiA+ID4gPiA+ID4gbWVldCB0aGUgcmVxdWlyZW1lbnRzLCBQTUQg d2lsbCB0cnkgdG8gY29tYmluZSB0aGUgbWVtb3J5DQo+ID4gPiA+ID4gPiBhZGRyZXNzIHNwYWNl IHdpdGggVU1SIFdRRSBhcyB0aGF0IGNvbW1pdCBkb2VzIGJ5IHNvZnR3YXJlDQo+IHNocmluay4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFuZCBoZXJlLCB5b3UgYXJlIGFkZGluZyBhIHJlc3RyaWN0 aW9uIGZvciBJUHNlYyBjYXNlLg0KPiA+ID4gPiA+IEkgYmVsaWV2ZSB5b3UgbmVlZCBhIHdheSB0 byBpZGVudGlmeSBJUHNlYyBjYXNlIHdpdGggbm9uLWlwc2VjDQo+ID4gPiA+ID4gY2FzZSBpbiBk YXRhDQo+ID4gPiBwYXRoLg0KPiA+ID4gPiA+IEZvciB0aGF0LCBpbnN0ZWFkIG9mIHVzaW5nIGEg ZGV2YXJnKHdoaWNoIGlzIGEgc3BlY2lmaWMgY2FzZSBmb3INCj4gPiA+ID4gPiBtbHg1KSwgeW91 IGNhbiB1c2UgZ2VuZXJpYyBydGVfc2VjdXJpdHkgc2Vzc2lvbiB3aXRoIGFjdGlvbiB0eXBlDQo+ ID4gPiA+ID4gUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBFX05PTkUuDQo+ID4gPiA+DQo+ID4gPiA+ IEp1c3QgdG8gZW1waGFzaXplLCB0aGlzIGlzIG5vdCBhIHJlc3RyaWN0aW9uLCB3ZSBkb24ndCBy ZXN0cmljdA0KPiA+ID4gPiB1c2VyIG11c3QgdXNlIHRoYXQgZGV2YXJnIGZvciBJUFNFQyBjYXNl Lg0KPiA+ID4gPiBUaGUgd2F5IHRvIGlkZW50aWZ5IG9yIGFwcGx5IHRoYXQgb3B0aW1pemF0aW9u IGlzIHVzZXIncyBkZXZhcmcgb2YNCj4gPiA+ICJpcHNlY19vcHQiLg0KPiA+ID4gPiBXaXRob3V0 IHRoYXQgaGludCBmcm9tIGRldmFyZywgcG1kIHdpbGwgd29yayBpbiBVTVIgbW9kZSB0bw0KPiA+ ID4gPiBjb21iaW5lIHRoZSBtZW1vcnkgYWRkcmVzc2VzLg0KPiA+ID4NCj4gPiA+IEV2ZW4gaWYg aXQgaXMgYW4gb3B0aW9uYWwgdGhpbmcuDQo+ID4gPiBBZnRlciBhZGRpbmcgdGhlIGRldmFyZywg dGhlIHVzZXIgaXMgZXhwZWN0ZWQgdG8gdXNlIHRoZSBidWZmZXJzIHRoZQ0KPiA+ID4gd2F5IHlv dXIgUE1EIGlzIGV4cGVjdGluZy4gU28sIHRoaXMgaXMgYSByZXN0cmljdGlvbi4gUmlnaHQ/DQo+ ID4NCj4gPiBUaGUgZGV2YXJnIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGlmIHVzZXIgYWRk cyB0aGUgZGV2YXJnLCB0aGF0DQo+ID4gbWVhbnMgdXNlciBrbm93IHdoYXQgaGUgaXMgZG9pbmcs IGFuZCB0aGUgaW5wdXQgaXMgc3VpdGFibGUgZm9yIHRoYXQNCj4gb3B0aW1pemF0aW9uLg0KPiA+ IFBNRCBkb2Vzbid0IHJlc3RyaWN0IHVzZXIgbXVzdCB1c2UgdGhhdCBoaW50IHRvIGhhbmRsZSBJ UHNlYyBjYXNlLA0KPiA+IHVzZXIgd2lsbCBzdGlsbCBiZSBhYmxlIHRvIGhhbmRsZSBJUHNlYyBv cGVyYXRpb24gd2l0aG91dCB0aGF0IGRldmFyZy4NCj4gDQo+IERldmFyZyBpcyBvcHRpb25hbCBh bmQgbm90IGVuYWJsZWQgYnkgZGVmYXVsdC4gVGhhdCBpcyBjbGVhciB0byBtZSBhdCB0aGUgZmly c3QNCj4gcGxhY2UuDQo+IA0KPiBUaGUgcG9pbnQgaXMgUE1EIGRldmFyZyBjYW4gZGljdGF0ZSB0 aGUgYmVoYXZpb3Igb2YgUE1EIGFuZCBOT1QgdGhlIHVzZXIuDQo+IFRoZSBzdGFuZGFyZCBBUElz IGFyZSB0aGUgb25lcyB3aGljaCB1c2VyIG11c3QgYWRoZXJlIHRvLg0KPiANCj4gWW91IGNhbm5v dCBleHBlY3QgYSB1c2VyIHRvIGNoYW5nZSBpdHMgY29kZSB3aGVuIGl0IHdhbnRzIHRvIHVzZSB0 aGUgZGV2YXJnDQo+IG9wdGltaXphdGlvbi4NCg0KU29ycnksIGl0IGlzIG15IGJhZCBtaXNzaW5n IHRoZSBiYWNrZ3JvdW5kIGludHJvZHVjdGlvbiBoZXJlLiBJbiBmYWN0LCB0aGUgbW90aXZhdGlv biB0byBpbXBsZW1lbnQgdGhhdCBmZWF0dXJlIGlzIG5vdCB0byByZXF1ZXN0IHVzZXIgdG8gYnVp bGQgdGhlIG1lbW9yeSBpbiB0aGF0IG9yZGVyLg0KT3BzaXRlbHksIGFmdGVyIHRoZSBmaXJzdCBV TVIgdmVyc2lvbiwgd2Ugbm90aWNlZCB0aGF0IHVzZXIgbWF5IGhhdmUgSVBzZWMgYXMgaW5wdXQg YW5kIHRoYXQgaW5wdXQgY2FuIGJlIG9wdGltaXplZCBieSB0aGF0IGhpbnQuDQpTaW5jZSB0aGUg QVBJIGRvZXMgbm90IHJlamVjdCB1c2VyJ3MgSVBzZWMgaW5wdXQsIHNvIGZpbmFsbHkgd2UgZGVj aWRlZCB0byBhZGQgdGhhdCBoaW50IHRvIG9wdGltaXplIHRoZSBJUHNlYyBpbnB1dCBjYXNlLg0K SSBhZ3JlZSB3ZSBjYW4gaW1wbGVtZW50IGJhc2VkIG9uIG90aGVyIEFQSSBhbmQgZm9yY2UgdXNl ciB0byB1c2Ugb3RoZXIgQVBJLCBidXQgaWYgdGhlIGN1cnJlbnQgQVBJIGRvZXMgbm90IHJlamVj dCB1c2VyJ3MgSVBzZWMgaW5wdXQsIEkgYXNzdW1lIGl0IGlzIHdvcnRoIHRvIG9wdGltaXplIHRo YXQuIFdoYXQgZG8geW91IHRoaW5rPw0KDQo+IA0KPiA+IElmIHVzZXIgaGFzIG1peGVkIGNhc2Vz LCBqdXN0IGxlYXZlIHRoZSBkZXZhcmcgYXdheSwgZG9lcyB0aGF0IG1ha2Ugc2Vuc2U/DQo+ID4N Cj4gPiA+DQo+ID4gPiBXaGF0IHdvdWxkIGJlIHRoZSBiZWhhdmlvciBpZiBkZXZhcmcgaXMgc2V0 IGJ1dCB0aGUgYnVmZmVycyBhcmUNCj4gPiA+IGNvbmZpZ3VyZWQgdGhlIHNhbWUgd2F5IGFzIGJl Zm9yZT8NCj4gPiA+DQo+ID4gPiA+IEkgYWdyZWUgbW92ZSB0byBvdGhlciBBUEkgd2lsbCBhbHNv IG1ha2UgdGhlIGhpbnQgd29yay4gQnV0IGlmDQo+ID4gPiA+IHByb3ZpZGluZyBvbmUgaGludCBk ZXZhcmcgaGVyZSBkb2VzIG5vdCBjb25mbGljdCB0aGUgQVBJIGFuZCBicmluZw0KPiA+ID4gPiBi ZXR0ZXIgY29tcGF0aWJpbGl0eSwgaXQgZG9lcyBub3QgaHVydC4NCj4gPiA+DQo+ID4gPiBJIGRv IG5vdCB1bmRlcnN0YW5kIGhvdyBpdCBpcyBicmluZ2luZyBiZXR0ZXIgY29tcGF0aWJpbGl0eS4N Cj4gPiA+DQo+ID4gPiBUaGUgZGV2YXJnIHRoYXQgaXMgYWRkZWQgZm9yIGlwc2VjX29wdCBzZWVt cyByZWR1bmRhbnQuDQo+ID4gPiBXZSBzaG91bGQgdXNlIHN0YW5kYXJkIEFQSXMgd2hlbiB0aGV5 IGFyZSBhdmFpbGFibGUuDQo+ID4gPiBEZXZhcmdzIGFyZSBhZGRlZCB0byBwYXNzIG9uIGFkZGl0 aW9uYWwgcnVuIHRpbWUgY29uZmlndXJhdGlvbiB3aGljaA0KPiA+ID4gaXMgbm90IHBhcnQgb2Yg c3RhbmRhcmQgQVBJIHNldCBhbmQgaXMgc3BlY2lmaWMgdG8gYSBwYXJ0aWN1bGFyIFBNRC4NCj4g PiA+IEJ1dCBpbiB0aGlzIGNhc2UsIHdlIGRvIGhhdmUgcnRlX3NlY3VyaXR5IGFuZCBydGVfaXBz ZWMgQVBJcyB0bw0KPiA+ID4gY29uZmlndXJlIElQc2VjIHNwZWNpZmljIHJlcXVpcmVtZW50cy4N Cj4gPg0KPiA+IE9LLCBJIGFzc3VtZSB5b3UgYWdyZWVkIGJlZm9yZSB0aGF0IHRoZSBzdGFuZGFy ZCBBUEkgZG9lcyBub3QgZGVmaW5lDQo+ID4gdGhlIG1lbW9yeSBsYXlvdXQsIHJpZ2h0Pw0KPiBZ ZXMgaXQgZG9lcyBub3QgZm9yIGNyeXB0byBBUElzLg0KPiANCj4gQnV0IGlmIHdlIHVzZSBydGVf c2VjdXJpdHkgYW5kIHJ0ZV9pcHNlYyBBUElzLCBmb3JtYXQgb2YgcGFja2V0cyBzaG91bGQgYmUg YXMNCj4gcGVyIElQc2VjIHJlcXVpcmVtZW50Lg0KPiBUaGF0IGlzIGltcGxpY2l0IGZvciB0aGUg YXBwbGljYXRpb24gdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS4NCg0KSSBhbHdheXMgYWdyZWUgd2l0 aCBydGVfc2VjdXJpdHkgYW5kIHJ0ZV9pcHNlYyBBUElzLCBhbmQgdGhpcyBpcyB3aGF0IHdlIHdh bnQgdG8gZXhwYW5kIG5leHQuIGJ1dCBhcyByZXBsaWVkIGFib3ZlLCB0aGUgaGludCBkb2VzIG5v dCBjb25mbGljdHMgd2l0aCB0aGVzZSBBUEksIHdlIGNhbiBoYXZlIGJvdGggc3VwcG9ydGVkIGZp bmFsbHkuDQpVc2VyIGNhbiBjaG9vc2UgYW55d2F5IGhlIHdhbnRzIHNpbmNlIGN1cnJlbnQgQVBJ IGRvZXMgbm90IHJlamVjdHMgdGhlIElQc2VjIGlucHV0cy4gV2hhdCBkbyB5b3UgdGhpbms/DQoN Cj4gDQo+ID4gQUFELCBJViBhbmQgcGF5bG9hZCBhcmUgYWxsIGRlZmluZWQgc2VwYXJhdGVseS4g VGhlIEFQSSBpcyBub3QNCj4gPiBhZmZlY3RlZC4gTGV0J3MgYWxpZ24gdGhlIHBhdGNoIGRvZXMg bm90IGJyZWFrIHRoZSBBUEkuDQo+ID4gQW5kIGFub3RoZXIgcmVhc29uIHRvIGhhdmUgaXQgaXMg ZHVlIHRvIEFFU19HQ00gY2FuIGFsc28gYmUgdXNlIGFzDQo+ID4gSVBzZWMgbWVjaGFuaXNtKHRo YXQgaXMgd2hhdCBoYXMgYmVlbiBtZXJnZWQpLiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gDQo+IFRo YXQgaXMgc3VwcG9ydGVkIGFuZCB0ZXN0ZWQgdXNpbmcgaXBzZWMtc2VjZ3cgYXMgd2VsbCBhcyBk cGRrLXRlc3QNCj4gYXBwbGljYXRpb24uDQo+IEJ1dCBhZGRpbmcgYSBQTUQgZGV2YXJnIGZvciBl eHBsaWNpdGx5IHN1cHBvcnRpbmcgSVBzZWMgaXMgbm90IHJlcXVpcmVkLg0KPiBVc2VyIGNhbm5v dCBiZSBkaWN0YXRlZCBieSB0aGUgUE1EIGRldmFyZyB0byBhbGlnbiBpdHMgYnVmZmVycy4NCg0K SnVzdCB0byBiZSBtb3JlIGFjY3VyYXRlLCBpbiBmYWN0IG91ciBjdXJyZW50IFBNRCBoYXMgc3Vw cG9ydGVkIElQc2VjIGFscmVhZHkgdmlhIFVNUidzIHdheS4gVGhpcyBzZXJpZXMgaXMgYW4gb3B0 aW1pemF0aW9uLCBub3QgbmV3bHkgc3VwcG9ydGluZyBJUHNlYywgYnV0IHRvIG9wdGltaXplIHRo ZSBJUHNlYyBpbnB1dCBjYXNlLg0KQW5kIGxpa2UgSSByZXBsaWVkIGFib3ZlLCBpdCBpcyBub3Qg dGhlIHBhdGNoZXMgaW52aXRlcyB0aGUgbGF5b3V0IGFuZCByZXF1aXJlIHVzZXIgdG8gaGF2ZSBz dWNoIGJ1ZmZlcnMsIGJ1dCB0aGUgdHJ1dGggaXMgd2Ugd2FudCB0byBiZXR0ZXIgc2VydmUgdGhl IElQc2VjIGlucHV0IGNvbWUgd2l0aCB0aGF0IGxheW91dCBjYXNlIGluIHRoZSByZWFsIHdvcmxk IGFzIEFQSSBkb2VzIG5vdCByZWplY3QgdGhhdCBJUHNlYyBpbnB1dC4NCg0KPiANCj4gPiBBbmQg YWdhaW4sIEkgc3RpbGwgYWdyZWUgd2l0aCB5b3Ugb3RoZXIgQVBJIG1heSBhbHNvIGJlIGFibGUg dG8NCj4gPiBhY2hpZXZlIHRoYXQuIEJ1dCB0aGF0J3MgYW5vdGhlciB0b3BpYywgZm9yIG5vdywg d2UgZXhwZWN0IG1seDUgUE1EDQo+ID4gQUVTX0dDTSBjYW4gc2VydmUgSVBzZWMgd2l0aCBhbmQg d2l0aG91dCB0aGUgaGludChhZnRlciB0aGF0IHBhdGNoKS4NCj4gPg0KPiA+IFRoYW5rcywNCj4g PiBTdWFubWluZw0K