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 B56F84597F; Fri, 13 Sep 2024 21:00:50 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 48AA8402B3; Fri, 13 Sep 2024 21:00:50 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20]) by mails.dpdk.org (Postfix) with ESMTP id 7757240295 for ; Fri, 13 Sep 2024 21:00:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726254048; x=1757790048; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=x/T7jTjtYjMTG9oII8SDwqay13nY+6uVs7KKZoCREMk=; b=C3nBXL9gzRHmjz2nR3Dbbcg+xhfUWRBw6DGSp5YSVTOqcBsRZ1FBkzuZ mct3SBLTcMxmUQe43JEj27aHaxPMF07t8Xfegm7+UQBF5etZGIuwGW1O1 z7HWc3cQVchEEb1UwVRP8xUxko49F8xYa3HT3fCSqXgedEihGkPyQnu3B bOpKnB1OBl5OGjXJpG4zc3q8li60BoV0EzGzHTkSEhgAoBdS3ynKi2/Rp zE9NHGTIkSvXgT4ixXtlkyDgz4MWG+3w3dnOaYQinTSTcu3k2xWA80kug 6zCKx2W/bene0Zd2MKMvVMorpCfXKi49FkzNNcWqfFSskBgu+v8ea3C3x Q==; X-CSE-ConnectionGUID: Yz4ue461Ql644B6+KAHzyg== X-CSE-MsgGUID: D4485jOmRVSh1vSMQ8JmeA== X-IronPort-AV: E=McAfee;i="6700,10204,11194"; a="24992536" X-IronPort-AV: E=Sophos;i="6.10,226,1719903600"; d="scan'208";a="24992536" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2024 12:00:45 -0700 X-CSE-ConnectionGUID: zt8KIrc3Q6mEbxCec+S/Xw== X-CSE-MsgGUID: Hy569of8TjG0A73WxIBmgA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,226,1719903600"; d="scan'208";a="73167225" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orviesa004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Sep 2024 12:00:44 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 13 Sep 2024 12:00:43 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Fri, 13 Sep 2024 12:00:43 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 13 Sep 2024 12:00:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fovfSBBf7MJ/sXKNZ4b/OcpD7ta9q6l8xOeogLTdjWzeNGLCBv8wIoaIcduhksAgxo6qEvL8fWQTKgzOyK/aIg9I8l+EarE5YltYuqOr92ZYnO0I+iB6VBtjxwR8wO2XXNE9RQsyTBsTOghcAdNF/SVDnNavoQz+Jsw8WaqRHaxxB6O4KHP16Od8gGAko/nuyOg9iKx31vo5tRrRtM4gPQmgZ15DOTmEHvE8rGJG5nnSMnCDmOW5bPcaI9wvXzi8a8HHtnNmdBU+ykLPoKWJbQSjQIlMW7n6GYRutF4LE20m+UbWZHZEqpfIpqIVp1X/g7RKj3tnnVGm9jvTkycD8A== 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=x/T7jTjtYjMTG9oII8SDwqay13nY+6uVs7KKZoCREMk=; b=Yuj2yAvwZzJftvXnFHZhhnLvGB3qxXLOqhLJzGqTmsbxKmlQB6+FpyrncclnpDIFBNY7FtlEr2IAgdBZKY4R3now5qSCVl8qPJMP5p/aaervXHGGkOuVMHDCoj1ye3+7FsvASyWO4xtBmJdyy1X57QMNAYd4OWlhd2XYPmcA08LoT/BdfqEFaAyirmhz5fpbf4CSrqfJUPPxlnSdNsFJW06j/y3W+H9wTUezjoqkB2jEsg2/xm5wgMRjuUYpbF+zknI64LBDgGtPmfj8rav/kC2ZfCR41cw/M8bARBedWk8FUxNJGXL/tbjzxdR7Qy9G86cxwupkSCVaI6yLykT1XA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SJ0PR11MB6694.namprd11.prod.outlook.com (2603:10b6:a03:44d::17) by SN7PR11MB7467.namprd11.prod.outlook.com (2603:10b6:806:34f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.18; Fri, 13 Sep 2024 19:00:38 +0000 Received: from SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57]) by SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57%4]) with mapi id 15.20.7918.024; Fri, 13 Sep 2024 19:00:38 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "Marchand, David" , "Vargas, Hernan" Subject: RE: [PATCH v2 2/2] baseband/acc: improvement to logging mechanism Thread-Topic: [PATCH v2 2/2] baseband/acc: improvement to logging mechanism Thread-Index: AQHa+k6Rw4l7eKbiEkeVfkmFgrjcIbJV2u0AgABNssA= Date: Fri, 13 Sep 2024 19:00:38 +0000 Message-ID: References: <20240829200624.38551-1-nicolas.chautru@intel.com> <20240829200624.38551-3-nicolas.chautru@intel.com> <7cb5ea2d-71d8-4eb9-b273-bd176a8373be@redhat.com> In-Reply-To: <7cb5ea2d-71d8-4eb9-b273-bd176a8373be@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB6694:EE_|SN7PR11MB7467:EE_ x-ms-office365-filtering-correlation-id: 8ba9651d-df9d-43d2-c9d8-08dcd4265b5d x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?T1hmd3lWa3dKc2RvY29xNUVyWk9JLytRRTNWK2h1cHdDNkJsUTVlVWZWdXJR?= =?utf-8?B?bEVnNTQ0Yk1qL1ppSzNXVC9XRUlQYzJOYm56cWhMNURFdHVrOVhCZ04zMFdT?= =?utf-8?B?UWFSSkM1NTg4YW5CZE9ycFBXRktOMHcrZFpPSmVobFNDNSswUlJReStWMDNv?= =?utf-8?B?bHpxbndYbXFBaHdOWktSYjVyUDM5VVg2WTBvNTl3eVVWSTE3L2RqTzhNMm1z?= =?utf-8?B?L013V0ttOGxHUDNYU01kWllpT09WNHRsMEcxT1pBaWF4aTIxQlFFMkMxelYw?= =?utf-8?B?emY5SlRXWkFQNVZ2S2t6cE5xcndzQnhBN3RLRHB2VGdoMGtYMVFNLzFjZVUz?= =?utf-8?B?bFRnMisveDdzWDhYblRrd0NmUmFPMFFnQnU0NThKTU1uWmZKUUNibm5EODNC?= =?utf-8?B?V08vM1RzdlJ2OW5KWkxmcTRzSldpcC9qS1ZoU1NyUmZGWVoyaUxzSFZLR29C?= =?utf-8?B?QlBxc041VjFVSnZ0amVvdzZnbjhxUEtxK2o1S1FXMTRjT3hUek8zdWNOMDNN?= =?utf-8?B?S0lRMGI5azdUV0E3MkdwMWY2bGp0YkRpYzBVelVONzhMZXlmcG8vY1IzMExt?= =?utf-8?B?VURIMlZ5YWZNc1kxWkJpQ1A4TmQyM0s0VDBYbHN6VEVlWmd5ek90WmVvZ2tH?= =?utf-8?B?U3JIdVFaZUhWZEpnNWRvZUt5T2w3S3FWM2VYdXRZU3RYOFo5dWREYW0rVnp4?= =?utf-8?B?S3dlMGNhbnAxQWswSkkySGRIOUhRTzJTL1hUYTIwK3c0dFI4NVBtZjlrMVpL?= =?utf-8?B?L2RKbENhWVA3a3dVcFBkZUZJYnlYbDRSa2d1UWtJK2lsRjJuYUppSmhwQ0JQ?= =?utf-8?B?VFVyaVpLQVFWZWZPWUpKYnh0UWFCVnAvODFJd0gvT2dmR1ExOG9BMjR3Y2t4?= =?utf-8?B?N1FaS2NFbHpYZlBSSHZhZWJqSjJlajdhUjNrTi90Q1Y5b1lVVHpISitTSHlW?= =?utf-8?B?Uk9qdG5tQ0NXOTZzTGErT0pnYW12RHNqYThXb3V2aUxyb2hNZVNVR1o1Sk9H?= =?utf-8?B?U0hQcUs0VTh3N0wvKyttbUwxL0F6WlpneXhQRmtDS3g5MklqNUhVMzJKSW8z?= =?utf-8?B?K21mYTZOQU5MM0U2OUNhRTVHSlE5cG1QQ2M0T285K2NXa3NrMVgyTm5RdER4?= =?utf-8?B?ZVRKaCs1ZkhvdmxhSkZJOG1Sc2xPQklaMlh1bEpXRktZZ2NOOERhSThudmZ5?= =?utf-8?B?N1JmZmViYlczOVJydFMwbkFkMHJGais5c3k1Q2JyK0U1U2J4WlRKWTFscUtC?= =?utf-8?B?SWY4aUo1SUZtTVF2YVF1ejJEblFBdTBpV1JRdDRjNTRkSW56ZHNvaStPNTdK?= =?utf-8?B?b1ZndmljTEE0SStJRUlRNE5LN0tLYktqaElORS9uSDgzZU5JRUE1SHMyT3pN?= =?utf-8?B?RS92aCtScE9NaEg2ano1R0xCSEJOam1yMS9XWmkxcjZXMEVIOFFsKy9udSt0?= =?utf-8?B?WldWaGpKM2dQN083TEw1VjNHMjlXY1lBcTkvS21KK1RvN1VxaXNJS1AyMm83?= =?utf-8?B?S1JpTlBqMnJYN1NheWwwZjM3SHdFc2hMdzVzYzJ2QW92NG9qTDRhbnE2Z3o4?= =?utf-8?B?NXlYd1AvT0drenV5N1FkOGRXbFY2ZWV6aUFqaDBVRDlnY3lLa3Zaa2M4MmQz?= =?utf-8?B?MlF0cXdqWldQS2p2Zy85T2hxek8zLzdMTXBwelBmU21tUTFXUFRCTzhGUis2?= =?utf-8?B?akVWb2xIVEx4RktQaFI0cXNJNW9xYlBIY2o4Vkdoam85S3pUamVXMkpxN1kv?= =?utf-8?B?YjNHcitsTUtGdG1mRnVOQk4yMW1XZTF1b3BwRW0rNGZkcDQyS21mdktRclhG?= =?utf-8?B?aHBzMXIyV0hDbGdheVUySGNWdThJTGczdERYbklwdVZROGxXQ3o0YjJHMWhC?= =?utf-8?B?OGk3a0lDcW9IdHU5MnVUN0VsUVpzZHdRMTFLWk8vSkJLVHc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB6694.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eU85NU5XOVVMaG1yV2M4QmhvakZ0ZjQxWTIrVVhYd3pweEhzaEl5eUJpRUFt?= =?utf-8?B?bEowek5hWDY4RnhEOGp5eCtYdmE3TThZQkxTOFFpVnVlNkpHNjBNZ0JiUHFn?= =?utf-8?B?NHVBWHBZeDNQK0ZwOXNyWG1BaVFZVk00WjZFRFNZVzdGZndVYnpNdnh2VmdR?= =?utf-8?B?a1BIKzRCSDJRbGtRaGZLTStvK1BEaC8xSHpwS3ZVTHBNbnlKQW1lOU90aTBp?= =?utf-8?B?QXRuQU1SZnY3TFpTS0Z4bnRXTTJhZ1hqUElXL2lXNEF5R3A1cDZRaWU0N2dV?= =?utf-8?B?SVBmdjhzVkVqemVUakhRalFYWURwcVpvWXJiVHBxbzRlOGk5alY5aGRkRGRP?= =?utf-8?B?OUxHSVZ2aktMWk00QXNWWW1uampPRDg3eElVY2pIMit2c0V3SDdFTHpYQUdq?= =?utf-8?B?d2sya0daMnJsRldDMjRBdmplaHh1Ui9BQS9nd1N4WXF1VEpOQU5kbzFMVkdS?= =?utf-8?B?ZDBzMUVYWU5tMDJjSWFheEZxcldvUnhhalRGbnNhRG05YXpzMnBHNHpSQVd1?= =?utf-8?B?aVo3UzJNUU8xNmkzOC9KY2xPTzBTQkpyK1djR2tsSk55RmY2TW5jWFh2dDJG?= =?utf-8?B?emQ1Yk1qelJaSXVYZm1VenRFL0UzUzlRdDNtcnlIVjQ4UGVBMmhWeTRzdjg4?= =?utf-8?B?RmF2RVQzSy8vQ0pOeTZ3UGxqZW5zdS9Oa081TC9keXFVUW5JNWw5UVVaNDFr?= =?utf-8?B?K2tlVTdHblNhZ3hrQ2RMMVV2a3c4NEJZTlRWamZPdkhvNXJqSTM0UGw1aEdi?= =?utf-8?B?QzQreGJEY3VVQ0xTY0xCQUo1Q05qS2hwQVptNkRsc1VsU2ZMelQ2MEYrVEVO?= =?utf-8?B?MVhlRXJ2WERBSUwrVGg5VEkycVY2R0tZSUFGVzltWlcvTTk1VWhQWmJkTEVP?= =?utf-8?B?dExTRkhab09NNDliSWRkNVVKSlFLZlRFeTRPOFg1dnRnUWtFMkRjTHhPL0du?= =?utf-8?B?SHdDZDRDTU5DV2JpaVRvZG1IL0lIczk5ZUd6Qjg0eEE0Z0tKTnRPYi9kWnJH?= =?utf-8?B?VHBEOXQ5bWxFOUFsTU9MeVd1djlpOVYwVlU0dTl3c3g5cEhEczJzZFVPWnZl?= =?utf-8?B?V0V5bTFYVmJac3RIeUJ5QlBZanQ3NkM4b1puQ0V0dlRscm5zN2pERTI1NVNL?= =?utf-8?B?UHFnWTNEaTUycm52VWRlTENzekx2M3QzbjNBZGNOdEJxQW03SlZBOHVsbm1h?= =?utf-8?B?LzhaQ2pDZGhDK2EwNHNYQ21HT1dvbkMxVEFCdTU2enArZU0yQ001OUNoMDVo?= =?utf-8?B?K2lnSVVGOFVjNWJEM05rVUozYjZMQTc4VVU0N3RDenFHMWNnTmgzMTJTdUpN?= =?utf-8?B?aDV4dGxHSytieE05aWNwZ0NMNUs3N3AvK0dWQmxMVjh6dURzeGJSUGVBdUdv?= =?utf-8?B?aytmWDhlcEJhZERjRjZ5ZG01akdOL0ZLMlNlbGowVVgwSCtRSlRMVVZHc2xT?= =?utf-8?B?SU1SVEpDeWU3WmFwa3BURTNYTS9qTGR2cUY0cjZRYUhKa2ZVaTRmMkV3a0lE?= =?utf-8?B?REZxdC96UVV5dTZsWG1tYmZyQkh4aUh2cFQxNlAvWFp6ZElzYWdyUUt6SVll?= =?utf-8?B?aGczd21IZ0JJSHhUeFdmd0Fsa1JWVHZIc05DOHI2MmtVN01LVGVKYkpETlJ5?= =?utf-8?B?bEZ3QXdwcFVyTitYWVJ5VjEvcDF2TEJWemRwWloxLzhjQ1N0QlFXTU8xVWxM?= =?utf-8?B?TzV5UER4VFdybkRmNXZBcDBIVDRDRGlLVkMwdm5TMEcyZFZOUE9LMkc0QlNt?= =?utf-8?B?RkM5ZHFWTUJnWkdzOStBVW1uT3ppWjRhb0ZIMUxkMURocE1TWHRzbkwrMnRw?= =?utf-8?B?OCtic3VWQkJLejlNMEdqVXUwdWhXcGJmMDEzTDBudlo5cHpqdExVbFg2bVFN?= =?utf-8?B?Mkw4WU01QU5xOW11OTNvd3o5S09QZERXL0tDUUxkWmw0bHVKRjRVbzV3TEtt?= =?utf-8?B?ZmV1MzVCUkZsY3pyNjVRODdaamxuNGd2TGJsRlpCTHdYbzBCcElyTXdWZ084?= =?utf-8?B?VVJnM1lwSHJRVjNJOVlsa0o0MnpiaEwzZ2JNeHkwVEVRcENhTkVQbU5oSERS?= =?utf-8?B?a1NqSW9ldElURWpJNU4yNmQ4NHB6R3ZMa1YvNVl1UE9jUnRwR3d1VnF6SC9k?= =?utf-8?Q?12Aoo3G82e6f+HVkAfKNKDz1O?= 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: SJ0PR11MB6694.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ba9651d-df9d-43d2-c9d8-08dcd4265b5d X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2024 19:00:38.2186 (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: E7KbLiaWNYiZ71mV4eAbYEFbsfdh3L4PdX+Fc/WdDloFU73aYUDZ5FWx76ATsIOFXwbIa3jwxAzMScKXgzw9rKBQmgHTAZ8kbPaD3QaDwMY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7467 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBGcmlkYXks IFNlcHRlbWJlciAxMywgMjAyNCA3OjE4IEFNDQo+IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNv bGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBoZW1hbnQuYWdyYXdh bEBueHAuY29tOyBNYXJjaGFuZCwgRGF2aWQNCj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+ OyBWYXJnYXMsIEhlcm5hbiA8aGVybmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggdjIgMi8yXSBiYXNlYmFuZC9hY2M6IGltcHJvdmVtZW50IHRvIGxvZ2dpbmcNCj4g bWVjaGFuaXNtDQo+IA0KPiANCj4gDQo+IE9uIDgvMjkvMjQgMjI6MDYsIE5pY29sYXMgQ2hhdXRy dSB3cm90ZToNCj4gPiBTdXBwb3J0IHRoZSBuZXcgZGV2IG9wIHRvIGR1bXAgb3BlcmF0aW9ucyBp bmZvcm1hdGlvbiByZWxhdGVkIHRvIGENCj4gPiBnaXZlbiBxdWV1ZSBhbmQgaW5mb3JtYXRpb24g b24gcHJldmlvdXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoZSBkcml2ZXINCj4gPiBhbmQgdHJhY2tl ZCBpbnRlcm5hbGx5IGluIFBNRC4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hh dXRydSA8bmljb2xhcy5jaGF1dHJ1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGRyaXZlcnMv YmFzZWJhbmQvYWNjL2FjY19jb21tb24uaCAgfCAgMzcgKysrKysrKysrDQo+ID4gICBkcml2ZXJz L2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jIHwgMTI4ICsrKysrKysrKysrKysrKysrKysrKysr LS0tLS0NCj4gLQ0KPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygrKSwgMjcg ZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2Mv YWNjX2NvbW1vbi5oDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4g PiBpbmRleCBlMjQ5ZjM3ZTM4Li5jODkxNGIyM2UwIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv YmFzZWJhbmQvYWNjL2FjY19jb21tb24uaA0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNj L2FjY19jb21tb24uaA0KPiA+IEBAIC0xNDksNiArMTQ5LDggQEANCj4gPiAgICNkZWZpbmUgVlJC Ml9WRl9JRF9TSElGVCAgICAgNg0KPiA+DQo+ID4gICAjZGVmaW5lIEFDQ19NQVhfRkZUX1dJTiAg ICAgIDE2DQo+ID4gKyNkZWZpbmUgQUNDX01BWF9MT0dMRU4gICAgMjU2DQo+ID4gKyNkZWZpbmUg QUNDX01BWF9CVUZGRVJMRU4gMjU2DQo+ID4NCj4gPiAgIGV4dGVybiBpbnQgYWNjX2NvbW1vbl9s b2d0eXBlOw0KPiA+DQo+ID4gQEAgLTY0Niw4ICs2NDgsNDMgQEAgc3RydWN0IF9fcnRlX2NhY2hl X2FsaWduZWQgYWNjX3F1ZXVlIHsNCj4gPiAgIAlydGVfaW92YV90IGZjd19yaW5nX2FkZHJfaW92 YTsNCj4gPiAgIAlpbnQ4X3QgKmRlcm1fYnVmZmVyOyAvKiBpbnRlcmltIGJ1ZmZlciBmb3IgZGUt cm0gaW4gU0RLICovDQo+ID4gICAJc3RydWN0IGFjY19kZXZpY2UgKmQ7DQo+ID4gKwljaGFyIGVy cm9yX2J1ZnNbQUNDX01BWF9CVUZGRVJMRU5dW0FDQ19NQVhfTE9HTEVOXTsgLyoqPA0KPiBCdWZm ZXIgZm9yDQo+ID4gK2Vycm9yIGxvZy4gKi8NCj4gDQo+IDY1S0IgaXMgcXVpdGUgYmlnIGZvciBl YWNoIHF1ZXVlcw0KPiANCj4gSSBkb24ndCBzZWUgdGhlIHBvaW50IG9mIGFsbCB0aGlzLCBhcyBl cnJvcnMgYXJlIGFscmVhZHkgbG9nZ2VkIHVzaW5nDQo+IHJ0ZV9iYmRldl9sb2cuIE9ubHkgdGhp bmcgeW91IG1pc3MgaXMgdGhlIHF1ZXVlL2RldmljZSBpbmZvIGluIGN1cnJldG4NCj4gc29sdXRp b24sIG5vPw0KDQpUaGUgcnRlX2JiZGV2X2xvZyBpcyBvbmx5IGZvciBzdGRfb3V0cHV0IHdoaWNo IHdvdWxkIGJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgZm9yIHJlYWwgdGltZSBhcHBsaWNhdGlvbiBz byB2ZXJ5IGxpbWl0ZWQgdXNhYmlsaXR5Lg0KSGVyZSB3ZSBzdG9yZSB0aGUgcmVsYXRlZCBpbmZv cm1hdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGJlIGFibGUgdG8gcmV0cmlldmUgdGhlbXNl bHZlcyBhcyByZXF1aXJlZCBhZnRlciB0aGUgZmFjdCAobm90IGltcGFjdGluZyByZWFsIHRpbWUp LiANCg0KPiANCj4gPiArCXVpbnQxNl90IGVycm9yX2hlYWQ7ICAvKio8IEhlYWQgLSBCdWZmZXIg Zm9yIGVycm9yIGxvZy4gKi8NCj4gPiArCXVpbnQxNl90ICBlcnJvcl93cmFwOyAvKio8IFdyYXAg Q291bnRlciAtIEJ1ZmZlciBmb3IgZXJyb3IgbG9nLiAqLw0KPiA+ICAgfTsNCj4gPg0KPiA+ICsv KioNCj4gPiArICogQGJyaWVmIFJlcG9ydCBlcnJvciBib3RoIHRocm91Z2ggUlRFIGxvZ2dpbmcg YW5kIGludG8gaW50ZXJuYWwgZHJpdmVyDQo+IG1lbW9yeS4NCj4gPiArICoNCj4gPiArICogVGhp cyBmdW5jdGlvbiBpcyB1c2VkIHRvIGxvZyBhbiBlcnJvciBmb3IgYSBzcGVjaWZpYyBBQ0MgcXVl dWUgYW5kDQo+IG9wZXJhdGlvbi4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIHEgICBQb2ludGVy IHRvIHRoZSBBQ0MgcXVldWUuDQo+ID4gKyAqIEBwYXJhbSBvcCAgUG9pbnRlciB0byB0aGUgb3Bl cmF0aW9uLg0KPiA+ICsgKiBAcGFyYW0gZm10IEZvcm1hdCBzdHJpbmcgZm9yIHRoZSBlcnJvciBt ZXNzYWdlLg0KPiA+ICsgKiBAcGFyYW0gLi4uIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvciB0aGUg Zm9ybWF0IHN0cmluZy4NCj4gPiArICovDQo+ID4gK19fcnRlX2Zvcm1hdF9wcmludGYoMywgNCkN Cj4gPiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4gK2FjY19lcnJvcl9sb2coc3RydWN0IGFjY19x dWV1ZSAqcSwgdm9pZCAqb3AsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7DQo+ID4gKwl2YV9saXN0 IGFyZ3MsIGFyZ3MyOw0KPiA+ICsNCj4gPiArCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7DQo+ID4gKwl2 YV9jb3B5KGFyZ3MyLCBhcmdzKTsNCj4gPiArCXJ0ZV92bG9nKFJURV9MT0dfRVJSLCBhY2NfY29t bW9uX2xvZ3R5cGUsIGZtdCwgYXJncyk7DQo+ID4gKwl2c25wcmludGYocS0+ZXJyb3JfYnVmc1tx LT5lcnJvcl9oZWFkXSwgQUNDX01BWF9MT0dMRU4sIGZtdCwNCj4gYXJnczIpOw0KPiA+ICsJcS0+ ZXJyb3JfaGVhZCsrOw0KPiA+ICsJc25wcmludGYocS0+ZXJyb3JfYnVmc1txLT5lcnJvcl9oZWFk XSwgQUNDX01BWF9MT0dMRU4sDQo+ID4gKwkJCSIlcyIsIHJ0ZV9iYmRldl9vcHNfcGFyYW1fc3Ry aW5nKG9wLCBxLT5vcF90eXBlKSk7DQo+ID4gKwlxLT5lcnJvcl9oZWFkKys7DQo+ID4gKwlpZiAo cS0+ZXJyb3JfaGVhZCA9PSBBQ0NfTUFYX0xPR0xFTikgew0KPiA+ICsJCXEtPmVycm9yX2hlYWQg PSAwOw0KPiA+ICsJCXEtPmVycm9yX3dyYXArKzsNCj4gPiArCX0NCj4gPiArCXZhX2VuZChhcmdz KTsNCj4gPiArCXZhX2VuZChhcmdzMik7DQo+ID4gK30NCj4gPiArDQo+ID4gICAvKiBXcml0ZSB0 byBNTUlPIHJlZ2lzdGVyIGFkZHJlc3MgKi8NCj4gPiAgIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+ ICAgbW1pb193cml0ZSh2b2lkICphZGRyLCB1aW50MzJfdCB2YWx1ZSkgZGlmZiAtLWdpdA0KPiA+ IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+IGIvZHJpdmVycy9iYXNl YmFuZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+IGluZGV4IDU4NWRjNDliZDYuLjlkMDE0NWQwOWIg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9wbWQuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPiBAQCAtMTAyMiw2 ICsxMDIyLDEwIEBAIHZyYl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+IHVp bnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAgCXEtPm1taW9fcmVnX2VucXVldWUgPSBSVEVfUFRSX0FE RChkLT5tbWlvX2Jhc2UsDQo+ID4gICAJCQlkLT5xdWV1ZV9vZmZzZXQoZC0+cGZfZGV2aWNlLCBx LT52Zl9pZCwgcS0+cWdycF9pZCwgcS0NCj4gPmFxX2lkKSk7DQo+ID4NCj4gPiArCS8qKiBpbml0 aWFsaXplIHRoZSBlcnJvciBidWZmZXIuICovDQo+ID4gKwlxLT5lcnJvcl9oZWFkID0gMDsNCj4g PiArCXEtPmVycm9yX3dyYXAgPSAwOw0KPiA+ICsNCj4gPiAgIAlydGVfYmJkZXZfbG9nX2RlYnVn KA0KPiA+ICAgCQkJIlNldHVwIGRldiV1IHEldTogcWdycF9pZD0ldSwgdmZfaWQ9JXUsIGFxX2lk PSV1LA0KPiBhcV9kZXB0aD0ldSwgbW1pb19yZWdfZW5xdWV1ZT0lcCBiYXNlICVwXG4iLA0KPiA+ ICAgCQkJZGV2LT5kYXRhLT5kZXZfaWQsIHF1ZXVlX2lkLCBxLT5xZ3JwX2lkLCBxLT52Zl9pZCwN Cj4gQEAgLTE0MzQsNg0KPiA+ICsxNDM4LDc0IEBAIHZyYl9xdWV1ZV9pbnRyX2Rpc2FibGUoc3Ry dWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50MTZfdA0KPiBxdWV1ZV9pZCkNCj4gPiAgIAlyZXR1cm4g MDsNCj4gPiAgIH0NCj4gPg0KPiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICt2cmJfcXVldWVf b3BzX2R1bXAoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCwgRklMRSAq ZikNCj4gPiArew0KPiA+ICsJc3RydWN0IGFjY19xdWV1ZSAqcSA9IGRldi0+ZGF0YS0+cXVldWVz W3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlOw0KPiA+ICsJc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3Ag Km9wOw0KPiA+ICsJdWludDE2X3Qgc3RhcnRfZXJyLCBlbmRfZXJyLCBpLCBpbnRfbmI7DQo+ID4g Kwl2b2xhdGlsZSB1bmlvbiBhY2NfaW5mb19yaW5nX2RhdGEgKnJpbmdfZGF0YTsNCj4gPiArCXVp bnQxNl90IGluZm9fcmluZ19oZWFkID0gcS0+ZC0+aW5mb19yaW5nX2hlYWQ7DQo+ID4gKw0KPiA+ ICsJaWYgKGYgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiSW52YWxpZCBG aWxlIGlucHV0Iik7DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ ICsJLyoqIFByaW50IGdlbmVyaWMgaW5mb3JtYXRpb24gb24gcXVldWUgc3RhdHVzLiAqLw0KPiA+ ICsJZnByaW50ZihmLCAiRHVtcCBvZiBvcGVyYXRpb25zICVzIG9uIFF1ZXVlICVkIGJ5ICVzXG4i LA0KPiA+ICsJCQlydGVfYmJkZXZfb3BfdHlwZV9zdHIocS0+b3BfdHlwZSksIHF1ZXVlX2lkLCBk ZXYtDQo+ID5kZXZpY2UtPmRyaXZlci0+bmFtZSk7DQo+ID4gKwlmcHJpbnRmKGYsICIgICAgQVEg RW5xdWV1ZWQgJWQgRGVxdWV1ZWQgJWQgRGVwdGggJWQgLSBBdmFpbGFibGUgRW5xDQo+ICVkIERl cSAlZFxuIiwNCj4gPiArCQkJcS0+YXFfZW5xdWV1ZWQsIHEtPmFxX2RlcXVldWVkLCBxLT5hcV9k ZXB0aCwNCj4gPiArCQkJYWNjX3JpbmdfYXZhaWxfZW5xKHEpLCBhY2NfcmluZ19hdmFpbF9kZXEo cSkpOw0KPiA+ICsNCj4gPiArCS8qKiBQcmludCBpbmZvcm1hdGlvbiBjYXB0dXJlZCBpbiB0aGUg ZXJyb3IgYnVmZmVyLiAqLw0KPiA+ICsJaWYgKHEtPmVycm9yX3dyYXAgPT0gMCkgew0KPiA+ICsJ CXN0YXJ0X2VyciA9IDA7DQo+ID4gKwkJZW5kX2VyciA9IHEtPmVycm9yX2hlYWQ7DQo+ID4gKwl9 IGVsc2Ugew0KPiA+ICsJCXN0YXJ0X2VyciA9IHEtPmVycm9yX2hlYWQ7DQo+ID4gKwkJZW5kX2Vy ciA9IHEtPmVycm9yX2hlYWQgKyBBQ0NfTUFYX0JVRkZFUkxFTjsNCj4gPiArCX0NCj4gPiArCWZw cmludGYoZiwgIkVycm9yIEJ1ZmZlciAtIEhlYWQgJWQgV3JhcCAlZFxuIiwgcS0+ZXJyb3JfaGVh ZCwgcS0NCj4gPmVycm9yX3dyYXApOw0KPiA+ICsJZm9yIChpID0gc3RhcnRfZXJyOyBpIDwgZW5k X2VycjsgKytpKQ0KPiA+ICsJCWZwcmludGYoZiwgIiAgJWRcdCVzIiwgaSwgcS0+ZXJyb3JfYnVm c1tpICUNCj4gQUNDX01BWF9CVUZGRVJMRU5dKTsNCj4gPiArDQo+ID4gKwkvKiogUHJpbnQgaW5m b3JtYXRpb24gY2FwdHVyZWQgaW4gdGhlIGluZm8gcmluZy4gKi8NCj4gPiArCWlmIChxLT5kLT5p bmZvX3JpbmcgIT0gTlVMTCkgew0KPiA+ICsJCWZwcmludGYoZiwgIkluZm8gUmluZyBCdWZmZXIg LSBIZWFkICVkXG4iLCBxLT5kLQ0KPiA+aW5mb19yaW5nX2hlYWQpOw0KPiA+ICsJCXJpbmdfZGF0 YSA9IHEtPmQtPmluZm9fcmluZyArIChxLT5kLT5pbmZvX3JpbmdfaGVhZCAmDQo+IEFDQ19JTkZP X1JJTkdfTUFTSyk7DQo+ID4gKwkJd2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPiArCQkJ aW50X25iID0gaW50X2Zyb21fcmluZygqcmluZ19kYXRhLCBxLT5kLQ0KPiA+ZGV2aWNlX3Zhcmlh bnQpOw0KPiA+ICsJCQlpZiAoKGludF9uYiA8IEFDQ19QRl9JTlRfRE1BX0RMX0RFU0NfSVJRKSB8 fCAoDQo+ID4gKwkJCQkJaW50X25iID4NCj4gQUNDX1BGX0lOVF9ETUFfTUxEX0RFU0NfSVJRKSkg ew0KPiA+ICsJCQkJZnByaW50ZihmLCAiICBJbmZvUmluZzogSVRSOiVkIEluZm86MHgleCIsDQo+ ID4gKwkJCQkJCWludF9uYiwgcmluZ19kYXRhLQ0KPiA+ZGV0YWlsZWRfaW5mbyk7DQo+ID4gKwkJ CQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkLg0KPiAqLw0K PiA+ICsJCQkJcmluZ19kYXRhLT52YWxpZCA9IDA7DQo+ID4gKwkJCX0NCj4gPiArCQkJaW5mb19y aW5nX2hlYWQrKzsNCj4gPiArCQkJcmluZ19kYXRhID0gcS0+ZC0+aW5mb19yaW5nICsgKGluZm9f cmluZ19oZWFkICYNCj4gQUNDX0lORk9fUklOR19NQVNLKTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ ID4gKw0KPiA+ICsJZnByaW50ZihmLCAiUmluZyBDb250ZW50IC0gSGVhZCAlZCBUYWlsICVkIERl cHRoICVkXG4iLA0KPiA+ICsJCQlxLT5zd19yaW5nX2hlYWQsIHEtPnN3X3JpbmdfdGFpbCwgcS0+ c3dfcmluZ19kZXB0aCk7DQo+ID4gKwkvKiogUHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBv cGVyYXRpb24gaW4gdGhlIHNvZnR3YXJlIHJpbmcuICovDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwg cS0+c3dfcmluZ19kZXB0aDsgKytpKSB7DQo+ID4gKwkJb3AgPSAocS0+cmluZ19hZGRyICsgaSkt PnJlcS5vcF9hZGRyOw0KPiA+ICsJCWlmIChvcCAhPSBOVUxMKQ0KPiA+ICsJCQlmcHJpbnRmKGYs ICIgICVkXHRuICVkICVzIiwNCj4gPiArCQkJCQlpLCAocS0+cmluZ19hZGRyICsgaSktPnJlcS5u dW1DQnMsDQo+ID4gKwkJCQkJcnRlX2JiZGV2X29wc19wYXJhbV9zdHJpbmcob3AsIHEtDQo+ID5v cF90eXBlKSk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJZnByaW50ZihmLCAiPT0gRW5kIG9mIEZp bGUgPT1cbiIpOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAg c3RhdGljIGNvbnN0IHN0cnVjdCBydGVfYmJkZXZfb3BzIHZyYl9iYmRldl9vcHMgPSB7DQo+ID4g ICAJLnNldHVwX3F1ZXVlcyA9IHZyYl9zZXR1cF9xdWV1ZXMsDQo+ID4gICAJLmludHJfZW5hYmxl ID0gdnJiX2ludHJfZW5hYmxlLA0KPiA+IEBAIC0xNDQzLDcgKzE1MTUsOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHJ0ZV9iYmRldl9vcHMgdnJiX2JiZGV2X29wcw0KPiA9IHsNCj4gPiAgIAkucXVl dWVfcmVsZWFzZSA9IHZyYl9xdWV1ZV9yZWxlYXNlLA0KPiA+ICAgCS5xdWV1ZV9zdG9wID0gdnJi X3F1ZXVlX3N0b3AsDQo+ID4gICAJLnF1ZXVlX2ludHJfZW5hYmxlID0gdnJiX3F1ZXVlX2ludHJf ZW5hYmxlLA0KPiA+IC0JLnF1ZXVlX2ludHJfZGlzYWJsZSA9IHZyYl9xdWV1ZV9pbnRyX2Rpc2Fi bGUNCj4gPiArCS5xdWV1ZV9pbnRyX2Rpc2FibGUgPSB2cmJfcXVldWVfaW50cl9kaXNhYmxlLA0K PiA+ICsJLnF1ZXVlX29wc19kdW1wID0gdnJiX3F1ZXVlX29wc19kdW1wDQo+ID4gICB9Ow0KPiA+ DQo+ID4gICAvKiBQQ0kgUEYgYWRkcmVzcyBtYXAuICovDQo+ID4gQEAgLTE2ODAsNyArMTc1Myw3 IEBAIHZyYl9kbWFfZGVzY190ZF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZGVjX29wDQo+ICpvcCwN Cj4gPiAgIAkJdWludDMyX3QgKmluX29mZnNldCwgdWludDMyX3QgKmhfb3V0X29mZnNldCwNCj4g PiAgIAkJdWludDMyX3QgKnNfb3V0X29mZnNldCwgdWludDMyX3QgKmhfb3V0X2xlbmd0aCwNCj4g PiAgIAkJdWludDMyX3QgKnNfb3V0X2xlbmd0aCwgdWludDMyX3QgKm1idWZfdG90YWxfbGVmdCwN Cj4gPiAtCQl1aW50MzJfdCAqc2VnX3RvdGFsX2xlZnQsIHVpbnQ4X3QgcikNCj4gPiArCQl1aW50 MzJfdCAqc2VnX3RvdGFsX2xlZnQsIHVpbnQ4X3Qgciwgc3RydWN0IGFjY19xdWV1ZSAqcSkNCj4g PiAgIHsNCj4gPiAgIAlpbnQgbmV4dF90cmlwbGV0ID0gMTsgLyogRkNXIGFscmVhZHkgZG9uZS4g Ki8NCj4gPiAgIAl1aW50MTZfdCBrOw0KPiA+IEBAIC0xNzI0LDggKzE3OTcsOCBAQCB2cmJfZG1h X2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiAqb3AsDQo+ID4gICAJa3cg PSBSVEVfQUxJR05fQ0VJTChrICsgNCwgMzIpICogMzsNCj4gPg0KPiA+ICAgCWlmICh1bmxpa2Vs eSgoKm1idWZfdG90YWxfbGVmdCA9PSAwKSB8fCAoKm1idWZfdG90YWxfbGVmdCA8IGt3KSkpIHsN Cj4gPiAtCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiAtCQkJCSJNaXNtYXRjaCBiZXR3ZWVuIG1i dWYgbGVuZ3RoIGFuZCBpbmNsdWRlZA0KPiBDQiBzaXplczogbWJ1ZiBsZW4gJXUsIGNiIGxlbiAl dSIsDQo+ID4gKwkJYWNjX2Vycm9yX2xvZyhxLCAodm9pZCAqKW9wLA0KPiA+ICsJCQkJIk1pc21h dGNoIGJldHdlZW4gbWJ1ZiBsZW5ndGggYW5kIGluY2x1ZGVkDQo+IENCIHNpemVzOiBtYnVmIGxl biAldSwNCj4gPiArY2IgbGVuICV1XG4iLA0KPiA+ICAgCQkJCSptYnVmX3RvdGFsX2xlZnQsIGt3 KTsNCj4gPiAgIAkJcmV0dXJuIC0xOw0KPiA+ICAgCX0NCj4gPiBAQCAtMTczNSw4ICsxODA4LDgg QEAgdnJiX2RtYV9kZXNjX3RkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gKm9wLA0K PiA+ICAgCQkJY2hlY2tfYml0KG9wLT50dXJib19kZWMub3BfZmxhZ3MsDQo+ID4gICAJCQlSVEVf QkJERVZfVFVSQk9fREVDX1NDQVRURVJfR0FUSEVSKSk7DQo+ID4gICAJaWYgKHVubGlrZWx5KG5l eHRfdHJpcGxldCA8IDApKSB7DQo+ID4gLQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gLQkJCQki TWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1idWYNCj4gZGF0YSBsZW5ndGgg aW4gYmJkZXZfb3A6ICVwIiwNCj4gPiArCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsDQo+ ID4gKwkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1idWYNCj4gZGF0 YSBsZW5ndGggaW4NCj4gPiArYmJkZXZfb3A6ICVwXG4iLA0KPiA+ICAgCQkJCW9wKTsNCj4gPiAg IAkJcmV0dXJuIC0xOw0KPiA+ICAgCX0NCj4gPiBAQCAtMTc0OCw3ICsxODIxLDcgQEAgdnJiX2Rt YV9kZXNjX3RkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gKm9wLA0KPiA+ICAgCQkJ ZGVzYywgaF9vdXRwdXQsICpoX291dF9vZmZzZXQsDQo+ID4gICAJCQkqaF9vdXRfbGVuZ3RoLCBu ZXh0X3RyaXBsZXQsDQo+IEFDQ19ETUFfQkxLSURfT1VUX0hBUkQpOw0KPiA+ICAgCWlmICh1bmxp a2VseShuZXh0X3RyaXBsZXQgPCAwKSkgew0KPiA+IC0JCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ ICsJCWFjY19lcnJvcl9sb2cocSwgKHZvaWQgKilvcCwNCj4gPiAgIAkJCQkiTWlzbWF0Y2ggYmV0 d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1idWYNCj4gZGF0YSBsZW5ndGggaW4gYmJkZXZfb3A6 ICVwIiwNCj4gPiAgIAkJCQlvcCk7DQo+ID4gICAJCXJldHVybiAtMTsNCj4gPiBAQCAtMTc2MCw3 ICsxODMzLDcgQEAgdnJiX2RtYV9kZXNjX3RkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3AN Cj4gKm9wLA0KPiA+ICAgCS8qIFNvZnQgb3V0cHV0LiAqLw0KPiA+ICAgCWlmIChjaGVja19iaXQo b3AtPnR1cmJvX2RlYy5vcF9mbGFncywNCj4gUlRFX0JCREVWX1RVUkJPX1NPRlRfT1VUUFVUKSkg ew0KPiA+ICAgCQlpZiAob3AtPnR1cmJvX2RlYy5zb2Z0X291dHB1dC5kYXRhID09IDApIHsNCj4g PiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsICJTb2Z0IG91dHB1dCBpcyBub3QgZGVmaW5lZCIpOw0K PiA+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsICJTb2Z0IG91dHB1dCBpcyBub3QN Cj4gZGVmaW5lZFxuIik7DQo+ID4gICAJCQlyZXR1cm4gLTE7DQo+ID4gICAJCX0NCj4gPiAgIAkJ aWYgKGNoZWNrX2JpdChvcC0+dHVyYm9fZGVjLm9wX2ZsYWdzLA0KPiA+IEBAIC0xNzczLDggKzE4 NDYsOCBAQCB2cmJfZG1hX2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiAq b3AsDQo+ID4gICAJCQkJKnNfb3V0X29mZnNldCwgKnNfb3V0X2xlbmd0aCwgbmV4dF90cmlwbGV0 LA0KPiA+ICAgCQkJCUFDQ19ETUFfQkxLSURfT1VUX1NPRlQpOw0KPiA+ICAgCQlpZiAodW5saWtl bHkobmV4dF90cmlwbGV0IDwgMCkpIHsNCj4gPiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4g LQkJCQkJIk1pc21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzDQo+IGFuZCBtYnVmIGRhdGEg bGVuZ3RoIGluIGJiZGV2X29wOiAlcCIsDQo+ID4gKwkJCWFjY19lcnJvcl9sb2cocSwgKHZvaWQg KilvcCwNCj4gPiArCQkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MNCj4gYW5k IG1idWYgZGF0YSBsZW5ndGggaW4NCj4gPiArYmJkZXZfb3A6ICVwXG4iLA0KPiA+ICAgCQkJCQlv cCk7DQo+ID4gICAJCQlyZXR1cm4gLTE7DQo+ID4gICAJCX0NCj4gPiBAQCAtMTc5Nyw3ICsxODcw LDggQEAgdnJiX2RtYV9kZXNjX2xkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gKm9w LA0KPiA+ICAgCQlzdHJ1Y3QgcnRlX21idWYgKippbnB1dCwgc3RydWN0IHJ0ZV9tYnVmICpoX291 dHB1dCwNCj4gPiAgIAkJdWludDMyX3QgKmluX29mZnNldCwgdWludDMyX3QgKmhfb3V0X29mZnNl dCwNCj4gPiAgIAkJdWludDMyX3QgKmhfb3V0X2xlbmd0aCwgdWludDMyX3QgKm1idWZfdG90YWxf bGVmdCwNCj4gPiAtCQl1aW50MzJfdCAqc2VnX3RvdGFsX2xlZnQsIHN0cnVjdCBhY2NfZmN3X2xk ICpmY3csIHVpbnQxNl90DQo+IGRldmljZV92YXJpYW50KQ0KPiA+ICsJCXVpbnQzMl90ICpzZWdf dG90YWxfbGVmdCwgc3RydWN0IGFjY19mY3dfbGQgKmZjdywgdWludDE2X3QNCj4gZGV2aWNlX3Zh cmlhbnQsDQo+ID4gKwkJc3RydWN0IGFjY19xdWV1ZSAqcSkNCj4gPiAgIHsNCj4gPiAgIAlzdHJ1 Y3QgcnRlX2JiZGV2X29wX2xkcGNfZGVjICpkZWMgPSAmb3AtPmxkcGNfZGVjOw0KPiA+ICAgCWlu dCBuZXh0X3RyaXBsZXQgPSAxOyAvKiBGQ1cgYWxyZWFkeSBkb25lLiAqLyBAQCAtMTgwOCw4ICsx ODgyLDgNCj4gQEANCj4gPiB2cmJfZG1hX2Rlc2NfbGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2Rl Y19vcCAqb3AsDQo+ID4gICAJaWYgKGRldmljZV92YXJpYW50ID09IFZSQjFfVkFSSUFOVCkgew0K PiA+ICAgCQlpZiAoY2hlY2tfYml0KG9wLT5sZHBjX2RlYy5vcF9mbGFncywNCj4gUlRFX0JCREVW X0xEUENfSEFSUV80QklUX0NPTVBSRVNTSU9OKSB8fA0KPiA+ICAgCQkJCWNoZWNrX2JpdChvcC0+ bGRwY19kZWMub3BfZmxhZ3MsDQo+IFJURV9CQkRFVl9MRFBDX1NPRlRfT1VUX0VOQUJMRSkpIHsN Cj4gPiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gLQkJCQkJIlZSQjEgZG9lcyBub3Qgc3Vw cG9ydCB0aGUgcmVxdWVzdGVkDQo+IGNhcGFiaWxpdGllcyAleCIsDQo+ID4gKwkJCWFjY19lcnJv cl9sb2cocSwgKHZvaWQgKilvcCwNCj4gPiArCQkJCQkiVlJCMSBkb2VzIG5vdCBzdXBwb3J0IHRo ZSByZXF1ZXN0ZWQNCj4gY2FwYWJpbGl0aWVzICV4XG4iLA0KPiA+ICAgCQkJCQlvcC0+bGRwY19k ZWMub3BfZmxhZ3MpOw0KPiA+ICAgCQkJcmV0dXJuIC0xOw0KPiA+ICAgCQl9DQo+ID4gQEAgLTE4 MjksOCArMTkwMyw4IEBAIHZyYl9kbWFfZGVzY19sZF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZGVj X29wDQo+ICpvcCwNCj4gPiAgIAlvdXRwdXRfbGVuZ3RoID0gSyAtIGRlYy0+bl9maWxsZXIgLSBj cmMyNF9vdmVybGFwOw0KPiA+DQo+ID4gICAJaWYgKHVubGlrZWx5KCgqbWJ1Zl90b3RhbF9sZWZ0 ID09IDApIHx8ICgqbWJ1Zl90b3RhbF9sZWZ0IDwNCj4gaW5wdXRfbGVuZ3RoKSkpIHsNCj4gPiAt CQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPiAtCQkJCSJNaXNtYXRjaCBiZXR3ZWVuIG1idWYgbGVu Z3RoIGFuZCBpbmNsdWRlZA0KPiBDQiBzaXplczogbWJ1ZiBsZW4gJXUsIGNiIGxlbiAldSIsDQo+ ID4gKwkJYWNjX2Vycm9yX2xvZyhxLCAodm9pZCAqKW9wLA0KPiA+ICsJCQkJIk1pc21hdGNoIGJl dHdlZW4gbWJ1ZiBsZW5ndGggYW5kIGluY2x1ZGVkDQo+IENCIHNpemVzOiBtYnVmIGxlbiAldSwN Cj4gPiArY2IgbGVuICV1XG4iLA0KPiA+ICAgCQkJCSptYnVmX3RvdGFsX2xlZnQsIGlucHV0X2xl bmd0aCk7DQo+ID4gICAJCXJldHVybiAtMTsNCj4gPiAgIAl9DQo+ID4gQEAgLTE4NDIsMTUgKzE5 MTYsMTUgQEAgdnJiX2RtYV9kZXNjX2xkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4g Km9wLA0KPiA+ICAgCQkJUlRFX0JCREVWX0xEUENfREVDX1NDQVRURVJfR0FUSEVSKSk7DQo+ID4N Cj4gPiAgIAlpZiAodW5saWtlbHkobmV4dF90cmlwbGV0IDwgMCkpIHsNCj4gPiAtCQlydGVfYmJk ZXZfbG9nKEVSUiwNCj4gPiAtCQkJCSJNaXNtYXRjaCBiZXR3ZWVuIGRhdGEgdG8gcHJvY2VzcyBh bmQgbWJ1Zg0KPiBkYXRhIGxlbmd0aCBpbiBiYmRldl9vcDogJXAiLA0KPiA+ICsJCWFjY19lcnJv cl9sb2cocSwgKHZvaWQgKilvcCwNCj4gPiArCQkJCSJNaXNtYXRjaCBiZXR3ZWVuIGRhdGEgdG8g cHJvY2VzcyBhbmQgbWJ1Zg0KPiBkYXRhIGxlbmd0aCBpbg0KPiA+ICtiYmRldl9vcDogJXBcbiIs DQo+ID4gICAJCQkJb3ApOw0KPiA+ICAgCQlyZXR1cm4gLTE7DQo+ID4gICAJfQ0KPiA+DQo+ID4g ICAJaWYgKGNoZWNrX2JpdChvcC0+bGRwY19kZWMub3BfZmxhZ3MsDQo+IFJURV9CQkRFVl9MRFBD X0hRX0NPTUJJTkVfSU5fRU5BQkxFKSkgew0KPiA+ICAgCQlpZiAob3AtPmxkcGNfZGVjLmhhcnFf Y29tYmluZWRfaW5wdXQuZGF0YSA9PSAwKSB7DQo+ID4gLQkJCXJ0ZV9iYmRldl9sb2coRVJSLCAi SEFSUSBpbnB1dCBpcyBub3QgZGVmaW5lZCIpOw0KPiA+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2 b2lkICopb3AsICJIQVJRIGlucHV0IGlzIG5vdA0KPiBkZWZpbmVkXG4iKTsNCj4gPiAgIAkJCXJl dHVybiAtMTsNCj4gPiAgIAkJfQ0KPiA+ICAgCQloX3Bfc2l6ZSA9IGZjdy0+aGNpbl9zaXplMCAr IGZjdy0+aGNpbl9zaXplMTsgQEAgLTE4NTksNw0KPiArMTkzMyw3DQo+ID4gQEAgdnJiX2RtYV9k ZXNjX2xkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3AgKm9wLA0KPiA+ICAgCQllbHNlIGlm IChmY3ctPmhjaW5fZGVjb21wX21vZGUgPT0gNCkNCj4gPiAgIAkJCWhfcF9zaXplID0gaF9wX3Np emUgLyAyOw0KPiA+ICAgCQlpZiAob3AtPmxkcGNfZGVjLmhhcnFfY29tYmluZWRfaW5wdXQuZGF0 YSA9PSAwKSB7DQo+ID4gLQkJCXJ0ZV9iYmRldl9sb2coRVJSLCAiSEFSUSBpbnB1dCBpcyBub3Qg ZGVmaW5lZCIpOw0KPiA+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsICJIQVJRIGlu cHV0IGlzIG5vdA0KPiBkZWZpbmVkXG4iKTsNCj4gPiAgIAkJCXJldHVybiAtMTsNCj4gPiAgIAkJ fQ0KPiA+ICAgCQlhY2NfZG1hX2ZpbGxfYmxrX3R5cGUoDQo+ID4gQEAgLTE4ODIsNyArMTk1Niw3 IEBAIHZyYl9kbWFfZGVzY19sZF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZGVjX29wDQo+ID4gKm9w LA0KPiA+DQo+ID4gICAJaWYgKGNoZWNrX2JpdChvcC0+bGRwY19kZWMub3BfZmxhZ3MsDQo+IFJU RV9CQkRFVl9MRFBDX1NPRlRfT1VUX0VOQUJMRSkpIHsNCj4gPiAgIAkJaWYgKG9wLT5sZHBjX2Rl Yy5zb2Z0X291dHB1dC5kYXRhID09IDApIHsNCj4gPiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsICJT b2Z0IG91dHB1dCBpcyBub3QgZGVmaW5lZCIpOw0KPiA+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2 b2lkICopb3AsICJTb2Z0IG91dHB1dCBpcyBub3QNCj4gZGVmaW5lZFxuIik7DQo+ID4gICAJCQly ZXR1cm4gLTE7DQo+ID4gICAJCX0NCj4gPiAgIAkJZGVjLT5zb2Z0X291dHB1dC5sZW5ndGggPSBm Y3ctPnJtX2U7IEBAIC0xODk0LDcgKzE5NjgsNw0KPiBAQA0KPiA+IHZyYl9kbWFfZGVzY19sZF9m aWxsKHN0cnVjdCBydGVfYmJkZXZfZGVjX29wICpvcCwNCj4gPiAgIAlpZiAoY2hlY2tfYml0KG9w LT5sZHBjX2RlYy5vcF9mbGFncywNCj4gPg0KPiAJUlRFX0JCREVWX0xEUENfSFFfQ09NQklORV9P VVRfRU5BQkxFKSkgew0KPiA+ICAgCQlpZiAob3AtPmxkcGNfZGVjLmhhcnFfY29tYmluZWRfb3V0 cHV0LmRhdGEgPT0gMCkgew0KPiA+IC0JCQlydGVfYmJkZXZfbG9nKEVSUiwgIkhBUlEgb3V0cHV0 IGlzIG5vdCBkZWZpbmVkIik7DQo+ID4gKwkJCWFjY19lcnJvcl9sb2cocSwgKHZvaWQgKilvcCwg IkhBUlEgb3V0cHV0IGlzIG5vdA0KPiBkZWZpbmVkXG4iKTsNCj4gPiAgIAkJCXJldHVybiAtMTsN Cj4gPiAgIAkJfQ0KPiA+DQo+ID4gQEAgLTIzMjYsOCArMjQwMCw4IEBAIHZyYjJfZW5xdWV1ZV9s ZHBjX2VuY19vbmVfb3BfdGIoc3RydWN0DQo+IGFjY19xdWV1ZSAqcSwgc3RydWN0IHJ0ZV9iYmRl dl9lbmNfb3AgKm9wDQo+ID4gICAJCQlpbl9sZW5ndGhfaW5fYnl0ZXMsICZzZWdfdG90YWxfbGVm dCwgbmV4dF90cmlwbGV0LA0KPiA+ICAgCQkJY2hlY2tfYml0KGVuYy0+b3BfZmxhZ3MsDQo+IFJU RV9CQkRFVl9MRFBDX0VOQ19TQ0FUVEVSX0dBVEhFUikpOw0KPiA+ICAgCWlmICh1bmxpa2VseShu ZXh0X3RyaXBsZXQgPCAwKSkgew0KPiA+IC0JCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+IC0JCQkJ Ik1pc21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzIGFuZCBtYnVmDQo+IGRhdGEgbGVuZ3Ro IGluIGJiZGV2X29wOiAlcCIsDQo+ID4gKwkJYWNjX2Vycm9yX2xvZyhxLCAodm9pZCAqKW9wLA0K PiA+ICsJCQkJIk1pc21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzIGFuZCBtYnVmDQo+IGRh dGEgbGVuZ3RoIGluDQo+ID4gK2JiZGV2X29wOiAlcFxuIiwNCj4gPiAgIAkJCQlvcCk7DQo+ID4g ICAJCXJldHVybiAtMTsNCj4gPiAgIAl9DQo+ID4gQEAgLTIzOTksNyArMjQ3Myw3IEBAIGVucXVl dWVfZGVjX29uZV9vcF9jYihzdHJ1Y3QgYWNjX3F1ZXVlICpxLA0KPiBzdHJ1Y3QgcnRlX2JiZGV2 X2RlY19vcCAqb3AsDQo+ID4gICAJcmV0ID0gdnJiX2RtYV9kZXNjX3RkX2ZpbGwob3AsICZkZXNj LT5yZXEsICZpbnB1dCwgaF9vdXRwdXQsDQo+ID4gICAJCQlzX291dHB1dCwgJmluX29mZnNldCwg Jmhfb3V0X29mZnNldCwgJnNfb3V0X29mZnNldCwNCj4gPiAgIAkJCSZoX291dF9sZW5ndGgsICZz X291dF9sZW5ndGgsICZtYnVmX3RvdGFsX2xlZnQsDQo+ID4gLQkJCSZzZWdfdG90YWxfbGVmdCwg MCk7DQo+ID4gKwkJCSZzZWdfdG90YWxfbGVmdCwgMCwgcSk7DQo+ID4NCj4gPiAgIAlpZiAodW5s aWtlbHkocmV0IDwgMCkpDQo+ID4gICAJCXJldHVybiByZXQ7DQo+ID4gQEAgLTI0NzgsNyArMjU1 Miw3IEBAIHZyYl9lbnF1ZXVlX2xkcGNfZGVjX29uZV9vcF9jYihzdHJ1Y3QNCj4gYWNjX3F1ZXVl ICpxLCBzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcCAqb3AsDQo+ID4gICAJCXJldCA9IHZyYl9kbWFf ZGVzY19sZF9maWxsKG9wLCAmZGVzYy0+cmVxLCAmaW5wdXQsIGhfb3V0cHV0LA0KPiA+ICAgCQkJ CSZpbl9vZmZzZXQsICZoX291dF9vZmZzZXQsDQo+ID4gICAJCQkJJmhfb3V0X2xlbmd0aCwgJm1i dWZfdG90YWxfbGVmdCwNCj4gPiAtCQkJCSZzZWdfdG90YWxfbGVmdCwgZmN3LCBxLT5kLT5kZXZp Y2VfdmFyaWFudCk7DQo+ID4gKwkJCQkmc2VnX3RvdGFsX2xlZnQsIGZjdywgcS0+ZC0+ZGV2aWNl X3ZhcmlhbnQsIHEpOw0KPiA+ICAgCQlpZiAodW5saWtlbHkocmV0IDwgMCkpDQo+ID4gICAJCQly ZXR1cm4gcmV0Ow0KPiA+ICAgCX0NCj4gPiBAQCAtMjU3Miw3ICsyNjQ2LDcgQEAgdnJiX2VucXVl dWVfbGRwY19kZWNfb25lX29wX3RiKHN0cnVjdA0KPiBhY2NfcXVldWUgKnEsIHN0cnVjdCBydGVf YmJkZXZfZGVjX29wICpvcCwNCj4gPiAgIAkJCQloX291dHB1dCwgJmluX29mZnNldCwgJmhfb3V0 X29mZnNldCwNCj4gPiAgIAkJCQkmaF9vdXRfbGVuZ3RoLA0KPiA+ICAgCQkJCSZtYnVmX3RvdGFs X2xlZnQsICZzZWdfdG90YWxfbGVmdCwNCj4gPiAtCQkJCSZkZXNjLT5yZXEuZmN3X2xkLCBxLT5k LT5kZXZpY2VfdmFyaWFudCk7DQo+ID4gKwkJCQkmZGVzYy0+cmVxLmZjd19sZCwgcS0+ZC0+ZGV2 aWNlX3ZhcmlhbnQsIHEpOw0KPiA+DQo+ID4gICAJCWlmICh1bmxpa2VseShyZXQgPCAwKSkNCj4g PiAgIAkJCXJldHVybiByZXQ7DQo+ID4gQEAgLTI2NTgsNyArMjczMiw3IEBAIGVucXVldWVfZGVj X29uZV9vcF90YihzdHJ1Y3QgYWNjX3F1ZXVlICpxLA0KPiBzdHJ1Y3QgcnRlX2JiZGV2X2RlY19v cCAqb3AsDQo+ID4gICAJCXJldCA9IHZyYl9kbWFfZGVzY190ZF9maWxsKG9wLCAmZGVzYy0+cmVx LCAmaW5wdXQsDQo+ID4gICAJCQkJaF9vdXRwdXQsIHNfb3V0cHV0LCAmaW5fb2Zmc2V0LA0KPiAm aF9vdXRfb2Zmc2V0LA0KPiA+ICAgCQkJCSZzX291dF9vZmZzZXQsICZoX291dF9sZW5ndGgsDQo+ ICZzX291dF9sZW5ndGgsDQo+ID4gLQkJCQkmbWJ1Zl90b3RhbF9sZWZ0LCAmc2VnX3RvdGFsX2xl ZnQsIHIpOw0KPiA+ICsJCQkJJm1idWZfdG90YWxfbGVmdCwgJnNlZ190b3RhbF9sZWZ0LCByLCBx KTsNCj4gPg0KPiA+ICAgCQlpZiAodW5saWtlbHkocmV0IDwgMCkpDQo+ID4gICAJCQlyZXR1cm4g cmV0Ow0KDQo=