From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1674B1FFC77; Wed, 12 Feb 2025 07:10:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=60.244.123.138 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739344207; cv=fail; b=RVZxaOMvKN32ursQeg0Py5ii9xKpPZplk7u5y8TZb9/WrAfh8PV8qzhzQ4uGXVm+HQK5yMryx+dqCd/XMIrT2VaQnhW3Vp9KuIwz50ij27aRkR+TKEb4Ul8ojiYINii9p/gt1s8dawdfHpQ6r0i4jUD1Sr5gZ9WdMADrsbp/THc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739344207; c=relaxed/simple; bh=+x/sFL3ws8VNfEWHQqf5cepIAKX/tOLMbyTczz9JCk4=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=XXCwkjJhvUG9Sa5xiHCW3MU+Kp0qXuskrAX50H1eBsQbLzMjctZEZwyxg/Gy0McqkgJLin5mACM/dULQpo9tps+C1fE3LXpbiU8P7oQZs67IDp75VdmoVUFTqGcqlq81iQvWJ9Jf7KLOzu5ZJyqOhZPzhQv5DOkNqvpPCXei04s= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com; spf=pass smtp.mailfrom=mediatek.com; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b=p1YuwAF+; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b=SDvu6S2i; arc=fail smtp.client-ip=60.244.123.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="p1YuwAF+"; dkim=pass (1024-bit key) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="SDvu6S2i" X-UUID: 5c682882e91011efb8f9918b5fc74e19-20250212 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=+x/sFL3ws8VNfEWHQqf5cepIAKX/tOLMbyTczz9JCk4=; b=p1YuwAF+LsrfUF+ToVMjImbVRzKEHK8KBl6kMPHc10gFHOOCkaA8p5jpNKrOyzpFIYo9IqJcSsT0Sq1ZBicR/UapIrVNZGBCIG4DJcWeu6BZZBOmQX2qz1ZNFbl6a4fq/eqYbVwyMteWWxnHq6ycUq76VSMoW/iUava5f4De1oE=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.46,REQID:28b9fae8-49c6-4592-aae1-4a9e4e09668f,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:60aa074,CLOUDID:f2e63e8f-637d-4112-88e4-c7792fee6ae2,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:80|81|82|83|102,TC:nil,Content:0|50, EDM:-3,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OS A:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 5c682882e91011efb8f9918b5fc74e19-20250212 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 283793256; Wed, 12 Feb 2025 15:09:55 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.28; Wed, 12 Feb 2025 15:09:53 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1258.28 via Frontend Transport; Wed, 12 Feb 2025 15:09:53 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EGvD1rpBgA6fBvSmJgs/mdq1UjxaZ8h6Ty35HZrw1BN7gSAWrEcpiCh2qBj6q2IgkebxTy1+O84o/oWslNV9cN398DZxClFarLESo3SD/chh8ScbHbQvlChYcrgCMjS2jvdP9pqA0gDKgQ2JbmEYenLn0QVDU44YAlthh9UO4byWxCJOujYyU6DqwC0BZ/RFKAt72cbGnLBQaz8KT1pbB1/zL7R2Yc8VX32D0MHOoMxMiDGqX26vWKEgJLbrc/Zps3OmR8/o6gUg9o5vGDbjoxeZzCPiWir42fYDEiUpfDY79GJoMupj5nWcDfIjVi3+CNgsH4c1cTYJu/pG1GBoQg== 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/sFL3ws8VNfEWHQqf5cepIAKX/tOLMbyTczz9JCk4=; b=UtLwqNVMJsENdqPlg1eeVjiBYFH6W1uGgb+6Vn06XS/LrxeHkNc3r8Drbw3xOKkbG5Yhy6eeBzdhP9d6n13Py6gqvgPdVf4SmgGkkY2AnJZwZiZ6/E4PpcGrWjY9RXqZwxidrFMPF2Uk2sg6SqIgPxkMUyohGtd1GpvihvXRvv5RYigUFlBnymJbd5fsm45H3RNWxfUrVPyJjjTwQUu9STaNZs04Y5jrodysKjDFbB/LfAAFGBkxKsB/VHcgTDVogxMSF50AbS0Wn4yGu3+tDCWb3CpAhW+X17+YyVYcAE2ZTeX3nTzlglDFZ/IyeONvzvfX9RkTXFPzSLA+Mgp2iw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+x/sFL3ws8VNfEWHQqf5cepIAKX/tOLMbyTczz9JCk4=; b=SDvu6S2iYCF/Tyi5k5gp2DajcRre5RzkpvK97eRf/gI9AKcvYnQk5/Gn3uI/FDb1oAZ4TynPga2di6DMRTMq2ejSOqIV032fC8v6ZToBV5kFO3ZazI2SG/ZqV/Eb0zWejgpGIGq0lA0h+1DAvPtPYqZGPdbTZuOHoQzUcvlYT9A= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by SEZPR03MB7658.apcprd03.prod.outlook.com (2603:1096:101:12a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.19; Wed, 12 Feb 2025 07:09:48 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54%3]) with mapi id 15.20.8422.015; Wed, 12 Feb 2025 07:09:48 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "robh@kernel.org" , "krzk+dt@kernel.org" , =?utf-8?B?UGF1bC1wbCBDaGVuICjpmbPmn4/pnJYp?= , "conor+dt@kernel.org" , AngeloGioacchino Del Regno , "chunkuang.hu@kernel.org" CC: "matthias.bgg@gmail.com" , "treapking@chromium.org" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , Project_Global_Chrome_Upstream_Group , "dri-devel@lists.freedesktop.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , =?utf-8?B?WGlhbmRvbmcgV2FuZyAo546L5YWI5YasKQ==?= , "linux-mediatek@lists.infradead.org" , =?utf-8?B?U3VubnkgU2hlbiAo5rKI5aeN5aeNKQ==?= , "p.zabel@pengutronix.de" , =?utf-8?B?U2lyaXVzIFdhbmcgKOeOi+eak+aYsSk=?= , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 11/12] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Topic: [PATCH 11/12] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Index: AQHbY144A+wZJUOnCUeqA5ni3jzN/rNDc3aA Date: Wed, 12 Feb 2025 07:09:47 +0000 Message-ID: <59aa3e03300ada8f47c0b5ae3a9c173eab45af7e.camel@mediatek.com> References: <20250110123835.2719824-1-paul-pl.chen@mediatek.com> <20250110123835.2719824-13-paul-pl.chen@mediatek.com> In-Reply-To: <20250110123835.2719824-13-paul-pl.chen@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|SEZPR03MB7658:EE_ x-ms-office365-filtering-correlation-id: 40b23b6d-2d02-4580-cb2a-08dd4b343c51 x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?bnI5UG9HMXgwdElhTjltZzE4UXZORzJCbXA0bGxMWUx4b3JwYm8rZHZYSDM5?= =?utf-8?B?dnF2YUpQS2VsRVpPQUljK1UrQXNGU1FiK3FOYTlZcmVabWI5VzA3SVppcFh4?= =?utf-8?B?cVhERkFHWUdqZ0IyZ0F1c2R2K3FhVlNSaEIzU25SSXg1YnE2Y0pSOWxpeVBB?= =?utf-8?B?UmY0Yzlnak9DLzBSaHJQMERwN3J6aWhZUktVck51VEd5T0VaUjA4aW9heDV0?= =?utf-8?B?QVg2bGtBNUFTQ3Awa2VqVUdjaG5GRkZZby90MDlBWVRuakcrVkdaQWxsbHFZ?= =?utf-8?B?UzhheW1hKytLUlJyLzNOaVc5Rkc5V3Q0TldIRDV0WjlOTEJyMjVnTFJYbFNX?= =?utf-8?B?cklzb2ExVzE0ZkRSMlpNYlROTmZ1Ull4UWVNS05wV3VGaFZVMVp4ZERmazlQ?= =?utf-8?B?SDV2ZDJlTG9HUlFsMWdsaFR2dGpWZTFSaitlZHh5eEllWHZXZ3Qrc242MlFt?= =?utf-8?B?YmtKNitmb20yZDdvcTJMVmhuWlB4UVV6Mjk5WCtzbU1Yc0E5MlZmeGpRQlha?= =?utf-8?B?R2ZnTGRXU2RmdXdsOG8yTzdKaWhPQ0FDL0NvSEJYMlpIMTRzT29hNFAySnY4?= =?utf-8?B?VUFvVk1TbWFrMmNDRHU4QTRNNGZtTkd2QnA2SGxzRXBMK3diajFmeDRIYmhq?= =?utf-8?B?bmRnQ1pTT3pncEd4S0Z4QWM1ZUw3bmlsNEVRRjZsT0o4d3B2QWVodGMyNnFJ?= =?utf-8?B?UVJVNEpzZXcvSVVOdkhjdVgxYTJUZkRiSXIzT25zeXc4YnA0Z3ZBSFVqVnZw?= =?utf-8?B?alhqTDZFSFdiK09GY05XTzJjZVJRZHRabmNQcnVuYy8rRmZvR1RXQUVjUmtJ?= =?utf-8?B?VGV6SDkwRjl4YktYVUJtZzkyVHlLL0VpeXZRNVZUZzhZRmVtQlFNRExqbkRL?= =?utf-8?B?Vm1LZXJIckpNMFBsRkhoc0hmRGRVQkc4U0VMbE9LTGFnY0ZJRnBGODdMajQv?= =?utf-8?B?aW9rYU92VUJTUy9sSlV4TXRUTFFnNFRTVk9CRmpteGZFWTNUaTJ5QnhCZ0dS?= =?utf-8?B?RUlUQjJLRHZOWFprSGdYeEJBek84WFJQNnpGV045dHhQUDN2d2lqN2dLT1Nw?= =?utf-8?B?bjQ3RFVIQmJHT1NLM0hvQk5FV1ZWMi9oNThnQy9YYjJDQTNLWnUzMGk2Y0Nr?= =?utf-8?B?MXJwemhBVXdoemhvWnJmQTloK3l4WWMveGt4ck16WWhMMWoxa2V5VEFvWk9t?= =?utf-8?B?Z0o5Q01IeTltU056M1hScDFhcU53REZqTnpWSllzU0R6eUorbFZaaVY0MkVa?= =?utf-8?B?ckJDQWM1dno4OGpqQ3NieXNmT2ZyQlh6SHNsazBBZXFVVDhQUGxqaC9ZYjll?= =?utf-8?B?NExQeTRXY1NhbUZlZy9qdjh2MFZyNnREYWRLaWRmY1NDQVhEQjJLb3Y5eUdw?= =?utf-8?B?YmxlWk43bFVUTHNxU3ZzV3JBTlhDdlJyNE9pekJubUtBaXAwOU1ac243bkN2?= =?utf-8?B?bnlzQWJsTUtmdDZ4cnFjWHFXZzRBRFlYV0V0QnROWjFqTW9kL1lCNGI5b1hR?= =?utf-8?B?dTRwa3I0ajQ5cVE4NUliWFNUMzhVcFZoR2hHanFzb3d6K2o0K05jU2RlbUdF?= =?utf-8?B?NStNL2pBR0dsekgwZWNqbWRpdmVnV241T1VvTldNSlp4REx5TUliVlFocEhy?= =?utf-8?B?d3lVYnk4cFh4WlhCUGpqbVE5aE9DUnFTb2dwaU1aalRaSDVqWFlHeDhOam10?= =?utf-8?B?N1k4RU83M2Q1WW9ONEJsN1IzcnBFYitZd3VWLzlGRzdoMUNwZHBOeEExMVRV?= =?utf-8?B?Sm5Odyt3b2FmVkRFeWh6Tmhyc25OaUtRTlFiVStIMmpyV0VVaFpQbERJbmhh?= =?utf-8?B?cm1zU0NCVitUSVlUSWNyK1pmVlZjd2xvd2p2OU5ISlV1MEl3cU5uRDRVU0Fa?= =?utf-8?B?Nld2Q0dPWDRteTVSd1R3T1lxY2FCeDFkNU40SnpjQlF4cHpKcld5UUxCUXdZ?= =?utf-8?Q?/wpL43dfv/IcGol56bH1k26o3rUtFAUo?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6624.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M1E0SGNCTU4wQWdiWU9UQ2h1SDhlSXpWbFlOQVlmcTZncXF5OVd3bnVnZ1Zz?= =?utf-8?B?Q09hc25rd1lxSzU2a0JhWjU3SFJHLzJtWlV3WnRGZ0VPR1V5MGV3YU9mTjZ4?= =?utf-8?B?NmtoWE92V21MTWtkb3FmbEo0ekwzUUVqWndXY3o1U0VvajhxUXJPS3BtV2ZD?= =?utf-8?B?cVlGUSsva29icjI5Mmt5V3F3RjU0aHNJRWtIL3lmdTVGM1NQSmZDbzlwbGpl?= =?utf-8?B?Z2ZhYXUvVGg2OUpGdmQ1SWxaNHU3bFdVVmsyWDZXUkNvcUphV2xDNVF0WnNt?= =?utf-8?B?b2pqd2labzMrK2xIQVhCaHQ3S0ljdWI4MTZoRWUxalRXZGhYRFlqbVVmTEM2?= =?utf-8?B?YUppMldEMGVWNDhMZlZXZXFXbE14KytVcUt4dDhDR0JUS0paUWdMTTVnRmNh?= =?utf-8?B?NVBFVDJBaHNHRm5lMmc4UEZUeVNCMlVveWt6RVhQMndVRWx3azlSMzlKNmd5?= =?utf-8?B?MFJydDVmZkszQ3ZudWtkcTBIU3NPK0VPZXpNMkxpUkQwNzRrVXM3ZkxaUk91?= =?utf-8?B?dTk1UEkzd0dwbllKWDUyd1BuVW5kbHhjVlRzTjBNOFl2YzJVdDY2VDRiVnJs?= =?utf-8?B?ZTg2Wks3OU1KL3RpVUxxbXhVMXV1WGJpZGdsTFJoSWR6aEJ5ZDlYbGNaMDZx?= =?utf-8?B?eFJ4Y1BWNDJPMXRBVXEwTkRhVFMxSHZ5djVKZTZOcldVTXJIMkdUVFN4OWN6?= =?utf-8?B?aERnMjQ3UldtekZhRUptVHZ3bFB5WTdsRUZDbHFWMENJYnkyR0ttNlBDUFQw?= =?utf-8?B?RmJ6VGJMYkhxZzkyc2JXTHgwK1NaUDlrdjJ1cTVxM1l1ZkJvMlBKZHJPenZm?= =?utf-8?B?dll3K1IwZU1sOFM0MUQvYmlGa293SUw2aGVmcGJDMHI5TSsvY3ZISGUxRWZp?= =?utf-8?B?UDAxUjM3NHhmV2dRS2RVSFlBSFhCQUVnd0hvY0pBNmhjZFAvQUdtZllIdjFF?= =?utf-8?B?NnNLc3YyY3FHZitRNExMc1NqRFAvcHNnL0wwZ3hpMlFack1YQ3NlaVhpUVZx?= =?utf-8?B?R29HVXN6WGFlWEdBTi8za2xKd2ZxczBLL0NHWnJOR1ArTitwaW04MU9oeUho?= =?utf-8?B?UmNlNllHSFZzK3pvQ2lRem5EbG9tUzNXaU1wcGRZVEFoZTE2aU1WaVp1Z0lL?= =?utf-8?B?YU1ieFlpMkJ0Mmo1Yzk4NnJ0RUFmK2ZhY2pLQTNSZitwTy9vU1l6WU14ekxh?= =?utf-8?B?djJEOUFxY3JnOUFMcDZ6dFQvOG1aNVZENFl5eVQ3MytRdkRxTlN0bXBIWjhn?= =?utf-8?B?eU1iRWUrc1hGbkEvaW5Xai9JTThBMjJNd2UrM25Ib2xwYk13bnc1T29URWZQ?= =?utf-8?B?RGNKRzdnbVp4ajNTcWJ3ZjRna28zVFBoa1d2a3lzZ0NwSjZZMTZhcGcxQStW?= =?utf-8?B?b0d3clVkcmhnL3FSMWdDYStJLzZ5ZkRscGxqRjRoTmxzTmxsZFo3SDA5KzNh?= =?utf-8?B?TVkvYzAwZ0FCNDZNbllFZml5VDRrQ3JkSDQzc2RtcjVESHdGUWEyOHZwek1v?= =?utf-8?B?OUhCejg5dnJhSSs2ZkQzNUhLRURFdjR2MDhWckhKQjJJRUxVMktoTUR5cm1S?= =?utf-8?B?aUQzbVhaRXFYdW0yNlNQbWFCbXgxVEl0L1hjQ3VrOXp0dHNnRVUrNXhhK3My?= =?utf-8?B?UDFXTWY1dTJVOG93d05hSzhEZVJQZXhqaUtQay9VbHFLZFg3bW9CNm9IK2VF?= =?utf-8?B?L2o5Q3lGdGt4MFNoeHZpMldvMzJQU1hpTlR6Wlh0WGZWbVZQT3BBSExYam0w?= =?utf-8?B?aUIvS0lLSzJZYXpTU2EwWlhCMHJmVCsxUUNuT2gwcUVjZWQ1Mloyc2ZqWDBH?= =?utf-8?B?YXhyZDF1SlZNckRpMWk1TDNhL04wN0l0bktGZXZiMFNqMlU5UFVmdzVyem9t?= =?utf-8?B?U0FBaUtFZVFLVlRMcjA1bVlsMDlFZzBoSmZ1YnJsWmNEdXYwVVl5c2hDbzNx?= =?utf-8?B?eWhra0IrTFhDU08ySkIvL1N3a0Y3bXcrWVk3dDdGaXdMVE5zZCtSaXVQc1Zy?= =?utf-8?B?VTV0RWJvSExFbHB3ckY0NzM4RDlMRSsyVlB6SUVFcHcwNjF5V2I2S3oyODV6?= =?utf-8?B?RFdlZ0NMWENJZmZ1YTQwVWdFMGMydzZPanRnN1ZwcVROZHZqN2h1ZUVUNTE5?= =?utf-8?Q?X7RPFfwocNr2yvpqed1L4zRqG?= Content-Type: text/plain; charset="utf-8" Content-ID: <7DF902B9644BE346980973293D8724FF@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40b23b6d-2d02-4580-cb2a-08dd4b343c51 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2025 07:09:47.7682 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9CzgwllCfe+4azYHpu+6pGlPF2Tktbys9rE/sJZBII7hdEFCJgXr3GjgK4fmCewKaRBVxer/DaUsjRjzeG0nNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR03MB7658 SGksIFBhdWw6DQoNCk9uIEZyaSwgMjAyNS0wMS0xMCBhdCAyMDozNCArMDgwMCwgcGF1bC1wbC5j aGVuIHdyb3RlOg0KPiBGcm9tOiAiTmFuY3kuTGluIiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4N Cj4gDQo+IE92bHN5c19hZGFwdG9yIGlzIGFuIGVuY2Fwc3VsYXRlZCBtb2R1bGUgZGVzaWduZWQg dG8NCj4gc2ltcGxpZnkgdGhlIERSTSBjb250cm9sIGZsb3cuIFRoaXMgbW9kdWxlIGlzIGNvbXBv c2VkDQo+IG9mIDIwIEVYRE1BcywgMjAgQkxFTkRFUnMsIGFuZCAxMiBPVVRQUk9Dcy4NCj4gVHdv IEVYRE1BcyBtZXJnZSBpbnRvIG9uZSBsYXllciwgYWxsb3dpbmcgdGhlIG1vZHVsZQ0KPiB0byBz dXBwb3J0IDIwIGxheWVycyBmb3IgMyBkaXNwbGF5IHBhdGhzLg0KPiBPdmxzeXNfYWRhcHRvciBk cml2ZXIgaXMgaW50ZWdyYXRlZCB3aXRoaW4gdGhlDQo+IG10a19kZHBfY29tcCBmcmFtZXdvcmsu DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBOYW5jeS5MaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+ DQo+IFNpZ25lZC1vZmYtYnk6IFBhdWwtcGwuQ2hlbiA8cGF1bC1wbC5jaGVuQG1lZGlhdGVrLmNv bT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUgICAgICAgICAg ICAgfCAgIDEgKw0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jICAg ICAgIHwgIDI1ICsNCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaCAg ICAgICB8ICAgMSArDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2Lmgg ICAgICAgfCAgMzEgKy0NCj4gIC4uLi9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0 b3IuYyAgICB8IDc1OCArKysrKysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5jICAgICAgICB8ICA2MSArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZHJ2LmggICAgICAgIHwgIDExICstDQo+ICA3IGZpbGVzIGNoYW5nZWQs IDg4NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxzeXNfYWRhcHRvci5jDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlDQo+IGluZGV4IDk1NDZiYzZiN2IyZS4uZGVkZjUw ODYwZDNmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUN Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlDQo+IEBAIC05LDYgKzks NyBAQCBtZWRpYXRlay1kcm0teSA6PSBtdGtfY3J0Yy5vIFwNCj4gIAkJICBtdGtfZGlzcF9leGRt YS5vIFwNCj4gIAkJICBtdGtfZGlzcF9nYW1tYS5vIFwNCj4gIAkJICBtdGtfZGlzcF9tZXJnZS5v IFwNCj4gKwkJICBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvci5vIFwNCj4gIAkJICBtdGtfZGlzcF9v dmwubyBcDQo+ICAJCSAgbXRrX2Rpc3Bfb3V0cHJvYy5vIFwNCj4gIAkJICBtdGtfZGlzcF9vdmxf YWRhcHRvci5vIFwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuYw0KPiBp bmRleCBjYzc4MDc0NGYwNjAuLjQ5MmI4ZDk2NTMwOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGRwX2NvbXAuYw0KPiBAQCAtMzY4LDYgKzM2OCwyOCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfb3ZsID0gew0KPiAgCS5nZXRfbnVtX2Zv cm1hdHMgPSBtdGtfb3ZsX2dldF9udW1fZm9ybWF0cywNCj4gIH07DQo+ICANCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9vdmxzeXNfYWRhcHRvciA9IHsNCj4g KwkuY2xrX2VuYWJsZSA9IG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZW5hYmxlLA0KPiArCS5jbGtf ZGlzYWJsZSA9IG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZGlzYWJsZSwNCj4gKwkuY29uZmlnID0g bXRrX292bHN5c19hZGFwdG9yX2NvbmZpZywNCj4gKwkuc3RhcnQgPSBtdGtfb3Zsc3lzX2FkYXB0 b3Jfc3RhcnQsDQo+ICsJLnN0b3AgPSBtdGtfb3Zsc3lzX2FkYXB0b3Jfc3RvcCwNCj4gKwkubGF5 ZXJfY2hlY2sgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5ZXJfY2hlY2ssDQo+ICsJLmxheWVyX25y ID0gbXRrX292bHN5c19hZGFwdG9yX2xheWVyX25yLA0KPiArCS5sYXllcl9jb25maWcgPSBtdGtf b3Zsc3lzX2FkYXB0b3JfbGF5ZXJfY29uZmlnLA0KPiArCS5yZWdpc3Rlcl92YmxhbmtfY2IgPSBt dGtfb3Zsc3lzX2FkYXB0b3JfcmVnaXN0ZXJfdmJsYW5rX2NiLA0KPiArCS51bnJlZ2lzdGVyX3Zi bGFua19jYiA9IG10a19vdmxzeXNfYWRhcHRvcl91bnJlZ2lzdGVyX3ZibGFua19jYiwNCj4gKwku ZW5hYmxlX3ZibGFuayA9IG10a19vdmxzeXNfYWRhcHRvcl9lbmFibGVfdmJsYW5rLA0KPiArCS5k aXNhYmxlX3ZibGFuayA9IG10a19vdmxzeXNfYWRhcHRvcl9kaXNhYmxlX3ZibGFuaywNCj4gKwku ZG1hX2Rldl9nZXQgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfZG1hX2Rldl9nZXQsDQo+ICsJLmNvbm5l Y3QgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29ubmVjdCwNCj4gKwkuZGlzY29ubmVjdCA9IG10a19v dmxzeXNfYWRhcHRvcl9kaXNjb25uZWN0LA0KPiArCS5hZGQgPSBtdGtfb3Zsc3lzX2FkYXB0b3Jf YWRkX2NvbXAsDQo+ICsJLnJlbW92ZSA9IG10a19vdmxzeXNfYWRhcHRvcl9yZW1vdmVfY29tcCwN Cj4gKwkuZ2V0X2Zvcm1hdHMgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfZ2V0X2Zvcm1hdHMsDQo+ICsJ LmdldF9udW1fZm9ybWF0cyA9IG10a19vdmxzeXNfYWRhcHRvcl9nZXRfbnVtX2Zvcm1hdHMsDQo+ ICt9Ow0KPiArDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBf cG9zdG1hc2sgPSB7DQo+ICAJLmNsa19lbmFibGUgPSBtdGtfZGRwX2Nsa19lbmFibGUsDQo+ICAJ LmNsa19kaXNhYmxlID0gbXRrX2RkcF9jbGtfZGlzYWJsZSwNCj4gQEAgLTQzNyw2ICs0NTksNyBA QCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10a19kZHBfY29tcF9zdGVtW01US19ERFBfQ09N UF9UWVBFX01BWF0gPSB7DQo+ICAJW01US19ESVNQX09WTF0gPSAib3ZsIiwNCj4gIAlbTVRLX0RJ U1BfT1ZMXzJMXSA9ICJvdmwtMmwiLA0KPiAgCVtNVEtfRElTUF9PVkxfQURBUFRPUl0gPSAib3Zs X2FkYXB0b3IiLA0KPiArCVtNVEtfRElTUF9PVkxTWVNfQURBUFRPUl0gPSAib3Zsc3lzX2FkYXB0 b3IiLA0KPiAgCVtNVEtfRElTUF9QT1NUTUFTS10gPSAicG9zdG1hc2siLA0KPiAgCVtNVEtfRElT UF9QV01dID0gInB3bSIsDQo+ICAJW01US19ESVNQX1JETUFdID0gInJkbWEiLA0KPiBAQCAtNDY5 LDYgKzQ5Miw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX21hdGNoIG10a19k ZHBfbWF0Y2hlc1tERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVhdDQo+ICAJW0REUF9DT01QT05FTlRf RFBJMF0JCT0geyBNVEtfRFBJLAkJCTAsICZkZHBfZHBpIH0sDQo+ICAJW0REUF9DT01QT05FTlRf RFBJMV0JCT0geyBNVEtfRFBJLAkJCTEsICZkZHBfZHBpIH0sDQo+ICAJW0REUF9DT01QT05FTlRf RFJNX09WTF9BREFQVE9SXQk9IHsgTVRLX0RJU1BfT1ZMX0FEQVBUT1IsCTAsICZkZHBfb3ZsX2Fk YXB0b3IgfSwNCj4gKwlbRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwXSA9IHsgTVRL X0RJU1BfT1ZMU1lTX0FEQVBUT1IsIDAsICZkZHBfb3Zsc3lzX2FkYXB0b3J9LA0KPiArCVtERFBf Q09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjFdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRP UiwgMSwgJmRkcF9vdmxzeXNfYWRhcHRvcn0sDQo+ICAJW0REUF9DT01QT05FTlRfRFNDMF0JCT0g eyBNVEtfRElTUF9EU0MsCQkwLCAmZGRwX2RzYyB9LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RTQzFd CQk9IHsgTVRLX0RJU1BfRFNDLAkJMSwgJmRkcF9kc2MgfSwNCj4gIAlbRERQX0NPTVBPTkVOVF9E U0kwXQkJPSB7IE1US19EU0ksCQkJMCwgJmRkcF9kc2kgfSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGRwX2NvbXAuaA0KPiBpbmRleCBiMzNkMzI4OWI4YjYuLmVmNjRjZTdhMDcxZiAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5oDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaA0KPiBAQCAtMzMs NiArMzMsNyBAQCBlbnVtIG10a19kZHBfY29tcF90eXBlIHsNCj4gIAlNVEtfRElTUF9NVVRFWCwN Cj4gIAlNVEtfRElTUF9PRCwNCj4gIAlNVEtfRElTUF9PVkwsDQo+ICsJTVRLX0RJU1BfT1ZMU1lT X0FEQVBUT1IsDQo+ICAJTVRLX0RJU1BfT1ZMXzJMLA0KPiAgCU1US19ESVNQX09WTF9BREFQVE9S LA0KPiAgCU1US19ESVNQX1BPU1RNQVNLLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kaXNwX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k aXNwX2Rydi5oDQo+IGluZGV4IDQ0ZDJjYmU5MTlkYy4uNjdmNmRhNTlkMGRlIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oDQo+IEBAIC0xNDAsOCArMTQwLDgg QEAgdm9pZCBtdGtfb3ZsX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIHZv aWQgbXRrX292bF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiAgdTMyIG10 a19vdmxfZ2V0X2JsZW5kX21vZGVzKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICBjb25zdCB1MzIg Km10a19vdmxfZ2V0X2Zvcm1hdHMoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gLXNpemVfdCBtdGtf b3ZsX2dldF9udW1fZm9ybWF0cyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiAgDQo+ICtzaXplX3Qg bXRrX292bF9nZXRfbnVtX2Zvcm1hdHMoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIHZvaWQgbXRr X292bF9hZGFwdG9yX2FkZF9jb21wKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG10a19tdXRl eCAqbXV0ZXgpOw0KPiAgdm9pZCBtdGtfb3ZsX2FkYXB0b3JfcmVtb3ZlX2NvbXAoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgbXRrX211dGV4ICptdXRleCk7DQo+ICBib29sIG10a19vdmxfYWRh cHRvcl9pc19jb21wX3ByZXNlbnQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKTsNCj4gQEAgLTE3 NCw2ICsxNzQsMzUgQEAgc2l6ZV90IG10a19vdmxfYWRhcHRvcl9nZXRfbnVtX2Zvcm1hdHMoc3Ry dWN0IGRldmljZSAqZGV2KTsNCj4gIGVudW0gZHJtX21vZGVfc3RhdHVzIG10a19vdmxfYWRhcHRv cl9tb2RlX3ZhbGlkKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gIAkJCQkJCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlKTsNCj4gIA0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3Jf YWRkX2NvbXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXRrX211dGV4ICptdXRleCk7DQo+ ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9yZW1vdmVfY29tcChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBtdGtfbXV0ZXggKm11dGV4KTsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Nv bm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptbXN5c19kZXYsDQo+ICsJ CQkJdW5zaWduZWQgaW50IG5leHQpOw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfZGlzY29u bmVjdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1tc3lzX2RldiwNCj4gKwkJ CQkgICB1bnNpZ25lZCBpbnQgbmV4dCk7DQo+ICtpbnQgbXRrX292bHN5c19hZGFwdG9yX2Nsa19l bmFibGUoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Ns a19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRv cl9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywNCj4gKwkJCSAgICAg ICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KPiArCQkJICAgICAgIHVu c2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpOw0KPiArdm9pZCBtdGtf b3Zsc3lzX2FkYXB0b3JfbGF5ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IGlkeCwNCj4gKwkJCQkgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KPiAr CQkJCSAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7DQo+ICtpbnQgbXRrX292bHN5c19h ZGFwdG9yX2xheWVyX2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gKwkJCQkgICB1bnNpZ25l ZCBpbnQgaWR4LA0KPiArCQkJCSAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKm10a19zdGF0ZSk7 DQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2Ioc3RydWN0IGRl dmljZSAqZGV2LCB2b2lkICgqdmJsYW5rX2NiKSh2b2lkICopLA0KPiArCQkJCQkgICB2b2lkICp2 YmxhbmtfY2JfZGF0YSk7DQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl91bnJlZ2lzdGVyX3Zi bGFua19jYihzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3Jf ZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArdm9pZCBtdGtfb3Zsc3lzX2Fk YXB0b3JfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK3ZvaWQgbXRrX292 bHN5c19hZGFwdG9yX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt2b2lkIG10a19vdmxz eXNfYWRhcHRvcl9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt1bnNpZ25lZCBpbnQgbXRr X292bHN5c19hZGFwdG9yX2xheWVyX25yKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICtzdHJ1Y3Qg ZGV2aWNlICptdGtfb3Zsc3lzX2FkYXB0b3JfZG1hX2Rldl9nZXQoc3RydWN0IGRldmljZSAqZGV2 KTsNCj4gK2NvbnN0IHUzMiAqbXRrX292bHN5c19hZGFwdG9yX2dldF9mb3JtYXRzKHN0cnVjdCBk ZXZpY2UgKmRldik7DQo+ICtzaXplX3QgbXRrX292bHN5c19hZGFwdG9yX2dldF9udW1fZm9ybWF0 cyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArDQo+ICB2b2lkIG10a19yZG1hX2J5cGFzc19zaGFk b3coc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIGludCBtdGtfcmRtYV9jbGtfZW5hYmxlKHN0cnVj dCBkZXZpY2UgKmRldik7DQo+ICB2b2lkIG10a19yZG1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZp Y2UgKmRldik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3Bfb3Zsc3lzX2FkYXB0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9v dmxzeXNfYWRhcHRvci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAw MDAwMC4uN2JjZTJiNzE0M2NiDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX292bHN5c19hZGFwdG9yLmMNCj4gQEAgLTAsMCArMSw3NTgg QEANCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4gKy8qDQo+ ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5jLg0KPiArICovDQo+ICsNCj4gKyNp bmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPg0KPiArI2luY2x1ZGUgPGRybS9kcm1fb2YuaD4NCj4g KyNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4N Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29m X2RldmljZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4NCj4gKyNpbmNsdWRl IDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1l Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zb2Mv bWVkaWF0ZWsvbXRrLWNtZHEuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRr LW1tc3lzLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tdXRleC5oPg0K PiArDQo+ICsjaW5jbHVkZSAibXRrX2Rpc3BfYmxlbmRlci5oIg0KPiArI2luY2x1ZGUgIm10a19k aXNwX2Rydi5oIg0KPiArI2luY2x1ZGUgIm10a19jcnRjLmgiDQoNCkFscGhhYmV0aWMgb3JkZXIu DQoNCj4gKyNpbmNsdWRlICJtdGtfZGRwX2NvbXAuaCINCj4gKyNpbmNsdWRlICJtdGtfZHJtX2Ry di5oIg0KPiArDQo+ICtlbnVtIG10a19vdmxzeXNfYWRhcHRvcl9jb21wX3R5cGUgew0KPiArCU9W TFNZU19BREFQVE9SX1RZUEVfRVhETUEgPSAwLA0KPiArCU9WTFNZU19BREFQVE9SX1RZUEVfQkxF TkRFUiwNCj4gKwlPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsDQo+ICsJT1ZMU1lTX0FEQVBU T1JfVFlQRV9OVU0sDQo+ICt9Ow0KPiArDQo+ICtlbnVtIG10a19vdmxzeXNfYWRhcHRvcl9jb21w X2lkIHsNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTAsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhE TUExLA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMiwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERN QTMsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE0LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1B NSwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTYsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE3 LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BOCwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTks DQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExMCwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTEx LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTIsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUEx MywNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE0LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1B MTUsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExNiwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERN QTE3LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTgsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhE TUExOSwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMCwNCj4gKwlPVkxTWVNfQURBUFRPUl9C TEVOREVSMSwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMiwNCj4gKwlPVkxTWVNfQURBUFRP Ul9CTEVOREVSMywNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNCwNCj4gKwlPVkxTWVNfQURB UFRPUl9CTEVOREVSNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNiwNCj4gKwlPVkxTWVNf QURBUFRPUl9CTEVOREVSNywNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSOCwNCj4gKwlPVkxT WVNfQURBUFRPUl9CTEVOREVSOSwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTAsDQo+ICsJ T1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjExLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMiwN Cj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTMsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRF UjE0LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9C TEVOREVSMTYsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE3LA0KPiArCU9WTFNZU19BREFQ VE9SX0JMRU5ERVIxOCwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTksDQo+ICsJT1ZMU1lT X0FEQVBUT1JfT1VUUFJPQzAsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzEsDQo+ICsJT1ZM U1lTX0FEQVBUT1JfT1VUUFJPQzIsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzMsDQo+ICsJ T1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzQsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzUsDQo+ ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzYsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzcs DQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzgsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJP QzksDQo+ICsJT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzEwLA0KPiArCU9WTFNZU19BREFQVE9SX09V VFBST0MxMSwNCj4gKwlPVkxTWVNfQURBUFRPUl9JRF9NQVgNCj4gK307DQo+ICsNCj4gK3N0cnVj dCBvdmxzeXNfYWRhcHRvcl9jb21wX21hdGNoIHsNCj4gKwllbnVtIG10a19vdmxzeXNfYWRhcHRv cl9jb21wX3R5cGUgdHlwZTsNCj4gKwlpbnQgYWxpYXNfaWQ7DQo+ICsJZW51bSBtdGtfZGRwX2Nv bXBfaWQgY29tcF9pZDsNCj4gK307DQo+ICsNCj4gK3N0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRh cHRvciB7DQo+ICsJc3RydWN0IGRldmljZSAqb3ZsX2FkYXB0b3JfY29tcFtPVkxTWVNfQURBUFRP Ul9JRF9NQVhdOw0KPiArCXN0cnVjdCBkZXZpY2UgKm1tc3lzX2RldjsNCj4gKwljb25zdCB1bnNp Z25lZCBpbnQgKnBhdGg7DQo+ICsJdW5zaWduZWQgaW50IHBhdGhfc2l6ZTsNCj4gKwl1bnNpZ25l ZCBpbnQgbGF5ZXJfbnI7DQo+ICsJYm9vbCBjaGlsZHJlbl9ib3VuZDsNCj4gKwl1bnNpZ25lZCBp bnQgbWF4X3NpemU7DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBy aXZhdGVfY29tcF9zdGVtW09WTFNZU19BREFQVE9SX1RZUEVfTlVNXSA9IHsNCj4gKwlbT1ZMU1lT X0FEQVBUT1JfVFlQRV9FWERNQV0JPSAiZXhkbWEiLA0KPiArCVtPVkxTWVNfQURBUFRPUl9UWVBF X0JMRU5ERVJdCT0gImJsZW5kZXIiLA0KPiArCVtPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0Nd CT0gIm91dHByb2MiLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvdmxzeXNf YWRhcHRvcl9jb21wX21hdGNoIGNvbXBfbWF0Y2hlc1tPVkxTWVNfQURBUFRPUl9JRF9NQVhdID0g ew0KPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTBdICAgPSB7IE9WTFNZU19BREFQVE9SX1RZUEVf RVhETUEsIDAsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhE TUExXQkgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxLCBERFBfQ09NUE9ORU5UX0lE X01BWH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMl0JICA9IHsgT1ZMU1lTX0FEQVBUT1Jf VFlQRV9FWERNQSwgMiwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BMn0sDQo+ICsJW09WTFNZU19B REFQVE9SX0VYRE1BM10JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgMywgRERQX0NP TVBPTkVOVF9PVkwwX0VYRE1BM30sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BNF0JICA9IHsg T1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNCwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BNH0s DQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BNV0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9F WERNQSwgNSwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BNX0sDQo+ICsJW09WTFNZU19BREFQVE9S X0VYRE1BNl0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNiwgRERQX0NPTVBPTkVO VF9PVkwwX0VYRE1BNn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BN10JICA9IHsgT1ZMU1lT X0FEQVBUT1JfVFlQRV9FWERNQSwgNywgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BN30sDQo+ICsJ W09WTFNZU19BREFQVE9SX0VYRE1BOF0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwg OCwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BOH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1B OV0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgOSwgRERQX0NPTVBPTkVOVF9PVkww X0VYRE1BOX0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTBdICAgPSB7IE9WTFNZU19BREFQ VE9SX1RZUEVfRVhETUEsIDEwLCBERFBfQ09NUE9ORU5UX0lEX01BWH0sDQoNCkVYRE1BMTAgaGFz IG5vIGNvbXBvbmVudCBpZCwgc28ganVzdCBkcm9wIE9WTFNZU19BREFQVE9SX0VYRE1BMTAuDQoN Cj4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUExMV0gICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9F WERNQSwgMTEsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCg0KRGl0dG8uDQoNCj4gKwlbT1ZMU1lT X0FEQVBUT1JfRVhETUExMl0gICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgMTIsIERE UF9DT01QT05FTlRfT1ZMMV9FWERNQTJ9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTEzXSAg ID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxMywgRERQX0NPTVBPTkVOVF9PVkwxX0VY RE1BM30sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTRdICAgPSB7IE9WTFNZU19BREFQVE9S X1RZUEVfRVhETUEsIDE0LCBERFBfQ09NUE9ORU5UX09WTDFfRVhETUE0fSwNCj4gKwlbT1ZMU1lT X0FEQVBUT1JfRVhETUExNV0gICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgMTUsIERE UF9DT01QT05FTlRfT1ZMMV9FWERNQTV9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTE2XSAg ID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxNiwgRERQX0NPTVBPTkVOVF9PVkwxX0VY RE1BNn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTddICAgPSB7IE9WTFNZU19BREFQVE9S X1RZUEVfRVhETUEsIDE3LCBERFBfQ09NUE9ORU5UX09WTDFfRVhETUE3fSwNCj4gKwlbT1ZMU1lT X0FEQVBUT1JfRVhETUExOF0gICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgMTgsIERE UF9DT01QT05FTlRfT1ZMMV9FWERNQTh9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTE5XSAg ID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxOSwgRERQX0NPTVBPTkVOVF9PVkwxX0VY RE1BOX0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVIwXSA9IHsgT1ZMU1lTX0FEQVBUT1Jf VFlQRV9CTEVOREVSLCAwLCBERFBfQ09NUE9ORU5UX0lEX01BWH0sDQoNCkRpdHRvLg0KDQo+ICsJ W09WTFNZU19BREFQVE9SX0JMRU5ERVIxXSA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVS LCAxLCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjF9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9C TEVOREVSMl0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgMiwgRERQX0NPTVBPTkVO VF9PVkwwX0JMRU5ERVIyfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjNdID0geyBPVkxT WVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDMsIEREUF9DT01QT05FTlRfT1ZMMF9CTEVOREVSM30s DQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVI0XSA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9C TEVOREVSLCA0LCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjR9LA0KPiArCVtPVkxTWVNfQURB UFRPUl9CTEVOREVSNV0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgNSwgRERQX0NP TVBPTkVOVF9PVkwwX0JMRU5ERVI1fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjZdID0g eyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDYsIEREUF9DT01QT05FTlRfT1ZMMF9CTEVO REVSNn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVI3XSA9IHsgT1ZMU1lTX0FEQVBUT1Jf VFlQRV9CTEVOREVSLCA3LCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjd9LA0KPiArCVtPVkxT WVNfQURBUFRPUl9CTEVOREVSOF0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgOCwg RERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVI4fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRF UjldID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDksIEREUF9DT01QT05FTlRfT1ZM MF9CTEVOREVSOX0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVIxMF0gPSB7IE9WTFNZU19B REFQVE9SX1RZUEVfQkxFTkRFUiwgMTAsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCg0KRGl0dG8u DQoNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjExXSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBU T1JfVFlQRV9CTEVOREVSLCAxMSwgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVIxfSwNCj4gKwlb T1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjEyXSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9C TEVOREVSLCAxMiwgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVIyfSwNCj4gKwlbT1ZMU1lTX0FE QVBUT1JfQkxFTkRFUjEzXSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAx MywgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVIzfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxF TkRFUjE0XSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNCwgRERQX0NP TVBPTkVOVF9PVkwxX0JMRU5ERVI0fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE1XSA9 IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNSwgRERQX0NPTVBPTkVOVF9P VkwxX0JMRU5ERVI1fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE2XSA9IHsNCj4gKwkJ T1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCAxNiwgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5E RVI2fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE3XSA9IHsNCj4gKwkJT1ZMU1lTX0FE QVBUT1JfVFlQRV9CTEVOREVSLCAxNywgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVI3fSwNCj4g KwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE4XSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQ RV9CTEVOREVSLCAxOCwgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVI4fSwNCj4gKwlbT1ZMU1lT X0FEQVBUT1JfQkxFTkRFUjE5XSA9IHsNCj4gKwkJT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVS LCAxOSwgRERQX0NPTVBPTkVOVF9PVkwxX0JMRU5ERVI5fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1Jf T1VUUFJPQzBdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsIDAsIEREUF9DT01QT05F TlRfT1ZMMF9PVVRQUk9DMH0sDQo+ICsJW09WTFNZU19BREFQVE9SX09VVFBST0MxXSA9IHsgT1ZM U1lTX0FEQVBUT1JfVFlQRV9PVVRQUk9DLCAxLCBERFBfQ09NUE9ORU5UX09WTDBfT1VUUFJPQzF9 LA0KPiArCVtPVkxTWVNfQURBUFRPUl9PVVRQUk9DMl0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVf T1VUUFJPQywgMiwgRERQX0NPTVBPTkVOVF9JRF9NQVh9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9P VVRQUk9DM10gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywgMywgRERQX0NPTVBPTkVO VF9JRF9NQVh9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9PVVRQUk9DNF0gPSB7IE9WTFNZU19BREFQ VE9SX1RZUEVfT1VUUFJPQywgNCwgRERQX0NPTVBPTkVOVF9JRF9NQVh9LA0KPiArCVtPVkxTWVNf QURBUFRPUl9PVVRQUk9DNV0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywgNSwgRERQ X0NPTVBPTkVOVF9JRF9NQVh9LA0KDQpEaXR0by4NCg0KPiArCVtPVkxTWVNfQURBUFRPUl9PVVRQ Uk9DNl0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywgNiwgRERQX0NPTVBPTkVOVF9P VkwxX09VVFBST0MwfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzddID0geyBPVkxTWVNf QURBUFRPUl9UWVBFX09VVFBST0MsIDcsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCj4gKwlbT1ZM U1lTX0FEQVBUT1JfT1VUUFJPQzhdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsIDgs IEREUF9DT01QT05FTlRfSURfTUFYfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzldID0g eyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsIDksIEREUF9DT01QT05FTlRfSURfTUFYfSwN Cj4gKwlbT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzEwXSA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9P VVRQUk9DLCAxMCwgRERQX0NPTVBPTkVOVF9JRF9NQVh9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9P VVRQUk9DMTFdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsIDExLCBERFBfQ09NUE9O RU5UX0lEX01BWH0sDQoNCkRpdHRvLg0KDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5z aWduZWQgaW50IG10ODE5Nl9tdGtfb3ZsX21haW5bXSA9IHsNCj4gKwlPVkxTWVNfQURBUFRPUl9F WERNQTIsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjEsDQo+ICsJT1ZMU1lTX0FEQVBUT1Jf RVhETUEzLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIyLA0KPiArCU9WTFNZU19BREFQVE9S X0VYRE1BNCwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMywNCj4gKwlPVkxTWVNfQURBUFRP Ul9FWERNQTUsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjQsDQo+ICsJT1ZMU1lTX0FEQVBU T1JfT1VUUFJPQzAsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10 ODE5Nl9tdGtfb3ZsX2V4dFtdID0gew0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BNiwNCj4gKwlP VkxTWVNfQURBUFRPUl9CTEVOREVSNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTcsDQo+ICsJ T1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjYsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE4LA0KPiAr CU9WTFNZU19BREFQVE9SX0JMRU5ERVI3LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BOSwNCj4g KwlPVkxTWVNfQURBUFRPUl9CTEVOREVSOCwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMSwN Cj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTk2X210a19vdmxf dGhpcmRbXSA9IHsNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTEyLA0KPiArCU9WTFNZU19BREFQ VE9SX0JMRU5ERVIxMSwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTEzLA0KPiArCU9WTFNZU19B REFQVE9SX0JMRU5ERVIxMiwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE0LA0KPiArCU9WTFNZ U19BREFQVE9SX0JMRU5ERVIxMywNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE1LA0KPiArCU9W TFNZU19BREFQVE9SX0JMRU5ERVIxNCwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DNiwNCj4g K307DQo+ICsNCj4gK3N0YXRpYyBlbnVtIG10a19vdmxzeXNfYWRhcHRvcl9jb21wX3R5cGUgZ2V0 X3R5cGUoZW51bSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF9pZCBpZCkNCj4gK3sNCj4gKwlyZXR1 cm4gY29tcF9tYXRjaGVzW2lkXS50eXBlOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgZW51bSBtdGtf ZGRwX2NvbXBfaWQgZ2V0X2RkcF9jb21wX2lkKGVudW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBf aWQgaWQpDQo+ICt7DQo+ICsJcmV0dXJuIGNvbXBfbWF0Y2hlc1tpZF0uY29tcF9pZDsNCj4gK30N Cj4gKw0KPiArc3RhdGljIHN0cnVjdCBkZXZpY2UgKmdldF9jb21wX2J5X3R5cGVfaWR4KHN0cnVj dCBkZXZpY2UgKmRldiwNCj4gKwkJCQkJICAgZW51bSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29tcF90 eXBlIHR5cGUsDQo+ICsJCQkJCSAgIHVuc2lnbmVkIGludCBpZHgpDQo+ICt7DQo+ICsJc3RydWN0 IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ ICsJaW50IGk7DQo+ICsJaW50IGNvdW50ID0gMDsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBw cml2LT5wYXRoX3NpemU7IGkrKykgew0KPiArCQlpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkg PT0gdHlwZSkgew0KPiArCQkJaWYgKGNvdW50ID09IGlkeCkNCj4gKwkJCQlyZXR1cm4gcHJpdi0+ b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXTsNCj4gKwkJCWNvdW50Kys7DQo+ICsJCX0N Cj4gKwl9DQo+ICsJcmV0dXJuIE5VTEw7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19h ZGFwdG9yX2xheWVyX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpZHgs DQo+ICsJCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpzdGF0ZSwNCj4gKwkJCQkgICAg IHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpDQo+ICt7DQo+ICsJc3RydWN0IG10a19wbGFuZV9w ZW5kaW5nX3N0YXRlICpwZW5kaW5nID0gJnN0YXRlLT5wZW5kaW5nOw0KPiArCXN0cnVjdCBkZXZp Y2UgKmV4ZG1hOw0KPiArCXN0cnVjdCBkZXZpY2UgKmJsZW5kZXI7DQo+ICsJdW5zaWduZWQgaW50 IGFsaWduX3dpZHRoID0gMDsNCj4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmbXRf aW5mbyA9IGRybV9mb3JtYXRfaW5mbyhwZW5kaW5nLT5mb3JtYXQpOw0KPiArCXN0cnVjdCBtdGtf ZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArDQo+ ICsJZGV2X2RiZyhkZXYsICIlcysgaWR4OiVkLCBlbmFibGU6JWQsIGZtdDoweCV4XG4iLCBfX2Z1 bmNfXywgaWR4LA0KPiArCQlwZW5kaW5nLT5lbmFibGUsIHBlbmRpbmctPmZvcm1hdCk7DQo+ICsJ ZGV2X2RiZyhkZXYsICJhZGRyIDB4JXBhZCwgZmIgdzolZCwgeyVkLCVkLCVkLCVkfVxuIiwNCj4g KwkJJnBlbmRpbmctPmFkZHIsIChwZW5kaW5nLT5waXRjaCAvIGZtdF9pbmZvLT5jcHBbMF0pLA0K PiArCQlwZW5kaW5nLT54LCBwZW5kaW5nLT55LCBwZW5kaW5nLT53aWR0aCwgcGVuZGluZy0+aGVp Z2h0KTsNCj4gKw0KPiArCWV4ZG1hID0gZ2V0X2NvbXBfYnlfdHlwZV9pZHgoZGV2LCBPVkxTWVNf QURBUFRPUl9UWVBFX0VYRE1BLCBpZHgpOw0KPiArCWJsZW5kZXIgPSBnZXRfY29tcF9ieV90eXBl X2lkeChkZXYsIE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgaWR4KTsNCj4gKw0KPiArCS8q IE9WTFNZUyBpcyBpbiAxVDJQIGRvbWFpbiwgd2lkdGggbmVlZHMgdG8gYmUgMiBwaXhlbHMgYWxp Z24gKi8NCj4gKwlhbGlnbl93aWR0aCA9IEFMSUdOX0RPV04ocGVuZGluZy0+d2lkdGgsIDIpOw0K DQphbGlnbl93aWR0aCBpcyB1c2VsZXNzLCBzbyBkcm9wIGl0Lg0KDQo+ICsNCj4gKwlpZiAoIXBl bmRpbmctPmVuYWJsZSB8fCBwZW5kaW5nLT5oZWlnaHQgPT0gMCB8fCBhbGlnbl93aWR0aCA9PSAw IHx8DQo+ICsJICAgIHBlbmRpbmctPnggPiBwcml2LT5tYXhfc2l6ZSB8fCBwZW5kaW5nLT55ID4g cHJpdi0+bWF4X3NpemUpIHsNCj4gKwkJcGVuZGluZy0+ZW5hYmxlID0gZmFsc2U7DQo+ICsJCW10 a19kaXNwX2V4ZG1hX3N0b3AoZXhkbWEsIGNtZHFfcGt0KTsNCj4gKwkJbXRrX2Rpc3BfYmxlbmRl cl9sYXllcl9jb25maWcoYmxlbmRlciwgc3RhdGUsIGNtZHFfcGt0KTsNCj4gKwkJcmV0dXJuOw0K PiArCX0NCj4gKw0KPiArCW10a19kaXNwX2V4ZG1hX2NvbmZpZyhleGRtYSwgc3RhdGUsIGNtZHFf cGt0KTsNCg0KbXRrX2Rpc3BfZXhkbWFfY29uZmlnKCkgZG9lcyBzb21ldGhpbmcgbGlrZSBtdGtf b3ZsX2xheWVyX2NvbmZpZygpLCBzbyBJIHdvdWxkIGxpa2UgdG8gcmVuYW1lIGl0IHRvIG10a19k aXNwX2V4ZG1hX2xheWVyX2NvbmZpZygpLg0KDQo+ICsNCj4gKwltdGtfZGlzcF9ibGVuZGVyX2xh eWVyX2NvbmZpZyhibGVuZGVyLCBzdGF0ZSwgY21kcV9wa3QpOw0KPiArDQo+ICsJbXRrX2Rpc3Bf ZXhkbWFfc3RhcnQoZXhkbWEsIGNtZHFfcGt0KTsNCg0KV2h5IGNhbGwgc3RhcnQgaW4gbGF5ZXIg Y29uZmlnPw0Kc3RhcnQgc2hvdWxkIGJlIGNhbGxlZCBpbiBzdGFydC4NCg0KPiArCW10a19kaXNw X2JsZW5kZXJfc3RhcnQoYmxlbmRlciwgY21kcV9wa3QpOw0KDQpEaXR0by4NCg0KPiArfQ0KPiAr DQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9jb25maWcoc3RydWN0IGRldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgdywNCj4gKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50 IHZyZWZyZXNoLA0KPiArCQkJICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpw cml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJaW50IGk7DQo+ICsJaW50IGJsZW5kZXJf aWR4ID0gMDsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykg ew0KPiArCQllbnVtIG10a19kaXNwX2JsZW5kZXJfbGF5ZXIgYmxlbmRlcjsNCj4gKw0KPiArCQlp ZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVS KSB7DQo+ICsJCQlibGVuZGVyX2lkeCsrOw0KPiArCQkJaWYgKHByaXYtPmxheWVyX25yID09IDEp DQo+ICsJCQkJYmxlbmRlciA9IFNJTkdMRV9CTEVOREVSOw0KPiArCQkJZWxzZSBpZiAoYmxlbmRl cl9pZHggPT0gMSkNCj4gKwkJCQlibGVuZGVyID0gRklSU1RfQkxFTkRFUjsNCj4gKwkJCWVsc2Ug aWYgKGJsZW5kZXJfaWR4ID09IHByaXYtPmxheWVyX25yKQ0KPiArCQkJCWJsZW5kZXIgPSBMQVNU X0JMRU5ERVI7DQo+ICsJCQllbHNlDQo+ICsJCQkJYmxlbmRlciA9IE9USEVSUzsNCj4gKw0KPiAr CQkJbXRrX2Rpc3BfYmxlbmRlcl9jb25maWcocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5w YXRoW2ldXSwgdywgaCwNCj4gKwkJCQkJCXZyZWZyZXNoLCBicGMsIGJsZW5kZXIsIGNtZHFfcGt0 KTsNCg0KbXRrX2Rpc3BfYmxlbmRlcl9jb25maWcocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2 LT5wYXRoW2ldXSwgdywgaCwNCgkJCXZyZWZyZXNoLCBicGMsIGJsZW5kZXJfaWR4ID09IDEsIGJs ZW5kZXJfaWR4ID09IHByaXYtPmxheWVyX25yLCBjbWRxX3BrdCk7DQoNCj4gKwkJfSBlbHNlIGlm IChnZXRfdHlwZShwcml2LT5wYXRoW2ldKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0Mp IHsNCj4gKwkJCW10a19kaXNwX291dHByb2NfY29uZmlnKHByaXYtPm92bF9hZGFwdG9yX2NvbXBb cHJpdi0+cGF0aFtpXV0sIHcsIGgsDQo+ICsJCQkJCQl2cmVmcmVzaCwgYnBjLCBjbWRxX3BrdCk7 DQo+ICsJCX0NCj4gKwl9DQo+ICt9DQo+ICsNCj4gK2ludCBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5 ZXJfY2hlY2soc3RydWN0IGRldmljZSAqZGV2LA0KPiArCQkJCSAgIHVuc2lnbmVkIGludCBpZHgs DQo+ICsJCQkJICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqbXRrX3N0YXRlKQ0KPiArew0KPiAr CXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0gJm10a19zdGF0ZS0+YmFzZTsNCj4gKw0K PiArCS8qIENoZWNrIGlmIGFueSB1bnN1cHBvcnRlZCByb3RhdGlvbiBpcyBzZXQgKi8NCj4gKwlp ZiAoc3RhdGUtPnJvdGF0aW9uICYgfkRSTV9NT0RFX1JPVEFURV8wKQ0KPiArCQlyZXR1cm4gLUVJ TlZBTDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICt2b2lkIG10a19vdmxzeXNf YWRhcHRvcl9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19k aXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJaW50 IGk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspIHsNCj4g KwkJaWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09IE9WTFNZU19BREFQVE9SX1RZUEVfRVhE TUEpDQo+ICsJCQltdGtfZGlzcF9leGRtYV9zdGFydChwcml2LT5vdmxfYWRhcHRvcl9jb21wW3By aXYtPnBhdGhbaV1dLCBOVUxMKTsNCg0KVGhlIHN0YXJ0IG5ldmVyIHVzZSBjbWRxLCBzbyByZW1v dmUgdGhlIGNtZHEgcGFyYW1ldGVyLg0KDQo+ICsJCWVsc2UgaWYgKGdldF90eXBlKHByaXYtPnBh dGhbaV0pID09IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUikNCj4gKwkJCW10a19kaXNwX2Js ZW5kZXJfc3RhcnQocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwgTlVMTCk7 DQoNCkRpdHRvLg0KDQo+ICsJCWVsc2UNCj4gKwkJCW10a19kaXNwX291dHByb2Nfc3RhcnQocHJp di0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sN Cj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRo X3NpemU7IGkrKykgew0KPiArCQlpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkgPT0gT1ZMU1lT X0FEQVBUT1JfVFlQRV9FWERNQSkNCj4gKwkJCW10a19kaXNwX2V4ZG1hX3N0b3AocHJpdi0+b3Zs X2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwgTlVMTCk7DQoNCkRpdHRvLg0KDQo+ICsJCWVs c2UgaWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09IE9WTFNZU19BREFQVE9SX1RZUEVfQkxF TkRFUikNCj4gKwkJCW10a19kaXNwX2JsZW5kZXJfc3RvcChwcml2LT5vdmxfYWRhcHRvcl9jb21w W3ByaXYtPnBhdGhbaV1dLCBOVUxMKTsNCg0KRGl0dG8uDQoNCj4gKwkJZWxzZQ0KPiArCQkJbXRr X2Rpc3Bfb3V0cHJvY19zdG9wKHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtpXV0p Ow0KPiArCX0NCj4gK30NCj4gKw0KPiAraW50IG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZW5hYmxl KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2Fk YXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKwlzdHJ1Y3QgZGV2aWNlICpj b21wOw0KPiArCWludCByZXQ7DQo+ICsJaW50IGk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwg T1ZMU1lTX0FEQVBUT1JfSURfTUFYOyBpKyspIHsNCj4gKwkJY29tcCA9IHByaXYtPm92bF9hZGFw dG9yX2NvbXBbaV07DQo+ICsNCj4gKwkJaWYgKCFjb21wKQ0KPiArCQkJY29udGludWU7DQo+ICsN Cj4gKwkJaWYgKGdldF90eXBlKGkpICE9IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEpDQo+ICsJ CQljb250aW51ZTsNCj4gKw0KPiArCQlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGNvbXApOw0K DQpSZWZlciB0byBtdGtfb3ZsX2FkYXB0b3JfcG93ZXJfb24oKS4NClRoaXMgc2hvdWxkIGJlIGRv bmUgaW4gcG93ZXJfb24oKSBjYWxsYmFjayBmdW5jdGlvbi4NCg0KPiArCQlpZiAocmV0IDwgMCkg ew0KPiArCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZW5hYmxlIHBvd2VyIGRvbWFpbiAlZCwg ZXJyICVkXG4iLCBpLCByZXQpOw0KPiArCQkJZ290byBwd3JfZXJyOw0KPiArCQl9DQo+ICsJfQ0K PiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE9WTFNZU19BREFQVE9SX0lEX01BWDsgaSsrKSB7DQo+ ICsJCWNvbXAgPSBwcml2LT5vdmxfYWRhcHRvcl9jb21wW2ldOw0KPiArDQo+ICsJCWlmICghY29t cCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmIChnZXRfdHlwZShpKSA9PSBPVkxTWVNf QURBUFRPUl9UWVBFX0VYRE1BKQ0KPiArCQkJcmV0ID0gbXRrX2Rpc3BfZXhkbWFfY2xrX2VuYWJs ZShjb21wKTsNCj4gKwkJZWxzZSBpZiAoZ2V0X3R5cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQ RV9CTEVOREVSKQ0KPiArCQkJcmV0ID0gbXRrX2Rpc3BfYmxlbmRlcl9jbGtfZW5hYmxlKGNvbXAp Ow0KPiArCQllbHNlDQo+ICsJCQlyZXQgPSBtdGtfZGlzcF9vdXRwcm9jX2Nsa19lbmFibGUoY29t cCk7DQo+ICsNCj4gKwkJaWYgKHJldCkgew0KPiArCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8g ZW5hYmxlIGNsb2NrICVkLCBlcnIgJWRcbiIsIGksIHJldCk7DQo+ICsJCQlnb3RvIGNsa19lcnI7 DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiArDQo+ICtjbGtfZXJyOg0K PiArCXdoaWxlICgtLWkgPj0gMCkgew0KPiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29t cFtpXTsNCj4gKwkJaWYgKCFjb21wKQ0KPiArCQkJY29udGludWU7DQo+ICsJCWlmIChnZXRfdHlw ZShpKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BKQ0KPiArCQkJbXRrX2Rpc3BfZXhkbWFf Y2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJCWVsc2UgaWYgKGdldF90eXBlKGkpID09IE9WTFNZU19B REFQVE9SX1RZUEVfQkxFTkRFUikNCj4gKwkJCW10a19kaXNwX2JsZW5kZXJfY2xrX2Rpc2FibGUo Y29tcCk7DQo+ICsJCWVsc2UNCj4gKwkJCW10a19kaXNwX291dHByb2NfY2xrX2Rpc2FibGUoY29t cCk7DQo+ICsJfQ0KPiArCWkgPSBPVkxTWVNfQURBUFRPUl9CTEVOREVSMDsNCj4gKw0KPiArcHdy X2VycjoNCj4gKwl3aGlsZSAoLS1pID49IDApIHsNCj4gKwkJY29tcCA9IHByaXYtPm92bF9hZGFw dG9yX2NvbXBbaV07DQo+ICsJCWlmICghY29tcCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQlwbV9y dW50aW1lX3B1dChwcml2LT5vdmxfYWRhcHRvcl9jb21wW2ldKTsNCj4gKwl9DQo+ICsNCj4gKwly ZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZGlz YWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5 c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJc3RydWN0IGRldmlj ZSAqY29tcDsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBPVkxTWVNfQURB UFRPUl9JRF9NQVg7IGkrKykgew0KPiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtp XTsNCj4gKw0KPiArCQlpZiAoIWNvbXApDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAo Z2V0X3R5cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSkgew0KPiArCQkJbXRrX2Rp c3BfZXhkbWFfY2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJCQlwbV9ydW50aW1lX3B1dChjb21wKTsN Cj4gKwkJfSBlbHNlIGlmIChnZXRfdHlwZShpKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5E RVIpIHsNCj4gKwkJCW10a19kaXNwX2JsZW5kZXJfY2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJCX0g ZWxzZSB7DQo+ICsJCQltdGtfZGlzcF9vdXRwcm9jX2Nsa19kaXNhYmxlKGNvbXApOw0KPiArCQl9 DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICt1bnNpZ25lZCBpbnQgbXRrX292bHN5c19hZGFwdG9yX2xh eWVyX25yKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zs c3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCXJldHVy biBwcml2LT5sYXllcl9ucjsNCj4gK30NCj4gKw0KPiArc3RydWN0IGRldmljZSAqbXRrX292bHN5 c19hZGFwdG9yX2RtYV9kZXZfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1 Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gKw0KPiArCXJldHVybiBwcml2LT5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbMF1dOw0K PiArfQ0KPiArDQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2Io c3RydWN0IGRldmljZSAqZGV2LCB2b2lkICgqdmJsYW5rX2NiKSh2b2lkICopLA0KPiArCQkJCQkg ICB2b2lkICp2YmxhbmtfY2JfZGF0YSkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lz X2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCW10a19kaXNw X291dHByb2NfcmVnaXN0ZXJfdmJsYW5rX2NiKHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+ cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0sDQo+ICsJCQkJCSAgICB2YmxhbmtfY2IsIHZibGFu a19jYl9kYXRhKTsNCj4gK30NCj4gKw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfdW5yZWdp c3Rlcl92YmxhbmtfY2Ioc3RydWN0IGRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVjdCBtdGtf ZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArCXN0 cnVjdCBkZXZpY2UgKmNvbXAgPSBwcml2LT5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbcHJp di0+cGF0aF9zaXplIC0gMV1dOw0KPiArDQo+ICsJaWYgKCFwcml2LT5jaGlsZHJlbl9ib3VuZCkN Cg0KSW4gb3ZsIGFkYXB0b3IsIGl0IGRvZXMgbm90IGNoZWNrIHRoaXMuIFNvIHJlbW92ZSB0aGlz IGNoZWNraW5nLg0KDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCW10a19kaXNwX291dHByb2NfdW5y ZWdpc3Rlcl92YmxhbmtfY2IoY29tcCk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19h ZGFwdG9yX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVj dCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0K PiArDQo+ICsJbXRrX2Rpc3Bfb3V0cHJvY19lbmFibGVfdmJsYW5rKHByaXYtPm92bF9hZGFwdG9y X2NvbXBbcHJpdi0+cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0pOw0KPiArfQ0KPiArDQo+ICt2 b2lkIG10a19vdmxzeXNfYWRhcHRvcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYp DQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwltdGtfZGlzcF9vdXRwcm9jX2Rpc2FibGVfdmJsYW5r KHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0p Ow0KPiArfQ0KPiArDQo+ICtjb25zdCB1MzIgKm10a19vdmxzeXNfYWRhcHRvcl9nZXRfZm9ybWF0 cyhzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19h ZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlyZXR1cm4gbXRr X2Rpc3BfZXhkbWFfZ2V0X2Zvcm1hdHMocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRo WzBdXSk7DQo+ICt9DQo+ICsNCj4gK3NpemVfdCBtdGtfb3Zsc3lzX2FkYXB0b3JfZ2V0X251bV9m b3JtYXRzKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zs c3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCXJldHVy biBtdGtfZGlzcF9leGRtYV9nZXRfbnVtX2Zvcm1hdHMocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtw cml2LT5wYXRoWzBdXSk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Fk ZF9jb21wKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG10a19tdXRleCAqbXV0ZXgpDQo+ICt7 DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZk YXRhKGRldik7DQo+ICsJaW50IGk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0 aF9zaXplOyBpKyspDQo+ICsJCW10a19tdXRleF9hZGRfY29tcChtdXRleCwgZ2V0X2RkcF9jb21w X2lkKHByaXYtPnBhdGhbaV0pKTsNCj4gK30NCj4gKw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0 b3JfcmVtb3ZlX2NvbXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXRrX211dGV4ICptdXRl eCkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZf Z2V0X2RydmRhdGEoZGV2KTsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBw cml2LT5wYXRoX3NpemU7IGkrKykNCj4gKwkJbXRrX211dGV4X3JlbW92ZV9jb21wKG11dGV4LCBn ZXRfZGRwX2NvbXBfaWQocHJpdi0+cGF0aFtpXSkpOw0KPiArfQ0KPiArDQo+ICt2b2lkIG10a19v dmxzeXNfYWRhcHRvcl9jb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAq bW1zeXNfZGV2LCB1bnNpZ25lZCBpbnQgbmV4dCkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bf b3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKwlpbnQgaTsN Cj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemUgLSAxOyBpKyspDQo+ICsJ CW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19kZXYsIGdldF9kZHBfY29tcF9pZChwcml2LT5w YXRoW2ldKSwNCj4gKwkJCQkgICAgICBnZXRfZGRwX2NvbXBfaWQocHJpdi0+cGF0aFtpICsgMV0p KTsNCj4gKw0KPiArCW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19kZXYsIGdldF9kZHBfY29t cF9pZChwcml2LT5wYXRoW2ldKSwgbmV4dCk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5 c19hZGFwdG9yX2Rpc2Nvbm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICpt bXN5c19kZXYsIHVuc2lnbmVkIGludCBuZXh0KQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZGlzcF9v dmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArCWludCBpOw0K PiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6ZSAtIDE7IGkrKykNCj4gKwkJ bXRrX21tc3lzX2RkcF9kaXNjb25uZWN0KG1tc3lzX2RldiwgZ2V0X2RkcF9jb21wX2lkKHByaXYt PnBhdGhbaV0pLA0KPiArCQkJCQkgZ2V0X2RkcF9jb21wX2lkKHByaXYtPnBhdGhbaSArIDFdKSk7 DQo+ICsNCj4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3QobW1zeXNfZGV2LCBnZXRfZGRwX2Nv bXBfaWQocHJpdi0+cGF0aFtpXSksIG5leHQpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG92 bHN5c19hZGFwdG9yX2NvbXBfZ2V0X2lkKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZV9ub2RlICpub2RlLA0KPiArCQkJCSAgICAgIGVudW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBf dHlwZSB0eXBlLA0KPiArCQkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkICpjb21wX2lkKQ0K PiArew0KPiArCWludCBhbGlhc19pZCA9IG9mX2FsaWFzX2dldF9pZChub2RlLCBwcml2YXRlX2Nv bXBfc3RlbVt0eXBlXSk7DQo+ICsJaW50IGk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShjb21wX21hdGNoZXMpOyBpKyspDQo+ICsJCWlmIChjb21wX21hdGNoZXNbaV0udHlw ZSA9PSB0eXBlICYmDQo+ICsJCSAgICBjb21wX21hdGNoZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNf aWQpIHsNCj4gKwkJCSpjb21wX2lkID0gY29tcF9tYXRjaGVzW2ldLmNvbXBfaWQ7DQo+ICsJCQly ZXR1cm4gaTsNCj4gKwkJfQ0KPiArCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBnZXQgaWQuIHR5 cGU6ICVkLCBhbGlhczogJWRcbiIsIHR5cGUsIGFsaWFzX2lkKTsNCj4gKwlyZXR1cm4gLUVJTlZB TDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX292 bHN5c19hZGFwdG9yX2NvbXBfZHRfaWRzW10gPSB7DQo+ICsJew0KPiArCQkuY29tcGF0aWJsZSA9 ICJtZWRpYXRlayxtdDgxOTYtZXhkbWEiLA0KPiArCQkuZGF0YSA9ICh2b2lkICopT1ZMU1lTX0FE QVBUT1JfVFlQRV9FWERNQSwNCj4gKwl9LCB7DQo+ICsJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10ODE5Ni1ibGVuZGVyIiwNCj4gKwkJLmRhdGEgPSAodm9pZCAqKU9WTFNZU19BREFQVE9SX1RZ UEVfQkxFTkRFUiwNCj4gKwl9LCB7DQo+ICsJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5 Ni1vdXRwcm9jIiwNCj4gKwkJLmRhdGEgPSAodm9pZCAqKU9WTFNZU19BREFQVE9SX1RZUEVfT1VU UFJPQywNCj4gKwl9LA0KPiArCXt9LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludCBvdmxzeXNf YWRhcHRvcl9jb21wX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgY29tcG9uZW50X21h dGNoICoqbWF0Y2gpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpw cml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJc3RydWN0IGRldmljZV9ub2RlICpub2Rl LCAqcGFyZW50Ow0KPiArCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmNvbXBfcGRldjsNCj4gKwlp bnQgaTsNCj4gKw0KPiArCXBhcmVudCA9IGRldi0+cGFyZW50LT5wYXJlbnQtPm9mX25vZGUtPnBh cmVudDsNCj4gKw0KPiArCWZvcl9lYWNoX2NoaWxkX29mX25vZGUocGFyZW50LCBub2RlKSB7DQo+ ICsJCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkOw0KPiArCQllbnVtIG10a19vdmxz eXNfYWRhcHRvcl9jb21wX3R5cGUgdHlwZTsNCj4gKwkJZW51bSBtdGtfZGRwX2NvbXBfaWQgY29t cF9pZDsNCj4gKwkJaW50IGlkOw0KPiArCQlib29sIGZvdW5kID0gZmFsc2U7DQo+ICsNCj4gKwkJ b2ZfaWQgPSBvZl9tYXRjaF9ub2RlKG10a19vdmxzeXNfYWRhcHRvcl9jb21wX2R0X2lkcywgbm9k ZSk7DQo+ICsJCWlmICghb2ZfaWQpDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAoIW9m X2RldmljZV9pc19hdmFpbGFibGUobm9kZSkpIHsNCj4gKwkJCWRldl9kYmcoZGV2LCAiU2tpcHBp bmcgZGlzYWJsZWQgY29tcG9uZW50ICVwT0ZcbiIsDQo+ICsJCQkJbm9kZSk7DQo+ICsJCQljb250 aW51ZTsNCj4gKwkJfQ0KPiArDQo+ICsJCXR5cGUgPSAoZW51bSBtdGtfb3Zsc3lzX2FkYXB0b3Jf Y29tcF90eXBlKSh1aW50cHRyX3Qpb2ZfaWQtPmRhdGE7DQo+ICsJCWlkID0gb3Zsc3lzX2FkYXB0 b3JfY29tcF9nZXRfaWQoZGV2LCBub2RlLCB0eXBlLCAmY29tcF9pZCk7DQo+ICsJCWlmIChpZCA8 IDApIHsNCj4gKwkJCWRldl93YXJuKGRldiwgIlNraXBwaW5nIHVua25vd24gY29tcG9uZW50ICVw T0ZcbiIsDQo+ICsJCQkJIG5vZGUpOw0KPiArCQkJY29udGludWU7DQo+ICsJCX0NCj4gKw0KPiAr CQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspDQo+ICsJCQlpZiAocHJpdi0+ cGF0aFtpXSA9PSBpZCkNCj4gKwkJCQlmb3VuZCA9IHRydWU7DQo+ICsNCj4gKwkJaWYgKCFmb3Vu ZCkNCj4gKwkJCWNvbnRpbnVlOw0KDQpvdmwgYWRhcHRvciBkb2VzIG5vdCBjaGVjayB0aGlzLCB3 aHkgb3Zsc3lzIG5lZWQgdGhpcz8NCklmIHRoaXMgaXMgcmVtb3ZlZCwgdGhpcyBmdW5jdGlvbiBp cyBzaW1pbGFyIHRvIHRoZSBvbmUgaW4gb3ZsIGFkYXB0b3IsDQp3b3VsZCB5b3UgdHJ5IHRvIHJl d3JpdGUgdGhpcyBmdW5jdGlvbiB0byBiZSBhbG1vc3QgdGhlIHNhbWUgd2l0aCB0aGUgb25lIGlu IG92bCBhZGF0b3I/DQpOb3QgbWVyZ2luZyBpdCwganVzdCBpbXBsZW1lbnQgYWxtb3N0IHRoZSBz YW1lLg0KDQo+ICsNCj4gKwkJY29tcF9wZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShub2Rl KTsNCj4gKwkJaWYgKCFjb21wX3BkZXYpDQo+ICsJCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4g Kw0KPiArCQlwcml2LT5vdmxfYWRhcHRvcl9jb21wW2lkXSA9ICZjb21wX3BkZXYtPmRldjsNCj4g Kw0KPiArCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsIG1hdGNoLCBjb21wb25lbnRf Y29tcGFyZV9vZiwgbm9kZSk7DQo+ICsJCWRldl9kYmcoZGV2LCAiQWRkaW5nIGNvbXBvbmVudCBt YXRjaCBmb3IgJXBPRlxuIiwgbm9kZSk7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKCEqbWF0Y2gpIHsN Cj4gKwkJZGV2X2VycihkZXYsICJObyBtYXRjaCBkZXZpY2UgZm9yIG92bHN5c19hZGFwdG9yXG4i KTsNCj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbnQgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfY29tcF9iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLA0KPiArCQkJCQkgICAgIHZv aWQgKmRhdGEpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlpZiAoIXByaXYtPmNoaWxkcmVuX2Jv dW5kKQ0KPiArCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4gKw0KPiArCXJldHVybiAwOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX3VuYmlu ZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwNCj4gKwkJCQkJCXZv aWQgKmRhdGEpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9u ZW50X29wcyBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX29wcyA9IHsNCj4gKwkuYmluZAk9 IG10a19kaXNwX292bHN5c19hZGFwdG9yX2NvbXBfYmluZCwNCj4gKwkudW5iaW5kID0gbXRrX2Rp c3Bfb3Zsc3lzX2FkYXB0b3JfY29tcF91bmJpbmQsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50 IG10a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikN Cj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCj4gKwlpbnQgcmV0LCBpOw0KPiArCXVuc2lnbmVkIGludCBsYXllcl9u ciA9IDA7DQo+ICsNCj4gKwlyZXQgPSBjb21wb25lbnRfYmluZF9hbGwoZGV2LCBwcml2LT5tbXN5 c19kZXYpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0 LCAiY29tcG9uZW50X2JpbmRfYWxsIGZhaWxlZCFcbiIpOw0KPiArDQo+ICsJcHJpdi0+Y2hpbGRy ZW5fYm91bmQgPSB0cnVlOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6 ZTsgaSsrKQ0KPiArCQlpZiAoY29tcF9tYXRjaGVzW3ByaXYtPnBhdGhbaV1dLnR5cGUgPT0gT1ZM U1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSKQ0KPiArCQkJbGF5ZXJfbnIrKzsNCj4gKwlwcml2LT5s YXllcl9uciA9IGxheWVyX25yOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyB2b2lkIG10a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl91bmJpbmQoc3RydWN0IGRl dmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJp diA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArDQo+ICsJcHJpdi0+Y2hpbGRyZW5fYm91bmQg PSBmYWxzZTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfbWFz dGVyX29wcyBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9tYXN0ZXJfb3BzID0gew0KPiArCS5iaW5k CQk9IG10a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9iaW5kLA0KPiArCS51bmJpbmQJCT0g bXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfbWFzdGVyX3VuYmluZCwNCj4gK307DQo+ICsNCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgbXQ4MTk2X292bHN5c19h ZGFwdG9yX2RyaXZlcl9kYXRhID0gew0KPiArCS5tYXhfc2l6ZSA9IDgxOTEsDQoNClRoaXMgaXMg dGhlIGZpcnN0IFNvQyBoYXMgb3Zsc3lzLCBzbyBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gaGFzIGRy aXZlciBkYXRhLg0KQWZ0ZXIgb3RoZXIgU29DIG92bHN5cyBpcyBhZGRlZCwgdGhlbiBjb25zaWRl ciB0byBhZGQgZHJpdmVyIGRhdGEuDQpTbywNCg0KI2RlZmluZSBPVkxTWVNfTUFYX1NJWkUgODE5 MQ0KDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IG10a19kaXNwX292bHN5c19hZGFwdG9yX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19k aXNwX292bHN5c19hZGFwdG9yICpwcml2Ow0KPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2 LT5kZXY7DQo+ICsJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOw0KPiArCXN0 cnVjdCBtdGtfZHJtX292bHN5c19wcml2YXRlICpvdmxzeXNfcHJpdjsNCj4gKwlpbnQgcmV0Ow0K PiArDQo+ICsJcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJO RUwpOw0KPiArCWlmICghcHJpdikNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsNCj4gKwlwbGF0 Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2KTsNCj4gKw0KPiArCW92bHN5c19wcml2ID0gcGRl di0+ZGV2LnBsYXRmb3JtX2RhdGE7DQo+ICsJcHJpdi0+bW1zeXNfZGV2ID0gb3Zsc3lzX3ByaXYt Pm1tc3lzX2RldjsNCj4gKwlwcml2LT5tYXhfc2l6ZSA9IG10ODE5Nl9vdmxzeXNfYWRhcHRvcl9k cml2ZXJfZGF0YS5tYXhfc2l6ZTsNCj4gKw0KPiArCWlmIChvdmxzeXNfcHJpdi0+dXNlX3BhdGgg PT0gMCkgew0KPiArCQlwcml2LT5wYXRoID0gbXQ4MTk2X210a19vdmxfbWFpbjsNCj4gKwkJcHJp di0+cGF0aF9zaXplID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX292bF9tYWluKTsNCj4gKwl9IGVs c2UgaWYgKG92bHN5c19wcml2LT51c2VfcGF0aCA9PSAxKSB7DQo+ICsJCXByaXYtPnBhdGggPSBt dDgxOTZfbXRrX292bF9leHQ7DQo+ICsJCXByaXYtPnBhdGhfc2l6ZSA9IEFSUkFZX1NJWkUobXQ4 MTk2X210a19vdmxfZXh0KTsNCj4gKwl9IGVsc2Ugew0KPiArCQlwcml2LT5wYXRoID0gbXQ4MTk2 X210a19vdmxfdGhpcmQ7DQo+ICsJCXByaXYtPnBhdGhfc2l6ZSA9IEFSUkFZX1NJWkUobXQ4MTk2 X210a19vdmxfdGhpcmQpOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IG92bHN5c19hZGFwdG9yX2Nv bXBfaW5pdChkZXYsICZtYXRjaCk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICsJCXJldHVybiByZXQ7 DQo+ICsNCj4gKwljb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJm10a19kaXNw X292bHN5c19hZGFwdG9yX21hc3Rlcl9vcHMsIG1hdGNoKTsNCj4gKw0KPiArCXBtX3J1bnRpbWVf ZW5hYmxlKGRldik7DQo+ICsNCj4gKwlyZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19kaXNw X292bHN5c19hZGFwdG9yX2NvbXBfb3BzKTsNCj4gKwlpZiAocmV0ICE9IDApIHsNCj4gKwkJcG1f cnVudGltZV9kaXNhYmxlKGRldik7DQo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFkZCBj b21wb25lbnQ6ICVkXG4iLCByZXQpOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292bHN5c19hZGFwdG9yX3JlbW92ZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiArew0KPiArCWNvbXBvbmVudF9tYXN0ZXJfZGVs KCZwZGV2LT5kZXYsICZtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9tYXN0ZXJfb3BzKTsNCj4gKwlw bV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7DQo+ICt9DQo+ICsNCj4gK3N0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfZHJpdmVyID0gew0KPiArCS5wcm9i ZQkJPSBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9wcm9iZSwNCj4gKwkucmVtb3ZlCQk9IG10a19k aXNwX292bHN5c19hZGFwdG9yX3JlbW92ZSwNCj4gKwkuZHJpdmVyCQk9IHsNCj4gKwkJLm5hbWUJ PSAibWVkaWF0ZWstZGlzcC1vdmxzeXMtYWRhcHRvciIsDQo+ICsJCS5vd25lcgk9IFRISVNfTU9E VUxFLA0KPiArCX0sDQo+ICt9Ow0KPiArDQo+ICtNT0RVTEVfQVVUSE9SKCJOYW5jeSBMaW4gPG5h bmN5LmxpbkBtZWRpYXRlay5jb20+Iik7DQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1lZGlhVGVr IE92bHN5cyBBZGFwdG9yIERyaXZlciIpOw0KPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBpbmRleCAyNzE5MDA1N2JkOGUu Ljc1MjZiYzM4YmNjNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZHJ2LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2 LmMNCj4gQEAgLTQ0OCw2ICs0NDgsMjggQEAgc3RhdGljIGJvb2wgbXRrX2RybV9maW5kX21tc3lz X2NvbXAoc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSwgaW50IGNvbXBfaWQNCj4gIAly ZXR1cm4gZmFsc2U7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyBpbnQgbXRrX2RybV9tbXN5c19jb21w X2luX3BhdGgoc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSwgaW50IGNvbXBfaWQpDQo+ ICt7DQo+ICsJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZHJ2X2RhdGEgPSBw cml2YXRlLT5kYXRhOw0KPiArCWludCBpOw0KPiArDQo+ICsJaWYgKGRydl9kYXRhLT5tYWluX3Bh dGgpDQo+ICsJCWZvciAoaSA9IDA7IGkgPCBkcnZfZGF0YS0+bWFpbl9sZW47IGkrKykNCj4gKwkJ CWlmIChkcnZfZGF0YS0+bWFpbl9wYXRoW2ldID09IGNvbXBfaWQpDQo+ICsJCQkJcmV0dXJuIDA7 DQo+ICsNCj4gKwlpZiAoZHJ2X2RhdGEtPmV4dF9wYXRoKQ0KPiArCQlmb3IgKGkgPSAwOyBpIDwg ZHJ2X2RhdGEtPmV4dF9sZW47IGkrKykNCj4gKwkJCWlmIChkcnZfZGF0YS0+ZXh0X3BhdGhbaV0g PT0gY29tcF9pZCkNCj4gKwkJCQlyZXR1cm4gMTsNCj4gKwlpZiAoZHJ2X2RhdGEtPnRoaXJkX3Bh dGgpDQo+ICsJCWZvciAoaSA9IDA7IGkgPCBkcnZfZGF0YS0+dGhpcmRfbGVuOyBpKyspDQo+ICsJ CQlpZiAoZHJ2X2RhdGEtPnRoaXJkX3BhdGhbaV0gPT0gY29tcF9pZCkNCj4gKwkJCQlyZXR1cm4g MjsNCj4gKw0KPiArCXJldHVybiAtMTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBtdGtfZHJt X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pDQo+ICB7DQo+ICAJc3RydWN0IG10a19k cm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IGRybS0+ZGV2X3ByaXZhdGU7DQo+IEBAIC00NjMsOCArNDg1 LDggQEAgc3RhdGljIGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0p DQo+ICAJaWYgKHJldCkNCj4gIAkJZ290byBwdXRfbXV0ZXhfZGV2Ow0KPiAgDQo+IC0JZHJtLT5t b2RlX2NvbmZpZy5taW5fd2lkdGggPSA2NDsNCj4gLQlkcm0tPm1vZGVfY29uZmlnLm1pbl9oZWln aHQgPSA2NDsNCj4gKwlkcm0tPm1vZGVfY29uZmlnLm1pbl93aWR0aCA9IDE7DQo+ICsJZHJtLT5t b2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gMTsNCg0KWW91IGNoYW5nZSBvdGhlciBTb0Mgc2V0dGlu Zy4NCklmIDgxOTYgaGFzIGRpZmZlcmVudCBzZXR0aW5nLCBxdWVyeSBtaW4gd2lkdGgvaGVpZ2h0 IGZyb20gZGRwIGNvbXBvbmVudCBhbmQgc2VwYXJhdGUgdGhpcyB0byBhbm90aGVyIHBhdGNoLg0K DQo+ICANCj4gIAkvKg0KPiAgCSAqIHNldCBtYXggd2lkdGggYW5kIGhlaWdodCBhcyBkZWZhdWx0 IHZhbHVlKDQwOTZ4NDA5NikuDQo+IEBAIC0xMTA3LDYgKzExMjksNDAgQEAgc3RhdGljIGludCBt dGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICAJCWNvbXBvbmVu dF9tYXRjaF9hZGQoZGV2LCAmbWF0Y2gsIGNvbXBhcmVfZGV2LCAmb3ZsX2FkYXB0b3ItPmRldik7 DQo+ICAJfQ0KPiAgDQo+ICsJaWYgKG10a19kcm1fZmluZF9tbXN5c19jb21wKHByaXZhdGUsIERE UF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMCkpIHsNCj4gKwkJc3RydWN0IG10a19kcm1f b3Zsc3lzX3ByaXZhdGUgb3Zsc3lzX3ByaXY7DQo+ICsNCj4gKwkJb3Zsc3lzX3ByaXYubW1zeXNf ZGV2ID0gcHJpdmF0ZS0+bW1zeXNfZGV2Ow0KPiArCQlvdmxzeXNfcHJpdi51c2VfcGF0aCA9DQo+ ICsJCW10a19kcm1fbW1zeXNfY29tcF9pbl9wYXRoKHByaXZhdGUsIEREUF9DT01QT05FTlRfRFJN X09WTFNZU19BREFQVE9SMCk7DQo+ICsJCW92bF9hZGFwdG9yID0NCj4gKwkJCXBsYXRmb3JtX2Rl dmljZV9yZWdpc3Rlcl9kYXRhKGRldiwgIm1lZGlhdGVrLWRpc3Atb3Zsc3lzLWFkYXB0b3IiLA0K PiArCQkJCQkJICAgICAgUExBVEZPUk1fREVWSURfQVVUTywNCj4gKwkJCQkJCSAgICAgICh2b2lk ICopJm92bHN5c19wcml2LA0KPiArCQkJCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBtdGtfZHJtX292 bHN5c19wcml2YXRlKSk7DQo+ICsJCXByaXZhdGUtPmRkcF9jb21wW0REUF9DT01QT05FTlRfRFJN X09WTFNZU19BREFQVE9SMF0uZGV2ID0gJm92bF9hZGFwdG9yLT5kZXY7DQo+ICsJCW10a19kZHBf Y29tcF9pbml0KE5VTEwsICZwcml2YXRlLT5kZHBfY29tcFtERFBfQ09NUE9ORU5UX0RSTV9PVkxT WVNfQURBUFRPUjBdLA0KPiArCQkJCSAgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1Iw KTsNCj4gKwkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsICZv dmxfYWRhcHRvci0+ZGV2KTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAobXRrX2RybV9maW5kX21tc3lz X2NvbXAocHJpdmF0ZSwgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxKSkgew0KPiAr CQlzdHJ1Y3QgbXRrX2RybV9vdmxzeXNfcHJpdmF0ZSBvdmxzeXNfcHJpdjsNCj4gKw0KPiArCQlv dmxzeXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ICsJCW92bHN5c19w cml2LnVzZV9wYXRoID0NCj4gKwkJbXRrX2RybV9tbXN5c19jb21wX2luX3BhdGgocHJpdmF0ZSwg RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxKTsNCj4gKwkJb3ZsX2FkYXB0b3IgPQ0K PiArCQkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoZGV2LCAibWVkaWF0ZWstZGlzcC1v dmxzeXMtYWRhcHRvciIsDQo+ICsJCQkJCQkgICAgICBQTEFURk9STV9ERVZJRF9BVVRPLA0KPiAr CQkJCQkJICAgICAgKHZvaWQgKikmb3Zsc3lzX3ByaXYsDQo+ICsJCQkJCQkgICAgICBzaXplb2Yo c3RydWN0IG10a19kcm1fb3Zsc3lzX3ByaXZhdGUpKTsNCj4gKwkJcHJpdmF0ZS0+ZGRwX2NvbXBb RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxXS5kZXYgPSAmb3ZsX2FkYXB0b3ItPmRl djsNCj4gKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtPmRkcF9jb21wW0REUF9D T01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0sDQo+ICsJCQkJICBERFBfQ09NUE9ORU5UX0RS TV9PVkxTWVNfQURBUFRPUjEpOw0KPiArCQljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNo LCBjb21wYXJlX2RldiwgJm92bF9hZGFwdG9yLT5kZXYpOw0KPiArCX0NCj4gKw0KPiAgCS8qIEl0 ZXJhdGUgb3ZlciBzaWJsaW5nIERJU1AgZnVuY3Rpb24gYmxvY2tzICovDQo+ICAJZm9yX2VhY2hf Y2hpbGRfb2Zfbm9kZShwaGFuZGxlLT5wYXJlbnQsIG5vZGUpIHsNCj4gIAkJZW51bSBtdGtfZGRw X2NvbXBfdHlwZSBjb21wX3R5cGU7DQo+IEBAIC0xMjY4LDYgKzEzMjQsNyBAQCBzdGF0aWMgc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciAqIGNvbnN0IG10a19kcm1fZHJpdmVyc1tdID0gew0KPiAgCSZt dGtfZGlzcF9vdXRwcm9jX2RyaXZlciwNCj4gIAkmbXRrX2Rpc3Bfb3ZsX2FkYXB0b3JfZHJpdmVy LA0KPiAgCSZtdGtfZGlzcF9vdmxfZHJpdmVyLA0KPiArCSZtdGtfZGlzcF9vdmxzeXNfYWRhcHRv cl9kcml2ZXIsDQo+ICAJJm10a19kaXNwX3JkbWFfZHJpdmVyLA0KPiAgCSZtdGtfZHBpX2RyaXZl ciwNCj4gIAkmbXRrX2RybV9wbGF0Zm9ybV9kcml2ZXIsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHJtX2Rydi5oDQo+IGluZGV4IGM0NzE3YzM3YjBmMS4uYWExN2U3NDNhMWQwIDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiBAQCAtMTEsNyArMTEs OSBAQA0KPiAgDQo+ICAjZGVmaW5lIE1BWF9DT05ORUNUT1IJMg0KPiAgI2RlZmluZSBERFBfQ09N UE9ORU5UX0RSTV9PVkxfQURBUFRPUiAoRERQX0NPTVBPTkVOVF9JRF9NQVggKyAxKQ0KPiAtI2Rl ZmluZSBERFBfQ09NUE9ORU5UX0RSTV9JRF9NQVggKEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQ VE9SICsgMSkNCj4gKyNkZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwIChE RFBfQ09NUE9ORU5UX0RSTV9PVkxfQURBUFRPUiArIDEpDQo+ICsjZGVmaW5lIEREUF9DT01QT05F TlRfRFJNX09WTFNZU19BREFQVE9SMSAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1Iw ICsgMSkNCj4gKyNkZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYIChERFBfQ09NUE9ORU5U X0RSTV9PVkxTWVNfQURBUFRPUjEgKyAxKQ0KPiAgDQo+ICBlbnVtIG10a19jcnRjX3BhdGggew0K PiAgCUNSVENfTUFJTiwNCj4gQEAgLTY5LDYgKzcxLDEyIEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZh dGUgew0KPiAgCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKiphbGxfZHJtX3ByaXZhdGU7DQo+ICB9 Ow0KPiAgDQo+ICtzdHJ1Y3QgbXRrX2RybV9vdmxzeXNfcHJpdmF0ZSB7DQoNCm92bHN5cyBoYXMg aXRzIG93biBwcml2YXRlIGRhdGEgc3RydWN0dXJlLg0KbXRrX292bHN5c19wbGF0Zm9ybV9kYXRh IGlzIGJldHRlci4NCg0KUmVnYXJkcywNCkNLDQoNCg0KPiArCXN0cnVjdCBkZXZpY2UgKm1tc3lz X2RldjsNCj4gKwlzdHJ1Y3QgZGV2aWNlICptdXRleF9kZXY7DQo+ICsJdW5zaWduZWQgaW50IHVz ZV9wYXRoOw0KPiArfTsNCj4gKw0KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfYWFsX2RyaXZlcjsNCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19k aXNwX2JsZW5kZXJfZHJpdmVyOw0KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRr X2Rpc3BfY2NvcnJfZHJpdmVyOw0KPiBAQCAtNzksNiArODcsNyBAQCBleHRlcm4gc3RydWN0IHBs YXRmb3JtX2RyaXZlciBtdGtfZGlzcF9tZXJnZV9kcml2ZXI7DQo+ICBleHRlcm4gc3RydWN0IHBs YXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdXRwcm9jX2RyaXZlcjsNCj4gIGV4dGVybiBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292bF9hZGFwdG9yX2RyaXZlcjsNCj4gIGV4dGVybiBz dHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292bF9kcml2ZXI7DQo+ICtleHRlcm4gc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9kcml2ZXI7DQo+ICBl eHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9yZG1hX2RyaXZlcjsNCj4gIGV4 dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kcGlfZHJpdmVyOw0KPiAgZXh0ZXJuIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2RzaV9kcml2ZXI7DQoNCg==