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 285ED424CD; Thu, 20 Jun 2024 10:16:20 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EF763427B1; Thu, 20 Jun 2024 10:16:19 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2078.outbound.protection.outlook.com [40.107.223.78]) by mails.dpdk.org (Postfix) with ESMTP id 9F18D427B1 for ; Thu, 20 Jun 2024 10:16:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QC3MUWTf7IZWGZL5a4NeqKIVBF02FpqK6op20y3WqZurtqngHQuqoTZjZRHhYPV++8g2/pJRXcgCnz3rFQF5RX3OWQHFHkYMV2Z/K4a+QMZYHkufpxHX1D+PtfPAYHmw6TVcw5d8u+L4w0hT8YEYcC05iFBYjs6B+wy83/66hso7GtQiDb8CqZ4Sbdmor5NrQJpl7LUkbIo2lfGyfIcqwfWCl85MyxydnAZSC4fYaUrzuQt5flE6XVDw2ZNdwdeF+EgGhFDBmAaD1h7yfGf67c5GaHETVGhGHdXOnet5H0/KCfKIgerLhcexIrmF0GrVE6HiiAIaHSX3QNUqHMAI6A== 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=QFCjPXMt9ZKMl/tmUEShu5GfD4yCJ02Q96MgteB7T/E=; b=EmgIE12tGKgjj0i5kuYQ2ozOkVSsYX4lHlWRYt4lrPUBSASC9xduWax2PNBStuBb/pH7XIrthIrF9PfQh9MbtT1rp97AqYMlb8Vkvuk5aN7wOGl4sQdosRPE9YpcLKhDkva1I+vqvw407J4Tuumt0z0qbImv2oR656fQF/UQsuCHietWRQPGwBRCisiNtc3NEfux3L3vDikTe/k1D0XT0APR7KXgfXGHzVmKggi3SKZAF0S9TLWC0Yf1Qbuwb/H+fvoBgMpcAsRqveIIMCLnKSgZ1QeV9jb1YU1azD3bIr1VlyfMz/y/x52mdn4n+a1F8pkFWJHAW1TvdxwasifBPg== 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=QFCjPXMt9ZKMl/tmUEShu5GfD4yCJ02Q96MgteB7T/E=; b=avkZkkW0eLEZYr7nAs2xwhudW97+7PP2yvbhz9OAy3JR2zDtrn6JvcCazThtxUBsVhF2aQJry0ajUV6JgTZiu8h9G7QhQiWGehcKF7Gk3gNq28XFq/ZeeIvN6ganf57nqaqfpIE9NSuccv8/MxUG8Jmgp4bHcLSQrngCgYjjGJu5MHR2FbsOZ0vPQDJn1tZ50KyNt1zqhek7jkD4esZMjOWgW6WgHP8UQGRp4S9fwqCut5zseIQ4JUcCs11m86wa56J5LzVBVwa7IsE/CWgCfE507/GuRBmiavT7tuLXACS1qfAtGzwnnYj6fxJYXgztk9NCzkBS1HnTOFRYLP6W4g== Received: from CO6PR12MB5396.namprd12.prod.outlook.com (2603:10b6:303:139::8) by PH8PR12MB6721.namprd12.prod.outlook.com (2603:10b6:510:1cc::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.22; Thu, 20 Jun 2024 08:16:15 +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 08:16:15 +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+WKXCfqjbHG0hSAgAADKaCAACM6gIAAAQBggAlUxQCAAATjkA== Date: Thu, 20 Jun 2024 08:16:15 +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_|PH8PR12MB6721:EE_ x-ms-office365-filtering-correlation-id: f5cf5c1b-1314-4333-6eb1-08dc9101413d 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?akVId0RDR2hiOXVFaHFmSzlyUFVlS1VkTFYxYnNxcksvYVRLYnlOMnMweStq?= =?utf-8?B?NkdsN3BqV1c3aHpDeTQraE9jM3dqUlpwSjJRZldHT09MY0FJN3l1d0gxTEVs?= =?utf-8?B?Mi9kQVRtT1JBUVFZc2ZGUUNVMHpFRlVsVDA5b01Na01jcU53U2NobTV2T1NI?= =?utf-8?B?TC84UTFBU2pTK2gwa2pzV0doeU80QjFoUlJqbEhxNkd1Szg1Zm9yYmwrWjla?= =?utf-8?B?bnFpNE8yWFBJSkRpWnc3UXU4NndLNkJCWGcrby9Jd2dYMktRQjdzeVkrejNE?= =?utf-8?B?MVRwUmdKMWxhYWlzQ1AzWmtQQ2ZLaHlIYVRDWVJPanZiVW1zYkU1YmRJWHh0?= =?utf-8?B?OW5nUjBNMWZDcjJFRnBWUEgvRUphZXRjSVBFUmVTTklha3czYXI0RkpSaS9o?= =?utf-8?B?T0J0Uy9RSlB5K2dnYWJyUkNqNGd2OXNuNG5SeFhYZFNLd09GY3hFWlQzdmVv?= =?utf-8?B?aFZ6YkhQSUt0S215TVQ5dGdWVm5zTzNJT1JBUW41UlNIemNnOVdCdUd4S2V5?= =?utf-8?B?dXJ5bFhvUmhDbUtCVUEzZU9BZWZGcUJYOE9jTk55SGx5TU5jTVhrOVNUTGxU?= =?utf-8?B?YmdGMWNDdWYwSEJlRTQxRmU4YmZYdkJDSzBvazF3bGl4bTZsRWlCM1NrKzVW?= =?utf-8?B?RFR5VGlBeCtzbjJYaW5pM3B5SmgyUE5vMlloVlBUMXBPaW8wMHNZL1JSb3N3?= =?utf-8?B?YUFjb0VGMzlmZ0lYVHh1N08wRHh1bVh0Wm9ITnhUc1R4MlRITWxMWWV1L2Q3?= =?utf-8?B?ZkljcnNCZ3N4R0VEaWVBckNXaDdDMld3RXZiUGVLMXNoeS9IYnFXcEVCVkps?= =?utf-8?B?ckVPQzJEVjhYUldiYTV0YTFSQ3NnRDNZK0dzc0R3OEFWa2NjbDJJWFhVNkZO?= =?utf-8?B?N1ljbmRqQ05WYW1FeVZURUcxR1ZqWVc3aXJUTkJJVTlsaXg4bkhoRGp0ZWpm?= =?utf-8?B?R0hmTDh6RzV4VTlycDhQTGhDZWlDbWZob2Z3WFhqOGpWUEFsVURVdlFMMXBK?= =?utf-8?B?aVV3TTlQWWRzSWl3bjlCUm1CVnQ1UmlJQS85cGo0YVJNU1phNDRqUElxVElG?= =?utf-8?B?T3EzK2Q2U1ZyenRxTkM3UGZOVHAvYmEzUnV4dVdTVTRLVXFRV0FzemR2Smht?= =?utf-8?B?UjUwL2NUeXRXZG9UUFhRSzJ1cEZleUV3d3l1aTZ1bEpaUEhoZUFmVWpCU3FZ?= =?utf-8?B?MEtIVytEZ25LMHJlbGdxM2ZDR3N2YTBnSDdyMDJ4dWoySTZQdUNxOHl2ck5E?= =?utf-8?B?QWxRaWRpR1R1aVFGMitiYjNRQlpCSUI5Wko4a3RoU3ErTWRML3cvb1ljYWgr?= =?utf-8?B?SUlGMDlaRzBkWGZCdU1Fd3ptYkVFbU0yVVFRVU9SNmtyc1lNNTNocVpDMGNZ?= =?utf-8?B?TGhDNWt6bmJZdWFBckpMNkwrTWFaOVJOUTM4b3FZc0d1TDZjc2MrVUE3S2sr?= =?utf-8?B?RnF3ZFE4eW1ZbkNmZlY3RERYV2hZcXh6blZ2cHlwMDVWem4vMlRuaEFiU3Bq?= =?utf-8?B?bEpPdWFyZkxNRTdxbmJiMkZUSGc4QzJ5WllUbG1tV0EzRDhsZGRtdXUrbEVQ?= =?utf-8?B?K1NIaEw5R2VZUkgvVUY0RG5mV0hpVzh1VnpDSFlURkV5RVFIaTJ3R0dxQUFl?= =?utf-8?B?Z2lMYVZTM1hJZlRnREVOUStkVG13bUtZNG5qNmZBczh0MHJLb2pmR0tscEF2?= =?utf-8?B?K0JWS0drbmVxWkpOdGwvUUxmRU9GYXlHdkpQaUdLcDNlMHRqMFV6ZmkzeDRT?= =?utf-8?B?TlplandaeTE4RldvT0V1L0lGK2c3Vng2YXd1VFk3RlZ2aXh1VlFpYlRaU1dO?= =?utf-8?Q?5n99X7Uajfk6Kp8iRVwBLB+0gTUD8CadtRHMk=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?aTFIb28wRkpNL2hXVlNqRDA0TzdGT0NickE0UjVYTW1PVmVFQVVodUhXUzVF?= =?utf-8?B?RjVNNjdNeHhkQ1E5VVllOHBpRnFXeDZLNHE0S0N4WVRGZ2lGTFZvTFVPWVVJ?= =?utf-8?B?OGRqa2lDUEJqTFJVcHd2YXRtU0tGc3A4ZGlUY2thRWx2ZFVZbHkya1NueFRp?= =?utf-8?B?R3pvZWd0T1R4VUtvRUZhb2dtWEVzQ09yWGNDZmlNQzB6UjdMNGUySUJuN0Nq?= =?utf-8?B?dm1TSVFFOVYyVjdTMm9yNmErb3c5NGM3ZWVnMjhMM1hXbis1K3pKaVAxWFlh?= =?utf-8?B?NDBmcU1BK0cra0RlQlI3OFBzc01XVS9DZUt3K0xQMS94QVY5WkVxdnUwcFU2?= =?utf-8?B?SE1VakxNWFc1VUw3VTNNdXB1OHNlR3k3Q2tBVGlCZWVzdU5MRlRsaTd6VDE2?= =?utf-8?B?WXE4SU41QzRCZ0wrL2ZPSlJnWWlMWHRRS3FoQ0taQ2JVWXlBSTBGbkhQUHZi?= =?utf-8?B?Z3BIcEdJelBGOEdQUFZpb0FVSHFkcStwTjRpaHB1KzZ5L3pUYVh3TTZ0alBv?= =?utf-8?B?ODEwR3B3eGo1eFNFWDBZMWlZL1lyVHRHSEhJeWdmNEtZYXpyYVlrVFNmSXlq?= =?utf-8?B?cjJaeDRTcHh3YUU4RWVwaWRhWE5naFhRei9FRzl1bjBaQ21aeExZU0NqOEE3?= =?utf-8?B?bU9wdm5NazNra0FQM2Fka2tXbmhBb0dGR0tBRUo4WkxXb1hGd2k5S1pjNEVC?= =?utf-8?B?S1dyK3V0eWV3Y1VIRFF0ZFBiNDdLWjNYdDNURk5Ec3RiaFRCU2ZhbjNOSVZx?= =?utf-8?B?YmZ4S0RpSW9KYS9RTTNpeG5uMHJ3bnBBb1VmZ3NBTFF5R0t4RUluR0dTTmcw?= =?utf-8?B?YWozUjNkZnJ2Vi92NUV5S1pPNVkrdjRGOWFyaEloZkIrSHdKZkZMWGE0dkF3?= =?utf-8?B?bmdDZG9pVjdTdTg2TzhQZXNLOUNUakRoc0VIZFFVbWxvMUVaS21DZFJGNVpU?= =?utf-8?B?T0VUNXpTbmszWmpHZll6TlV0VFhsSER4Nk5haElHM2NEYzBEWkJuRFlrckhV?= =?utf-8?B?Rk51TmpsWHczbDZnMmt0VmtMSmdSbGF2MFBYb1AzbWpxdzBLa3VzK2pyM09z?= =?utf-8?B?NzJnNE1zMS9zb0JQbEFIcmdjMXNOTzBBU1JZNUxYaURzUUp1UGRXWTJOamN1?= =?utf-8?B?ZjJTRFNJN042MjZGNzdCekJzKzY3dHBoZ0RJTnMvVnd4LzI2WU5LWFFpbXow?= =?utf-8?B?eEZ4bGxpZjN2emdKU3dPWWp6eE90TExHUTZlMmhmY2RGQ0xzRi9FV3UzZjdE?= =?utf-8?B?NlBTZXhoamVvTm9zbndiQWJXUXJDYUNBL2E2U002RGxvTE5HZ0k5NHNJY2Fp?= =?utf-8?B?QXJsOCtoV3VVcWVER2VycVorM2RYakNtRWo5NTZyWEEyRGhzcWtVcmtaNVQ5?= =?utf-8?B?a2Mzbk1OWGh4aUNZVDYrSk5TQ3dxdDErRkhPTWhJVUhHYjd3TkQ4Q0xHSFFI?= =?utf-8?B?KzE5SFo3OTFiN0VwRzY2dExmZjV6LytRejdkZWlUem9wRitxL0NUWnR0TkxY?= =?utf-8?B?Ry9aL25ycXk5K0p4cGJFbkdYaENmclJvYzVIcWZueFhvcWFhU05nL1NhTzZz?= =?utf-8?B?OTB1UGRDbHEra2pHajVRbnUrMWNsMVRQSmdyMU1nK3htRi9mL0hvcGxyOEJ4?= =?utf-8?B?S2ZtR3dGMXFIK0lJZnIvK2pyNmtGNThjajZSRUFvazBraU1EYnJDT3hMMEE3?= =?utf-8?B?NFpXbjF2WVB6Y0g1c3ZUeldTY2lNbzg3L3MzK2lHVWRNblZxWThTSjhFUmNG?= =?utf-8?B?YlRZOEczQkJQZmFxNHpNVGg2dG9GWXFOd3I3Wk9zK0JCc21TYjZERXNWL2x5?= =?utf-8?B?d2lwU3hJSHEzUW80VzhrdWtvUTBPNTRRMTZEQ0dTOHo2Q0RwQXM3V3VvY0dN?= =?utf-8?B?ejM2WjNWUVVyOXJKN3g2bmJGVm45U0tDSWFjUzNPb2hDcVdHS0ZRaWlwUHV2?= =?utf-8?B?N1Y2eU13TEtKY1RacTRnTHRmdjU1aTQ0M3VsVklVWkxBSFpSRTUxYXRLVllu?= =?utf-8?B?dHFjek1RTU1uM0ZtaDZ3U096MVV6alVlazFDRlJtUmNQcjVkWndlWUNSVHhC?= =?utf-8?B?L2JSVEUxWW9mR25ZN2JFeGZvTFl1dW1taVFqQnl0aksvZ3hoSmJQaEc3UHN2?= =?utf-8?Q?lXDdQZp5duX8NkfwxR4uFfFPL?= 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: f5cf5c1b-1314-4333-6eb1-08dc9101413d X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2024 08:16:15.4775 (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: Ifs5KstC9i8I3PwlKbovu8kpoVP3L0fhw/RmRzut9DHRX6c04nwoOXlaynRN+GmY7w+8d10jBlaTO2nei5/xQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6721 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 a2hpbEBtYXJ2ZWxsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bmUgMjAsIDIwMjQgMzo0MCBQ TQ0KPiBUbzogU3Vhbm1pbmcgTW91IDxzdWFubWluZ21AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFk DQo+IDxtYXRhbkBudmlkaWEuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJF OiBbRVhURVJOQUxdIFtQQVRDSCB2MiAxLzJdIGNyeXB0by9tbHg1OiBvcHRpbWl6ZSBBRVMtR0NN DQo+IElQc2VjIG9wZXJhdGlvbg0KPiANCj4gPiBIaSwNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEFraGlsIEdveWFsIDxnYWtoaWxAbWFydmVsbC5j b20+DQo+ID4gPiBTZW50OiBGcmlkYXksIEp1bmUgMTQsIDIwMjQgNTowNyBQTQ0KPiA+ID4gVG86 IFN1YW5taW5nIE1vdSA8c3Vhbm1pbmdtQG52aWRpYS5jb20+OyBNYXRhbiBBenJhZA0KPiA+ID4g PG1hdGFuQG52aWRpYS5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0 OiBSRTogW0VYVEVSTkFMXSBbUEFUQ0ggdjIgMS8yXSBjcnlwdG8vbWx4NTogb3B0aW1pemUgQUVT LUdDTQ0KPiA+ID4gSVBzZWMgb3BlcmF0aW9uDQo+ID4gPg0KPiA+ID4gPiBIaSBBa2hpbCwNCj4g PiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZy b206IEFraGlsIEdveWFsIDxnYWtoaWxAbWFydmVsbC5jb20+DQo+ID4gPiA+ID4gU2VudDogRnJp ZGF5LCBKdW5lIDE0LCAyMDI0IDI6NDkgUE0NCj4gPiA+ID4gPiBUbzogU3Vhbm1pbmcgTW91IDxz dWFubWluZ21AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ID4gPiA+ID4gPG1hdGFuQG52aWRp YS5jb20+DQo+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+ID4gPiA+IFN1YmplY3Q6IFJF OiBbRVhURVJOQUxdIFtQQVRDSCB2MiAxLzJdIGNyeXB0by9tbHg1OiBvcHRpbWl6ZQ0KPiA+ID4g PiA+IEFFUy1HQ00gSVBzZWMgb3BlcmF0aW9uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRvIG9w dGltaXplIEFFUy1HQ00gSVBzZWMgb3BlcmF0aW9uIHdpdGhpbiBjcnlwdG8vbWx4NSwgdGhlDQo+ ID4gPiA+ID4gPiBEUERLIEFQSSB0eXBpY2FsbHkgc3VwcGxpZXMgQUVTX0dDTSBBQUQvUGF5bG9h ZC9EaWdlc3QgaW4NCj4gPiA+ID4gPiA+IHNlcGFyYXRlIGxvY2F0aW9ucywgcG90ZW50aWFsbHkg ZGlzcnVwdGluZyB0aGVpciBjb250aWd1b3VzDQo+ID4gPiA+ID4gPiBsYXlvdXQuIEluIGNhc2Vz IHdoZXJlIHRoZSBtZW1vcnkgbGF5b3V0IGZhaWxzIHRvIG1lZXQNCj4gPiA+ID4gPiA+IGhhcmR3 YXJlIChIVykgcmVxdWlyZW1lbnRzLCBhbiBVTVIgV1FFIGlzIGluaXRpYXRlZCBhaGVhZCBvZg0K PiA+ID4gPiA+ID4gdGhlIEdDTSdzIEdHQSBXUUUgdG8gZXN0YWJsaXNoIGEgY29udGludW91cyBB QUQvUGF5bG9hZC9EaWdlc3QNCj4gPiA+ID4gPiA+IHZpcnR1YWwgbWVtb3J5IHNwYWNlIGZvcg0K PiA+IHRoZQ0KPiA+ID4gSFcgTU1VLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZvciBJUHNl YyBzY2VuYXJpb3MsIHdoZXJlIHRoZSBtZW1vcnkgbGF5b3V0IGNvbnNpc3RlbnRseQ0KPiA+ID4g PiA+ID4gYWRoZXJlcyB0byB0aGUgZml4ZWQgb3JkZXIgb2YgQUFEL0lWL1BheWxvYWQvRGlnZXN0 LCBkaXJlY3RseQ0KPiA+ID4gPiA+ID4gc2hyaW5raW5nIG1lbW9yeSBmb3IgQUFEIHByb3ZlcyBt b3JlIGVmZmljaWVudCB0aGFuIHByZXBhcmluZw0KPiA+ID4gPiA+ID4gYSBVTVIgV1FFLiBUbyBh ZGRyZXNzIHRoaXMsIGEgbmV3IGRldmFyZyAiY3J5cHRvX21vZGUiIHdpdGgNCj4gPiA+ID4gPiA+ IG1vZGUgImlwc2VjX29wdCIgaXMgaW50cm9kdWNlZCBpbiB0aGUgY29tbWl0LCBvZmZlcmluZyBh bg0KPiA+ID4gPiA+ID4gb3B0aW1pemF0aW9uIGhpbnQgc3BlY2lmaWNhbGx5IGZvciBJUHNlYyBj YXNlcy4gV2hlbiBlbmFibGVkLA0KPiA+ID4gPiA+ID4gdGhlIFBNRCBjb3BpZXMgQUFEIGRpcmVj dGx5IGJlZm9yZSBQYXlsb2FkIGluIHRoZQ0KPiA+ID4gPiA+ID4gZW5xdWV1ZV9idXJzdCBmdW5j dGlvbiBpbnN0ZWFkIG9mIGVtcGxveWluZyB0aGUgVU1SIFdRRS4NCj4gPiA+ID4gPiA+IFN1YnNl cXVlbnRseSwgaW4gdGhlIGRlcXVldWVfYnVyc3QgZnVuY3Rpb24sIHRoZSBvdmVycmlkZGVuIElW DQo+ID4gPiA+ID4gPiBiZWZvcmUgUGF5bG9hZCBpcyByZXN0b3JlZCBmcm9tIHRoZSBHR0EgV1FF LiBJdCdzIGNydWNpYWwgZm9yDQo+ID4gPiA+ID4gPiB1c2VycyB0byBhdm9pZCB1dGlsaXppbmcg dGhlIGlucHV0IG1idWYgZGF0YQ0KPiA+IGR1cmluZw0KPiA+ID4gcHJvY2Vzc2luZy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IFRoaXMgc2VlbXMgdmVyeSBzcGVjaWZpYyB0byBtbHg1IGFuZCBpcyBu b3QgYXMgcGVyIHRoZQ0KPiA+ID4gPiA+IGV4cGVjdGF0aW9ucyBvZiBjcnlwdG9kZXYgQVBJcy4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEl0IHNlZW1zIHlvdSBhcmUgYXNraW5nIHRvIGFsdGVyIHRo ZSB1c2VyIGFwcGxpY2F0aW9uIHRvDQo+ID4gPiA+ID4gYWNjb21tb2RhdGUgdGhpcyB0byBzdXBw b3J0IElQc2VjLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ3J5cHRvZGV2IEFQSXMgYXJlIGZvciBn ZW5lcmljIGNyeXB0byBwcm9jZXNzaW5nIG9mIGRhdGEgYXMNCj4gPiA+ID4gPiBkZWZpbmVkIGlu IHJ0ZV9jcnlwdG9fb3AuDQo+ID4gPiA+ID4gV2l0aCB5b3VyIHByb3Bvc2VkIGNoYW5nZXMsIGl0 IHNlZW1zIHRoZSBiZWhhdmlvciBvZiB0aGUgY3J5cHRvDQo+ID4gPiA+ID4gQVBJcyB3aWxsIGJl IGRpZmZlcmVudCBpbiBjYXNlIG9mIG1seDUgd2hpY2ggSSBiZWxpZXZlIGlzIG5vdCBjb3JyZWN0 Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSXMgaXQgbm90IHBvc3NpYmxlIGZvciB5b3UgdG8gdXNl IHJ0ZV9zZWN1cml0eSBJUHNlYyBwYXRoPw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IFNv cnJ5IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgdGhhdCBjb25mbGljdHMgdGhlIEFQSSwgSUlVQyBj cnlwdG8NCj4gPiA+ID4gQVBJIG9ubHkganVzdCBkZWZpbmVzIHRoZSBBQUQvUGF5bG9hZC9EaWdl c3QgaW4gc3RydWN0DQo+ID4gPiA+IHJ0ZV9jcnlwdG9fc3ltX29wLCBidXQgbm90IHJlc3RyaWN0 IHRoZSBzZXF1ZW5jZSwgYW5kDQo+ID4gPiA+IEFBRC9QYXlsb2FkL0RpZ2VzdCBtYXkgY29tZSBm cm9tDQo+ID4gPiBkaWZmZXJlbmNlIG1lbW9yeSBzcGFjZS4NCj4gPiA+ID4gQW0gSSBtaXNzaW5n IHNvbWV0aGluZyBoZXJlPw0KPiA+ID4NCj4gPiA+IFllcyB5b3UgYXJlIGNvcnJlY3QgdGhhdCB0 aGVyZSBpcyBubyByZXN0cmljdGlvbiB0aGVyZS4NCj4gPiA+DQo+ID4gPiA+IFRoZSBpbnB1dCBy ZXF1aXJlbWVudHMgZnJvbSBtbHg1IEhXIGlzIEFBRC9QYXlsb2FkL0RpZ2VzdA0KPiA+ID4gPiBz ZXF1ZW5jZSwgaWYgdGhlIGlucHV0IG1lbW9yeSBvZiBBQUQvUGF5bG9hZC9EaWdlc3QgZG9lcyBu b3QgbWVldA0KPiA+ID4gPiB0aGUgcmVxdWlyZW1lbnRzLCBQTUQgd2lsbCB0cnkgdG8gY29tYmlu ZSB0aGUgbWVtb3J5IGFkZHJlc3Mgc3BhY2UNCj4gPiA+ID4gd2l0aCBVTVIgV1FFIGFzIHRoYXQg Y29tbWl0IGRvZXMgYnkgc29mdHdhcmUgc2hyaW5rLg0KPiA+ID4NCj4gPiA+IEFuZCBoZXJlLCB5 b3UgYXJlIGFkZGluZyBhIHJlc3RyaWN0aW9uIGZvciBJUHNlYyBjYXNlLg0KPiA+ID4gSSBiZWxp ZXZlIHlvdSBuZWVkIGEgd2F5IHRvIGlkZW50aWZ5IElQc2VjIGNhc2Ugd2l0aCBub24taXBzZWMg Y2FzZSBpbiBkYXRhDQo+IHBhdGguDQo+ID4gPiBGb3IgdGhhdCwgaW5zdGVhZCBvZiB1c2luZyBh IGRldmFyZyh3aGljaCBpcyBhIHNwZWNpZmljIGNhc2UgZm9yDQo+ID4gPiBtbHg1KSwgeW91IGNh biB1c2UgZ2VuZXJpYyBydGVfc2VjdXJpdHkgc2Vzc2lvbiB3aXRoIGFjdGlvbiB0eXBlDQo+ID4g PiBSVEVfU0VDVVJJVFlfQUNUSU9OX1RZUEVfTk9ORS4NCj4gPg0KPiA+IEp1c3QgdG8gZW1waGFz aXplLCB0aGlzIGlzIG5vdCBhIHJlc3RyaWN0aW9uLCB3ZSBkb24ndCByZXN0cmljdCB1c2VyDQo+ ID4gbXVzdCB1c2UgdGhhdCBkZXZhcmcgZm9yIElQU0VDIGNhc2UuDQo+ID4gVGhlIHdheSB0byBp ZGVudGlmeSBvciBhcHBseSB0aGF0IG9wdGltaXphdGlvbiBpcyB1c2VyJ3MgZGV2YXJnIG9mDQo+ ICJpcHNlY19vcHQiLg0KPiA+IFdpdGhvdXQgdGhhdCBoaW50IGZyb20gZGV2YXJnLCBwbWQgd2ls bCB3b3JrIGluIFVNUiBtb2RlIHRvIGNvbWJpbmUNCj4gPiB0aGUgbWVtb3J5IGFkZHJlc3Nlcy4N Cj4gDQo+IEV2ZW4gaWYgaXQgaXMgYW4gb3B0aW9uYWwgdGhpbmcuDQo+IEFmdGVyIGFkZGluZyB0 aGUgZGV2YXJnLCB0aGUgdXNlciBpcyBleHBlY3RlZCB0byB1c2UgdGhlIGJ1ZmZlcnMgdGhlIHdh eSB5b3VyDQo+IFBNRCBpcyBleHBlY3RpbmcuIFNvLCB0aGlzIGlzIGEgcmVzdHJpY3Rpb24uIFJp Z2h0Pw0KDQpUaGUgZGV2YXJnIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQsIGlmIHVzZXIgYWRk cyB0aGUgZGV2YXJnLCB0aGF0IG1lYW5zIHVzZXIga25vdyB3aGF0IGhlIGlzIGRvaW5nLCBhbmQg dGhlIGlucHV0IGlzIHN1aXRhYmxlIGZvciB0aGF0IG9wdGltaXphdGlvbi4NClBNRCBkb2Vzbid0 IHJlc3RyaWN0IHVzZXIgbXVzdCB1c2UgdGhhdCBoaW50IHRvIGhhbmRsZSBJUHNlYyBjYXNlLCB1 c2VyIHdpbGwgc3RpbGwgYmUgYWJsZSB0byBoYW5kbGUgSVBzZWMgb3BlcmF0aW9uIHdpdGhvdXQg dGhhdCBkZXZhcmcuDQpJZiB1c2VyIGhhcyBtaXhlZCBjYXNlcywganVzdCBsZWF2ZSB0aGUgZGV2 YXJnIGF3YXksIGRvZXMgdGhhdCBtYWtlIHNlbnNlPw0KDQo+IA0KPiBXaGF0IHdvdWxkIGJlIHRo ZSBiZWhhdmlvciBpZiBkZXZhcmcgaXMgc2V0IGJ1dCB0aGUgYnVmZmVycyBhcmUgY29uZmlndXJl ZCB0aGUNCj4gc2FtZSB3YXkgYXMgYmVmb3JlPw0KPiANCj4gPiBJIGFncmVlIG1vdmUgdG8gb3Ro ZXIgQVBJIHdpbGwgYWxzbyBtYWtlIHRoZSBoaW50IHdvcmsuIEJ1dCBpZg0KPiA+IHByb3ZpZGlu ZyBvbmUgaGludCBkZXZhcmcgaGVyZSBkb2VzIG5vdCBjb25mbGljdCB0aGUgQVBJIGFuZCBicmlu Zw0KPiA+IGJldHRlciBjb21wYXRpYmlsaXR5LCBpdCBkb2VzIG5vdCBodXJ0Lg0KPiANCj4gSSBk byBub3QgdW5kZXJzdGFuZCBob3cgaXQgaXMgYnJpbmdpbmcgYmV0dGVyIGNvbXBhdGliaWxpdHku DQo+IA0KPiBUaGUgZGV2YXJnIHRoYXQgaXMgYWRkZWQgZm9yIGlwc2VjX29wdCBzZWVtcyByZWR1 bmRhbnQuDQo+IFdlIHNob3VsZCB1c2Ugc3RhbmRhcmQgQVBJcyB3aGVuIHRoZXkgYXJlIGF2YWls YWJsZS4NCj4gRGV2YXJncyBhcmUgYWRkZWQgdG8gcGFzcyBvbiBhZGRpdGlvbmFsIHJ1biB0aW1l IGNvbmZpZ3VyYXRpb24gd2hpY2ggaXMgbm90DQo+IHBhcnQgb2Ygc3RhbmRhcmQgQVBJIHNldCBh bmQgaXMgc3BlY2lmaWMgdG8gYSBwYXJ0aWN1bGFyIFBNRC4NCj4gQnV0IGluIHRoaXMgY2FzZSwg d2UgZG8gaGF2ZSBydGVfc2VjdXJpdHkgYW5kIHJ0ZV9pcHNlYyBBUElzIHRvIGNvbmZpZ3VyZSBJ UHNlYw0KPiBzcGVjaWZpYyByZXF1aXJlbWVudHMuDQoNCk9LLCBJIGFzc3VtZSB5b3UgYWdyZWVk IGJlZm9yZSB0aGF0IHRoZSBzdGFuZGFyZCBBUEkgZG9lcyBub3QgZGVmaW5lIHRoZSBtZW1vcnkg bGF5b3V0LCByaWdodD8NCkFBRCwgSVYgYW5kIHBheWxvYWQgYXJlIGFsbCBkZWZpbmVkIHNlcGFy YXRlbHkuIFRoZSBBUEkgaXMgbm90IGFmZmVjdGVkLiBMZXQncyBhbGlnbiB0aGUgcGF0Y2ggZG9l cyBub3QgYnJlYWsgdGhlIEFQSS4NCkFuZCBhbm90aGVyIHJlYXNvbiB0byBoYXZlIGl0IGlzIGR1 ZSB0byBBRVNfR0NNIGNhbiBhbHNvIGJlIHVzZSBhcyBJUHNlYyBtZWNoYW5pc20odGhhdCBpcyB3 aGF0IGhhcyBiZWVuIG1lcmdlZCkuIFdoYXQgZG8geW91IHRoaW5rPw0KQW5kIGFnYWluLCBJIHN0 aWxsIGFncmVlIHdpdGggeW91IG90aGVyIEFQSSBtYXkgYWxzbyBiZSBhYmxlIHRvIGFjaGlldmUg dGhhdC4gQnV0IHRoYXQncyBhbm90aGVyIHRvcGljLCBmb3Igbm93LCB3ZSBleHBlY3QgbWx4NSBQ TUQgQUVTX0dDTSBjYW4gc2VydmUgSVBzZWMgd2l0aCBhbmQgd2l0aG91dCB0aGUgaGludChhZnRl ciB0aGF0IHBhdGNoKS4NCg0KVGhhbmtzLA0KU3Vhbm1pbmcNCg==