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 EB7BDA00C3; Wed, 26 Jan 2022 04:26:51 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0C273426DD; Wed, 26 Jan 2022 04:26:50 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id E82124069D for ; Wed, 26 Jan 2022 04:26:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1643167608; x=1674703608; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=CsCJ6F/Djf8kf5/fN2MsXaDyodN99TfjdEYyzFM6mtQ=; b=h5gFEUvtqFscIQfEfwos2VZYXiCMBVwCLekJfRnUY0EUIaIFNa3bXnBF yy9lN14hXNst08/TIywU2sasS29uOifA20bC+GNgEj5I0FL9zfYtGSsUn GiLa6LVN8XbuWr1FIwkRdU8r3SkG9zgHZKQO1OYArwXOTfPR8ZlaRUqUN U/AGKjIMlmW8ky96s6EL5IkSF2hrUrNGXPRUtMyaadP+mf6M9OkIQSDkn ycnxAXosG6H7s28xBbcQC3+6SGoVpuJ9TJ3vf2oNLT5VDYDauHA/+OJbG aEpX5Co0aqPxxzQiWIXqO+yBSGB2ca8jvaXGPg9TzaCG45p4mEBhgUaGq Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10238"; a="233846735" X-IronPort-AV: E=Sophos;i="5.88,316,1635231600"; d="scan'208";a="233846735" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2022 19:26:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,316,1635231600"; d="scan'208";a="535013773" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga008.jf.intel.com with ESMTP; 25 Jan 2022 19:26:46 -0800 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 25 Jan 2022 19:26:46 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 25 Jan 2022 19:26:46 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.47) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 25 Jan 2022 19:26:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lNrMp33pi11Fzi5uXRZhhhqmMSySn9PjCjuknHJihEtvvr/A/T0r9svg0rMSpTLKXOR5N7d70xP/L2AEBFwbvZ7oXIi5En0rXNHTD7DiyfMzDws25aNQNFrDD0TMjy35e8fPWdLdYly4fORdGft2wXvIOiq/xUTwIvD4fPlojY2yV5aBjBgORk+IJXFrWHQjAMcWZjcrQJw1y2mqMUCRrRn1/W6Ht7S6sp/0PTlqzCsPukjy7LQe1/dKCnm1u7Kv633p/hNVp+PgZ7bWTdjHbtYr9PbkOYq5t2+zbdY0b4nYORLOvymdzl1pZLgwCPcFxwvOrPjTbe5p2WAhJvz+Xw== 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=CsCJ6F/Djf8kf5/fN2MsXaDyodN99TfjdEYyzFM6mtQ=; b=Yq68FN3lYbPakWrwWva98tmvuIIR45QzYum4vnK94GVPseGH9VkLcfB1lP3GhljTfKf+F/3kjP1qpz1FbCt4BVnXm79D7d8JT1ztcIV7o16nPHjKvtyno/jAFTc4becKSenHOYkYGyMg2gd0X5unWi3T5ArrelvIkgpJ1Qu2ykcqQz8fnLJhw0c9XlTu0ja9XWhHDneg9gj65iTz01lPMFF0QMdW9PhTlWrNcalCZo1N0LMiEEadzPC3/4oh0YBT4/eZmyypsXD8N+C1ydEaz1Lk96pIrBgkVplHtt2E1ISsJzM+32fA2SYcINseJGXhPJwGH7B0WAPMITs0YMi6yQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by BN8PR11MB3570.namprd11.prod.outlook.com (2603:10b6:408:90::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15; Wed, 26 Jan 2022 03:26:44 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::9d80:4063:d2c8:5c8c]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::9d80:4063:d2c8:5c8c%5]) with mapi id 15.20.4909.019; Wed, 26 Jan 2022 03:26:44 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "david.marchand@redhat.com" Subject: RE: [PATCH v2 3/9] vhost: improve Vhost layer logs Thread-Topic: [PATCH v2 3/9] vhost: improve Vhost layer logs Thread-Index: AQHYEd5nondzj73cTEy9vyLVvTHeuKx0nSgw Date: Wed, 26 Jan 2022 03:26:44 +0000 Message-ID: References: <20220125112457.166434-1-maxime.coquelin@redhat.com> <20220125112457.166434-4-maxime.coquelin@redhat.com> In-Reply-To: <20220125112457.166434-4-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN 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=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 61e64989-b01c-492d-4518-08d9e07bad98 x-ms-traffictypediagnostic: BN8PR11MB3570:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:338; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HzzbEUqAVQz66cXi9V5eqPtjFVLpVXMwu7O+/2zD/1q5pUv3jD31TlNrxh2kte5LgwLN0ngyAHZuia9EVNWiVf8wKUPA4LTkPDrYXFK1Rj4NXnzgcvICP8JoYWpKWhUpVvtOS6v7+2wxG4o5SSWi1aNBjsxjttaRbx1MBoHOo4I3jIOP7inffmgVs0YsFMNIVWa31JtplFw9QfE9Mzsr6TqfymJSO9N7tQexHSqqK5Ri7F4SQELrmw1YZ3mYhnpzhN2ubY0aBT85Iwpx+h1aO6f7yZgySfZLYszcK8YtbGILJvu3OoeRzZVwHAt/bim69xWeWr5WI+213zqlkk42s6XSEpM9apfMt4e1eOkkwozkQQ364q3qe8/8ROqVb6zs5WxBuRuWo/5GGat2tMO4SvOJ35fMJ9Ejz+SbdPr6IVDgtn8cbQCsEpzqIX8OMM6PNb+oEgMbnrVZU4uwHwbS2zY5plwaHx5SM2PAI2E9obQ8krCFZrrzP2pWooWhhJnb0JUtFhXMc/5rHG4budBEKGD9HvndjBmqCirR2AMOGi2iBmTJOritLIs9/NL2C7dJX5PmW2EDUwcOyMck+4xwTIYBWhagyy0u+t9Hqv+zKGhOL7rE3QDPQrUzcRDl5nEwXIU6JvFQUVIp4toXlWMtzutSBNlXwv/0nC6paactpeMMUDJDRVmkX/C1JVfaagJ4wEhqbRKRkPdcxw+0WqQbUA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(7696005)(38070700005)(6506007)(508600001)(9686003)(316002)(71200400001)(110136005)(86362001)(53546011)(83380400001)(122000001)(2906002)(66946007)(66476007)(66556008)(186003)(82960400001)(38100700002)(26005)(8936002)(30864003)(52536014)(5660300002)(33656002)(55016003)(76116006)(8676002)(66446008)(64756008)(20210929001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Nk4xR2tBK0phZysycWhidWkyM3BVdDV0RDdzYVU4RHh5WlhWOEM1SEk5VCtL?= =?utf-8?B?dm5odUZGOFVuWDZsMERObFN1eXJaWndaSVlIRlhRRVZRRTc2SmwvWWVWc1M4?= =?utf-8?B?V1ZzU2hNQWlkOHR1MCtXd1hTcGVENFRQSFgwUElKWWpOM0RIRGg1TEJMcDV6?= =?utf-8?B?Z3V5U0s0YUhRazJkbjk5TWk4ekRUdTNQVDFxdEZVNWVjZkp4eG5uMXRuTXhS?= =?utf-8?B?bVI5ei93NngrVFg3NVAzMiszRy84bDY4b05TRGlxUU0rY3lTRW9DS3E2YWFu?= =?utf-8?B?ZGZVV2VTK3BuU0dZbXYzdDJRWmxmak9hUW5PNTZHelozVnNrRkhVNmZGa0Vl?= =?utf-8?B?ZE12RmxWVGQ2b3JVS3gwYXAyMmdSTlRwSElNUHk1MG5SSUZQc3ZNNDRaYmdH?= =?utf-8?B?bkpYZndMQTlKM2NIY3RSdWpUbDJEQ2hDc1hsNElUL25LVzYvdk81ckQ5bHR1?= =?utf-8?B?bThDQkdKcG1XcmVxdUNZS0lUZlU4Q0NaVTJETGxLcHRyZ2VoNlpMbm85c0NL?= =?utf-8?B?U2N4RWFHaEIxd05XMmZPOUhyRmJRSHBKM1FaaFpUdytNTDJsU05XdVJTUU16?= =?utf-8?B?RWNzdzNQR3R0WXl0c0hhaDBZM0lWOEM5RFNONnJubG5FS21qSmdLU2hYWGV6?= =?utf-8?B?cVpPODkvcDJ3WGtVRktDKzkvczd4U2VsMnp3akk5dWR5OW9NSVQzL3hZcDlm?= =?utf-8?B?UHh3aWtGZTk2UlljT0R1Q3VLL0tpOHo3TEY4R0RJSnVnNEcxNVExcGpiYTNi?= =?utf-8?B?SXI0eTFrL1dPanc3aXdBVHpHdlc2UGY0WHR3SWJqNzQySXFzcHZKSkZsend2?= =?utf-8?B?ekw3K212SHVVcWEvNk1BL29nSEp1cXRQOTB2TjUxWUR0OHhrVTlsT0FTRGpz?= =?utf-8?B?MUFCVFFqRFd5WHBLT1VrVEYvZW8rb0QrT3Z6ZEt0QTlmZzlDTEUzSGQzR3NC?= =?utf-8?B?S3JOV2szd2t4U1hNM2lxWk5nSXpTVEpqek5QdktGbGVRcDJVY044UTZJdHIv?= =?utf-8?B?QU83ZUkwVTJ0MlVBZGh4V3VzUk9uNmE2T2RXTkRmSzdzZ3FpQjVoV1NoSlR2?= =?utf-8?B?UEJLUTdrd2JVc3RaLzhuTzVSZU5WMGZzaEYzdlo0ZTZnUGZtNVpHQWNzeGp1?= =?utf-8?B?eW9qb21TSjdNZkl6V2dzUmpJTGZZK2xtSW4yNzhaNHY1TzRYenhiYmpiZXNk?= =?utf-8?B?cHFOb0c1Y01nU0hqb2w0VWRkbll4UFA2TmFRak1sdFBsb0JCTTg1bVhHSzcz?= =?utf-8?B?d3Z5dFhDbHlxeFRJWjhERHdjbnZqQkU5VysvS3RjeWRoMmU3WDBqS2dDWWZu?= =?utf-8?B?ZFM0LzFON29CT3EwcEF5RHZDVUN3NmJJcDJLZHp0SEhWNVR4U0x4Z3V1eEhH?= =?utf-8?B?azlQN2p0ZUVFMkxqOHVwVThWRVM5VFpnZXQrNGR5bjZjbXhqYnBDSTRWNTNX?= =?utf-8?B?MDd5aG9VQkRrMVkxNWx5Zkd5SDZjMzlNRmltOC9lZ0ptTmcrcCsyNWg1TTBJ?= =?utf-8?B?KzdPK2s0dHBSVnFLVjdZU2VEZmllN1VyeFd4bzdIMEdPU0ZRMUFVeFN2NFJW?= =?utf-8?B?b0MwSHh2YUlzZGhmMDI3ZGdPVmZRWmtyaGMvakZTVXY5T2FjbnF6cTczejEw?= =?utf-8?B?Tlgrc1ZjcGo4RU9vcjBkYTJ5SGNac3JrV0hDWXNSL1lPT1dGNjltODdQa2wx?= =?utf-8?B?K2RGMlpSMjI2SWxGT1RvRVFZWHVMVVdsb01wSjJVWTdjOXc3ZE0rT01yYnpp?= =?utf-8?B?azJidTR6NFlCZjVYb1VlS0laL3NSd3BtYUtpUmRVTCtJMm16NTEweXZ5Q1dj?= =?utf-8?B?blpTbjVTdnNScGRBTWc3NXRIbXBPTDl0OTdMYmJmTGJBOEkxYTFMZnFleTVY?= =?utf-8?B?U2k4K29DdnVOSHRKWkd2OWcrRVNvZkphbUczWjUyZmIrdGUwSjRaZXdBcnRz?= =?utf-8?B?NmZKcnFaaFJweDV5ZHNLR2M2MFMwMm94QWhEZGNneVl0RWpLVndhWDBzZ2U5?= =?utf-8?B?K2dxOG5DL1c0bkRhWmxndjFQR05yQVNrUlpEMGFyRlg2NDAyMUVocTZ3TG5J?= =?utf-8?B?ZFhHRVNKUHJEQ05PSUt1WG5aVlVISllaUjlPbVJkR1drQ3Q4RkladWhXd09s?= =?utf-8?B?VFZqVmJhMkVtVEYyazdtTmQ2ZXZHWWFBS0xCeEk5MW9CR3hPR2VvWXpOQjJR?= =?utf-8?Q?Zg3fWTXSr0kJiRtAFYD0s/Y=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61e64989-b01c-492d-4518-08d9e07bad98 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2022 03:26:44.7360 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CugPqxvXbOBOyJRf+ICzuQ5NU3IFLs9ievJ0QcYP+ECQA14OkKeShI5+j4JURu/cjqwJV+dCDYafGZo2jvWNdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3570 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDI1LCAy MDIyIDc6MjUgUE0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsNCj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENv cXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYy IDMvOV0gdmhvc3Q6IGltcHJvdmUgVmhvc3QgbGF5ZXIgbG9ncw0KPiANCj4gVGhpcyBwYXRjaCBw cmVwZW5kcyBWaG9zdCBsb2dzIHdpdGggdGhlIFZob3N0LXVzZXIgc29ja2V0DQo+IHBhdGNoIHdo ZW4gYXZhaWxhYmxlIHRvIGVhc2UgZmlsdGVyaW5nIGxvZ3MgZm9yIGEgZ2l2ZW4gcG9ydC4NCg0K cGF0Y2ggLT4gcGF0aA0KDQpXaXRoIHRoaXMgZml4ZWQ6DQoNClJldmlld2VkLWJ5OiBDaGVuYm8g WGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4aW1l IENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBsaWIvdmhv c3Qvdmhvc3QuYyB8IDEwNCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25z KC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0LmMgYi9saWIvdmhvc3Qvdmhv c3QuYw0KPiBpbmRleCBlNTJkN2Y3YmI2Li4zYjA1ZjE3YTUwIDEwMDY0NA0KPiAtLS0gYS9saWIv dmhvc3Qvdmhvc3QuYw0KPiArKysgYi9saWIvdmhvc3Qvdmhvc3QuYw0KPiBAQCAtNTgsOSArNTgs OCBAQCBfX3Zob3N0X2lvdmFfdG9fdnZhKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0K PiB2aG9zdF92aXJ0cXVldWUgKnZxLA0KPiANCj4gIAkJdmhvc3RfdXNlcl9pb3RsYl9wZW5kaW5n X2luc2VydChkZXYsIHZxLCBpb3ZhLCBwZXJtKTsNCj4gIAkJaWYgKHZob3N0X3VzZXJfaW90bGJf bWlzcyhkZXYsIGlvdmEsIHBlcm0pKSB7DQo+IC0JCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwNCj4g LQkJCQkiSU9UTEIgbWlzcyByZXEgZmFpbGVkIGZvciBJT1ZBIDB4JSIgUFJJeDY0ICJcbiIsDQo+ IC0JCQkJaW92YSk7DQo+ICsJCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIiglcykgSU9UTEIgbWlz cyByZXEgZmFpbGVkIGZvciBJT1ZBDQo+IDB4JSIgUFJJeDY0ICJcbiIsDQo+ICsJCQkJZGV2LT5p Zm5hbWUsIGlvdmEpOw0KPiAgCQkJdmhvc3RfdXNlcl9pb3RsYl9wZW5kaW5nX3JlbW92ZSh2cSwg aW92YSwgMSwgcGVybSk7DQo+ICAJCX0NCj4gDQo+IEBAIC0xMjYsOCArMTI1LDggQEAgX192aG9z dF9sb2dfd3JpdGVfaW92YShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3Rf dmlydHF1ZXVlICp2cSwNCj4gIAlodmEgPSBfX3Zob3N0X2lvdmFfdG9fdnZhKGRldiwgdnEsIGlv dmEsICZtYXBfbGVuLCBWSE9TVF9BQ0NFU1NfUlcpOw0KPiAgCWlmIChtYXBfbGVuICE9IGxlbikg ew0KPiAgCQlWSE9TVF9MT0dfREFUQShFUlIsDQo+IC0JCQkiRmFpbGVkIHRvIHdyaXRlIGxvZyBm b3IgSU9WQSAweCUiIFBSSXg2NCAiLiBObyBJT1RMQiBlbnRyeQ0KPiBmb3VuZFxuIiwNCj4gLQkJ CWlvdmEpOw0KPiArCQkJIiglcykgZmFpbGVkIHRvIHdyaXRlIGxvZyBmb3IgSU9WQSAweCUiIFBS SXg2NCAiLiBObyBJT1RMQg0KPiBlbnRyeSBmb3VuZFxuIiwNCj4gKwkJCWRldi0+aWZuYW1lLCBp b3ZhKTsNCj4gIAkJcmV0dXJuOw0KPiAgCX0NCj4gDQo+IEBAIC0yNDMsOCArMjQyLDggQEAgX192 aG9zdF9sb2dfY2FjaGVfd3JpdGVfaW92YShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiBzdHJ1 Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwNCj4gIAlodmEgPSBfX3Zob3N0X2lvdmFfdG9fdnZhKGRl diwgdnEsIGlvdmEsICZtYXBfbGVuLCBWSE9TVF9BQ0NFU1NfUlcpOw0KPiAgCWlmIChtYXBfbGVu ICE9IGxlbikgew0KPiAgCQlWSE9TVF9MT0dfREFUQShFUlIsDQo+IC0JCQkiRmFpbGVkIHRvIHdy aXRlIGxvZyBmb3IgSU9WQSAweCUiIFBSSXg2NCAiLiBObyBJT1RMQiBlbnRyeQ0KPiBmb3VuZFxu IiwNCj4gLQkJCWlvdmEpOw0KPiArCQkJIiglcykgZmFpbGVkIHRvIHdyaXRlIGxvZyBmb3IgSU9W QSAweCUiIFBSSXg2NCAiLiBObyBJT1RMQg0KPiBlbnRyeSBmb3VuZFxuIiwNCj4gKwkJCWRldi0+ aWZuYW1lLCBpb3ZhKTsNCj4gIAkJcmV0dXJuOw0KPiAgCX0NCj4gDQo+IEBAIC00MjIsOSArNDIx LDkgQEAgdHJhbnNsYXRlX2xvZ19hZGRyKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0K PiB2aG9zdF92aXJ0cXVldWUgKnZxLA0KPiAgCQlncGEgPSBodmFfdG9fZ3BhKGRldiwgaHZhLCBl eHBfc2l6ZSk7DQo+ICAJCWlmICghZ3BhKSB7DQo+ICAJCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwN Cj4gLQkJCQkiVlE6IEZhaWxlZCB0byBmaW5kIEdQQSBmb3IgbG9nX2FkZHI6IDB4JSINCj4gKwkJ CQkiKCVzKSBmYWlsZWQgdG8gZmluZCBHUEEgZm9yIGxvZ19hZGRyOiAweCUiDQo+ICAJCQkJUFJJ eDY0ICIgaHZhOiAweCUiIFBSSXg2NCAiXG4iLA0KPiAtCQkJCWxvZ19hZGRyLCBodmEpOw0KPiAr CQkJCWRldi0+aWZuYW1lLCBsb2dfYWRkciwgaHZhKTsNCj4gIAkJCXJldHVybiAwOw0KPiAgCQl9 DQo+ICAJCXJldHVybiBncGE7DQo+IEBAIC01NTEsMTYgKzU1MCwxNSBAQCBpbml0X3ZyaW5nX3F1 ZXVlKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVpbnQzMl90DQo+IHZyaW5nX2lkeCkNCj4gIAlp bnQgbnVtYV9ub2RlID0gU09DS0VUX0lEX0FOWTsNCj4gDQo+ICAJaWYgKHZyaW5nX2lkeCA+PSBW SE9TVF9NQVhfVlJJTkcpIHsNCj4gLQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+IC0JCQkJIkZh aWxlZCBub3QgaW5pdCB2cmluZywgb3V0IG9mIGJvdW5kICglZClcbiIsDQo+IC0JCQkJdnJpbmdf aWR4KTsNCj4gKwkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICIoJXMpIGZhaWxlZCB0byBpbml0IHZy aW5nLCBvdXQgb2YgYm91bmQNCj4gKCVkKVxuIiwNCj4gKwkJCQlkZXYtPmlmbmFtZSwgdnJpbmdf aWR4KTsNCj4gIAkJcmV0dXJuOw0KPiAgCX0NCj4gDQo+ICAJdnEgPSBkZXYtPnZpcnRxdWV1ZVt2 cmluZ19pZHhdOw0KPiAgCWlmICghdnEpIHsNCj4gLQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJW aXJ0cXVldWUgbm90IGFsbG9jYXRlZCAoJWQpXG4iLA0KPiAtCQkJCXZyaW5nX2lkeCk7DQo+ICsJ CVZIT1NUX0xPR19DT05GSUcoRVJSLCAiKCVzKSB2aXJ0cXVldWUgbm90IGFsbG9jYXRlZCAoJWQp XG4iLA0KPiArCQkJCWRldi0+aWZuYW1lLCB2cmluZ19pZHgpOw0KPiAgCQlyZXR1cm47DQo+ICAJ fQ0KPiANCj4gQEAgLTU3Miw4ICs1NzAsOCBAQCBpbml0X3ZyaW5nX3F1ZXVlKHN0cnVjdCB2aXJ0 aW9fbmV0ICpkZXYsIHVpbnQzMl90DQo+IHZyaW5nX2lkeCkNCj4gDQo+ICAjaWZkZWYgUlRFX0xJ QlJURV9WSE9TVF9OVU1BDQo+ICAJaWYgKGdldF9tZW1wb2xpY3koJm51bWFfbm9kZSwgTlVMTCwg MCwgdnEsIE1QT0xfRl9OT0RFIHwgTVBPTF9GX0FERFIpKSB7DQo+IC0JCVZIT1NUX0xPR19DT05G SUcoRVJSLCAiKCVkKSBmYWlsZWQgdG8gcXVlcnkgbnVtYSBub2RlOiAlc1xuIiwNCj4gLQkJCWRl di0+dmlkLCBydGVfc3RyZXJyb3IoZXJybm8pKTsNCj4gKwkJVkhPU1RfTE9HX0NPTkZJRyhFUlIs ICIoJXMpIGZhaWxlZCB0byBxdWVyeSBudW1hIG5vZGU6ICVzXG4iLA0KPiArCQkJZGV2LT5pZm5h bWUsIHJ0ZV9zdHJlcnJvcihlcnJubykpOw0KPiAgCQludW1hX25vZGUgPSBTT0NLRVRfSURfQU5Z Ow0KPiAgCX0NCj4gICNlbmRpZg0KPiBAQCAtNTkwLDE1ICs1ODgsMTUgQEAgcmVzZXRfdnJpbmdf cXVldWUoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgdWludDMyX3QNCj4gdnJpbmdfaWR4KQ0KPiAN Cj4gIAlpZiAodnJpbmdfaWR4ID49IFZIT1NUX01BWF9WUklORykgew0KPiAgCQlWSE9TVF9MT0df Q09ORklHKEVSUiwNCj4gLQkJCQkiRmFpbGVkIG5vdCBpbml0IHZyaW5nLCBvdXQgb2YgYm91bmQg KCVkKVxuIiwNCj4gLQkJCQl2cmluZ19pZHgpOw0KPiArCQkJCSIoJXMpIGZhaWxlZCB0byByZXNl dCB2cmluZywgb3V0IG9mIGJvdW5kICglZClcbiIsDQo+ICsJCQkJZGV2LT5pZm5hbWUsIHZyaW5n X2lkeCk7DQo+ICAJCXJldHVybjsNCj4gIAl9DQo+IA0KPiAgCXZxID0gZGV2LT52aXJ0cXVldWVb dnJpbmdfaWR4XTsNCj4gIAlpZiAoIXZxKSB7DQo+IC0JCVZIT1NUX0xPR19DT05GSUcoRVJSLCAi VmlydHF1ZXVlIG5vdCBhbGxvY2F0ZWQgKCVkKVxuIiwNCj4gLQkJCQl2cmluZ19pZHgpOw0KPiAr CQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIiglcykgZmFpbGVkIHRvIHJlc2V0IHZyaW5nLCB2aXJ0 cXVldWUgbm90DQo+IGFsbG9jYXRlZCAoJWQpXG4iLA0KPiArCQkJCWRldi0+aWZuYW1lLCB2cmlu Z19pZHgpOw0KPiAgCQlyZXR1cm47DQo+ICAJfQ0KPiANCj4gQEAgLTYyMCw4ICs2MTgsOCBAQCBh bGxvY192cmluZ19xdWV1ZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCB1aW50MzJfdA0KPiB2cmlu Z19pZHgpDQo+IA0KPiAgCQl2cSA9IHJ0ZV96bWFsbG9jKE5VTEwsIHNpemVvZihzdHJ1Y3Qgdmhv c3RfdmlydHF1ZXVlKSwgMCk7DQo+ICAJCWlmICh2cSA9PSBOVUxMKSB7DQo+IC0JCQlWSE9TVF9M T0dfQ09ORklHKEVSUiwNCj4gLQkJCQkiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdnJp bmc6JXUuXG4iLCBpKTsNCj4gKwkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiKCVzKSBmYWlsZWQg dG8gYWxsb2NhdGUgbWVtb3J5IGZvcg0KPiB2cmluZyAldS5cbiIsDQo+ICsJCQkJCWRldi0+aWZu YW1lLCBpKTsNCj4gIAkJCXJldHVybiAtMTsNCj4gIAkJfQ0KPiANCj4gQEAgLTY3MywxNiArNjcx LDE0IEBAIHZob3N0X25ld19kZXZpY2Uodm9pZCkNCj4gIAl9DQo+IA0KPiAgCWlmIChpID09IE1B WF9WSE9TVF9ERVZJQ0UpIHsNCj4gLQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+IC0JCQkiRmFp bGVkIHRvIGZpbmQgYSBmcmVlIHNsb3QgZm9yIG5ldyBkZXZpY2UuXG4iKTsNCj4gKwkJVkhPU1Rf TE9HX0NPTkZJRyhFUlIsICJmYWlsZWQgdG8gZmluZCBhIGZyZWUgc2xvdCBmb3IgbmV3DQo+IGRl dmljZS5cbiIpOw0KPiAgCQlwdGhyZWFkX211dGV4X3VubG9jaygmdmhvc3RfZGV2X2xvY2spOw0K PiAgCQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiANCj4gIAlkZXYgPSBydGVfem1hbGxvYyhOVUxMLCBz aXplb2Yoc3RydWN0IHZpcnRpb19uZXQpLCAwKTsNCj4gIAlpZiAoZGV2ID09IE5VTEwpIHsNCj4g LQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+IC0JCQkiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9y eSBmb3IgbmV3IGRldi5cbiIpOw0KPiArCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgImZhaWxlZCB0 byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG5ldw0KPiBkZXZpY2UuXG4iKTsNCj4gIAkJcHRocmVhZF9t dXRleF91bmxvY2soJnZob3N0X2Rldl9sb2NrKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4g QEAgLTgzNCw5ICs4MzAsOCBAQCBydGVfdmhvc3RfZ2V0X251bWFfbm9kZShpbnQgdmlkKQ0KPiAg CXJldCA9IGdldF9tZW1wb2xpY3koJm51bWFfbm9kZSwgTlVMTCwgMCwgZGV2LA0KPiAgCQkJICAg IE1QT0xfRl9OT0RFIHwgTVBPTF9GX0FERFIpOw0KPiAgCWlmIChyZXQgPCAwKSB7DQo+IC0JCVZI T1NUX0xPR19DT05GSUcoRVJSLA0KPiAtCQkJIiglZCkgZmFpbGVkIHRvIHF1ZXJ5IG51bWEgbm9k ZTogJXNcbiIsDQo+IC0JCQl2aWQsIHJ0ZV9zdHJlcnJvcihlcnJubykpOw0KPiArCQlWSE9TVF9M T0dfQ09ORklHKEVSUiwgIiglcykgZmFpbGVkIHRvIHF1ZXJ5IG51bWEgbm9kZTogJXNcbiIsDQo+ ICsJCQlkZXYtPmlmbmFtZSwgcnRlX3N0cmVycm9yKGVycm5vKSk7DQo+ICAJCXJldHVybiAtMTsN Cj4gIAl9DQo+IA0KPiBAQCAtMTQ3MCw4ICsxNDY1LDggQEAgcnRlX3Zob3N0X3J4X3F1ZXVlX2Nv dW50KGludCB2aWQsIHVpbnQxNl90IHFpZCkNCj4gIAkJcmV0dXJuIDA7DQo+IA0KPiAgCWlmICh1 bmxpa2VseShxaWQgPj0gZGV2LT5ucl92cmluZyB8fCAocWlkICYgMSkgPT0gMCkpIHsNCj4gLQkJ VkhPU1RfTE9HX0RBVEEoRVJSLCAiKCVkKSAlczogaW52YWxpZCB2aXJ0cXVldWUgaWR4ICVkLlxu IiwNCj4gLQkJCWRldi0+dmlkLCBfX2Z1bmNfXywgcWlkKTsNCj4gKwkJVkhPU1RfTE9HX0RBVEEo RVJSLCAiKCVzKSAlczogaW52YWxpZCB2aXJ0cXVldWUgaWR4ICVkLlxuIiwNCj4gKwkJCWRldi0+ aWZuYW1lLCBfX2Z1bmNfXywgcWlkKTsNCj4gIAkJcmV0dXJuIDA7DQo+ICAJfQ0KPiANCj4gQEAg LTE2MzYsMjMgKzE2MzEsMjMgQEAgYXN5bmNfY2hhbm5lbF9yZWdpc3RlcihpbnQgdmlkLCB1aW50 MTZfdCBxdWV1ZV9pZCwNCj4gDQo+ICAJaWYgKHVubGlrZWx5KHZxLT5hc3luYykpIHsNCj4gIAkJ VkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+IC0JCQkJImFzeW5jIHJlZ2lzdGVyIGZhaWxlZDogYWxy ZWFkeSByZWdpc3RlcmVkICh2aWQgJWQsDQo+IHFpZDogJWQpXG4iLA0KPiAtCQkJCXZpZCwgcXVl dWVfaWQpOw0KPiArCQkJCSIoJXMpIGFzeW5jIHJlZ2lzdGVyIGZhaWxlZDogYWxyZWFkeSByZWdp c3RlcmVkDQo+IChxaWQ6ICVkKVxuIiwNCj4gKwkJCQlkZXYtPmlmbmFtZSwgcXVldWVfaWQpOw0K PiAgCQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiANCj4gIAlhc3luYyA9IHJ0ZV96bWFsbG9jX3NvY2tl dChOVUxMLCBzaXplb2Yoc3RydWN0IHZob3N0X2FzeW5jKSwgMCwgbm9kZSk7DQo+ICAJaWYgKCFh c3luYykgew0KPiAtCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgImZhaWxlZCB0byBhbGxvY2F0ZSBh c3luYyBtZXRhZGF0YSAodmlkICVkLA0KPiBxaWQ6ICVkKVxuIiwNCj4gLQkJCQl2aWQsIHF1ZXVl X2lkKTsNCj4gKwkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICIoJXMpIGZhaWxlZCB0byBhbGxvY2F0 ZSBhc3luYyBtZXRhZGF0YQ0KPiAocWlkOiAlZClcbiIsDQo+ICsJCQkJZGV2LT5pZm5hbWUsIHF1 ZXVlX2lkKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gDQo+ICAJYXN5bmMtPnBrdHNfaW5m byA9IHJ0ZV9tYWxsb2Nfc29ja2V0KE5VTEwsIHZxLT5zaXplICogc2l6ZW9mKHN0cnVjdA0KPiBh c3luY19pbmZsaWdodF9pbmZvKSwNCj4gIAkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIG5vZGUpOw0K PiAgCWlmICghYXN5bmMtPnBrdHNfaW5mbykgew0KPiAtCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwg ImZhaWxlZCB0byBhbGxvY2F0ZSBhc3luY19wa3RzX2luZm8gKHZpZCAlZCwNCj4gcWlkOiAlZClc biIsDQo+IC0JCQkJdmlkLCBxdWV1ZV9pZCk7DQo+ICsJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAi KCVzKSBmYWlsZWQgdG8gYWxsb2NhdGUgYXN5bmNfcGt0c19pbmZvDQo+IChxaWQ6ICVkKVxuIiwN Cj4gKwkJCQlkZXYtPmlmbmFtZSwgcXVldWVfaWQpOw0KPiAgCQlnb3RvIG91dF9mcmVlX2FzeW5j Ow0KPiAgCX0NCj4gDQo+IEBAIC0xNjYxLDggKzE2NTYsOCBAQCBhc3luY19jaGFubmVsX3JlZ2lz dGVyKGludCB2aWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiAgCQkJCXZxLT5zaXplICogc2l6ZW9m KHN0cnVjdCB2cmluZ191c2VkX2VsZW1fcGFja2VkKSwNCj4gIAkJCQlSVEVfQ0FDSEVfTElORV9T SVpFLCBub2RlKTsNCj4gIAkJaWYgKCFhc3luYy0+YnVmZmVyc19wYWNrZWQpIHsNCj4gLQkJCVZI T1NUX0xPR19DT05GSUcoRVJSLCAiZmFpbGVkIHRvIGFsbG9jYXRlIGFzeW5jIGJ1ZmZlcnMNCj4g KHZpZCAlZCwgcWlkOiAlZClcbiIsDQo+IC0JCQkJCXZpZCwgcXVldWVfaWQpOw0KPiArCQkJVkhP U1RfTE9HX0NPTkZJRyhFUlIsICIoJXMpIGZhaWxlZCB0byBhbGxvY2F0ZSBhc3luYyBidWZmZXJz DQo+IChxaWQ6ICVkKVxuIiwNCj4gKwkJCQkJZGV2LT5pZm5hbWUsIHF1ZXVlX2lkKTsNCj4gIAkJ CWdvdG8gb3V0X2ZyZWVfaW5mbGlnaHQ7DQo+ICAJCX0NCj4gIAl9IGVsc2Ugew0KPiBAQCAtMTY3 MCw4ICsxNjY1LDggQEAgYXN5bmNfY2hhbm5lbF9yZWdpc3RlcihpbnQgdmlkLCB1aW50MTZfdCBx dWV1ZV9pZCwNCj4gIAkJCQl2cS0+c2l6ZSAqIHNpemVvZihzdHJ1Y3QgdnJpbmdfdXNlZF9lbGVt KSwNCj4gIAkJCQlSVEVfQ0FDSEVfTElORV9TSVpFLCBub2RlKTsNCj4gIAkJaWYgKCFhc3luYy0+ ZGVzY3Nfc3BsaXQpIHsNCj4gLQkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiZmFpbGVkIHRvIGFs bG9jYXRlIGFzeW5jIGRlc2NzDQo+ICh2aWQgJWQsIHFpZDogJWQpXG4iLA0KPiAtCQkJCQl2aWQs IHF1ZXVlX2lkKTsNCj4gKwkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiKCVzKSBmYWlsZWQgdG8g YWxsb2NhdGUgYXN5bmMgZGVzY3MNCj4gKHFpZDogJWQpXG4iLA0KPiArCQkJCQlkZXYtPmlmbmFt ZSwgcXVldWVfaWQpOw0KPiAgCQkJZ290byBvdXRfZnJlZV9pbmZsaWdodDsNCj4gIAkJfQ0KPiAg CX0NCj4gQEAgLTE3MTIsOCArMTcwNyw4IEBAIHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3JlZ2lz dGVyKGludCB2aWQsIHVpbnQxNl90DQo+IHF1ZXVlX2lkLA0KPiANCj4gIAlpZiAodW5saWtlbHko IShjb25maWcuZmVhdHVyZXMgJiBSVEVfVkhPU1RfQVNZTkNfSU5PUkRFUikpKSB7DQo+ICAJCVZI T1NUX0xPR19DT05GSUcoRVJSLA0KPiAtCQkJImFzeW5jIGNvcHkgaXMgbm90IHN1cHBvcnRlZCBv biBub24taW5vcmRlciBtb2RlICINCj4gLQkJCSIodmlkICVkLCBxaWQ6ICVkKVxuIiwgdmlkLCBx dWV1ZV9pZCk7DQo+ICsJCQkiKCVzKSBhc3luYyBjb3B5IGlzIG5vdCBzdXBwb3J0ZWQgb24gbm9u LWlub3JkZXIgbW9kZQ0KPiAocWlkOiAlZClcbiIsDQo+ICsJCQlkZXYtPmlmbmFtZSwgcXVldWVf aWQpOw0KPiAgCQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiANCj4gQEAgLTE3NDksOCArMTc0NCw4IEBA IHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3JlZ2lzdGVyX3RocmVhZF91bnNhZmUoaW50IHZpZCwN Cj4gdWludDE2X3QgcXVldWVfaWQsDQo+IA0KPiAgCWlmICh1bmxpa2VseSghKGNvbmZpZy5mZWF0 dXJlcyAmIFJURV9WSE9TVF9BU1lOQ19JTk9SREVSKSkpIHsNCj4gIAkJVkhPU1RfTE9HX0NPTkZJ RyhFUlIsDQo+IC0JCQkiYXN5bmMgY29weSBpcyBub3Qgc3VwcG9ydGVkIG9uIG5vbi1pbm9yZGVy IG1vZGUgIg0KPiAtCQkJIih2aWQgJWQsIHFpZDogJWQpXG4iLCB2aWQsIHF1ZXVlX2lkKTsNCj4g KwkJCSIoJXMpIGFzeW5jIGNvcHkgaXMgbm90IHN1cHBvcnRlZCBvbiBub24taW5vcmRlciBtb2Rl DQo+IChxaWQ6ICVkKVxuIiwNCj4gKwkJCWRldi0+aWZuYW1lLCBxdWV1ZV9pZCk7DQo+ICAJCXJl dHVybiAtMTsNCj4gIAl9DQo+IA0KPiBAQCAtMTc4NSwxNCArMTc4MCwxNSBAQCBydGVfdmhvc3Rf YXN5bmNfY2hhbm5lbF91bnJlZ2lzdGVyKGludCB2aWQsIHVpbnQxNl90DQo+IHF1ZXVlX2lkKQ0K PiAgCQlyZXR1cm4gcmV0Ow0KPiANCj4gIAlpZiAoIXJ0ZV9zcGlubG9ja190cnlsb2NrKCZ2cS0+ YWNjZXNzX2xvY2spKSB7DQo+IC0JCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHVu cmVnaXN0ZXIgYXN5bmMgY2hhbm5lbC4gIg0KPiAtCQkJInZpcnQgcXVldWUgYnVzeS5cbiIpOw0K PiArCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIiglcykgZmFpbGVkIHRvIHVucmVnaXN0ZXIgYXN5 bmMgY2hhbm5lbCwNCj4gdmlydHF1ZXVlIGJ1c3kuXG4iLA0KPiArCQkJCWRldi0+aWZuYW1lKTsN Cj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gDQo+ICAJaWYgKHZxLT5hc3luYy0+cGt0c19pbmZs aWdodF9uKSB7DQo+IC0JCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRvIHVucmVnaXN0 ZXIgYXN5bmMgY2hhbm5lbC4gIg0KPiAtCQkJImFzeW5jIGluZmxpZ2h0IHBhY2tldHMgbXVzdCBi ZSBjb21wbGV0ZWQgYmVmb3JlDQo+IHVucmVnaXN0cmF0aW9uLlxuIik7DQo+ICsJCVZIT1NUX0xP R19DT05GSUcoRVJSLCAiKCVzKSBmYWlsZWQgdG8gdW5yZWdpc3RlciBhc3luYyBjaGFubmVsLiAi DQo+ICsJCQkiYXN5bmMgaW5mbGlnaHQgcGFja2V0cyBtdXN0IGJlIGNvbXBsZXRlZCBiZWZvcmUN Cj4gdW5yZWdpc3RyYXRpb24uXG4iLA0KPiArCQkJZGV2LT5pZm5hbWUpOw0KPiAgCQlyZXQgPSAt MTsNCj4gIAkJZ290byBvdXQ7DQo+ICAJfQ0KPiBAQCAtMTgyNSw4ICsxODIxLDkgQEAgcnRlX3Zo b3N0X2FzeW5jX2NoYW5uZWxfdW5yZWdpc3Rlcl90aHJlYWRfdW5zYWZlKGludCB2aWQsDQo+IHVp bnQxNl90IHF1ZXVlX2lkKQ0KPiAgCQlyZXR1cm4gMDsNCj4gDQo+ICAJaWYgKHZxLT5hc3luYy0+ cGt0c19pbmZsaWdodF9uKSB7DQo+IC0JCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRmFpbGVkIHRv IHVucmVnaXN0ZXIgYXN5bmMgY2hhbm5lbC4gIg0KPiAtCQkJImFzeW5jIGluZmxpZ2h0IHBhY2tl dHMgbXVzdCBiZSBjb21wbGV0ZWQgYmVmb3JlDQo+IHVucmVnaXN0cmF0aW9uLlxuIik7DQo+ICsJ CVZIT1NUX0xPR19DT05GSUcoRVJSLCAiKCVzKSBmYWlsZWQgdG8gdW5yZWdpc3RlciBhc3luYyBj aGFubmVsLiAiDQo+ICsJCQkiYXN5bmMgaW5mbGlnaHQgcGFja2V0cyBtdXN0IGJlIGNvbXBsZXRl ZCBiZWZvcmUNCj4gdW5yZWdpc3RyYXRpb24uXG4iLA0KPiArCQkJZGV2LT5pZm5hbWUpOw0KPiAg CQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiANCj4gQEAgLTE4NTcsOCArMTg1NCw5IEBAIHJ0ZV92aG9z dF9hc3luY19nZXRfaW5mbGlnaHQoaW50IHZpZCwgdWludDE2X3QgcXVldWVfaWQpDQo+ICAJCXJl dHVybiByZXQ7DQo+IA0KPiAgCWlmICghcnRlX3NwaW5sb2NrX3RyeWxvY2soJnZxLT5hY2Nlc3Nf bG9jaykpIHsNCj4gLQkJVkhPU1RfTE9HX0NPTkZJRyhERUJVRywgIkZhaWxlZCB0byBjaGVjayBp bi1mbGlnaHQgcGFja2V0cy4gIg0KPiAtCQkJInZpcnQgcXVldWUgYnVzeS5cbiIpOw0KPiArCQlW SE9TVF9MT0dfQ09ORklHKERFQlVHLA0KPiArCQkJIiglcykgZmFpbGVkIHRvIGNoZWNrIGluLWZs aWdodCBwYWNrZXRzLiB2aXJ0cXVldWUgYnVzeS5cbiIsDQo+ICsJCQlkZXYtPmlmbmFtZSk7DQo+ ICAJCXJldHVybiByZXQ7DQo+ICAJfQ0KPiANCj4gLS0NCj4gMi4zNC4xDQoNCg==