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 B541F45C93; Wed, 6 Nov 2024 11:12:09 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4A59B402C3; Wed, 6 Nov 2024 11:12:09 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 83EBB40265 for ; Wed, 6 Nov 2024 11:12:07 +0100 (CET) Received: from pps.filterd (m0431383.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4A5NRhEa019439; Wed, 6 Nov 2024 02:12:06 -0800 Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2177.outbound.protection.outlook.com [104.47.73.177]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 42qw2814h6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Nov 2024 02:12:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wtYmFmMXEPUrlbqIIAB4jUEDKExv1I71Bn4nJij85A8nWb5gIog+LqbWU05Tjnzi/eLGaLup9SMd/JeGvD3k6V0s7LKUpgdP35CcVBVjFu2lR/3E32/+H8lkMNdap+flG8yn93bGZomrT36BFyIdQ1AL0LvnB5XnVcAw9EEi7gZ8VBDZRF82mujGgeF5be5iAAmicx31YUMAkRFIHeNutZkcbhGEjzKhZrz7msEPzVskkyTL3dvyMFJ0cXehXSCxsqPJCiqYECzg2Z0pBqw7++Y3+kSnGmRuxaTXjOlqiVhb8Qe43+JlbZl8QNns64oz5Djkyldd40W0oH8C9LawSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bZhuW0ucXJ/bCL1W+m/gObHzxb8O4qKmFsbtb6RPv/M=; b=JQovnqrtsbLUlgTBkd+eQKc7XbHa8EQuInQZhaxCQircoD+rleN2nsLcIeHNmMh7ZKLNjzvwEEFEFSsMSHZfnxIgJpXKbxoO8Pp1QDrcQl1LOjvR87+gV2QSSCoXLVSCJTVppKvzR8CIV3Dpjv5UH/0wIuXo0pLIDAX7/h2s8ipgUYH06C0sSUz85e1ueVLZKDYH5/IpZMCEm6hBDeGkq+e6pNts0EPpl0PyQyr7uhnSbckjpjgVJ8kGrZo8qavQJwX7HEV7yUz0FxU/HDT2XBeoDSr29AR3L2sQ5UP1Wsi8y13uWfAs+tTzOToZOCiPryV72ZSnkaJvTblzAXiyrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bZhuW0ucXJ/bCL1W+m/gObHzxb8O4qKmFsbtb6RPv/M=; b=JdFECkbMpcQcDEu5WJ3jGbUbvzlojFIS1IK03ueUKREnIGvZ1vJAs8K8hdLluIMqqL8ieCjzDosmw5RC95AKFQWfObJz9QntTOuK9/OBA70jARCKkubLxnPpZ9YtIKtKlONgNXSxmuGEKZ1vC/ILasDkCYbG15fZfxT8KFdrIZs= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by SA0PR18MB3696.namprd18.prod.outlook.com (2603:10b6:806:73::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.31; Wed, 6 Nov 2024 10:12:03 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d%4]) with mapi id 15.20.8114.028; Wed, 6 Nov 2024 10:12:03 +0000 From: Akhil Goyal To: Arkadiusz Kusztal , "dev@dpdk.org" CC: "brian.dooley@intel.com" Subject: RE: [EXTERNAL] [PATCH v8 2/3] crypto/qat: add sm2 encryption/decryption function Thread-Topic: [EXTERNAL] [PATCH v8 2/3] crypto/qat: add sm2 encryption/decryption function Thread-Index: AQHbLp0Co8kCCfPKvEm+xDxvGMkcY7KqC0yg Date: Wed, 6 Nov 2024 10:12:03 +0000 Message-ID: References: <20241104093610.20426-1-arkadiuszx.kusztal@intel.com> <20241104093610.20426-3-arkadiuszx.kusztal@intel.com> In-Reply-To: <20241104093610.20426-3-arkadiuszx.kusztal@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|SA0PR18MB3696:EE_ x-ms-office365-filtering-correlation-id: 303d2e37-0cad-4648-a7ba-08dcfe4b75d9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?V2wzcGdZSS84MXN1OW0zRTl2M3lnK3lBQmd4Rmd6QnhMeEVScXQweGdkOTBH?= =?utf-8?B?SEhjV3FuZG9iWnNhM1JnbjFxSjJuTEpSMlZZWjROTXhJSXlGUms3VmhJRWZJ?= =?utf-8?B?ZVF1cVlGSVdac0Z5Rm5JZUhIaG4zWndkOGtWK1NLNjYyNEcyMlJ3VTNERW1r?= =?utf-8?B?RVVmU2ZUbnhYc2Z4VHJqVEJiLy9JOWw4ZzJWS3BvRkU4Y2hBcGNHVGg4cDRz?= =?utf-8?B?Q2Q2cXJJWFBXeU5ReStSMmlYSjVsSE1teGhEWEhvTHd1Wit2N1BFREFwdTNG?= =?utf-8?B?UFU0d2FldDRyMkRoTUw5NXJRWm5ka1VBQzB6WmlxSkNSS2JucGFEdWwxOXVl?= =?utf-8?B?b3VZYlVndWU4UFJhVS95R3F1RFM1U2VCQUwxYi80SjlaeW5wdjRDK0xLSkpI?= =?utf-8?B?OS9zT2FWS21KZ3FpR1RuaHR3QTVzVkNJa21oN3p1ZDNUNC9KbmtJUGM3dHhh?= =?utf-8?B?bUJEMTcybFJTS2tVenZwN0NsSGVSZkFtS21wZFZmZ1hlT01kSTM1RDlFaVhr?= =?utf-8?B?ZmtLS2I0S0JnekhaN2xXSERDR3BLSU5STjEyZHRnYnZXVDNUajgzdXgvbFVI?= =?utf-8?B?c3pHTEJsbC94TjZKUVFadUp3RlgxbFV2QVgwWDJJV3djWWdlY2NYNEMzL2VZ?= =?utf-8?B?bUd3RU0wSHdZTUZrRUY2TzZGZnA5TnplS0l4VzkwUkZpbG9aSEJPQXVTNjQ1?= =?utf-8?B?dDZqYis2MGwwU0hmZys0RHBwUGsreGpNaDdHMXpYV0Qxc3ozKzlha3QzNm5n?= =?utf-8?B?bkd5cmMrcjdJbXNhZHFkaE05KzVxSFl0NGpPSzBKVDFpZ3R4R2hVZncrbzZE?= =?utf-8?B?R1EwTzZlZ3N0d3ZEaWxkc00zclpuUVhaTjBtNXYzRFQ3dEEzbm1wTHdCRkg5?= =?utf-8?B?dmdVN3d5TEE1aXN2a3RXbVI0aHM0cWZEUjZJSFVLalMydlJYN1MwR1dRM1hz?= =?utf-8?B?ejN5L3laeit2Rlh5cWZKVVhsU2FaaXQzMGlnRUpkOG8wcDJuL0twcngxbmJh?= =?utf-8?B?d3M4R3A0Vjh3ZXBSSS9rMWdXOG1HNnFnQjc2NGVSYnhvYlV3TkhVYTQrRDJJ?= =?utf-8?B?bEdYYVpKNjZ3RnloNEN0SFByMHM0eDZSSmFWaDZaTG5XYURLOWFUUVBtVkpL?= =?utf-8?B?eG1XUHdpcVdtOE9hd09VMXNpT0VwbHlEUklnWHNNNzBtOGZRZFB2UG9qUlhP?= =?utf-8?B?eFBxWEJ4ejVwcmJNTTdraEpqd1JPbU5adFFKU3lnb2RuMWhWdndaMExsOWcz?= =?utf-8?B?WGhWTis4VGZMNkNmYWFDWmcyVmgrZTRQckk0d2Z1bzlzWExtS1lod0Jzb2dr?= =?utf-8?B?d0dhR1NOcERFaUFEZWVwU01UYlNGR1RvSFdOdXdQZWxjUUxhS0pjVkRRWVdD?= =?utf-8?B?bHlaTUkrdnNsanVYY2xUckdVZGtyODhaVFJ2S3NxNlN2SGplZnV1dk1JVXZD?= =?utf-8?B?SG1HdVRXR2VxNFJaOHMrM3BiZUpYRnRjNE9uNlpnVG1UUjBXZzl6ZTJ2Ymdk?= =?utf-8?B?cGU0N2ZlL1orLzdkQ1FqTXlUVTNIbjBsODFhM1pGOFJVcmV1YldpWWdLVkRF?= =?utf-8?B?MUpmbUNVN0hlcDdicUcvSjJhVGxna1BHc05ReForeitHOFc1QUdFamNOTUlx?= =?utf-8?B?bVJMaDdaekdVaW5KTHpsMHI2aVV1c2w0SWllWCtPRXgxRS9TbmgxQXJYaWhF?= =?utf-8?B?L1Q5dkJsd3V4SHc2dXdGczlNckRFaEpjZ1dUYXpxL2NFdjNTajUyeU13VmJz?= =?utf-8?B?UE1uVkhsWG1QbHgxTk5seisvOEFJazJOMnJZTEJYRWs4RndFUnNZdGMvRnky?= =?utf-8?Q?HBmSy7z9RJF7+LEdEQ7IwNZvfVISC0RLmsmJg=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cEl5Z3N6WWQ0cHNZZ0p2alFRWTNYTXlCRHgzVi92M3NGUzVuenNvS3g2eHI4?= =?utf-8?B?ZStUQ1U3dVZCU3ROVS84UE8rTmwvekg1ejMrZTBMejBnSzlPYjlKTnR5WDZa?= =?utf-8?B?QXkxVHBJWlh4dnZNTEI0MGNPS3k1NzVjU3p4ZHF4QVd5b294LzE5S2RONjlt?= =?utf-8?B?Y0RxODVEQjgwMWw1ZWNDclVtSURjZDUzVVJVc3ZSTTdJejNiQmJpMjNhUUZV?= =?utf-8?B?cVpoVFNSWFdDazRsWXY4RjB2eTBHVTVnNVg1cXVLNFpKZ2xvVkYzUzFzUGM3?= =?utf-8?B?STFaV0dyZElXQ3BlRXhnMldFZFdHS3VFVGttdDBuUHhpTXVjRTE2bmRhaTlT?= =?utf-8?B?aW14MldycFZXeTg4SXZoR1lLcndxcmZUdFUvcWlLcElETDhrVzdzUGhOR0pq?= =?utf-8?B?Unh4UFYwdWYwb1BMV1dEdkZPbzFtRGRSM0V5bVZVRlRhQnlvV0dRUUVuM1pS?= =?utf-8?B?aTlnZkoyZjV5OVhqbE1XYUhtMHJoSGpkckYvWHBPQU1uaWxpLy9Oc3p2Y2pY?= =?utf-8?B?Uy9WZVZaeXFRendGM3BsRlNNbzY2WTkzY3FNUGptTVBhRy9jQ0JseUJLQkg0?= =?utf-8?B?ekk2d2UybkZXblNJZWpYYjNrY3B5NVVjV283OFdOSFRHSmxaZjdXc3Z4UlJj?= =?utf-8?B?MVVzRWt2Ym1vVEM3T1BmckcwZElxYlNkZW11UXl2SXA5Q3Q0dHlFY0picE83?= =?utf-8?B?bUZzRW9nRjVZTlhVODBIWHZOcmhrYWVTT1ZDeUpEcnRWMU5GdmxQK2NNRlQr?= =?utf-8?B?U2VuYW41K2M2MDJhQWpMMGRDYW44ZTlNM2VXeXk4OHdEQ1ppSWQ1bkVWM3oz?= =?utf-8?B?dWRocmhrTzZuZFFBaDlab1pzVEdxN2htWjdzdXQwRTNwNGd4bnVtNGpEZ1NF?= =?utf-8?B?dGpzRXpmSWtKZk1jSHJabE9NNkhkZmFySHhUS0YwbXFwUHBtbGtQN1crTEwv?= =?utf-8?B?YStUOG1NOVl1ZkJwbSt4WGFiNEhkVkwxc0lvd1A1anFjM2hXM21HRUJvSk9L?= =?utf-8?B?TlF5TzkwdDlvZmNLbHVhWmxtRGNwUDJ5R3RlWlQxTDI5UERiZEdPc0V6bEtW?= =?utf-8?B?OWJvNmx3M1JMbDYzS0llS2ZQZEZCS0l0b1BIYVNzQjg3NjBlSWlOTEZvTTUv?= =?utf-8?B?TXpUUzRZV2V3RGpsM0h6Qlh3UmpYTitSdzhPdlNjWXlNd3lFQnA1UHNLbDF5?= =?utf-8?B?V2JzYUNkejhtaUIrU1hjWURnREttVGFiamw1cFZwbk5iYzNxOC90Y0FuaXdj?= =?utf-8?B?QUxkMyt3NWtyWndaRnlmNGY5RjNHOTZWalpHRmZQMFhReDVsUTRlYzVrdnFC?= =?utf-8?B?cm1GNXBOeSthUzlNaCtnblk1cDk0N0R6ODBCRHQxSjNGOXRRaGV6a0c3NWRm?= =?utf-8?B?MWNQd3RCZTUyL3JNSlRBZ2VjMnhEODJaWE1lVEdhM2RMd1N3N0lrY1dJMjZ6?= =?utf-8?B?R2lPN0IrMmhORk5kM0ZOcFcrbENPdlYyRS9DK3l4S21zSVlBSWxTSkRVeWhh?= =?utf-8?B?SnFhdlhtc2tQSXlaMW5iVVFLRUJzTzB6VnZZbXc3a1BqNGZPRmkrOVkvdDNs?= =?utf-8?B?WEJwTU5WUkdOaGVxTlNpb1BzV0R3Y25FaWZTN1NMNCtwWUgvbVp6Z2lGTnJl?= =?utf-8?B?SEJOcXZuM0lSeU13U1RQRHpvQXI1OEJxNnROdmVpUS9GTWdac096TXo5V3ps?= =?utf-8?B?bmc2WjF6cHdrcFlOWHpaWXJ4N1NvUVF6cHRtTjVMVCt1WUZreFZpUm5QYW53?= =?utf-8?B?Vlh5RFQwbU9senRzMVdhclFLRTI1UDc1ai83REdSSUNxWFBoMGNNYW9FanFJ?= =?utf-8?B?N1VHTndLUTM3V0dJU0VxRGFLdHIyRWF5amZFQ1N6MTdyQVJUbWpUK0tZZndx?= =?utf-8?B?SUJjQmZ2WXlWMlc2eGlrVDJCTHlXUllHZGRtbFVucVFsbE1OTUpzOUZ1bUtI?= =?utf-8?B?bFpra1lac3BMaUpiRTlNeGRyVkQzUzVOQ0dVR01qK0xQWFk2U1VwS1NlbkI5?= =?utf-8?B?NjZRY2JlTG5BcWsvaUxkOVpuTlh4NEZIWExjdVQ1Y2hLVVh1WWJtMjk2NWx1?= =?utf-8?B?bTRwUFBOb01mOTUwSC9ValppQ1luS2JRaG93ZUU3d2VkdGx5blBJSzZrQXI2?= =?utf-8?Q?Pwqw=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 303d2e37-0cad-4648-a7ba-08dcfe4b75d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2024 10:12:03.2725 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PI7rLX7FvMHLszbTCBz50MR3du7lPzq/kVboo5kKK4d4N+wo1g6qHmRU2nQ9IwHbGeptaV+a5MHWRARgTLDM+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR18MB3696 X-Proofpoint-GUID: u05NEclWqgiHE2vdF3xRR8UHIyvZy6jF X-Proofpoint-ORIG-GUID: u05NEclWqgiHE2vdF3xRR8UHIyvZy6jF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.687,Hydra:6.0.235,FMLib:17.0.607.475 definitions=2020-10-13_15,2020-10-13_02,2020-04-07_01 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 PiBUaGlzIGNvbW1pdCBhZGRzIFNNMiBlbGxpcHRpYyBjdXJ2ZSBiYXNlZCBhc3ltbWV0cmljDQo+ IGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gdG8gdGhlIEludGVsIFF1aWNrQXNzaXN0DQo+IFRl Y2hub2xvZ3kgUE1ELg0KPiANCj4gRGVwZW5kcy1vbjogcGF0Y2gtMTQ3OTAwICgiW3YyXSBjcnlw dG8vcWF0OiBmaXggZWNkc2Egc2Vzc2lvbiBoYW5kbGluZyIpDQo+IA0KPiBTaWduZWQtb2ZmLWJ5 OiBBcmthZGl1c3ogS3VzenRhbCA8YXJrYWRpdXN6eC5rdXN6dGFsQGludGVsLmNvbT4NCg0KVXBk YXRlIHFhdC5pbmkgZmlsZSBhbHNvLg0KDQo+IC0tLQ0KPiAgZG9jL2d1aWRlcy9yZWxfbm90ZXMv cmVsZWFzZV8yNF8xMS5yc3QgICAgICAgIHwgICA0ICsNCj4gIC4uLi9jb21tb24vcWF0L3FhdF9h ZGYvaWNwX3FhdF9md19tbXBfaWRzLmggICB8ICAgMyArDQo+ICBkcml2ZXJzL2NvbW1vbi9xYXQv cWF0X2FkZi9xYXRfcGtlLmggICAgICAgICAgfCAgMjAgKysrDQo+ICBkcml2ZXJzL2NyeXB0by9x YXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjQuYyAgfCAgNzIgKysrKysrKystDQo+ICBkcml2ZXJz L2NyeXB0by9xYXQvcWF0X2FzeW0uYyAgICAgICAgICAgICAgICAgfCAxNDAgKysrKysrKysrKysr KysrKystDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDIzMiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjRf MTEucnN0DQo+IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yNF8xMS5yc3QNCj4gaW5k ZXggZWU5ZTJjZWEzYy4uMGIyZjFlNzVkMyAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9yZWxf bm90ZXMvcmVsZWFzZV8yNF8xMS5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVs ZWFzZV8yNF8xMS5yc3QNCj4gQEAgLTI1MSw2ICsyNTEsMTAgQEAgTmV3IEZlYXR1cmVzDQo+ICAg IEFkZGVkIGFiaWxpdHkgZm9yIG5vZGUgdG8gYWR2ZXJ0aXNlIGFuZCB1cGRhdGUgbXVsdGlwbGUg eHN0YXQgY291bnRlcnMsDQo+ICAgIHRoYXQgY2FuIGJlIHJldHJpZXZlZCB1c2luZyBgYHJ0ZV9n cmFwaF9jbHVzdGVyX3N0YXRzX2dldGBgLg0KPiANCj4gKyogKipVcGRhdGVkIHRoZSBRdWlja0Fz c2lzdCBUZWNobm9sb2d5IChRQVQpIENyeXB0byBQTUQuKioNCj4gKw0KPiArICAqIEFkZGVkIFNN MiBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIGFsZ29yaXRobXMuDQo+ICsNCj4gDQo+ICBSZW1v dmVkIEl0ZW1zDQo+ICAtLS0tLS0tLS0tLS0tDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1v bi9xYXQvcWF0X2FkZi9pY3BfcWF0X2Z3X21tcF9pZHMuaA0KPiBiL2RyaXZlcnMvY29tbW9uL3Fh dC9xYXRfYWRmL2ljcF9xYXRfZndfbW1wX2lkcy5oDQo+IGluZGV4IDYzMGM2ZTFhOWIuLmFhNDk2 MTJjYTEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tbW9uL3FhdC9xYXRfYWRmL2ljcF9xYXRf ZndfbW1wX2lkcy5oDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9uL3FhdC9xYXRfYWRmL2ljcF9xYXRf ZndfbW1wX2lkcy5oDQo+IEBAIC0xNTQyLDYgKzE1NDIsOSBAQCBpY3BfcWF0X2Z3X21tcF9lY2Rz YV92ZXJpZnlfZ2ZwXzUyMV9pbnB1dDo6aW4gaW4NCj4gQGVuZGxpbmsNCj4gICAqIEBsaSBubyBv dXRwdXQgcGFyYW1ldGVycw0KPiAgICovDQo+IA0KPiArI2RlZmluZSBQS0VfRUNTTTJfRU5DUllQ VElPTiAweDI1MjIxNzIwDQo+ICsjZGVmaW5lIFBLRV9FQ1NNMl9ERUNSWVBUSU9OIDB4MjAxNzE2 ZTYNCj4gKw0KPiAgI2RlZmluZSBQS0VfTElWRU5FU1MgMHgwMDAwMDAwMQ0KPiAgLyoqPCBGdW5j dGlvbmFsaXR5IElEIGZvciBQS0VfTElWRU5FU1MNCj4gICAqIEBsaSAwIGlucHV0IHBhcmFtZXRl cihzKQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jb21tb24vcWF0L3FhdF9hZGYvcWF0X3BrZS5o DQo+IGIvZHJpdmVycy9jb21tb24vcWF0L3FhdF9hZGYvcWF0X3BrZS5oDQo+IGluZGV4IGY4ODkz MmEyNzUuLmFjMDUxZTk2NWQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tbW9uL3FhdC9xYXRf YWRmL3FhdF9wa2UuaA0KPiArKysgYi9kcml2ZXJzL2NvbW1vbi9xYXQvcWF0X2FkZi9xYXRfcGtl LmgNCj4gQEAgLTMzNCw0ICszMzQsMjQgQEAgZ2V0X3NtMl9lY2RzYV92ZXJpZnlfZnVuY3Rpb24o dm9pZCkNCj4gIAlyZXR1cm4gcWF0X2Z1bmN0aW9uOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBzdHJ1 Y3QgcWF0X2FzeW1fZnVuY3Rpb24NCj4gK2dldF9zbTJfZW5jcnlwdGlvbl9mdW5jdGlvbih2b2lk KQ0KPiArew0KPiArCXN0cnVjdCBxYXRfYXN5bV9mdW5jdGlvbiBxYXRfZnVuY3Rpb24gPSB7DQo+ ICsJCVBLRV9FQ1NNMl9FTkNSWVBUSU9OLCAzMg0KPiArCX07DQo+ICsNCj4gKwlyZXR1cm4gcWF0 X2Z1bmN0aW9uOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHFhdF9hc3ltX2Z1bmN0aW9u DQo+ICtnZXRfc20yX2RlY3J5cHRpb25fZnVuY3Rpb24odm9pZCkNCj4gK3sNCj4gKwlzdHJ1Y3Qg cWF0X2FzeW1fZnVuY3Rpb24gcWF0X2Z1bmN0aW9uID0gew0KPiArCQlQS0VfRUNTTTJfREVDUllQ VElPTiwgMzINCj4gKwl9Ow0KPiArDQo+ICsJcmV0dXJuIHFhdF9mdW5jdGlvbjsNCj4gK30NCj4g Kw0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9j cnlwdG9fcG1kX2dlbjQuYw0KPiBiL2RyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19w bWRfZ2VuNC5jDQo+IGluZGV4IDZhNWQ2ZTc4YjkuLjQ5M2YzMzIyOWUgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuNC5jDQo+ICsrKyBiL2Ry aXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuNC5jDQo+IEBAIC0xMTUsNiAr MTE1LDM4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMNCj4gcWF0 X3N5bV9jcnlwdG9fY2Fwc19nZW40W10gPSB7DQo+ICAJUlRFX0NSWVBUT0RFVl9FTkRfT0ZfQ0FQ QUJJTElUSUVTX0xJU1QoKQ0KPiAgfTsNCj4gDQo+ICtzdGF0aWMgc3RydWN0IHJ0ZV9jcnlwdG9k ZXZfY2FwYWJpbGl0aWVzIHFhdF9hc3ltX2NyeXB0b19jYXBzX2dlbjRbXSA9IHsNCj4gKwlRQVRf QVNZTV9DQVAoTU9ERVgsDQo+ICsJCTAsIDEsIDUxMiwgMSksDQo+ICsJUUFUX0FTWU1fQ0FQKE1P RElOViwNCj4gKwkJMCwgMSwgNTEyLCAxKSwNCj4gKwlRQVRfQVNZTV9DQVAoUlNBLA0KPiArCQkJ KCgxIDw8IFJURV9DUllQVE9fQVNZTV9PUF9TSUdOKSB8DQo+ICsJCQkoMSA8PCBSVEVfQ1JZUFRP X0FTWU1fT1BfVkVSSUZZKSB8DQo+ICsJCQkoMSA8PCBSVEVfQ1JZUFRPX0FTWU1fT1BfRU5DUllQ VCkgfA0KPiArCQkJKDEgPDwgUlRFX0NSWVBUT19BU1lNX09QX0RFQ1JZUFQpKSwNCj4gKwkJCTY0 LCA1MTIsIDY0KSwNCj4gKwl7CS8qIFNNMiAqLw0KPiArCQkub3AgPSBSVEVfQ1JZUFRPX09QX1RZ UEVfQVNZTU1FVFJJQywNCj4gKwkJey5hc3ltID0gew0KPiArCQkJLnhmb3JtX2NhcGEgPSB7DQo+ ICsJCQkJLnhmb3JtX3R5cGUgPQ0KPiBSVEVfQ1JZUFRPX0FTWU1fWEZPUk1fU00yLA0KPiArCQkJ CS5vcF90eXBlcyA9DQo+ICsJCQkJKCgxIDw8IFJURV9DUllQVE9fQVNZTV9PUF9TSUdOKSB8DQo+ ICsJCQkJICgxIDw8IFJURV9DUllQVE9fQVNZTV9PUF9WRVJJRlkpIHwNCj4gKwkJCQkgKDEgPDwg UlRFX0NSWVBUT19BU1lNX09QX0VOQ1JZUFQpIHwNCj4gKwkJCQkgKDEgPDwgUlRFX0NSWVBUT19B U1lNX09QX0RFQ1JZUFQpKSwNCj4gKwkJCQkub3BfY2FwYSA9IHsNCj4gKwkJCQkJW1JURV9DUllQ VE9fQVNZTV9PUF9FTkNSWVBUXSA9DQo+ICgxIDw8IFJURV9DUllQVE9fU00yX1BBUlRJQUwpLA0K PiArCQkJCQlbUlRFX0NSWVBUT19BU1lNX09QX0RFQ1JZUFRdID0NCj4gKDEgPDwgUlRFX0NSWVBU T19TTTJfUEFSVElBTCksDQo+ICsJCQkJfSwNCj4gKwkJCX0sDQo+ICsJCX0NCj4gKwkJfQ0KPiAr CX0sDQo+ICsJUlRFX0NSWVBUT0RFVl9FTkRfT0ZfQ0FQQUJJTElUSUVTX0xJU1QoKQ0KPiArfTsN Cj4gKw0KPiAgc3RhdGljIGludA0KPiAgcWF0X3N5bV9jcnlwdG9fY2FwX2dldF9nZW40KHN0cnVj dCBxYXRfY3J5cHRvZGV2X3ByaXZhdGUgKmludGVybmFscywNCj4gIAkJCWNvbnN0IGNoYXIgKmNh cGFfbWVtel9uYW1lLA0KPiBAQCAtMTU3LDYgKzE4OSw0NCBAQCBxYXRfc3ltX2NyeXB0b19jYXBf Z2V0X2dlbjQoc3RydWN0DQo+IHFhdF9jcnlwdG9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzLA0KPiAg CXJldHVybiAwOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4gK3FhdF9hc3ltX2NyeXB0b19j YXBfZ2V0X2dlbjQoc3RydWN0IHFhdF9jcnlwdG9kZXZfcHJpdmF0ZSAqaW50ZXJuYWxzLA0KPiAr CQkJY29uc3QgY2hhciAqY2FwYV9tZW16X25hbWUsDQo+ICsJCQljb25zdCB1aW50MTZfdCBfX3J0 ZV91bnVzZWQgc2xpY2VfbWFwKQ0KPiArew0KPiArCWNvbnN0IHVpbnQzMl90IHNpemUgPSBzaXpl b2YocWF0X2FzeW1fY3J5cHRvX2NhcHNfZ2VuNCk7DQo+ICsJdWludDMyX3QgaTsNCj4gKw0KPiAr CWludGVybmFscy0+Y2FwYV9teiA9IHJ0ZV9tZW16b25lX2xvb2t1cChjYXBhX21lbXpfbmFtZSk7 DQo+ICsJaWYgKGludGVybmFscy0+Y2FwYV9teiA9PSBOVUxMKSB7DQo+ICsJCWludGVybmFscy0+ Y2FwYV9teiA9DQo+IHJ0ZV9tZW16b25lX3Jlc2VydmUoY2FwYV9tZW16X25hbWUsDQo+ICsJCQkJ c2l6ZSwgcnRlX3NvY2tldF9pZCgpLCAwKTsNCj4gKwkJaWYgKGludGVybmFscy0+Y2FwYV9teiA9 PSBOVUxMKSB7DQo+ICsJCQlRQVRfTE9HKERFQlVHLA0KPiArCQkJCSJFcnJvciBhbGxvY2F0aW5n IG1lbXpvbmUgZm9yIGNhcGFiaWxpdGllcyIpOw0KPiArCQkJcmV0dXJuIC0xOw0KPiArCQl9DQo+ ICsJfQ0KPiArDQo+ICsJc3RydWN0IHJ0ZV9jcnlwdG9kZXZfY2FwYWJpbGl0aWVzICphZGRyID0N Cj4gKwkJCShzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMgKikNCj4gKwkJCQlpbnRl cm5hbHMtPmNhcGFfbXotPmFkZHI7DQo+ICsJY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfY2Fw YWJpbGl0aWVzICpjYXBhYmlsaXRpZXMgPQ0KPiArCQlxYXRfYXN5bV9jcnlwdG9fY2Fwc19nZW40 Ow0KPiArCWNvbnN0IHVpbnQzMl90IGNhcGFfbnVtID0NCj4gKwkJc2l6ZSAvIHNpemVvZihzdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMpOw0KPiArCXVpbnQzMl90IGN1cnJfY2FwYSA9 IDA7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgY2FwYV9udW07IGkrKykgew0KPiArCQltZW1j cHkoYWRkciArIGN1cnJfY2FwYSwgY2FwYWJpbGl0aWVzICsgaSwNCj4gKwkJCXNpemVvZihzdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMpKTsNCj4gKwkJY3Vycl9jYXBhKys7DQo+ICsJ fQ0KPiArCWludGVybmFscy0+cWF0X2Rldl9jYXBhYmlsaXRpZXMgPSBpbnRlcm5hbHMtPmNhcGFf bXotPmFkZHI7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIF9fcnRl X2Fsd2F5c19pbmxpbmUgdm9pZA0KPiAgZW5xdWV1ZV9vbmVfYWVhZF9qb2JfZ2VuNChzdHJ1Y3Qg cWF0X3N5bV9zZXNzaW9uICpjdHgsDQo+ICAJc3RydWN0IGljcF9xYXRfZndfbGFfYnVsa19yZXEg KnJlcSwNCj4gQEAgLTU0Myw3ICs2MTMsNyBAQCBSVEVfSU5JVChxYXRfYXN5bV9jcnlwdG9fZ2Vu NF9pbml0KQ0KPiAgCQkJJnFhdF9hc3ltX2NyeXB0b19vcHNfZ2VuMTsNCj4gIAlxYXRfYXN5bV9n ZW5fZGV2X29wc1tRQVRfVlFBVF0uZ2V0X2NhcGFiaWxpdGllcyA9DQo+ICAJCXFhdF9hc3ltX2dl bl9kZXZfb3BzW1FBVF9HRU40XS5nZXRfY2FwYWJpbGl0aWVzID0NCj4gLQkJCXFhdF9hc3ltX2Ny eXB0b19jYXBfZ2V0X2dlbjE7DQo+ICsJCQlxYXRfYXN5bV9jcnlwdG9fY2FwX2dldF9nZW40Ow0K PiAgCXFhdF9hc3ltX2dlbl9kZXZfb3BzW1FBVF9WUUFUXS5nZXRfZmVhdHVyZV9mbGFncyA9DQo+ ICAJCXFhdF9hc3ltX2dlbl9kZXZfb3BzW1FBVF9HRU40XS5nZXRfZmVhdHVyZV9mbGFncyA9DQo+ ICAJCQlxYXRfYXN5bV9jcnlwdG9fZmVhdHVyZV9mbGFnc19nZXRfZ2VuMTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY3J5cHRvL3FhdC9xYXRfYXN5bS5jIGIvZHJpdmVycy9jcnlwdG8vcWF0L3Fh dF9hc3ltLmMNCj4gaW5kZXggZGZjNTJkMTI4Ni4uMjQ1OWIwMjIxNSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3ltLmMNCj4gKysrIGIvZHJpdmVycy9jcnlwdG8vcWF0 L3FhdF9hc3ltLmMNCj4gQEAgLTkzMyw2ICs5MzMsMTUgQEAgc20yX2VjZHNhX3NpZ25fc2V0X2lu cHV0KHN0cnVjdA0KPiBpY3BfcWF0X2Z3X3BrZV9yZXF1ZXN0ICpxYXRfcmVxLA0KPiAgCXFhdF9y ZXEtPmlucHV0X3BhcmFtX2NvdW50ID0gMzsNCj4gIAlxYXRfcmVxLT5vdXRwdXRfcGFyYW1fY291 bnQgPSAyOw0KPiANCj4gKwlIRVhEVU1QKCJTTTIgSyB0ZXN0IiwgYXN5bV9vcC0+c20yLmsuZGF0 YSwNCj4gKwkJY29va2llLT5hbGdfYnl0ZXNpemUpOw0KPiArCUhFWERVTVAoIlNNMiBLIiwgY29v a2llLT5pbnB1dF9hcnJheVswXSwNCj4gKwkJY29va2llLT5hbGdfYnl0ZXNpemUpOw0KPiArCUhF WERVTVAoIlNNMiBtc2ciLCBjb29raWUtPmlucHV0X2FycmF5WzFdLA0KPiArCQljb29raWUtPmFs Z19ieXRlc2l6ZSk7DQo+ICsJSEVYRFVNUCgiU00yIHBrZXkiLCBjb29raWUtPmlucHV0X2FycmF5 WzJdLA0KPiArCQljb29raWUtPmFsZ19ieXRlc2l6ZSk7DQo+ICsNCj4gIAlyZXR1cm4gUlRFX0NS WVBUT19PUF9TVEFUVVNfU1VDQ0VTUzsNCj4gIH0NCj4gDQo+IEBAIC05ODMsNiArOTkyLDExNCBA QCBzbTJfZWNkc2Ffc2lnbl9jb2xsZWN0KHN0cnVjdCBydGVfY3J5cHRvX2FzeW1fb3ANCj4gKmFz eW1fb3AsDQo+ICAJcmV0dXJuIFJURV9DUllQVE9fT1BfU1RBVFVTX1NVQ0NFU1M7DQo+ICB9DQo+ IA0KPiArc3RhdGljIGludA0KPiArc20yX2VuY3J5cHRpb25fc2V0X2lucHV0KHN0cnVjdCBpY3Bf cWF0X2Z3X3BrZV9yZXF1ZXN0ICpxYXRfcmVxLA0KPiArCXN0cnVjdCBxYXRfYXN5bV9vcF9jb29r aWUgKmNvb2tpZSwNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b19hc3ltX29wICphc3ltX29w LA0KPiArCWNvbnN0IHN0cnVjdCBydGVfY3J5cHRvX2FzeW1feGZvcm0gKnhmb3JtKQ0KPiArew0K PiArCWNvbnN0IHN0cnVjdCBxYXRfYXN5bV9mdW5jdGlvbiBxYXRfZnVuY3Rpb24gPQ0KPiArCQln ZXRfc20yX2VuY3J5cHRpb25fZnVuY3Rpb24oKTsNCj4gKwljb25zdCB1aW50MzJfdCBxYXRfZnVu Y19hbGlnbnNpemUgPQ0KPiArCQlxYXRfZnVuY3Rpb24uYnl0ZXNpemU7DQo+ICsNCj4gKwlTRVRf UEtFX0xOKGFzeW1fb3AtPnNtMi5rLCBxYXRfZnVuY19hbGlnbnNpemUsIDApOw0KPiArCVNFVF9Q S0VfTE4oeGZvcm0tPmVjLnEueCwgcWF0X2Z1bmNfYWxpZ25zaXplLCAxKTsNCj4gKwlTRVRfUEtF X0xOKHhmb3JtLT5lYy5xLnksIHFhdF9mdW5jX2FsaWduc2l6ZSwgMik7DQo+ICsNCj4gKwljb29r aWUtPmFsZ19ieXRlc2l6ZSA9IHFhdF9mdW5jdGlvbi5ieXRlc2l6ZTsNCj4gKwljb29raWUtPnFh dF9mdW5jX2FsaWduc2l6ZSA9IHFhdF9mdW5jdGlvbi5ieXRlc2l6ZTsNCj4gKwlxYXRfcmVxLT5w a2VfaGRyLmNkX3BhcnMuZnVuY19pZCA9IHFhdF9mdW5jdGlvbi5mdW5jX2lkOw0KPiArCXFhdF9y ZXEtPmlucHV0X3BhcmFtX2NvdW50ID0gMzsNCj4gKwlxYXRfcmVxLT5vdXRwdXRfcGFyYW1fY291 bnQgPSA0Ow0KPiArDQo+ICsJSEVYRFVNUCgiU00yIEsiLCBjb29raWUtPmlucHV0X2FycmF5WzBd LA0KPiArCQlxYXRfZnVuY19hbGlnbnNpemUpOw0KPiArCUhFWERVTVAoIlNNMiBRLngiLCBjb29r aWUtPmlucHV0X2FycmF5WzFdLA0KPiArCQlxYXRfZnVuY19hbGlnbnNpemUpOw0KPiArCUhFWERV TVAoIlNNMiBRLnkiLCBjb29raWUtPmlucHV0X2FycmF5WzJdLA0KPiArCQlxYXRfZnVuY19hbGln bnNpemUpOw0KPiArDQo+ICsJcmV0dXJuIFJURV9DUllQVE9fT1BfU1RBVFVTX1NVQ0NFU1M7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyB1aW50OF90DQo+ICtzbTJfZW5jcnlwdGlvbl9jb2xsZWN0KHN0 cnVjdCBydGVfY3J5cHRvX2FzeW1fb3AgKmFzeW1fb3AsDQo+ICsJCWNvbnN0IHN0cnVjdCBxYXRf YXN5bV9vcF9jb29raWUgKmNvb2tpZSkNCj4gK3sNCj4gKwl1aW50MzJfdCBhbGdfYnl0ZXNpemUg PSBjb29raWUtPmFsZ19ieXRlc2l6ZTsNCj4gKw0KPiArCXJ0ZV9tZW1jcHkoYXN5bV9vcC0+c20y LmMxLnguZGF0YSwgY29va2llLT5vdXRwdXRfYXJyYXlbMF0sDQo+IGFsZ19ieXRlc2l6ZSk7DQo+ ICsJcnRlX21lbWNweShhc3ltX29wLT5zbTIuYzEueS5kYXRhLCBjb29raWUtPm91dHB1dF9hcnJh eVsxXSwNCj4gYWxnX2J5dGVzaXplKTsNCj4gKwlydGVfbWVtY3B5KGFzeW1fb3AtPnNtMi5rcC54 LmRhdGEsIGNvb2tpZS0+b3V0cHV0X2FycmF5WzJdLA0KPiBhbGdfYnl0ZXNpemUpOw0KPiArCXJ0 ZV9tZW1jcHkoYXN5bV9vcC0+c20yLmtwLnkuZGF0YSwgY29va2llLT5vdXRwdXRfYXJyYXlbM10s DQo+IGFsZ19ieXRlc2l6ZSk7DQo+ICsJYXN5bV9vcC0+c20yLmMxLngubGVuZ3RoID0gYWxnX2J5 dGVzaXplOw0KPiArCWFzeW1fb3AtPnNtMi5jMS55Lmxlbmd0aCA9IGFsZ19ieXRlc2l6ZTsNCj4g Kwlhc3ltX29wLT5zbTIua3AueC5sZW5ndGggPSBhbGdfYnl0ZXNpemU7DQo+ICsJYXN5bV9vcC0+ c20yLmtwLnkubGVuZ3RoID0gYWxnX2J5dGVzaXplOw0KPiArDQo+ICsJSEVYRFVNUCgiYzFbeDFd IiwgY29va2llLT5vdXRwdXRfYXJyYXlbMF0sDQo+ICsJCWFsZ19ieXRlc2l6ZSk7DQo+ICsJSEVY RFVNUCgiYzFbeV0iLCBjb29raWUtPm91dHB1dF9hcnJheVsxXSwNCj4gKwkJYWxnX2J5dGVzaXpl KTsNCj4gKwlIRVhEVU1QKCJrcFt4XSIsIGNvb2tpZS0+b3V0cHV0X2FycmF5WzJdLA0KPiArCQlh bGdfYnl0ZXNpemUpOw0KPiArCUhFWERVTVAoImtwW3ldIiwgY29va2llLT5vdXRwdXRfYXJyYXlb M10sDQo+ICsJCWFsZ19ieXRlc2l6ZSk7DQo+ICsJcmV0dXJuIFJURV9DUllQVE9fT1BfU1RBVFVT X1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKw0KPiArc3RhdGljIGludA0KPiArc20yX2RlY3J5cHRp b25fc2V0X2lucHV0KHN0cnVjdCBpY3BfcWF0X2Z3X3BrZV9yZXF1ZXN0ICpxYXRfcmVxLA0KPiAr CXN0cnVjdCBxYXRfYXN5bV9vcF9jb29raWUgKmNvb2tpZSwNCj4gKwljb25zdCBzdHJ1Y3QgcnRl X2NyeXB0b19hc3ltX29wICphc3ltX29wLA0KPiArCWNvbnN0IHN0cnVjdCBydGVfY3J5cHRvX2Fz eW1feGZvcm0gKnhmb3JtKQ0KPiArew0KPiArCWNvbnN0IHN0cnVjdCBxYXRfYXN5bV9mdW5jdGlv biBxYXRfZnVuY3Rpb24gPQ0KPiArCQlnZXRfc20yX2RlY3J5cHRpb25fZnVuY3Rpb24oKTsNCj4g Kwljb25zdCB1aW50MzJfdCBxYXRfZnVuY19hbGlnbnNpemUgPQ0KPiArCQlxYXRfZnVuY3Rpb24u Ynl0ZXNpemU7DQo+ICsNCj4gKwlTRVRfUEtFX0xOKHhmb3JtLT5lYy5wa2V5LCBxYXRfZnVuY19h bGlnbnNpemUsIDApOw0KPiArCVNFVF9QS0VfTE4oYXN5bV9vcC0+c20yLmMxLngsIHFhdF9mdW5j X2FsaWduc2l6ZSwgMSk7DQo+ICsJU0VUX1BLRV9MTihhc3ltX29wLT5zbTIuYzEueSwgcWF0X2Z1 bmNfYWxpZ25zaXplLCAyKTsNCj4gKw0KPiArCWNvb2tpZS0+YWxnX2J5dGVzaXplID0gcWF0X2Z1 bmN0aW9uLmJ5dGVzaXplOw0KPiArCWNvb2tpZS0+cWF0X2Z1bmNfYWxpZ25zaXplID0gcWF0X2Z1 bmN0aW9uLmJ5dGVzaXplOw0KPiArCXFhdF9yZXEtPnBrZV9oZHIuY2RfcGFycy5mdW5jX2lkID0g cWF0X2Z1bmN0aW9uLmZ1bmNfaWQ7DQo+ICsJcWF0X3JlcS0+aW5wdXRfcGFyYW1fY291bnQgPSAz Ow0KPiArCXFhdF9yZXEtPm91dHB1dF9wYXJhbV9jb3VudCA9IDI7DQo+ICsNCj4gKwlIRVhEVU1Q KCJkIiwgY29va2llLT5pbnB1dF9hcnJheVswXSwNCj4gKwkJcWF0X2Z1bmNfYWxpZ25zaXplKTsN Cj4gKwlIRVhEVU1QKCJjMVt4XSIsIGNvb2tpZS0+aW5wdXRfYXJyYXlbMV0sDQo+ICsJCXFhdF9m dW5jX2FsaWduc2l6ZSk7DQo+ICsJSEVYRFVNUCgiYzFbeV0iLCBjb29raWUtPmlucHV0X2FycmF5 WzJdLA0KPiArCQlxYXRfZnVuY19hbGlnbnNpemUpOw0KPiArDQo+ICsJcmV0dXJuIFJURV9DUllQ VE9fT1BfU1RBVFVTX1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKw0KPiArc3RhdGljIHVpbnQ4X3QN Cj4gK3NtMl9kZWNyeXB0aW9uX2NvbGxlY3Qoc3RydWN0IHJ0ZV9jcnlwdG9fYXN5bV9vcCAqYXN5 bV9vcCwNCj4gKwkJY29uc3Qgc3RydWN0IHFhdF9hc3ltX29wX2Nvb2tpZSAqY29va2llKQ0KPiAr ew0KPiArCXVpbnQzMl90IGFsZ19ieXRlc2l6ZSA9IGNvb2tpZS0+YWxnX2J5dGVzaXplOw0KPiAr DQo+ICsJcnRlX21lbWNweShhc3ltX29wLT5zbTIua3AueC5kYXRhLCBjb29raWUtPm91dHB1dF9h cnJheVswXSwNCj4gYWxnX2J5dGVzaXplKTsNCj4gKwlydGVfbWVtY3B5KGFzeW1fb3AtPnNtMi5r cC55LmRhdGEsIGNvb2tpZS0+b3V0cHV0X2FycmF5WzFdLA0KPiBhbGdfYnl0ZXNpemUpOw0KPiAr CWFzeW1fb3AtPnNtMi5rcC54Lmxlbmd0aCA9IGFsZ19ieXRlc2l6ZTsNCj4gKwlhc3ltX29wLT5z bTIua3AueS5sZW5ndGggPSBhbGdfYnl0ZXNpemU7DQo+ICsNCj4gKwlIRVhEVU1QKCJrcFt4XSIs IGNvb2tpZS0+b3V0cHV0X2FycmF5WzBdLA0KPiArCQlhbGdfYnl0ZXNpemUpOw0KPiArCUhFWERV TVAoImtwW3ldIiwgY29va2llLT5vdXRwdXRfYXJyYXlbMV0sDQo+ICsJCWFsZ19ieXRlc2l6ZSk7 DQo+ICsJcmV0dXJuIFJURV9DUllQVE9fT1BfU1RBVFVTX1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4g IHN0YXRpYyBpbnQNCj4gIGFzeW1fc2V0X2lucHV0KHN0cnVjdCBpY3BfcWF0X2Z3X3BrZV9yZXF1 ZXN0ICpxYXRfcmVxLA0KPiAgCQlzdHJ1Y3QgcWF0X2FzeW1fb3BfY29va2llICpjb29raWUsDQo+ IEBAIC0xMDE1LDE0ICsxMTMyLDIwIEBAIGFzeW1fc2V0X2lucHV0KHN0cnVjdCBpY3BfcWF0X2Z3 X3BrZV9yZXF1ZXN0DQo+ICpxYXRfcmVxLA0KPiAgCQkJCWFzeW1fb3AsIHhmb3JtKTsNCj4gIAkJ fQ0KPiAgCWNhc2UgUlRFX0NSWVBUT19BU1lNX1hGT1JNX1NNMjoNCj4gLQkJaWYgKGFzeW1fb3At PnNtMi5vcF90eXBlID09DQo+IC0JCQlSVEVfQ1JZUFRPX0FTWU1fT1BfVkVSSUZZKSB7DQo+ICsJ CWlmIChhc3ltX29wLT5zbTIub3BfdHlwZSA9PQ0KPiBSVEVfQ1JZUFRPX0FTWU1fT1BfRU5DUllQ VCkgew0KPiArCQkJcmV0dXJuIHNtMl9lbmNyeXB0aW9uX3NldF9pbnB1dChxYXRfcmVxLCBjb29r aWUsDQo+ICsJCQkJYXN5bV9vcCwgeGZvcm0pOw0KPiArCQl9IGVsc2UgaWYgKGFzeW1fb3AtPnNt Mi5vcF90eXBlID09DQo+IFJURV9DUllQVE9fQVNZTV9PUF9ERUNSWVBUKSB7DQo+ICsJCQlyZXR1 cm4gc20yX2RlY3J5cHRpb25fc2V0X2lucHV0KHFhdF9yZXEsIGNvb2tpZSwNCj4gKwkJCQlhc3lt X29wLCB4Zm9ybSk7DQo+ICsJCX0gZWxzZSBpZiAoYXN5bV9vcC0+c20yLm9wX3R5cGUgPT0NCj4g UlRFX0NSWVBUT19BU1lNX09QX1ZFUklGWSkgew0KPiAgCQkJcmV0dXJuIHNtMl9lY2RzYV92ZXJp Znlfc2V0X2lucHV0KHFhdF9yZXEsIGNvb2tpZSwNCj4gIAkJCQkJCWFzeW1fb3AsIHhmb3JtKTsN Cj4gLQkJfSBlbHNlIHsNCj4gKwkJfSBlbHNlIGlmIChhc3ltX29wLT5zbTIub3BfdHlwZSA9PQ0K PiBSVEVfQ1JZUFRPX0FTWU1fT1BfU0lHTikgew0KPiAgCQkJcmV0dXJuIHNtMl9lY2RzYV9zaWdu X3NldF9pbnB1dChxYXRfcmVxLCBjb29raWUsDQo+ICAJCQkJCWFzeW1fb3AsIHhmb3JtKTsNCj4g IAkJfQ0KPiArCQlicmVhazsNCj4gIAlkZWZhdWx0Og0KPiAgCQlRQVRfTE9HKEVSUiwgIkludmFs aWQvdW5zdXBwb3J0ZWQgYXN5bW1ldHJpYyBjcnlwdG8geGZvcm0iKTsNCj4gIAkJcmV0dXJuIC1F SU5WQUw7DQo+IEBAIC0xMTE0LDcgKzEyMzcsMTMgQEAgcWF0X2FzeW1fY29sbGVjdF9yZXNwb25z ZShzdHJ1Y3QgcnRlX2NyeXB0b19vcA0KPiAqb3AsDQo+ICAJY2FzZSBSVEVfQ1JZUFRPX0FTWU1f WEZPUk1fRUNESDoNCj4gIAkJcmV0dXJuIGVjZGhfY29sbGVjdChhc3ltX29wLCBjb29raWUpOw0K PiAgCWNhc2UgUlRFX0NSWVBUT19BU1lNX1hGT1JNX1NNMjoNCj4gLQkJcmV0dXJuIHNtMl9lY2Rz YV9zaWduX2NvbGxlY3QoYXN5bV9vcCwgY29va2llKTsNCj4gKwkJaWYgKGFzeW1fb3AtPnNtMi5v cF90eXBlID09DQo+IFJURV9DUllQVE9fQVNZTV9PUF9FTkNSWVBUKQ0KPiArCQkJcmV0dXJuIHNt Ml9lbmNyeXB0aW9uX2NvbGxlY3QoYXN5bV9vcCwgY29va2llKTsNCj4gKwkJZWxzZSBpZiAoYXN5 bV9vcC0+c20yLm9wX3R5cGUgPT0NCj4gUlRFX0NSWVBUT19BU1lNX09QX0RFQ1JZUFQpDQo+ICsJ CQlyZXR1cm4gc20yX2RlY3J5cHRpb25fY29sbGVjdChhc3ltX29wLCBjb29raWUpOw0KPiArCQll bHNlDQo+ICsJCQlyZXR1cm4gc20yX2VjZHNhX3NpZ25fY29sbGVjdChhc3ltX29wLCBjb29raWUp Ow0KPiArDQo+ICAJZGVmYXVsdDoNCj4gIAkJUUFUX0xPRyhFUlIsICJOb3Qgc3VwcG9ydGVkIHhm b3JtIHR5cGUiKTsNCj4gIAkJcmV0dXJuICBSVEVfQ1JZUFRPX09QX1NUQVRVU19FUlJPUjsNCj4g QEAgLTE0MjMsOSArMTU1Miw4IEBAIHFhdF9hc3ltX3Nlc3Npb25fY29uZmlndXJlKHN0cnVjdCBy dGVfY3J5cHRvZGV2DQo+ICpkZXYgX19ydGVfdW51c2VkLA0KPiAgCWNhc2UgUlRFX0NSWVBUT19B U1lNX1hGT1JNX0VDRFNBOg0KPiAgCWNhc2UgUlRFX0NSWVBUT19BU1lNX1hGT1JNX0VDUE06DQo+ ICAJY2FzZSBSVEVfQ1JZUFRPX0FTWU1fWEZPUk1fRUNESDoNCj4gLQkJcmV0ID0gc2Vzc2lvbl9z ZXRfZWMocWF0X3Nlc3Npb24sIHhmb3JtKTsNCj4gLQkJYnJlYWs7DQo+ICAJY2FzZSBSVEVfQ1JZ UFRPX0FTWU1fWEZPUk1fU00yOg0KPiArCQlyZXQgPSBzZXNzaW9uX3NldF9lYyhxYXRfc2Vzc2lv biwgeGZvcm0pOw0KPiAgCQlicmVhazsNCj4gIAlkZWZhdWx0Og0KPiAgCQlyZXQgPSAtRU5PVFNV UDsNCj4gLS0NCj4gMi4zNC4xDQoNCg==