From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (EUR05-AM6-obe.outbound.protection.outlook.com [40.107.22.87]) by mx.groups.io with SMTP id smtpd.web10.2209.1622085517688058881 for ; Wed, 26 May 2021 20:18:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=pKEQwTAK; spf=pass (domain: arm.com, ip: 40.107.22.87, mailfrom: jianyong.wu@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aqXemRrpKpLjgJ1aor2KIvG2c+UzaMYQP2zMzVP4goQ=; b=pKEQwTAKFqQd2Pe7W0NxL7fhzw3k8Qd2z5BEonxKrzic6RjoxNmiBA8O54IWFDIQosw80wKnSQdqrb3rf0CrQnv8gKNCvehSb/jiINVsrsneHSjjUzMqXawMlc6zrGWRJ285CHlkrVDu6FPzBhYDUFWOocCh1EuxGkvP7JnKSlc= Received: from AM6PR08CA0027.eurprd08.prod.outlook.com (2603:10a6:20b:c0::15) by DBAPR08MB5765.eurprd08.prod.outlook.com (2603:10a6:10:1ac::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Thu, 27 May 2021 03:18:35 +0000 Received: from VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::31) by AM6PR08CA0027.outlook.office365.com (2603:10a6:20b:c0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Thu, 27 May 2021 03:18:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT034.mail.protection.outlook.com (10.152.18.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Thu, 27 May 2021 03:18:34 +0000 Received: ("Tessian outbound 3c287b285c95:v92"); Thu, 27 May 2021 03:18:34 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0507552d8b08.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2BBA371E-817D-4469-9078-891D1CF9FCC6.1; Thu, 27 May 2021 03:18:28 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0507552d8b08.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 27 May 2021 03:18:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JFvmgIGtXeCU9apdLap83hbJeMWu6udZ19VTDzKcYC9/5aVtyOHGaJs2Ax0dwbMKOjdimik5GSlLHqSiKnr16XUefRAxyWq8u/2Uq+qbTT6WHwK8N12xEOjYVfAXmQhkZItI+wbj5t6hU2y3DfYCvfIrBDIC951ANWE2ixmf59ocQGiogcvfpsUCFYaJnRU0ijKcioWn2haakQu0A/sbQznDYk9T4zqEDcurpW9CflfBfZijGAjjUTbYRminoDN3Vm56P5XonXIHrQv+aBCKiKDwnkjfRBAUQFuBtfdVZ1W2JzbzUogg9KP6Lwvp/zlgONClbNrjB+eW0JFBOxKn1Q== 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-SenderADCheck; bh=aqXemRrpKpLjgJ1aor2KIvG2c+UzaMYQP2zMzVP4goQ=; b=cWyMDdg0CFz7uuJJ9j8B8scWcOJ4jdP75G6FKIOL0ynxx0D5eYH0nEnQ9HRfDzI+Q7bL9FL4TYJRgxXykiD1M4M+MTcl2+07ljMLzffUg9sIo5U17ICMDRaVMKVugWxdwo2NUJjjIL10kcKvaoyP8drGIHIezJBBh9Hu/UZaGmdVxP9n4DSvjG8FsDDB9I/crWplZc/DYMrQEZTp6inw3GkDs4zaHSDrN+fEhjXgvhlan7B3x07uHIVbHPQI3XW7iGm4xLkssoDYR5oSChf23DcLkQMvxV8oA7t1kSfsv2nJgLiasHOo7J/ujoqPZVbG8kv4llfVxSytWEX3XNGskg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aqXemRrpKpLjgJ1aor2KIvG2c+UzaMYQP2zMzVP4goQ=; b=pKEQwTAKFqQd2Pe7W0NxL7fhzw3k8Qd2z5BEonxKrzic6RjoxNmiBA8O54IWFDIQosw80wKnSQdqrb3rf0CrQnv8gKNCvehSb/jiINVsrsneHSjjUzMqXawMlc6zrGWRJ285CHlkrVDu6FPzBhYDUFWOocCh1EuxGkvP7JnKSlc= Received: from AM9PR08MB7055.eurprd08.prod.outlook.com (2603:10a6:20b:412::16) by AM9PR08MB7088.eurprd08.prod.outlook.com (2603:10a6:20b:41c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.21; Thu, 27 May 2021 03:18:26 +0000 Received: from AM9PR08MB7055.eurprd08.prod.outlook.com ([fe80::593d:6e97:777c:a586]) by AM9PR08MB7055.eurprd08.prod.outlook.com ([fe80::593d:6e97:777c:a586%5]) with mapi id 15.20.4173.022; Thu, 27 May 2021 03:18:25 +0000 From: "Jianyong Wu" To: Laszlo Ersek , "devel@edk2.groups.io" , "ardb+tianocore@kernel.org" , Sami Mujawar CC: "hao.a.wu@intel.com" , Justin He Subject: Re: [edk2-devel] [PATCH v2 3/5] ArmVirtPkg: enable ACPI for cloud hypervisor Thread-Topic: [edk2-devel] [PATCH v2 3/5] ArmVirtPkg: enable ACPI for cloud hypervisor Thread-Index: AQHXSukCC3hQ4fSal0KpQq3CgzufGKrqWc6AgAxY23A= Date: Thu, 27 May 2021 03:18:25 +0000 Message-ID: References: <20210517065032.82423-1-jianyong.wu@arm.com> <20210517065032.82423-4-jianyong.wu@arm.com> <2e997009-55bd-7648-f817-6dcd1d857408@redhat.com> In-Reply-To: <2e997009-55bd-7648-f817-6dcd1d857408@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 66A56C744937D74EA25003FC621BC023.0 x-checkrecipientchecked: true Authentication-Results-Original: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.111] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 506b3a2e-fbe6-487f-04b3-08d920be1cc1 x-ms-traffictypediagnostic: AM9PR08MB7088:|DBAPR08MB5765: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: GPoungaVNI2l4UPSr4/+lb68+xgCiyLCCzbNtf/jt/X7qWgLOYquKOa7y12HJeWie9VnIEs8LL32+If9JSAHruWvvBopvbNmGBaQiYWE4qgVmC5xn8rtKFclrLOXON4cAqNvSotJUiV9LrLhdifPu1j5hgTticHrSs2lGaQyDreOxtEF/grFHDC5g4LeifTGD/XBWXu0t7WgtJjlJfE5cffU/ZLyGgN0XzCmu7xDFZRU2gKgVf5QDzdFF7m1zuCrHm668W6fqJDZvppu6+WVRxearPH0AFi2jbFeMl8Qn+c7YeVIPUA0JNnQP20lOfzWhI/8x7ZU6IJ2KoePPNoruRA1AJxR6B+1zQFilwZS82YoktSsCCwzJpw9q2OvHtLnGYVjfebVMOalcl1OU0+soZk9iL+3MMTPXxE5PXvL1beVLbiGwP9ya9Etzzeg32QdOFeSyGgsxNyS87XyEjAOB3bYwKxl7RH07w3txHpmE7AzO/bSIndR0WgCpSKaW7rBj0IxH5uDMfq92YAjor6uP86mVxeabkSOWVPangPwJYBIDCm7mfoTlgR50GiqgOpHVwj/FcB9Ly0NEQaZy86BIEcSjK30be2JiKXfoegIFsg= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR08MB7055.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(136003)(396003)(39860400002)(376002)(9686003)(55016002)(83380400001)(53546011)(110136005)(6506007)(86362001)(7696005)(316002)(26005)(122000001)(54906003)(8936002)(186003)(8676002)(478600001)(6636002)(66476007)(66556008)(66446008)(64756008)(66946007)(33656002)(76116006)(30864003)(71200400001)(4326008)(5660300002)(38100700002)(2906002)(52536014);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?ODd3VUVkWjlTVTRKRmVYRDlhd0w2VGYyVVJhd1ZvbEZiSk1EaTlKcWVMTG1B?= =?utf-8?B?WkhPMnhZK1djaFVxWjJyY1JnNkg4Y011Z1VrYVg3cmc0WHR4VmM1SzdyUk5j?= =?utf-8?B?b0hoU003Tnh2ZEhjTkZWMDhpUDFKRWdsSC8xMG53QjVwZnFpQWtWK2FHYU5k?= =?utf-8?B?MS84bzh3aFdJb3VzWlRYTTJOaE0xV3JTN2QyWVJraXFaazVjQVpnU2trb0lj?= =?utf-8?B?Wnkrdy90TytFc0pCWGhLaDZRZ0l0NU1hYnJ5MWQ1a25EdnQ2dDNleWV4bnZL?= =?utf-8?B?L2VHNnpOaGpkSE4yMDJXWENQOWEyblpRcGRhb2lTS0M3enBkMmYvcEhUT3FU?= =?utf-8?B?NVBKclZYeDlTYTNGck1yR3EyK0dqNTVUT1lHRXVDWURFQ09zM29DdzZCd1M0?= =?utf-8?B?YVZPcTBPOTZBandYNnpKaVZrY0lXMkQwQW9kS3dUQmdiRUhLaWlOcDFJTjBw?= =?utf-8?B?OHJkUlF6VVZNU3NtYjZyOWo0bkxqU3ZQNTBXWmYzaU1mZWkvNG5lOFl4NGo5?= =?utf-8?B?dk1xSzJWS2hZNmtoMU1PWlAxZ3RRd1o2dUgxZjdQRm5lZllQdGlwZnBId3ZT?= =?utf-8?B?SUdwdXVQN280cDhCaTBqTC8wbjhqcjFCdzBWQS9uQTBjS0k2eHJ1UlY0MW5p?= =?utf-8?B?S2E0QjRTK3VOalhSVnFCRXlNelNjQjdZQU1ZZWtJTzFnMGdMdkg5bGVwM0dN?= =?utf-8?B?Slk5MDlCZWdKWnZiUmszR1RnOXZvTlZRYmVFS2JTSVNDcHJON2dzaXJUNnYr?= =?utf-8?B?YllkWkpqeFY0RmpYZTRRVXBrbjYxU21OaGl0RDd1WDhERWFKZUtEN1JXVGFz?= =?utf-8?B?ZzN1aWluc2RrejB6cHJpbjF0ZkdCdWgxNkJQU2o1SytGK3NwTUU0WkhxQll0?= =?utf-8?B?cnNWRHFnZGFVSkhEckZ1YjB4Rkgwak8zV1ZLbkdqbnBTN1V5N2J1dUJLK0VB?= =?utf-8?B?eXdpMEVndlRKMHlTdEh1UUIxVnJiOGVlWW9xM2Zib2xLZ3VQOFNzWlcrTk5r?= =?utf-8?B?T1ZqWXFtNTdNUFFaazhxWWVPM0FMSjFORUZiMFhuWlFKR1FwalJTdStENWpK?= =?utf-8?B?UFZ3QXNQVi9OZXBRVDQ2STV3YmMxUXBZbVdSQTZPaU8vaFR4U1ZvZHFRcXRG?= =?utf-8?B?d0srTk9mVk9Hb2ppcU5qVENhV2JhazY1cDE4NjdQNDJUSkdRYStyYW11OFVU?= =?utf-8?B?UVAzUW5DUGFWUkl4N3kvREJ5Rk9HM1NYMnYza1JqUHMyMHhQdkh1Rzd0K2Fw?= =?utf-8?B?V25seGNxSTdiWm5KQjVaRkJML0xQamhnOU1PU1FDYWlUN0VVbVkzb0c0Wmlr?= =?utf-8?B?WUZWeVVVODJPNVRCOHFHYndjM2xqTHdUWmlZQjR1c3BLWTdEYUhYUUE2Vzhs?= =?utf-8?B?OXNLcWdmdHZSc2l0MnZWMktSS2N6WitQbWZselZGSU9yeGYzb2tQNGdLcEQ2?= =?utf-8?B?SEUyMzNmRjZvekRaYXFPdThnVEVxRjE4M3NYWUpwbWtEN3NLc1liVERrSS9x?= =?utf-8?B?MkJGdnlzK1cvMXpFOEdvUEIwaDF6dmZUU0lVWTFVR2Y1dWxrZW9Pa1FQRmhq?= =?utf-8?B?RE9SakY4aXJlVDdySHBoLzRwb0Q4YTQva3plQ0xPZGFzYjlBR1M0Yjh1RnBW?= =?utf-8?B?UnpXcGlxenp5Z0thSHdaeUgwZnFWNUJjQ290QmhqNUYyRXVpOWoxcTlDMCtR?= =?utf-8?B?MzZJUkJwWWxaNmN5TnhxbmpjYnRSV0hMOGhIbG5tQy9DcHo1QVlrMkZ2YTRO?= =?utf-8?Q?c7OsCP+UmW1pY9ntEJXDKdOJd6VZpp02GLBb8pM?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7088 Original-Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; Return-Path: Jianyong.Wu@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b7d07bb5-1104-42ea-ed8a-08d920be175f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MOjWPAiLzALDMCQ5JfQHX6njjkE3xuxe5vk8sBlD+ZvTOAxNfFg7EPA54VaYLMkRPiCMbm5bATVLVF64K3j+f8+joeHurz4aMUFGwbvnI9Of516sgxrCJQenqhvPvkuGH1Iu2aeIZF4J/5qJa5eOPYCK8sr3MA0McScMj1upNfM8xu4+rgyBhpUfWtilDRJ9MnkCXcCOxWuyokEeJvh3vw5NoxZH9KMJ/8QpC5b9iJdovjShzth1gqR+dyWrMSXT+57lOVror79IaaBAMY0Ci9XDgch/x6pBb4LDNtHL9OzbU0cOGQytT/OevOQDfHGAumKfAueAYEh0ZWGx6iD+Kc1EESqIrtGUjl7y1gbzsJaBtg4qXTGHKg+clKPOyhO0gtgXmGE4/PZkLez1cnKRTmXZXGASt+Y+jxRgLnIMPgWPzUZooBr7lyx4Y4gv8iwdiYvPa4OGrtOTl6LPe4gxEdpDypWXowsWfA7kHK1DHg3P0RJeCos+NSAijq6yt/63qGzNjTIfHZSw9yDAQV/EFi2aU63Nkzd8Hk2y9O8pxHJ2+2D912hbf35m9PmRShzqp9teOj8h0MRAqYQNJqc5NPItBqovzBfaN49a44GkSnhmYq8QiB1fJw2eYUGI6YHUrEexdtu3AzIXmHpFSWSslUynmp7gQSW2urb0aI0lRas= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(396003)(39860400002)(136003)(346002)(376002)(46966006)(36840700001)(4326008)(6506007)(53546011)(336012)(186003)(7696005)(54906003)(110136005)(83380400001)(5660300002)(8936002)(33656002)(82310400003)(55016002)(6636002)(70206006)(70586007)(86362001)(356005)(316002)(81166007)(9686003)(8676002)(52536014)(478600001)(26005)(47076005)(2906002)(36860700001)(82740400003)(30864003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2021 03:18:34.6203 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 506b3a2e-fbe6-487f-04b3-08d920be1cc1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5765 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTWF5IDE5LCAy MDIxIDI6MjYgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBKaWFueW9uZyBXdSA8Smlh bnlvbmcuV3VAYXJtLmNvbT47DQo+IGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc7IFNhbWkgTXVq YXdhciA8U2FtaS5NdWphd2FyQGFybS5jb20+DQo+IENjOiBoYW8uYS53dUBpbnRlbC5jb207IEp1 c3RpbiBIZSA8SnVzdGluLkhlQGFybS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0g W1BBVENIIHYyIDMvNV0gQXJtVmlydFBrZzogZW5hYmxlIEFDUEkgZm9yIGNsb3VkDQo+IGh5cGVy dmlzb3INCj4NCj4gT24gMDUvMTcvMjEgMDg6NTAsIEppYW55b25nIFd1IHdyb3RlOg0KPiA+IFRo ZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIFBsYXRmb3JtSGFzQWNwaUR0IGlzIG5vdCBhIGNv bW1vbg0KPiA+IGxpYnJhcnkgYW5kIGlzIG9uIGJlaGFsZiBvZiBxZW11LiBTbyBnaXZlIGEgc3Bl Y2lmaWMgdmVyc2lvbiBmb3IgQ2xvdWQNCj4gPiBIeXBlcnZpc29yIGhlcmUuDQo+ID4NCj4gPiBU aGVyZSBpcyBubyBkZXZpY2UgbGlrZSBGdy1jZmcgaW4gcWVtdSBpbiBDbG91ZCBIeXBlcnZpc29y LCBzbyBhDQo+ID4gc3BlY2lmaWMgQWNwaSBoYW5kbGVyIGlzIGludHJvZHVjZWQgaGVyZS4NCj4g Pg0KPiA+IFRoZSBoYW5kbGVyIGltcGxlbWVudGVkIGhlcmUgaXMgaW4gYSB2ZXJ5IHNpbXBsZSB3 YXk6DQo+ID4gZmlyc3RseSwgYXF1aXJlIHRoZSBSc2RwIGFkZHJlc3MgZnJvbSB0aGUgUENEIHZh cmFpYmxlIGluIHRoZSB0b3ANCj4gPiAiLmRzYyI7IHNlY29uZGx5LCBnZXQgdGhlIFhzZHAgYWRk cmVzcyBmcm9tIFJzZHAgc3RydWN0dXJlOyB0aGlyZGx5LA0KPiA+IGdldCB0aGUgQWNwaSB0YWJs ZXMgZm9sbG93aW5nIHRoZSBYc2RwIHN0cnVjdHJ1ZSBhbmQgaW5zdGFsbCBpdA0KPg0KPiAoMSkg UGxlYXNlIGNvbnNpZGVyIHJ1bm5pbmcgYSBzcGVsbCBjaGVja2VyIG9uIHRoZSBjb21taXQgbWVz c2FnZSAoImFxdWlyZSINCj4gc2hvdWxkIGJlICJhY3F1aXJlIiwgInZhcmFpYmxlIiBzaG91bGQg YmUgInZhcmlhYmxlIiwgInN0cnVjdHJ1ZSIgc2hvdWxkIGJlDQo+ICJzdHJ1Y3R1cmUiKS4gSGF2 aW5nIHRoaXMgbWFueSB0eXBvcyBpbiBhIHNob3J0IGNvbW1pdCBtZXNzYWdlIGdpdmVzIHRoZQ0K PiBwYXRjaCBhIHJ1c2hlZCB2aWJlLg0KPg0KPiA+IG9uZSBieSBvbmUuDQoNClRoYW5rcyBmb3Ig cmVtaW5kZXIsIEkgd2lsbCBkbyB0aGUgc3BlbGwgY2hlY2sgYmVmb3JlIHNlbmRpbmcgb3V0IG5l eHQgdGltZS4NCg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogSmlhbnlvbmcgV3UgPGppYW55b25n Lnd1QGFybS5jb20+DQo+ID4gLS0tDQo+ID4gIC4uLi9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmlu ZiAgICAgICAgICAgICAgICB8IDUxICsrKysrKysrKysrKysNCj4gPiAgLi4uL0Nsb3VkSHZIYXNB Y3BpRHREeGUuaW5mICAgICAgICAgICAgICAgICAgIHwgNDMgKysrKysrKysrKysNCj4gPiAgLi4u L0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUvQ2xvdWRIdkFjcGkuYyAgICAgIHwgNzMNCj4gKysrKysr KysrKysrKysrKysrKw0KPiA+ICAuLi4vQ2xvdWRIdkhhc0FjcGlEdER4ZS5jICAgICAgICAgICAg ICAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysNCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAy MzYgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBBcm1WaXJ0UGtn L0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS5pbmYNCj4gPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQXJtVmlydFBrZy9DbG91ZEh2UGxhdGZvcm1IYXNBY3Bp RHREeGUvQ2xvdWRIdkhhc0FjcGlEdER4ZS5pbmYNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFy bVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQo+ID4gIGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPiA+IEFybVZpcnRQa2cvQ2xvdWRIdlBsYXRmb3JtSGFzQWNwaUR0RHhl L0Nsb3VkSHZIYXNBY3BpRHREeGUuYw0KPg0KPiAoMikgVW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lm aWMgcmVhc29uIGZvciBhZGRpbmcgYm90aCBkcml2ZXJzIGluIHRoZSBzYW1lIHBhdGNoLA0KPiBw bGVhc2Ugc3BsaXQgdGhlbSB0byBzZXBhcmF0ZSBwYXRjaGVzLg0KDQpPaw0KPg0KPiA+DQo+ID4g ZGlmZiAtLWdpdA0KPiA+IGEvQXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlL0Nsb3Vk SHZBY3BpUGxhdGZvcm1EeGUuaW5mDQo+ID4gYi9Bcm1WaXJ0UGtnL0Nsb3VkSHZBY3BpUGxhdGZv cm1EeGUvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjNjNzRlODRlYjI3DQo+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ICsrKyBiL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNw aVBsYXRmb3JtRHhlLmluZg0KPiA+IEBAIC0wLDAgKzEsNTEgQEANCj4gPiArIyMgQGZpbGUNCj4g PiArIyAgT1ZNRiBBQ1BJIFBsYXRmb3JtIERyaXZlciBmb3IgQ2xvdWQgSHlwZXJ2aXNvciAjICMg IENvcHlyaWdodCAoYykNCj4gPiArMjAwOCAtIDIwMTQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4NCj4gKDMpIE1pc3NpbmcgQVJNIChDKS4NCg0KWWVhaCwg SSB3aWxsIGFkZCBpdC4NCg0KPg0KPiA+ICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudCAjICMjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZf VkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+ID4gKyAgQkFTRV9OQU1F ICAgICAgICAgICAgICAgICAgICAgID0gQ2xoRndDZmdBY3BpUGxhdGZvcm0NCj4NCj4gKDQpIFRo aXMgc2hvdWxkIGJlICJDbG91ZEh2QWNwaVBsYXRmb3JtRHhlIiwgbWF0Y2hpbmcgdGhlIGJhc2Vu YW1lIG9mIHRoZQ0KPiBJTkYgZmlsZS4NClllYWgsDQoNCj4NCj4gPiArICBGSUxFX0dVSUQgICAg ICAgICAgICAgICAgICAgICAgPSA2Yzc2ZTQwNy03M2YyLWRjMWMtOTM4Zi01ZDZjNDY5MWVhOTMN Cj4gPiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ID4g KyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ID4gKyAgRU5UUllfUE9J TlQgICAgICAgICAgICAgICAgICAgID0gQ2xvdWRIdkFjcGlQbGF0Zm9ybUVudHJ5UG9pbnQNCj4g PiArDQo+ID4gKyMNCj4gPiArIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZvciByZWZl cmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZQ0KPiBidWlsZCB0b29scy4NCj4gPiAr Iw0KPiA+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0IEFSTSBB QVJDSDY0DQo+DQo+ICg1KSBEbyB5b3UgcmVhbGx5IHdhbnQgdGhpcyBkcml2ZXIgdG8gYmUgdXNl ZCBvbiwgc2F5LCBJQTMyPw0KPg0KTm8sIEkgd2lsbCBvbmx5IGtlZXAgQUFyY2g2NCBoZXJlIGFz IEknbSBzdXJlIGFybTMyIGNhbiB1c2UgaXQuDQoNCj4gPiArIw0KPiA+ICsNCj4gPiArW1NvdXJj ZXNdDQo+ID4gKyAgQ2xvdWRIdkFjcGkuYw0KPiA+ICsNCj4gPiArW1BhY2thZ2VzXQ0KPiA+ICsg IE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gKyAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMN Cj4gPiArICBPdm1mUGtnL092bWZQa2cuZGVjDQo+ID4gKw0KPiA+ICtbTGlicmFyeUNsYXNzZXNd DQo+ID4gKyAgQmFzZUxpYg0KPiA+ICsgIERlYnVnTGliDQo+ID4gKyAgTWVtb3J5QWxsb2NhdGlv bkxpYg0KPiA+ICsgIE9yZGVyZWRDb2xsZWN0aW9uTGliDQo+ID4gKyAgVWVmaUJvb3RTZXJ2aWNl c1RhYmxlTGliDQo+ID4gKyAgVWVmaURyaXZlckVudHJ5UG9pbnQNCj4gPiArDQo+ID4gK1tQcm90 b2NvbHNdDQo+ID4gKyAgZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAg ICAgICMgUFJPVE9DT0wgQUxXQVlTX0NPTlNVTUVEDQo+ID4gKyAgZ0VmaVBjaUlvUHJvdG9jb2xH dWlkICAgICAgICAgICAgICAgICAgICAgICAgICMgUFJPVE9DT0wgU09NRVRJTUVTX0NPTlNVTUVE DQo+ID4gKw0KPiA+ICtbR3VpZHNdDQo+ID4gKyAgZ1Jvb3RCcmlkZ2VzQ29ubmVjdGVkRXZlbnRH cm91cEd1aWQNCj4gPiArDQo+ID4gK1tQY2RdDQo+ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZFBjaURpc2FibGVCdXNFbnVtZXJhdGlvbg0KPiA+ICsgIGdFZmlNZGVNb2R1 bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RBY3BpUnNkcEJhc2VBZGRyZXNzDQo+ID4gKw0KPiA+ICtb RGVwZXhdDQo+ID4gKyAgZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZA0KPiA+IGRpZmYgLS1naXQN Cj4gPiBhL0FybVZpcnRQa2cvQ2xvdWRIdlBsYXRmb3JtSGFzQWNwaUR0RHhlL0Nsb3VkSHZIYXNB Y3BpRHREeGUuaW5mDQo+ID4gYi9Bcm1WaXJ0UGtnL0Nsb3VkSHZQbGF0Zm9ybUhhc0FjcGlEdER4 ZS9DbG91ZEh2SGFzQWNwaUR0RHhlLmluZg0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMDAwLi5mNTExYTRmNTA2NGMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4g KysrDQo+IGIvQXJtVmlydFBrZy9DbG91ZEh2UGxhdGZvcm1IYXNBY3BpRHREeGUvQ2xvdWRIdkhh c0FjcGlEdER4ZS5pbmYNCj4gPiBAQCAtMCwwICsxLDQzIEBADQo+ID4gKyMjIEBmaWxlDQo+ID4g KyMgRGVjaWRlIHdoZXRoZXIgdGhlIGZpcm13YXJlIHNob3VsZCBleHBvc2UgYW4gQUNQSS0gYW5k L29yIGEgRGV2aWNlDQo+ID4gK1RyZWUtYmFzZWQgIyBoYXJkd2FyZSBkZXNjcmlwdGlvbiB0byB0 aGUgb3BlcmF0aW5nIHN5c3RlbS4NCj4gPiArIw0KPiA+ICsjIENvcHlyaWdodCAoYykgMjAxNywg UmVkIEhhdCwgSW5jLg0KPg0KPiAoNikgQVJNIChDKSBtaXNzaW5nLg0KU3VyZSwNCg0KPg0KPiA+ ICsjDQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQg IyMNCj4gPiArDQo+ID4gK1tEZWZpbmVzXQ0KPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAg ICAgICAgICA9IDEuMjUNCj4gPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBD bGhQbGF0Zm9ybUhhc0FjcGlEdER4ZQ0KPg0KPiAoNykgU2hvdWxkIGJlICJDbG91ZEh2SGFzQWNw aUR0RHhlIi4NCg0KT2sNCj4NCj4gPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAg PSA3MWZlNzJmOS02ZGMxLTE5OWQtNTA1NC0xM2I0MjAwZWU4OGQNCj4gPiArICBNT0RVTEVfVFlQ RSAgICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ID4gKyAgVkVSU0lPTl9TVFJJTkcg ICAgICAgICAgICAgICAgID0gMS4wDQo+ID4gKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAg ICAgID0gUGxhdGZvcm1IYXNBY3BpRHQNCj4gPiArDQo+ID4gK1tTb3VyY2VzXQ0KPiA+ICsgIENs b3VkSHZIYXNBY3BpRHREeGUuYw0KPiA+ICsNCj4gPiArW1BhY2thZ2VzXQ0KPiA+ICsgIEFybVZp cnRQa2cvQXJtVmlydFBrZy5kZWMNCj4gPiArICBFbWJlZGRlZFBrZy9FbWJlZGRlZFBrZy5kZWMN Cj4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsgIE1kZVBrZy9NZGVQ a2cuZGVjDQo+ID4gKyAgT3ZtZlBrZy9Pdm1mUGtnLmRlYw0KPiA+ICsNCj4gPiArW0xpYnJhcnlD bGFzc2VzXQ0KPiA+ICsgIEJhc2VMaWINCj4gPiArICBEZWJ1Z0xpYg0KPiA+ICsgIFBjZExpYg0K PiA+ICsgIFVlZmlCb290U2VydmljZXNUYWJsZUxpYg0KPiA+ICsgIFVlZmlEcml2ZXJFbnRyeVBv aW50DQo+ID4gKw0KPiA+ICtbR3VpZHNdDQo+ID4gKyAgZ0Vka2lpUGxhdGZvcm1IYXNBY3BpR3Vp ZCAgICAgICAjIyBTT01FVElNRVNfUFJPRFVDRVMgIyMgUFJPVE9DT0wNCj4gPiArICBnRWRraWlQ bGF0Zm9ybUhhc0RldmljZVRyZWVHdWlkICMjIFNPTUVUSU1FU19QUk9EVUNFUyAjIw0KPiBQUk9U T0NPTA0KPiA+ICsNCj4gPiArW1BjZF0NCj4gPiArICBnQXJtVmlydFRva2VuU3BhY2VHdWlkLlBj ZEZvcmNlTm9BY3BpDQo+ID4gKw0KPiA+ICtbRGVwZXhdDQo+ID4gKyAgZ0VmaVZhcmlhYmxlQXJj aFByb3RvY29sR3VpZA0KPiA+IGRpZmYgLS1naXQgYS9Bcm1WaXJ0UGtnL0Nsb3VkSHZBY3BpUGxh dGZvcm1EeGUvQ2xvdWRIdkFjcGkuYw0KPiA+IGIvQXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRm b3JtRHhlL0Nsb3VkSHZBY3BpLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uYzIzNDRlN2IyOWZhDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBi L0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQo+ID4gQEAg LTAsMCArMSw3MyBAQA0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gKyNp bmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4gI2luY2x1ZGUNCj4gPiArPElu ZHVzdHJ5U3RhbmRhcmQvQWNwaTYzLmg+ICNpbmNsdWRlIDxQcm90b2NvbC9BY3BpVGFibGUuaD4g I2luY2x1ZGUNCj4gPiArPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+DQo+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlEcml2ZXJFbnRyeVBvaW50Lmg+ICNpbmNsdWRlDQo+ID4g KzxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+DQo+ICg4KSBGaWxlLXRvcCBjb21tZW50IGJsb2NrIG1p c3NpbmcgYWx0b2dldGhlciwgaW5jbHVkaW5nIHRoZSBAZmlsZSBEb3h5Z2VuDQo+IGRpcmVjdGl2 ZSBwbHVzIHNob3J0IGV4cGxhbmF0aW9uLCBBUk0gKEMpIG5vdGljZSwgIlNQRFgtTGljZW5zZS1J ZGVudGlmaWVyIi4NCj4NClllYWgsIHdpbGwgYWRkIGl0Lg0KDQo+ID4gKw0KPiA+ICsjZGVmaW5l IEFDUElfRU5UUllfU0laRSA4DQo+ID4gKyNkZWZpbmUgWFNEVF9MRU4gMzYNCj4gPiArDQo+ID4g K1NUQVRJQw0KPiA+ICtFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAqDQo+ID4gK0ZpbmRBY3BpVGFi bGVQcm90b2NvbCAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIEVGSV9T VEFUVVMgICAgICAgICAgICAgIFN0YXR1czsNCj4gPiArICBFRklfQUNQSV9UQUJMRV9QUk9UT0NP TCAqQWNwaVRhYmxlOw0KPiA+ICsNCj4gPiArICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29s ICgNCj4gPiArICAgICAgICAgICAgICAgICAgJmdFZmlBY3BpVGFibGVQcm90b2NvbEd1aWQsDQo+ ID4gKyAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgICAgIChWT0lE KiopJkFjcGlUYWJsZQ0KPiA+ICsgICAgICAgICAgICAgICAgICApOw0KPiA+ICsgIEFTU0VSVF9F RklfRVJST1IgKFN0YXR1cyk7DQo+ID4gKyAgcmV0dXJuIEFjcGlUYWJsZTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtFRklBUEkNCj4gPiArSW5zdGFsbENsb3VkSHZBY3Bp VGFibGVzICgNCj4gPiArIElOICAgICBFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAgICAgICAqQWNw aVByb3RvY29sDQo+ID4gKyApDQo+ID4gK3sNCj4gPiArICBVSU5UTiBJbnN0YWxsZWRLZXksIFRh YmxlU2l6ZTsNCj4gPiArICBVSU5UNjQgUnNkcCwgWHNkdCwgdGFibGVfb2Zmc2V0LCBQb2ludGVy VmFsdWU7DQo+ID4gKyAgRUZJX1NUQVRVUyBTdGF0dXMgPSAwOw0KPiA+ICsgIGludCBzaXplOw0K PiA+ICsNCj4gPiArICBSc2RwID0gUGNkR2V0NjQgKFBjZEFjcGlSc2RwQmFzZUFkZHJlc3MpOyAg WHNkdCA9DQo+ID4gKyAoKEVGSV9BQ1BJXzZfM19ST09UX1NZU1RFTV9ERVNDUklQVElPTl9QT0lO VEVSICopUnNkcCktDQo+ID5Yc2R0QWRkcmVzczsNCj4gPiArIFBvaW50ZXJWYWx1ZSA9IFhzZHQ7 ICB0YWJsZV9vZmZzZXQgPSBYc2R0OyAgc2l6ZSA9DQo+ID4gKyAoKEVGSV9BQ1BJX0NPTU1PTl9I RUFERVIgKilQb2ludGVyVmFsdWUpLT5MZW5ndGggLSBYU0RUX0xFTjsNCj4gPiArIHRhYmxlX29m ZnNldCArPSBYU0RUX0xFTjsNCj4gPiArDQo+ID4gKyAgd2hpbGUoIVN0YXR1cyAmJiBzaXplID4g MCkgew0KPiA+ICsgICAgUG9pbnRlclZhbHVlID0gKihVSU5UNjQgKil0YWJsZV9vZmZzZXQ7DQo+ ID4gKyAgICBUYWJsZVNpemUgPSAoKEVGSV9BQ1BJX0NPTU1PTl9IRUFERVIgKilQb2ludGVyVmFs dWUpLT5MZW5ndGg7DQo+ID4gKyAgICBTdGF0dXMgPSBBY3BpUHJvdG9jb2wtPkluc3RhbGxBY3Bp VGFibGUgKEFjcGlQcm90b2NvbCwNCj4gPiArICAgICAgICAgICAgIChWT0lEICopKFVJTlQ2NClQ b2ludGVyVmFsdWUsIFRhYmxlU2l6ZSwNCj4gPiArICAgICAgICAgICAgICZJbnN0YWxsZWRLZXkp Ow0KPiA+ICsgICAgdGFibGVfb2Zmc2V0ICs9IEFDUElfRU5UUllfU0laRTsNCj4gPiArICAgIHNp emUgLT0gQUNQSV9FTlRSWV9TSVpFOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgcmV0dXJuIFN0 YXR1czsNCj4gPiArfQ0KPiA+ICsNCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtFRklBUEkNCj4gPiAr Q2xvdWRIdkFjcGlQbGF0Zm9ybUVudHJ5UG9pbnQgKA0KPiA+ICsgIElOIEVGSV9IQU5ETEUgICAg ICAgICBJbWFnZUhhbmRsZSwNCj4gPiArICBJTiBFRklfU1lTVEVNX1RBQkxFICAgKlN5c3RlbVRh YmxlDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAg ICAgICAgICBTdGF0dXM7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IEluc3RhbGxDbG91ZEh2QWNw aVRhYmxlcyAoRmluZEFjcGlUYWJsZVByb3RvY29sICgpKTsNCj4gPiArICByZXR1cm4gU3RhdHVz Ow0KPiA+ICt9DQo+ID4gKw0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL0FybVZpcnRQa2cvQ2xvdWRI dlBsYXRmb3JtSGFzQWNwaUR0RHhlL0Nsb3VkSHZIYXNBY3BpRHREeGUuYw0KPiA+IGIvQXJtVmly dFBrZy9DbG91ZEh2UGxhdGZvcm1IYXNBY3BpRHREeGUvQ2xvdWRIdkhhc0FjcGlEdER4ZS5jDQo+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmFlMDdjOTFm NTcwNQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysNCj4gYi9Bcm1WaXJ0UGtnL0Nsb3VkSHZQ bGF0Zm9ybUhhc0FjcGlEdER4ZS9DbG91ZEh2SGFzQWNwaUR0RHhlLmMNCj4gPiBAQCAtMCwwICsx LDY5IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsgIERlY2lkZSB3aGV0aGVyIHRoZSBmaXJtd2Fy ZSBzaG91bGQgZXhwb3NlIGFuIEFDUEktIGFuZC9vciBhIERldmljZQ0KPiA+ICtUcmVlLWJhc2Vk DQo+ID4gKyAgaGFyZHdhcmUgZGVzY3JpcHRpb24gdG8gdGhlIG9wZXJhdGluZyBzeXN0ZW0uDQo+ ID4gKw0KPiA+ICsgIENvcHlyaWdodCAoYykgMjAxNywgUmVkIEhhdCwgSW5jLg0KPg0KPiAoOSkg QVJNIChDKSBtaXNzaW5nLg0KPg0KU3VyZQ0KDQo+ID4gKw0KPiA+ICsgIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICoqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUg PEd1aWQvUGxhdGZvcm1IYXNBY3BpLmg+DQo+ID4gKyNpbmNsdWRlIDxHdWlkL1BsYXRmb3JtSGFz RGV2aWNlVHJlZS5oPiAjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gKyNpbmNsdWRl IDxMaWJyYXJ5L0RlYnVnTGliLmg+ICNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPiAjaW5jbHVk ZQ0KPiA+ICs8TGlicmFyeS9VZWZpQm9vdFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiArDQo+ID4g K0VGSV9TVEFUVVMNCj4gPiArRUZJQVBJDQo+ID4gK1BsYXRmb3JtSGFzQWNwaUR0ICgNCj4gPiAr ICBJTiBFRklfSEFORExFICAgICAgIEltYWdlSGFuZGxlLA0KPiA+ICsgIElOIEVGSV9TWVNURU1f VEFCTEUgKlN5c3RlbVRhYmxlDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAg ICAgICAgICAgU3RhdHVzOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIElmIHdlIGZhaWwg dG8gaW5zdGFsbCBhbnkgb2YgdGhlIG5lY2Vzc2FyeSBwcm90b2NvbHMgYmVsb3csIHRoZQ0KPiA+ ICsgT1Mgd2lsbCBiZSAgLy8gdW5ib290YWJsZSBhbnl3YXkgKGR1ZSB0byBsYWNraW5nIGhhcmR3 YXJlDQo+ID4gKyBkZXNjcmlwdGlvbiksIHNvIHRvbGVyYXRlIG5vICAvLyBlcnJvcnMgaGVyZS4N Cj4gPiArICAvLw0KPiA+ICsgIGlmIChNQVhfVUlOVE4gPT0gTUFYX1VJTlQ2NCAmJg0KPiA+ICsg ICAgICAhUGNkR2V0Qm9vbCAoUGNkRm9yY2VOb0FjcGkpKQ0KPiA+ICsgIHsNCj4gPiArICAgIFN0 YXR1cyA9IGdCUy0+SW5zdGFsbFByb3RvY29sSW50ZXJmYWNlICgNCj4gPiArICAgICAgICAgICAg ICAgICAgICAmSW1hZ2VIYW5kbGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgJmdFZGtpaVBs YXRmb3JtSGFzQWNwaUd1aWQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgRUZJX05BVElWRV9J TlRFUkZBQ0UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTlVMTA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICk7DQo+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAg ICAgIGdvdG8gRmFpbGVkOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIHJldHVybiBTdGF0 dXM7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEV4cG9zZSB0aGUgRGV2 aWNlIFRyZWUgb3RoZXJ3aXNlLg0KPiA+ICsgIC8vDQo+ID4gKyAgU3RhdHVzID0gZ0JTLT5JbnN0 YWxsUHJvdG9jb2xJbnRlcmZhY2UgKA0KPiA+ICsgICAgICAgICAgICAgICAgICAmSW1hZ2VIYW5k bGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICZnRWRraWlQbGF0Zm9ybUhhc0RldmljZVRyZWVH dWlkLA0KPiA+ICsgICAgICAgICAgICAgICAgICBFRklfTkFUSVZFX0lOVEVSRkFDRSwNCj4gPiAr ICAgICAgICAgICAgICAgICAgTlVMTA0KPiA+ICsgICAgICAgICAgICAgICAgICApOw0KPiA+ICsg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgIGdvdG8gRmFpbGVkOw0KPiA+ICsg IH0NCj4gPiArDQo+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPiArDQo+ID4gK0ZhaWxlZDoNCj4g PiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ICsgIENwdURlYWRMb29wICgpOw0K PiA+ICsgIC8vDQo+ID4gKyAgLy8gS2VlcCBjb21waWxlcnMgaGFwcHkuDQo+ID4gKyAgLy8NCj4g PiArICByZXR1cm4gU3RhdHVzOw0KPiA+ICt9DQo+ID4NCj4NCj4gSSd2ZSBvbmx5IHBvaW50ZWQg b3V0IHdoYXQgSSBjb25zaWRlciB0aGUgYmFyZSBtaW5pbXVtIGZvciBteSBBQ0s7IHRoZQ0KPiBh Y3R1YWwgbG9naWMgaW4gdGhlIHBhdGNoIHdpbGwgc3RpbGwgbmVlZCBhbiBSLWIgZnJvbSBBcmQg YW5kL29yIExlaWYgYW5kL29yIFNhbWkuDQo+DQpUaGFua3MNCkppYW55b25nIFd1DQoNCg0KPiBU aGFua3MNCj4gTGFzemxvDQoNCklNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlz IGVtYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28g YmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxl YXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhl IGNvbnRlbnRzIHRvIGFueSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9y IHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4N Cg==