From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E7BB3C4167B for ; Wed, 6 Dec 2023 18:07:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From: References:Cc:To:Subject:Date:Message-ID:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=PJcfUx29HRdFy/537uaPa+VZNxRfjV2TRDMRnIHuI6M=; b=LF0cnd9AC5bJ1coRfFq1kzgXX8 8k/sWlAIm5JETFrNZQDVwJr9KtQ39gbiPQm89dw0m8aTP+78U9fCT4f7SeprOKzPjYnKZ5yopClY1 MaTECxOO8AH4l3jyQTmFRSCTCfyPiz6g4SYZqIBYEgFDS7JamJd68Af5MW7V8T+5ZTtdceFRzYMVD DqsVd6Ti6XBvVeQeloa8Xvw6008PmikLDKIuLXpogEAJ8dJXX3/k2iLnalqVf1LF7c2cP24b/y6mM NiUZ2OS7kzRxcJSOUK7/j69hkf7xKELgUp7P3gH2WvG0mTZHtpxmk6eW8tNwix6Pf+pS7WzztDPF4 cMmzrSEQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rAwIY-00B0Is-05; Wed, 06 Dec 2023 18:07:02 +0000 Received: from mail-sn1nam02on2060e.outbound.protection.outlook.com ([2a01:111:f400:7ea9::60e] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rAwIS-00B0Hk-2F for linux-arm-kernel@lists.infradead.org; Wed, 06 Dec 2023 18:06:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B0O2gNRZ6mRlpMEBNfgg9HaUJ9FKFifTrf+aUZQKE2nXn4UvQ1wCl4rO4XVZXkrNsm7SUbDwipWhGGMpRri/pUKZlWAPPsAL8Hxlk23k97hyp74HFK79O3pRMdThy45V3mxeJG6dkPEd5DqIqEvVFVtZyVLr8f/RFXdJ+vBArVQDvaITpSbxje3LxacYOWAEeEq598xCFyMf1f7kFg/yg6PNiQRIgzluu31Mkikr9BBAztZlhgliucAPaE9Kgpc/B3He/SS/v59lHfv9uMk4OO5cY4HY4/zGvrTMbMYagl/MZv8XobNYk9ZSxSPn843DN86EL7YjAkX4pjhNDcGDGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G2NhjbzdDQSYRmh+l0jW3eNL3NUpqq+GSrHvZZJaP+U=; b=BgO/lMzlpKtOLZEBz3oUw7mvW6ZpxwmAJ7v3pP7o/ELizTVWHH3BV3N75swDKpTEy7SIU7h0GfgdQNkanSTkbzvgdi0P3u8oTARWY6C48VkG9sj4bsrAR7J0/9dz2kpDAZWDPz6j9Jr+UVcsu2LJY7SLCfaYEgVDd1cjj5+phlKYMQnLce1bWoxYSqLg9GWGgSvtRv6xTKgXThpBEl2gbu6oYFkrmXt/4TzxadG3pbHJj1PVOtvpZ1+HeFKqdebVvDZhn71UgCb4yYwlNWwJXGoyRElKG66uWGkgsOL6gRcvffHYjSh/q0Xp0DdMs4TMGPtdvn+jIWQJanTPYdll1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G2NhjbzdDQSYRmh+l0jW3eNL3NUpqq+GSrHvZZJaP+U=; b=k8w6YC0JrF4r0C8MkUoG7TB/ZpndRneDG1Oaf6CblE0wKtXpXN/5aBdAUJDcWq9463eXoNQoXsdmpLWFVxbYpJ3BQMogYt59IdcSRzAO3LG6IjM1VY9MXKUx+CXFy1xWtyZxFHrRShVJMLeegW0gqMTmHw/Itv6xMWfFMcjhAzc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BY5PR12MB3683.namprd12.prod.outlook.com (2603:10b6:a03:1a5::16) by SJ2PR12MB8943.namprd12.prod.outlook.com (2603:10b6:a03:547::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.34; Wed, 6 Dec 2023 18:06:48 +0000 Received: from BY5PR12MB3683.namprd12.prod.outlook.com ([fe80::dacc:66a0:6923:a5e]) by BY5PR12MB3683.namprd12.prod.outlook.com ([fe80::dacc:66a0:6923:a5e%4]) with mapi id 15.20.7068.025; Wed, 6 Dec 2023 18:06:48 +0000 Message-ID: <2e24d9be-be10-4f80-b3af-c3e0ed003e7b@amd.com> Date: Wed, 6 Dec 2023 12:06:45 -0600 User-Agent: Mozilla Thunderbird Beta Subject: Re: [PATCH v7 3/4] remoteproc: zynqmp: add pm domains support To: Mathieu Poirier Cc: andersson@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, michal.simek@amd.com, ben.levinsky@amd.com, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20231117174238.1876655-1-tanmay.shah@amd.com> <20231117174238.1876655-4-tanmay.shah@amd.com> <93487d3c-c324-4b9b-8b25-0b4ea52237b4@amd.com> Content-Language: en-US From: Tanmay Shah In-Reply-To: X-ClientProxiedBy: SJ0PR13CA0081.namprd13.prod.outlook.com (2603:10b6:a03:2c4::26) To BY5PR12MB3683.namprd12.prod.outlook.com (2603:10b6:a03:1a5::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR12MB3683:EE_|SJ2PR12MB8943:EE_ X-MS-Office365-Filtering-Correlation-Id: 027e895c-639f-4517-32d9-08dbf6861d38 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GRBvy9hcLEnLqFX/gvS6OmuPQkxHb5Xk3PwxaP7ET+v4wsZJPpfZXt96jz6XvhrkvnbVjMynT03YzyAIughn4wMdw2Qtpv2c9UXfF5+rz0fLlwkfGxqkMCDA4ffZqmwkAs8EhyKCVUb6IWPvuLEqydfiZD2Hy3TWPzR8sHBVDuyncLjdeXpb+SfSNjEohdU78uaLqaFvQSceaeL2/E2GOCnv5YWTvsILSCqRw0IpFRlcnKqGMFSGy9xMK2AW174cF7NTaJ0G80jtRSIoV5CoI6c+z+BRY/dYlIHznMXZe/aQPJr0IDU3pYlY+XWXF/36PPzkXnSqHP893l4Hp5eiOson1W4uHvcQ2rR2e+iuvmAeNnkE+8WTbQYjMQLWSSJ3bx8C3DDMGR7BrEQ/7ROA+yxp3qvaFbUPKoRJ2wOolGDLCqXy2QFs6XZgBTlNOlpsu1/8FDhNTcZK1O3LZC3t9FLS0sHdKJc5BVuM6eQS5qh10ZwahxsF6DUD+FLfkCaX7VlGCyz6MNzbw88jzayCu20Qn89M17M1uSOMMtzJZZuU7a70McKDX06zAFbKWBVM8g77hvV5N2zXRPZs5V8JeZ9iM8bPcupG4MgXmdhDjpmAqHGo+LsuV++tefFeUpk3e9i5848j+7tATWjYM3RMAw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB3683.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(136003)(366004)(396003)(346002)(376002)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(38100700002)(2616005)(44832011)(4326008)(8676002)(8936002)(6512007)(6506007)(31686004)(83380400001)(53546011)(26005)(6666004)(6486002)(478600001)(6916009)(66476007)(316002)(66556008)(66946007)(66899024)(2906002)(30864003)(31696002)(36756003)(41300700001)(86362001)(5660300002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZmhRZkNkTERGbUtIODdPTWZqdTUyMFRoYlF0OGZNeWoxb1NsZG5rNW5IRitm?= =?utf-8?B?Zk5FZVhIbU9FQ3laSnp2N3lCWjJ1T0VRcDVvVWhMZEJqRlpOMlljaGgyOHNM?= =?utf-8?B?NmxDdkEveWJBWk5JTENtaDZQOGpYT2xpSDJmdWRCWjNETTFTQ20rQXltMURu?= =?utf-8?B?THh2MFBWWVR3OGdVNzhKb2FzYUIwZzM4Uy9TTGFXUlFkc09xU3FNemxKWjJQ?= =?utf-8?B?cG1iZ2NCYkJaYWtlaytLWU1sVlROMXFqRFFIL3ArZ1cwemNYV0hkbXRRODJE?= =?utf-8?B?dzhxSTRIL2dIcjMzWGJaR2hwblVGRmhXMENsMHc3Vi8wQ3lQVHRhK21xS3lC?= =?utf-8?B?UlhwcjRiNzhqTWRPQ3hDdnd3cktqaVcxb0RqT2tMczYwYkY5UUtQbFhBdE9H?= =?utf-8?B?ZWRCTFV5anFVSmJ4WDk1cHo4aytFVG9XcjNWYUdWTUFZOTRtc3MzOWJKaW9V?= =?utf-8?B?ajF5bkh3OS8vZXhSMThVaVZZak1EZWJvYWNnQWRJb1RTQXNRUXhTZGNKb0g3?= =?utf-8?B?MjJpbzVBSENtQVJTYkRKWitna2FHWWUwdmx1UkNycHc1VU9lQXFlRkwvRnE1?= =?utf-8?B?SUlLL3NLbWE0ZUxUQ1QwRGdyRTdPZEVTbXh0Um5DalZlY1JtNTVuaUI1T0dv?= =?utf-8?B?MHNjTSt0UThRd3FHYUM1bEdpczlsN2VHQmlkckdsTUl5Q2h1V2xIVlJRTzBK?= =?utf-8?B?d1MydStOVkpOSnU4YjBmNWJ1YTh3dm9oZnA0ZnFuR1lSUFZNWDNRZ0pia20w?= =?utf-8?B?TkozcVVqV3lna2NpVllXVmhXbkhlMkcxbTl4VWFJSU9xc1dTVjJ5SHN1amNx?= =?utf-8?B?OTRuMmpsWG43TUFYR0ZCMmZwc3dhOW9CbDArVzZwT215QWh6OHNhVFZCSFhK?= =?utf-8?B?ODZaNEphbVp5TGdXL0dPNGxJRnkwZnRIRmphM1owNWRWdDZjY252ZUVuRjZo?= =?utf-8?B?QVFlZ1VwSEZxdHd0OXN4bzhwRVJrM3hpcC9rL2M1bEkwMUVhNFc1dzV3TExK?= =?utf-8?B?T2hMd0FtOWJiWnlHcUNLV3RlK3BzcXNyWGhVV1NpRmJiTmd5Q05UOWgydElB?= =?utf-8?B?NVBtMEJzcUN3d1NuSGNuNDBRMDZvZTY3M1pwQTdHaG5IekJEdUtIa3JoOFZV?= =?utf-8?B?cmplZS8vako4UmRuNzROalNhOUdXbmI5bTEyOS95WHVwbzZSRUozcGxIU1la?= =?utf-8?B?VGFLaFRHOC90VFlaMjZBaGUzZXA2WERRRHhIS2NOVGNKY1NzRUVqNEdkWURn?= =?utf-8?B?YVNucHJnUXFJZE52bDl6ejZ6UGJmczFpcVR4K0tDazZiMGsyWmV3OWhMdmlT?= =?utf-8?B?Y2F5Z0RUNXhWZmNhUGMvcDUrdzFUeFd5UHNnbjVJS1pOcFd6Z3M0WnhpbFlt?= =?utf-8?B?QUFmM2w4a1YxUmVmY0JmWk92NTNnRDFod0J6dDFERDdRanVGSlJuU3dmQW5R?= =?utf-8?B?dkFoSGlVUk9McjRYQ3FkaWUydE1yMHJKSENNeU9kVndvRENMZ2FwME1kK1hK?= =?utf-8?B?ajRHVmNtV3pkTXlVSTZjQitmcXdodTNYZXQxN2xlMG5XNHd0Sy9WVzhkMlZQ?= =?utf-8?B?UEJ5S285WGZCS0x2NGMyVG8vY1VXakNkMXhIOVVGc3RnY2hRNnR6STNUTWd6?= =?utf-8?B?WEFkVVZrdENkNHFhcm1vZ0RUc3MwcXdJeng2VGJVbWpsL0NBaHArTUM0SHpE?= =?utf-8?B?bmlweklYcm1YNWx0SERVK3hzNzl4UGFkVFg2R0FiYzBCYTZWNXMvT1pMVUhF?= =?utf-8?B?ZFRTSUVrS0VIWTJYWTB5UTdEeUROYkxMYnZacndybGlMdUttYkZ0QTloczMx?= =?utf-8?B?WUJrKzBqQUZ5bEVacFRnRHl6ZStmcUdKWXlpQjF3UFd5M05tejRLaStldnRH?= =?utf-8?B?ZWxjdzduUjl5QVZOdktDakZFdm4vZTFMY1ZYTVZleUtBcDhaNVFTbDZQYkJR?= =?utf-8?B?ZVIyWUNhRStxbFJPMllHTnBzaTlvd0xPekhLZmd5eHF2eDZWc0lvSzRrK0FE?= =?utf-8?B?a2dVTXhIaW1CamdEMzFYd2dpVnBlSEYrMTlwYTBnVXR0STdVUUdJOWZYYnVL?= =?utf-8?B?UElDc0ZDS2pKYzcyWnhKQ0lEa1JqbDB1dmhOSXVMRmdCRE9RSDBvWXZRNmw0?= =?utf-8?Q?jUZz30uRITBwX1byT28Aj1nUp?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 027e895c-639f-4517-32d9-08dbf6861d38 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB3683.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2023 18:06:48.1137 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: z5XbVMYc1LTJhnMn9VvkWPefr7NVPSG9KKdj+7cE8UVfzgqbYCC8U4UiXLD/w6uE X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8943 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231206_100656_802919_4BAC69FC X-CRM114-Status: GOOD ( 32.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDEyLzYvMjMgOTo0MyBBTSwgTWF0aGlldSBQb2lyaWVyIHdyb3RlOgo+IE9uIEZyaSwgMSBE ZWMgMjAyMyBhdCAxMToxMCwgVGFubWF5IFNoYWggPHRhbm1heS5zaGFoQGFtZC5jb20+IHdyb3Rl Ogo+ID4KPiA+Cj4gPiBPbiAxMS8yOS8yMyAxMToxMCBBTSwgTWF0aGlldSBQb2lyaWVyIHdyb3Rl Ogo+ID4gPiBPbiBNb24sIE5vdiAyNywgMjAyMyBhdCAxMDozMzowNUFNIC0wNjAwLCBUYW5tYXkg U2hhaCB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IE9uIDExLzIzLzIzIDEyOjExIFBNLCBNYXRoaWV1 IFBvaXJpZXIgd3JvdGU6Cj4gPiA+ID4gPiBPbiBXZWQsIE5vdiAyMiwgMjAyMyBhdCAwMzowMDoz NlBNIC0wNjAwLCBUYW5tYXkgU2hhaCB3cm90ZToKPiA+ID4gPiA+ID4gSGkgTWF0aGlldSwKPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gUGxlYXNlIGZpbmQgbXkgY29tbWVudHMgYmVsb3cuCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIDExLzIxLzIzIDQ6NTkgUE0sIE1hdGhpZXUgUG9pcmllciB3 cm90ZToKPiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE9uIEZy aSwgTm92IDE3LCAyMDIzIGF0IDA5OjQyOjM3QU0gLTA4MDAsIFRhbm1heSBTaGFoIHdyb3RlOgo+ ID4gPiA+ID4gPiA+ID4gVXNlIFRDTSBwbSBkb21haW5zIGV4dHJhY3RlZCBmcm9tIGRldmljZS10 cmVlCj4gPiA+ID4gPiA+ID4gPiB0byBwb3dlciBvbi9vZmYgVENNIHVzaW5nIGdlbmVyYWwgcG0g ZG9tYWluIGZyYW1ld29yay4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBUYW5tYXkgU2hhaCA8dGFubWF5LnNoYWhAYW1kLmNvbT4KPiA+ID4gPiA+ID4gPiA+ IC0tLQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IENoYW5nZXMgaW4gdjc6Cj4gPiA+ ID4gPiA+ID4gPiAgIC0gJXMvcG1fZGV2MS9wbV9kZXZfY29yZTAvcgo+ID4gPiA+ID4gPiA+ID4g ICAtICVzL3BtX2Rldl9saW5rMS9wbV9kZXZfY29yZTBfbGluay9yCj4gPiA+ID4gPiA+ID4gPiAg IC0gJXMvcG1fZGV2Mi9wbV9kZXZfY29yZTEvcgo+ID4gPiA+ID4gPiA+ID4gICAtICVzL3BtX2Rl dl9saW5rMi9wbV9kZXZfY29yZTFfbGluay9yCj4gPiA+ID4gPiA+ID4gPiAgIC0gcmVtb3ZlIHBt X2RvbWFpbl9pZCBjaGVjayB0byBtb3ZlIG5leHQgcGF0Y2gKPiA+ID4gPiA+ID4gPiA+ICAgLSBh ZGQgY29tbWVudCBhYm91dCBob3cgMXN0IGVudHJ5IGluIHBtIGRvbWFpbiBsaXN0IGlzIHVzZWQK PiA+ID4gPiA+ID4gPiA+ICAgLSBmaXggbG9vcCB3aGVuIGp1bXAgdG8gZmFpbF9hZGRfcG1fZG9t YWlucyBsb29wCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvcmVtb3Rl cHJvYy94bG54X3I1X3JlbW90ZXByb2MuYyB8IDIxNSArKysrKysrKysrKysrKysrKysrKysrKy0K PiA+ID4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcmVtb3RlcHJvYy94bG54X3I1X3JlbW90ZXByb2MuYyBiL2RyaXZlcnMvcmVtb3RlcHJv Yy94bG54X3I1X3JlbW90ZXByb2MuYwo+ID4gPiA+ID4gPiA+ID4gaW5kZXggNDM5NWVkZWE5YTY0 Li4yMmJjY2M1MDc1YTAgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL3JlbW90 ZXByb2MveGxueF9yNV9yZW1vdGVwcm9jLmMKPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv cmVtb3RlcHJvYy94bG54X3I1X3JlbW90ZXByb2MuYwo+ID4gPiA+ID4gPiA+ID4gQEAgLTE2LDYg KzE2LDcgQEAKPiA+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgvb2ZfcmVzZXJ2ZWRfbWVt Lmg+Cj4gPiA+ID4gPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ ID4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9yZW1vdGVwcm9jLmg+Cj4gPiA+ID4gPiA+ ID4gPiArI2luY2x1ZGUgPGxpbnV4L3BtX2RvbWFpbi5oPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+ICAjaW5jbHVkZSAicmVtb3RlcHJvY19pbnRlcm5hbC5oIgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IEBAIC0xMDIsNiArMTAzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbWVtX2JhbmtfZGF0YSB6eW5xbXBfdGNtX2JhbmtzX2xvY2tzdGVwW10gPSB7Cj4gPiA+ID4g PiA+ID4gPiAgICogQHJwcm9jOiBycHJvYyBoYW5kbGUKPiA+ID4gPiA+ID4gPiA+ICAgKiBAcG1f ZG9tYWluX2lkOiBSUFUgQ1BVIHBvd2VyIGRvbWFpbiBpZAo+ID4gPiA+ID4gPiA+ID4gICAqIEBp cGk6IHBvaW50ZXIgdG8gbWFpbGJveCBpbmZvcm1hdGlvbgo+ID4gPiA+ID4gPiA+ID4gKyAqIEBu dW1fcG1fZGV2OiBudW1iZXIgb2YgdGNtIHBtIGRvbWFpbiBkZXZpY2VzIGZvciB0aGlzIGNvcmUK PiA+ID4gPiA+ID4gPiA+ICsgKiBAcG1fZGV2X2NvcmUwOiBwbSBkb21haW4gdmlydHVhbCBkZXZp Y2VzIGZvciBwb3dlciBkb21haW4gZnJhbWV3b3JrCj4gPiA+ID4gPiA+ID4gPiArICogQHBtX2Rl dl9jb3JlMF9saW5rOiBwbSBkb21haW4gZGV2aWNlIGxpbmtzIGFmdGVyIHJlZ2lzdHJhdGlvbgo+ ID4gPiA+ID4gPiA+ID4gKyAqIEBwbV9kZXZfY29yZTE6IHVzZWQgb25seSBpbiBsb2Nrc3RlcCBt b2RlLiBzZWNvbmQgY29yZSdzIHBtIGRvbWFpbiB2aXJ0dWFsIGRldmljZXMKPiA+ID4gPiA+ID4g PiA+ICsgKiBAcG1fZGV2X2NvcmUxX2xpbms6IHVzZWQgb25seSBpbiBsb2Nrc3RlcCBtb2RlLiBz ZWNvbmQgY29yZSdzIHBtIGRldmljZSBsaW5rcyBhZnRlcgo+ID4gPiA+ID4gPiA+ID4gKyAqIHJl Z2lzdHJhdGlvbgo+ID4gPiA+ID4gPiA+ID4gICAqLwo+ID4gPiA+ID4gPiA+ID4gIHN0cnVjdCB6 eW5xbXBfcjVfY29yZSB7Cj4gPiA+ID4gPiA+ID4gPiAgICAgc3RydWN0IGRldmljZSAqZGV2Owo+ ID4gPiA+ID4gPiA+ID4gQEAgLTExMSw2ICsxMTgsMTEgQEAgc3RydWN0IHp5bnFtcF9yNV9jb3Jl IHsKPiA+ID4gPiA+ID4gPiA+ICAgICBzdHJ1Y3QgcnByb2MgKnJwcm9jOwo+ID4gPiA+ID4gPiA+ ID4gICAgIHUzMiBwbV9kb21haW5faWQ7Cj4gPiA+ID4gPiA+ID4gPiAgICAgc3RydWN0IG1ib3hf aW5mbyAqaXBpOwo+ID4gPiA+ID4gPiA+ID4gKyAgIGludCBudW1fcG1fZGV2Owo+ID4gPiA+ID4g PiA+ID4gKyAgIHN0cnVjdCBkZXZpY2UgKipwbV9kZXZfY29yZTA7Cj4gPiA+ID4gPiA+ID4gPiAr ICAgc3RydWN0IGRldmljZV9saW5rICoqcG1fZGV2X2NvcmUwX2xpbms7Cj4gPiA+ID4gPiA+ID4g PiArICAgc3RydWN0IGRldmljZSAqKnBtX2Rldl9jb3JlMTsKPiA+ID4gPiA+ID4gPiA+ICsgICBz dHJ1Y3QgZGV2aWNlX2xpbmsgKipwbV9kZXZfY29yZTFfbGluazsKPiA+ID4gPiA+ID4gPiA+ICB9 Owo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+ID4gPiA+IEBA IC02NTEsNyArNjYzLDggQEAgc3RhdGljIGludCBhZGRfdGNtX2NhcnZlb3V0X2xvY2tzdGVwX21v ZGUoc3RydWN0IHJwcm9jICpycHJvYykKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWllOUU1QX1BNX0NBUEFCSUxJVFlfQUNDRVNTLCAwLAo+ ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBa WU5RTVBfUE1fUkVRVUVTVF9BQ0tfQkxPQ0tJTkcpOwo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAg ICAgaWYgKHJldCA8IDApIHsKPiA+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgZGV2 X2VycihkZXYsICJmYWlsZWQgdG8gdHVybiBvbiBUQ00gMHgleCIsIHBtX2RvbWFpbl9pZCk7Cj4g PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRv IHR1cm4gb24gVENNIDB4JXgiLAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBtX2RvbWFpbl9pZCk7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTcHVyaW91 cyBjaGFuZ2UsIHlvdSBzaG91bGQgaGF2ZSBjYXVnaHQgdGhhdC4KPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gQWNrLCBuZWVkIHRvIG9ic2VydmUgY2hhbmdlcyBtb3JlIGNsb3NlbHkgYmVmb3JlIHNl bmRpbmcgdGhlbS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICBnb3RvIHJlbGVhc2VfdGNtX2xvY2tzdGVwOwo+ID4gPiA+ID4gPiA+ ID4gICAgICAgICAgICAgfQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEBAIC03NTgs NiArNzcxLDE4OSBAQCBzdGF0aWMgaW50IHp5bnFtcF9yNV9wYXJzZV9mdyhzdHJ1Y3QgcnByb2Mg KnJwcm9jLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQo+ID4gPiA+ID4gPiA+ID4gICAgIHJl dHVybiByZXQ7Cj4gPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiA+ICtzdGF0aWMgdm9pZCB6eW5xbXBfcjVfcmVtb3ZlX3BtX2RvbWFpbnMoc3RydWN0IHJwcm9j ICpycHJvYykKPiA+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gPiArICAgc3RydWN0IHp5 bnFtcF9yNV9jb3JlICpyNV9jb3JlID0gcnByb2MtPnByaXY7Cj4gPiA+ID4gPiA+ID4gPiArICAg c3RydWN0IGRldmljZSAqZGV2ID0gcjVfY29yZS0+ZGV2Owo+ID4gPiA+ID4gPiA+ID4gKyAgIHN0 cnVjdCB6eW5xbXBfcjVfY2x1c3RlciAqY2x1c3RlcjsKPiA+ID4gPiA+ID4gPiA+ICsgICBpbnQg aTsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICBjbHVzdGVyID0gcGxhdGZv cm1fZ2V0X2RydmRhdGEodG9fcGxhdGZvcm1fZGV2aWNlKGRldi0+cGFyZW50KSk7Cj4gPiA+ID4g PiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArICAgZm9yIChpID0gMTsgaSA8IHI1X2NvcmUtPm51 bV9wbV9kZXY7IGkrKykgewo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2aWNlX2xpbmtf ZGVsKHI1X2NvcmUtPnBtX2Rldl9jb3JlMF9saW5rW2ldKTsKPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgIGRldl9wbV9kb21haW5fZGV0YWNoKHI1X2NvcmUtPnBtX2Rldl9jb3JlMFtpXSwgZmFs c2UpOwo+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ICsgICBrZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTApOwo+ID4gPiA+ID4gPiA+ID4gKyAg IHI1X2NvcmUtPnBtX2Rldl9jb3JlMCA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiArICAga2ZyZWUo cjVfY29yZS0+cG1fZGV2X2NvcmUwX2xpbmspOwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUt PnBtX2Rldl9jb3JlMF9saW5rID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ICsgICBpZiAoY2x1c3Rlci0+bW9kZSA9PSBTUExJVF9NT0RFKSB7Cj4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICByNV9jb3JlLT5udW1fcG1fZGV2ID0gMDsKPiA+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgIHJldHVybjsKPiA+ID4gPiA+ID4gPiA+ICsgICB9Cj4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiArICAgZm9yIChpID0gMTsgaSA8IHI1X2NvcmUtPm51bV9wbV9kZXY7 IGkrKykgewo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2aWNlX2xpbmtfZGVsKHI1X2Nv cmUtPnBtX2Rldl9jb3JlMV9saW5rW2ldKTsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGRl dl9wbV9kb21haW5fZGV0YWNoKHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtpXSwgZmFsc2UpOwo+ID4g PiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICBr ZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTEpOwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUt PnBtX2Rldl9jb3JlMSA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiArICAga2ZyZWUocjVfY29yZS0+ cG1fZGV2X2NvcmUxX2xpbmspOwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9j b3JlMV9saW5rID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5udW1fcG1fZGV2 ID0gMDsKPiA+ID4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4g PiArc3RhdGljIGludCB6eW5xbXBfcjVfYWRkX3BtX2RvbWFpbnMoc3RydWN0IHJwcm9jICpycHJv YykKPiA+ID4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ID4gPiArICAgc3RydWN0IHp5bnFtcF9y NV9jb3JlICpyNV9jb3JlID0gcnByb2MtPnByaXY7Cj4gPiA+ID4gPiA+ID4gPiArICAgc3RydWN0 IGRldmljZSAqZGV2ID0gcjVfY29yZS0+ZGV2LCAqZGV2MjsKPiA+ID4gPiA+ID4gPiA+ICsgICBz dHJ1Y3QgenlucW1wX3I1X2NsdXN0ZXIgKmNsdXN0ZXI7Cj4gPiA+ID4gPiA+ID4gPiArICAgc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKPiA+ID4gPiA+ID4gPiA+ICsgICBzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5wOwo+ID4gPiA+ID4gPiA+ID4gKyAgIGludCBpLCBqLCBudW1fcG1fZGV2LCBy ZXQ7Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArICAgY2x1c3RlciA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYtPnBhcmVudCk7Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4g PiArICAgLyogZ2V0IG51bWJlciBvZiBwb3dlci1kb21haW5zICovCj4gPiA+ID4gPiA+ID4gPiAr ICAgbnVtX3BtX2RldiA9IG9mX2NvdW50X3BoYW5kbGVfd2l0aF9hcmdzKHI1X2NvcmUtPm5wLCAi cG93ZXItZG9tYWlucyIsCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIjcG93ZXItZG9tYWluLWNlbGxzIik7Cj4gPiA+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ID4gPiArICAgaWYgKG51bV9wbV9kZXYgPD0gMCkKPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMCA9IGtjYWxsb2MobnVtX3BtX2RldiwK PiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihzdHJ1Y3QgZGV2aWNlICopLAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4gPiA+ID4gPiArICAgaWYgKCFyNV9j b3JlLT5wbV9kZXZfY29yZTApCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByZXQgPSAtRU5P TUVNOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rl dl9jb3JlMF9saW5rID0ga2NhbGxvYyhudW1fcG1fZGV2LAo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGRldmljZV9s aW5rICopLAo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHRlBfS0VSTkVMKTsKPiA+ID4gPiA+ID4gPiA+ICsgICBpZiAoIXI1X2NvcmUtPnBt X2Rldl9jb3JlMF9saW5rKSB7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBrZnJlZShyNV9j b3JlLT5wbV9kZXZfY29yZTApOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgcjVfY29yZS0+ cG1fZGV2X2NvcmUwID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwo+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gPiA+ICsgICByNV9jb3JlLT5udW1fcG1fZGV2ID0gbnVtX3BtX2RldjsKPiA+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAvKgo+ID4gPiA+ID4gPiA+ID4gKyAgICAqIHN0YXJ0 IGZyb20gMm5kIGVudHJ5IGluIHBvd2VyLWRvbWFpbnMgcHJvcGVydHkgbGlzdCBhcwo+ID4gPiA+ ID4gPiA+ID4gKyAgICAqIGZvciB6eW5xbXAgd2Ugb25seSBhZGQgVENNIHBvd2VyIGRvbWFpbnMg YW5kIG5vdCBjb3JlJ3MgcG93ZXIgZG9tYWluLgo+ID4gPiA+ID4gPiA+ID4gKyAgICAqIDFzdCBl bnRyeSBpcyB1c2VkIHRvIGNvbmZpZ3VyZSByNSBvcGVyYXRpb24gbW9kZS4KPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+IFlvdSBhcmUgc3RpbGwgbm90IHNheWluZyBfd2hlcmVfIC0+cG1fZGV2 X2NvcmUwWzBdIGdldHMgYWRkZWQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNvLCBwbV9kZXZf Y29yZTBbMF0gaXNuJ3QgcmVhbGx5IG5lZWQgdG8gYmUgYWRkZWQgZm9yIHp5bnFtcCBwbGF0Zm9y bSwgYXMgZmlybXdhcmUgc3RhcnRzIGl0IHdpdGggY2FsbCwKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4genlucW1wX3BtX3JlcXVlc3Rfd2FrZSBkdXJpbmcgcnByb2Nfc3RhcnQgY2FsbGJhY2suIEkg d2lsbCBkb2N1bWVudCB0aGlzIGluIG5leHQKPiA+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4g PiBUaGF0IGlzIGV4YWN0bHkgd2hhdCBJIGFtIGxvb2tpbmcgZm9yLiAgVGhhdCB3YXkgcGVvcGxl IGRvbid0IGhhdmUgdG8gZ28gdGhyb3VnaAo+ID4gPiA+ID4gdGhlIGVudGlyZSBkcml2ZXIgdHJ5 aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBoYXBwZW5pbmcgd2l0aCBwbV9kZXZfY29yZVswXS4K PiA+ID4gPiA+Cj4gPiA+ID4gPiBJJ20gYWxzbyBub3Qgc3VyZSBhYm91dCB0aGUgcG93ZXItdXAg b3JkZXIuICBMb2dpY2FsbHkgdGhlIFRDTXMgc2hvdWxkIGJlCj4gPiA+ID4gPiBwb3dlcmVkIHVw IGJlZm9yZSB0aGUgUjUgaW4gb3JkZXIgdG8gcHV0IGNvZGUgaW4gdGhlbS4gIFRoZSBSNXMgYXJl IHBvd2VyZWQgaW4KPiA+ID4gPiA+IHp5bnFtcF9yNV9ycHJvY19zdGFydCgpIGJ1dCBJIGFtIHVu Y2xlYXIgYXMgdG8gd2hlcmUgaW4gdGhlIGJvb3Qgc2VxdWVuY2UgdGhlCj4gPiA+ID4gPiBUQ01z IGFyZSBwb3dlcmVkIC0gY2FuIHlvdSBleHBhbmQgb24gdGhhdD8KPiA+ID4gPgo+ID4gPiA+Cj4g PiA+ID4gU3VyZS4gRm9sbG93aW5nIGlzIGNhbGwgc2VxdWVjZQo+ID4gPiA+Cj4gPiA+ID4genlu cW1wX3I1X3Jwcm9jX3ByZXBhcmUKPiA+ID4gPgo+ID4gPiA+IHp5bnFtcF9yNV9hZGRfcG1fZG9t YWlucyAtPiBIZXJlIFRDTSBpcyBwb3dlcmVkIG9uIHdoZW4gZGV2aWNlX2xpbmtfYWRkIGlzIGNh bGxlZCB2aWEgenlucW1wLXBtLWRvbWFpbnMuYyBkcml2ZXIuCj4gPiA+ID4KPiA+ID4gPiAuIC4g Lgo+ID4gPiA+Cj4gPiA+ID4genlucW1wX3I1X3Jwcm9jX3N0YXJ0IC0+IGxvYWQgZmlybXdhcmUg YW5kIFN0YXJ0cyBSUFUKPiA+ID4gPgo+ID4gPiA+IFNvIHdoYXQgeW91IG1lbnRpb25lZCBpcyBj b3JyZWN0LCBUQ00gaXMgYmVpbmcgcG93ZXJkLW9uIGJlZm9yZSB3ZSBsb2FkIGZpcm13YXJlIGFu ZCBzdGFydCBSUFUuCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gcmV2aXNp b24uIEZvciBuZXcgcGxhdGZvcm1zIHBtX2Rldl9jb3JlMFswXSB3aWxsIGJlIGFkZGVkIGluIGZ1 dHVyZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBOb3cgSSdtIHJlYWxseSBjb25mdXNlZCAtIHdoYXQg ZG8geW91IG1lYW4gYnkgInBtX2Rldl9jb3JlMFswXSB3aWxsIGJlIGFkZGVkIGluCj4gPiA+ID4g PiBmdXR1cmUiPwo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBaeW5xTVAgcGxhdGZvcm0gaGFzIHBs YXRmb3JtIG1hbmFnZW1lbnQgZmlybXdhcmUgcnVubmluZyBvbiBtaWNyb2JsYXplLgo+ID4gPiA+ Cj4gPiA+ID4gVGhpcyBmaXJtd2FyZSBkZXNpZ24gZG9lcyBub3QgZXhwZWN0IFI1IHBtIGRvbWFp bnMgdG8gYmUgcmVxdWVzdGVkIGV4cGxpY2l0bHkuCj4gPiA+ID4KPiA+ID4gPiBUaGlzIG1lYW5z LCBkdXJpbmcgenlucW1wX3I1X3Jwcm9jX3N0YXJ0IHdoZW4gInp5bnFtcF9wbV9yZXF1ZXN0X3dh a2UiIGlzIGNhbGxlZCwKPiA+ID4gPgo+ID4gPiA+IGZpcm13YXJlIHBvd2VycyBvbiBSNS4gU28s IHBtX2Rldl9jb3JlWzBdIGlzIG5vdCByZWFsbHkgdXNlZCBmb3IgWnlucU1QLgo+ID4gPiA+Cj4g PiA+ID4gSG93ZXZlciwgdGhpcyBkZXNpZ24gd2FzIGNoYW5nZWQgZm9yIG5ldyBwbGF0Zm9ybXMg aS5lLiAidmVyc2FsIiBhbmQgb253YXJkcy4KPiA+ID4gPgo+ID4gPiA+IEZpcm13YXJlIG9mIG5l dyBwbGF0Zm9ybSBleHBlY3RzIHBtIGRvbWFpbnMgdG8gYmUgcmVxdWVzdGVkIGV4cGxpY2l0bHkg Zm9yIFI1IGNvcmVzIGJlZm9yZQo+ID4gPiA+Cj4gPiA+ID4gd2FraW5nIHRoZW0gdXAuCj4gPiA+ ID4KPiA+ID4gPiBUaGF0IG1lYW5zLCBwbV9kZXZfY29yZVswXSBmb3IgUjUgY29yZXMgb24gbmV3 IHBsYXRmb3JtIChWZXJzYWwpIG5lZWRzIHRvIGJlIHVzZWQgc2FtZSBhcyBUQ00uCj4gPiA+ID4K PiA+ID4gPiBUaGVuLCB3ZSBzaG91bGQgd2FrZSBpdCB1cCBvbiByNV9jb3JlLgo+ID4gPiA+Cj4g PiA+ID4gVG8gc3VtbWFyaXplOgo+ID4gPiA+Cj4gPiA+ID4gRm9yIHp5bnFtcCBvbmx5IGZvbGxv d2luZyBjYWxsIG5lZWRlZCB0byBzdGFydCBSNToKPiA+ID4gPgo+ID4gPiA+IHp5bnFtcF9wbV9y ZXF1ZXN0X3dha2UKPiA+ID4gPgo+ID4gPiA+IEZvciAidmVyc2FsIiBhbmQgb253YXJkcyB3ZSBu ZWVkIHR3byBjYWxscyB0byBzdGFydCBSNToKPiA+ID4gPgo+ID4gPiA+ICJkZXZpY2VfbGlua19h ZGQiIGFuZCB6eW5xbXBfcG1fcmVxdWVzdF93YWtlCj4gPiA+ID4KPiA+ID4gPiBTbywgaW4gZnV0 dXJlIHBtX2NvcmVfZGV2WzBdIHdpbGwgYmUgdXNlZC4KPiA+ID4gPgo+ID4gPgo+ID4gPiBUaGFu a3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uIG9uIGJvdGggZnJvbnQuICBUaGUgcHJvYmxlbSBoZXJl IGlzIHRoYXQgd2UgYXJlCj4gPiA+IGtlZXBpbmcgUjUgcG93ZXIgZG9tYWluIGluZm9ybWF0aW9u IGluIHR3byBkaWZmZXJlbnQgcGxhY2VzLCBpLmUKPiA+ID4genlucW1wX3I1X2NvcmU6OnBtX2Rv bWFpbl9pZCBhbmQgenlucW1wX3I1X2NvcmU6OnBtX2Rldl9jb3JlMFswXS4KPiA+ID4KPiA+ID4g UGxlYXNlIHNlZSBpZiB5b3UgY2FuIHJldHJlaXZlIHRoZSBwb3dlciBkb21haW4gSUQgZnJvbQo+ ID4gPiB6eW5xbXBfcjVfY29yZTo6cG1fZGV2X2NvcmUwWzBdLiAgVGhhdCB3YXkgeW91IGNhbiBn ZXQgdGhlIHBvd2VyIGRvbWFpbiBJRCB3aGVuCj4gPiA+IGNhbGxpbmcgenlucW1wX3BtX3JlcXVl c3Rfd2FrZSgpIGFuZCB6eW5xbXBfcG1fZm9yY2VfcHdyZHduKCkgYW5kIGdldCByaWQgb2YKPiA+ ID4genlucW1wX3I1X2NvcmU6OnBtX2RvbWFpbl9pZC4KPiA+Cj4gPiBIaSBNYXRoaWV1LAo+ID4K PiA+IEkgbG9va2VkIGludG8gdGhpcy4gUHJvYmFibHkgSSBjYW4ndCByZXRyaWV2ZSBwbV9kb21h aW5faWQgZnJvbSBwbV9kZXZfY29yZTBbMF0sCj4gPgo+ID4gSG93ZXZlciwgSSBjYW4gcmV0cmll dmUgaXQgZnJvbSBkZXZpY2UtdHJlZSB3aGVuIGNhbGxpbmcgenlucW1wX3BtX3JlcXVlc3Rfd2Fr ZQo+ID4KPiA+IGFuZCB6eW5xbXBfcG1fZm9yY2VfcHdyZHduLgo+ID4KPiA+IHp5bnFtcF9yNV9j b3JlOjpwbV9kb21haW5faWQgaXMgY2FjaGluZyB0aGF0IHZhbHVlIGR1cmluZyBwcm9iZSwgYW5k IHVzZSBpdCBkdXJpbmcKPiA+IHJlc3Qgb2YgdGhlIGRyaXZlciBsaWZlY3ljbGUuCj4gPgo+ID4g SSBhbSBva2F5IGVpdGhlciB3YXksIChrZWVwaW5nIGl0IGFzIGl0IGlzLCBvciBnZXQgaXQgZnJv bSBkZXZpY2UtdHJlZSkuIExldCBtZSBrbm93IHlvdXIKPiA+Cj4gPiBwcmVmZXJlbmNlLgo+ID4K Pgo+IEh1bW0uLi4gIFRoZW4gSSBzdWdnZXN0IHRvIHNpbXBseSBnZXQgcmlkIG9mIHRoZSBkZXZp Y2UgbGlua2luZyB0bwo+IGRlYWwgd2l0aCB0aGUgVENNcycgcG93ZXIgbWFuYWdlbWVudC4gIEZy b20gd2hlcmUgSSBzdGFuZCBpdCBwcm92aWRlcwo+IG1vcmUgY29uZnVzaW9uIHRoYW4gYmVuZWZp dHMsIGFuZCB0aGF0IGlzIHdpdGhvdXQgY29uc2lkZXJpbmcgdGhlCj4gZXh0cmEgY29tcGxleGl0 eS4KCgpEbyB5b3UgbWVhbiB0byBnZXQgcmlkIG9mIHBtX2Rldl9jb3JlMFsxXSwgYW5kIHBtX2Rl dl9jb3JlMFsyXSBhcyB3ZWxsID8KCklmIHllcywgaXRzIHByZWZlcnJlZCB0byB1c2UgcG1fZG9t YWluIGZyYW1ld29yayB0byBwb3dlci1vbi9vZmYgVENNLgoKSWYgd2Ugd2FudCB0byBnZXQgcmlk IG9mIHp5bnFtcF9yNV9jb3JlOjpwbV9kb21haW5faWQsIEkgd2lsbCBkbyB3aGF0J3MgZG9uZSBp bgoKX19nZW5wZF9kZXZfcG1fYXR0YWNoIEFQSSB3aGVyZSwgcG1fZG9tYWluX2lkIGlzIHJldHJp ZXZlZCB1c2luZyBvZl9ub2RlIG9mIHBtX2Rldl9jb3JlMFsqXSBkZXZpY2UuCgrCoMKgwqAgcmV0 ID0gb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MoZGV2LT5vZl9ub2RlLCAicG93ZXItZG9tYWlu cyIsCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAiI3Bvd2VyLWRvbWFpbi1jZWxscyIsIGluZGV4LCAmcGRfYXJncyk7CgpIb3dldmVyLCBJdHMg cHJlZmVycmVkIHRvIHVzZSBwbV9kb21haW4gZnJhbWV3b3JrIHdoZW4gcG93ZXItZG9tYWlucyBh cmUgYXZhaWxhYmxlIGluIGRldmljZS10cmVlLgoKTGV0wqAgbWUga25vdy4KClRoYW5rcywKClRh bm1heQoKCj4gPiBUaGFua3MsCj4gPgo+ID4gVGFubWF5Cj4gPgo+ID4gPiA+Cj4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+IEkgaG9wZSB0aGlzIG1lZXRzIGV4cGVjdGF0aW9ucy4KPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gKyAgICAqLwo+ID4gPiA+ ID4gPiA+ID4gKyAgIGZvciAoaSA9IDE7IGkgPCByNV9jb3JlLT5udW1fcG1fZGV2OyBpKyspIHsK PiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMFtpXSA9IGRl dl9wbV9kb21haW5fYXR0YWNoX2J5X2lkKGRldiwgaSk7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICBpZiAoSVNfRVJSX09SX05VTEwocjVfY29yZS0+cG1fZGV2X2NvcmUwW2ldKSkgewo+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSGVyZSBJU19FUlJfT1JfTlVMTCgpIGlzIHVzZWQgd2hp bGUgdHdvIGlmIGNvbmRpdGlvbnMgZm9yIE5VTEwgYW5kIGFuIGVycm9yCj4gPiA+ID4gPiA+ID4g Y29kZSBhcmUgdXNlZCBpbiB0aGUgbG9vcCBmb3IgdGhlIGxvY2tzdGVwIG1vZGUuICBQbGVhc2Ug cGljayBvbmUgaGV1cmlzdGljIGFuZAo+ID4gPiA+ID4gPiA+IHN0aWNrIHdpdGggaXQuICBJIGhh dmUgbm8gcHJlZmVyZW5jZSBvbiB3aGljaCBvbmUuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9r LCBJIHRoaW5rIElTX0VSUl9PUl9OVUxMIGlzIG1vcmUgY2xlYW5lciwgSSB3aWxsIGFkZHJlc3Mg aXQgaW4gbmV4dCByZXZpc2lvbi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfZGJnKGRldiwgImZhaWxl ZCB0byBhdHRhY2ggcG0gZG9tYWluICVkLCByZXQ9JWxkXG4iLCBpLAo+ID4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBUUl9FUlIocjVfY29yZS0+cG1fZGV2X2NvcmUw W2ldKSk7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7 Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbF9hZGRfcG1fZG9t YWluczsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIH0KPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMF9saW5rW2ldID0gZGV2aWNlX2xpbmtfYWRkKGRl diwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMFtpXSwKPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERMX0ZMQUdfU1RBVEVMRVNTIHwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERMX0ZMQUdf UlBNX0FDVElWRSB8Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETF9GTEFHX1BNX1JVTlRJTUUpOwo+ID4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgaWYgKCFyNV9jb3JlLT5wbV9kZXZfY29yZTBfbGlua1tp XSkgewo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfcG1fZG9tYWluX2Rl dGFjaChyNV9jb3JlLT5wbV9kZXZfY29yZTBbaV0sIHRydWUpOwo+ID4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTBbaV0gPSBOVUxMOwo+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxfYWRkX3BtX2RvbWFpbnM7Cj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICB9Cj4gPiA+ID4gPiA+ID4gPiArICAgfQo+ID4gPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiA+ID4gKyAgIGlmIChjbHVzdGVyLT5tb2RlID09IFNQTElUX01PREUp Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByZXR1cm4gMDsKPiA+ID4gPiA+ID4gPiA+ICsK PiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTEgPSBrY2FsbG9jKG51bV9w bV9kZXYsCj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2Yoc3RydWN0IGRldmljZSAqKSwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdGUF9LRVJORUwpOwo+ID4gPiA+ID4gPiA+ID4gKyAgIGlm ICghcjVfY29yZS0+cG1fZGV2X2NvcmUxKSB7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBy ZXQgPSAtRU5PTUVNOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZ290byBmYWlsX2FkZF9w bV9kb21haW5zOwo+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4g PiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluayA9IGtjYWxsb2MobnVtX3Bt X2RldiwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKHN0cnVjdCBkZXZpY2VfbGluayAqKSwKPiA+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4g PiA+ID4gPiArICAgaWYgKCFyNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluaykgewo+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAga2ZyZWUocjVfY29yZS0+cG1fZGV2X2NvcmUxKTsKPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMSA9IE5VTEw7Cj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgZ290byBmYWlsX2FkZF9wbV9kb21haW5zOwo+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAvKiBnZXQgc2Vjb25kIGNvcmUncyBk ZXZpY2UgdG8gZGV0YWNoIGl0cyBwb3dlci1kb21haW5zICovCj4gPiA+ID4gPiA+ID4gPiArICAg bnAgPSBvZl9nZXRfbmV4dF9jaGlsZChjbHVzdGVyLT5kZXYtPm9mX25vZGUsIG9mX25vZGVfZ2V0 KGRldi0+b2Zfbm9kZSkpOwo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gKyAgIHBk ZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKG5wKTsKPiA+ID4gPiA+ID4gPiA+ICsgICBpZiAo IXBkZXYpIHsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGRldl9lcnIoY2x1c3Rlci0+ZGV2 LCAiY29yZTEgcGxhdGZvcm0gZGV2aWNlIG5vdCBhdmFpbGFibGVcbiIpOwo+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAga2ZyZWUocjVfY29yZS0+cG1fZGV2X2NvcmUxKTsKPiA+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rKTsKPiA+ID4g PiA+ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMSA9IE5VTEw7Cj4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluayA9IE5VTEw7 Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ID4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgZ290byBmYWlsX2FkZF9wbV9kb21haW5zOwo+ID4gPiA+ID4gPiA+ID4g KyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICBkZXYyID0gJnBkZXYt PmRldjsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsgICAvKiBmb3IgenlucW1w IHdlIG9ubHkgYWRkIFRDTSBwb3dlciBkb21haW5zIGFuZCBub3QgY29yZSdzIHBvd2VyIGRvbWFp biAqLwo+ID4gPiA+ID4gPiA+ID4gKyAgIGZvciAoaiA9IDE7IGogPCByNV9jb3JlLT5udW1fcG1f ZGV2OyBqKyspIHsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9j b3JlMVtqXSA9IGRldl9wbV9kb21haW5fYXR0YWNoX2J5X2lkKGRldjIsIGopOwo+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgaWYgKCFyNV9jb3JlLT5wbV9kZXZfY29yZTFbal0pIHsKPiA+ID4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgZGV2X2RiZyhkZXYsICJjYW4ndCBhdHRhY2gg dG8gcG0gZG9tYWluICVkXG4iLCBqKTsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgZ290 byBmYWlsX2FkZF9wbV9kb21haW5zX2xvY2tzdGVwOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgfSBlbHNlIGlmIChJU19FUlIocjVfY29yZS0+cG1fZGV2X2NvcmUxW2pdKSkgewo+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZfZGJnKGRldiwgImNhbid0IGF0dGFjaCB0 byBwbSBkb21haW4gJWRcbiIsIGopOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICByZXQgPSBQVFJfRVJSKHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtqXSk7Cj4gPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbF9hZGRfcG1fZG9tYWluc19sb2Nrc3RlcDsK PiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rW2pdID0gZGV2aWNl X2xpbmtfYWRkKGRldiwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHI1X2NvcmUtPnBtX2Rldl9jb3JlMVtq XSwKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERMX0ZMQUdfU1RBVEVMRVNTIHwKPiA+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERMX0ZMQUdfUlBNX0FDVElWRSB8Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETF9GTEFHX1BNX1JV TlRJTUUpOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgaWYgKCFyNV9jb3JlLT5wbV9kZXZf Y29yZTFfbGlua1tqXSkgewo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBkZXZf cG1fZG9tYWluX2RldGFjaChyNV9jb3JlLT5wbV9kZXZfY29yZTFbal0sIHRydWUpOwo+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICByNV9jb3JlLT5wbV9kZXZfY29yZTFbal0gPSBO VUxMOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVWOwo+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxfYWRkX3BtX2RvbWFp bnNfbG9ja3N0ZXA7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICB9Cj4gPiA+ID4gPiA+ID4g PiArICAgfQo+ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gK2ZhaWxfYWRkX3BtX2Rv bWFpbnNfbG9ja3N0ZXA6Cj4gPiA+ID4gPiA+ID4gPiArICAgd2hpbGUgKC0taiA+PSAwKSB7Cj4g PiA+ID4gPiA+ID4gPiArICAgICAgICAgICBkZXZpY2VfbGlua19kZWwocjVfY29yZS0+cG1fZGV2 X2NvcmUxX2xpbmtbal0pOwo+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X3BtX2RvbWFp bl9kZXRhY2gocjVfY29yZS0+cG1fZGV2X2NvcmUxW2pdLCB0cnVlKTsKPiA+ID4gPiA+ID4gPiA+ ICsgICB9Cj4gPiA+ID4gPiA+ID4gPiArICAga2ZyZWUocjVfY29yZS0+cG1fZGV2X2NvcmUxKTsK PiA+ID4gPiA+ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTEgPSBOVUxMOwo+ID4gPiA+ ID4gPiA+ID4gKyAgIGtmcmVlKHI1X2NvcmUtPnBtX2Rldl9jb3JlMV9saW5rKTsKPiA+ID4gPiA+ ID4gPiA+ICsgICByNV9jb3JlLT5wbV9kZXZfY29yZTFfbGluayA9IE5VTEw7Cj4gPiA+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ID4gPiArZmFpbF9hZGRfcG1fZG9tYWluczoKPiA+ID4gPiA+ID4g PiA+ICsgICB3aGlsZSAoLS1pID49IDApIHsKPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgIGRl dmljZV9saW5rX2RlbChyNV9jb3JlLT5wbV9kZXZfY29yZTBfbGlua1tpXSk7Cj4gPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICBkZXZfcG1fZG9tYWluX2RldGFjaChyNV9jb3JlLT5wbV9kZXZfY29y ZTBbaV0sIHRydWUpOwo+ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsgICBr ZnJlZShyNV9jb3JlLT5wbV9kZXZfY29yZTApOwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUt PnBtX2Rldl9jb3JlMCA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiArICAga2ZyZWUocjVfY29yZS0+ cG1fZGV2X2NvcmUwX2xpbmspOwo+ID4gPiA+ID4gPiA+ID4gKyAgIHI1X2NvcmUtPnBtX2Rldl9j b3JlMF9saW5rID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+IFRoZSBlcnJvciBwYXRoIGlzIG11Y2ggY2xlYW5lciBhbmQgcmVhZGFibGUgbm93Lgo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSSB3aWxsIGNvbnRpbnVlIHRvbW9ycm93Lgo+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gTWF0aGlldQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiArICAgcmV0dXJuIHJldDsKPiA+ID4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ID4gPiAr Cj4gPiA+ID4gPiA+ID4gPiAgLyoqCj4gPiA+ID4gPiA+ID4gPiAgICogenlucW1wX3I1X3Jwcm9j X3ByZXBhcmUoKQo+ID4gPiA+ID4gPiA+ID4gICAqIGFkZHMgY2FydmVvdXRzIGZvciBUQ00gYmFu ayBhbmQgcmVzZXJ2ZWQgbWVtb3J5IHJlZ2lvbnMKPiA+ID4gPiA+ID4gPiA+IEBAIC03NzAsMTkg Kzk2NiwzMCBAQCBzdGF0aWMgaW50IHp5bnFtcF9yNV9ycHJvY19wcmVwYXJlKHN0cnVjdCBycHJv YyAqcnByb2MpCj4gPiA+ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiA+ID4gICAgIGludCByZXQ7 Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gKyAgIHJldCA9IHp5bnFtcF9yNV9hZGRf cG1fZG9tYWlucyhycHJvYyk7Cj4gPiA+ID4gPiA+ID4gPiArICAgaWYgKHJldCkgewo+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgZGV2X2VycigmcnByb2MtPmRldiwgImZhaWxlZCB0byBhZGQg cG0gZG9tYWluc1xuIik7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICByZXR1cm4gcmV0Owo+ ID4gPiA+ID4gPiA+ID4gKyAgIH0KPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiA+ICAg ICByZXQgPSBhZGRfdGNtX2JhbmtzKHJwcm9jKTsKPiA+ID4gPiA+ID4gPiA+ICAgICBpZiAocmV0 KSB7Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICBkZXZfZXJyKCZycHJvYy0+ZGV2LCAiZmFp bGVkIHRvIGdldCBUQ00gYmFua3MsIGVyciAlZFxuIiwgcmV0KTsKPiA+ID4gPiA+ID4gPiA+IC0g ICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICBnb3RvIGZh aWxfcHJlcGFyZTsKPiA+ID4gPiA+ID4gPiA+ICAgICB9Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gICAgIHJldCA9IGFkZF9tZW1fcmVnaW9uc19jYXJ2ZW91dChycHJvYyk7Cj4gPiA+ ID4gPiA+ID4gPiAgICAgaWYgKHJldCkgewo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgZGV2 X2VycigmcnByb2MtPmRldiwgImZhaWxlZCB0byBnZXQgcmVzZXJ2ZSBtZW0gcmVnaW9ucyAlZFxu IiwgcmV0KTsKPiA+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICBnb3RvIGZhaWxfcHJlcGFyZTsKPiA+ID4gPiA+ID4gPiA+ICAg ICB9Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAgIHJldHVybiAwOwo+ID4gPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gK2ZhaWxfcHJlcGFyZToKPiA+ID4gPiA+ID4gPiA+ ICsgICB6eW5xbXBfcjVfcmVtb3ZlX3BtX2RvbWFpbnMocnByb2MpOwo+ID4gPiA+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gPiA+ID4gKyAgIHJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ID4gPiAgfQo+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+ID4gPiA+IEBAIC04MDEs NiArMTAwOCw4IEBAIHN0YXRpYyBpbnQgenlucW1wX3I1X3Jwcm9jX3VucHJlcGFyZShzdHJ1Y3Qg cnByb2MgKnJwcm9jKQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAgICByNV9jb3Jl ID0gcnByb2MtPnByaXY7Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gKyAgIHp5bnFt cF9yNV9yZW1vdmVfcG1fZG9tYWlucyhycHJvYyk7Cj4gPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ID4gPiAgICAgZm9yIChpID0gMDsgaSA8IHI1X2NvcmUtPnRjbV9iYW5rX2NvdW50OyBpKysp IHsKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgIHBtX2RvbWFpbl9pZCA9IHI1X2NvcmUtPnRj bV9iYW5rc1tpXS0+cG1fZG9tYWluX2lkOwo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgaWYg KHp5bnFtcF9wbV9yZWxlYXNlX25vZGUocG1fZG9tYWluX2lkKSkKPiA+ID4gPiA+ID4gPiA+IC0t Cj4gPiA+ID4gPiA+ID4gPiAyLjI1LjEKPiA+ID4gPiA+ID4gPiA+CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==