From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web09.6007.1646122216088077517 for ; Tue, 01 Mar 2022 00:10:16 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=NrNsDhxr; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: zhihao.li@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646122216; x=1677658216; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ETFU+3WB6DWGPIgXCLdBycQG5ceCkn45dh44wnWhuxc=; b=NrNsDhxrvFGrFFkT1GuZgZ6VMsLWawzi6f0BpYU5jYUKaFToDLcsQPyy 5zruXIAHS+DubcEFzAB7mWxEI74vwGj+2qeor1gUGtN9hNHWX/7wWO6Pu pHarspOE02i0Mz8vGaUIq60t5pzRLFYCN7Oqh4gYpEXmjQOqi7V9MfFD6 6WOLcUtnyNKD/o+JlU1PdEVN80dOUduMDAbGVdpPLpLM+fp7xCRu52tlU UL/swcKbE6ikFMamko+czkMuWbi0I7S+tavSZkO+o/e9ePECDPGSBZfzf gx2aVFnHETB5MomBcYsURnGgYUxk6QKzeJxlmDWt/9yD/b04Qpkt1LgC/ A==; X-IronPort-AV: E=McAfee;i="6200,9189,10272"; a="236592450" X-IronPort-AV: E=Sophos;i="5.90,145,1643702400"; d="scan'208";a="236592450" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Mar 2022 00:10:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,145,1643702400"; d="scan'208";a="629934819" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 01 Mar 2022 00:10:15 -0800 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Tue, 1 Mar 2022 00:10:14 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21 via Frontend Transport; Tue, 1 Mar 2022 00:10:14 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 1 Mar 2022 00:10:14 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pb1yv9+FbMAfl9lDFnB9xIuE921VzDtGvqUBpIkIM13a25alnKorDeVkaqz+Ba98Ca4gW2i2dtI8C+rPPVhDXeMP9LQYPmOZdtiTqsgS9SxP9ZDgKm3RsoiA9WCBom201sb3majMg4cbo+hoYuWOl8LgGdRDjDPhiG403S4KoByms+mFmcJS3EEKOhEhQmzsI/9iktyf5A0JbVK59at16YRISt6hKhVIasvMt+jW08NAjEG5vslPeZKbIKx/nqoSI4MpvQsRbpia3hR6M6N7veX4ZgPdY2VhonDkH73r5XWDs78xTIKV7VXVWKSiHI5GCz9fwqtt078YLULlglZSTA== 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=ETFU+3WB6DWGPIgXCLdBycQG5ceCkn45dh44wnWhuxc=; b=hiUFLHNWTI0CXw8XAzmSibs2yrJrXIbz7WUYDhW3JjL3C/v0E+j34aY1ocRvwYh3kfaKDodr10Zdx9xSORlATRUEkEOIse9tYwMJZTyVMcbXVLFGIsa84r8BYKA2WUmVjNQg0GZE6fDuih7IHCHopReWxBmGghE9e/zAaV2XjXEf3404719K64mJzX4v2jnWXN0Q00Bk6aDKkSt8E4jDSxxRicNMDGeFh0y5cJ0yyb50mAvr0ZgAMz2OaR1H+/i7ExIbt661YqH72mb6NKc8Q+1OYFpZOLTjdSw0hV9XWKE0mDQWCf2Em2iAdZMsPnzIxUZ01ZYrsZUeICiqhZVi3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM6PR11MB4738.namprd11.prod.outlook.com (2603:10b6:5:2a3::18) by CH0PR11MB5377.namprd11.prod.outlook.com (2603:10b6:610:b8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Tue, 1 Mar 2022 08:10:12 +0000 Received: from DM6PR11MB4738.namprd11.prod.outlook.com ([fe80::1527:223f:8a2d:4f5e]) by DM6PR11MB4738.namprd11.prod.outlook.com ([fe80::1527:223f:8a2d:4f5e%8]) with mapi id 15.20.5038.014; Tue, 1 Mar 2022 08:10:12 +0000 From: "Li, Zhihao" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul1" , "Fu, Siyuan" Subject: FW: [edk2-devel] [PATCH v4 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Topic: [edk2-devel] [PATCH v4 1/1] UefiCpuPkg: Extend SMM CPU Service with rendezvous support. Thread-Index: AQHYKLUsfGMY6C7FI0iK1O06T35XlKyqL3CAgAAAHrA= Date: Tue, 1 Mar 2022 08:10:12 +0000 Message-ID: References: <20220223125902.3649-1-zhihao.li@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 86e9de04-5e14-4c97-5fce-08d9fb5ae8f2 x-ms-traffictypediagnostic: CH0PR11MB5377:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DA3LestNm1k/RX3jtOfctxLUkE4ECrXySjuvT0qzFUrhTJDrynXWsBUsIJCw7Tf2HbNe297JMSrsRXYoeh8KC2ZxC5Zu6AxYuW09UOoEtFLVGf+PMsQfB/46F30gYmQQYWiMTT4Qhg0zyp48ejq4WpIBuoC+MGzWwPSAgKlTeugNpm2HVtNkNl8hvJ2ou/tidejYRtF3JcWq9j7K1FshCGaKMZgnCvp5NNI2XVSJusA3hkKfgt+gWYwZSpqO36OOxLlV3nEihT6GPKgulhzikR/Yh9q911xPNGbvz5iM74TnuDjMlzclQ+r5X9tay7oaqJyCi9HzE7M9GMGioWO09Zof+s1+3Naag35BvHCjfbh+saGSjCtwRiEU3hnUnGIQ3yj3gv/RDgD/4zH/owyGOBGarESALjWqNfKqGT/yTYLCsV5rVfWS67+xCEL7XKt0dxw8ciPYhTt3mZmRh/K5h5qWiIofxhb0HuL5ZS944ntNm1BwvI88kdoMiKb09/VSIqGr+Prs5oJmsmactu/pnxr5XnX1O6kXZ2I7lnAByh8O37pZZntT9Otfx4x8Fbf6G4VNT3saxiOrjgre55EKh30W1PJt1VNJYWCKbTy5PuZnQmZJK7PkZRjfQctYW3N0YMitdXctBhVMUCWKaOJsBWw8MTm2/SeKh39KGfiZFYbVLQZPfRbuk5zVDmtb02cbtRZVGbh7Z9iYQh+hKvF99WvyvkQiREuSaDB2wl1h74MBIvRrpsCvnxQ1jh/wgrWh0Ztlo45jL9BfgFMD7/rKSE6kDRIbUdFrr3neLzTtU4nOhe00GorcjLXfF2AEcRdhzAG9IyZPB2Kp0O1a6/fOHQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4738.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(86362001)(38070700005)(5660300002)(107886003)(19627235002)(4326008)(316002)(7696005)(8936002)(52536014)(66446008)(66476007)(66946007)(66556008)(64756008)(76116006)(8676002)(2906002)(30864003)(33656002)(186003)(26005)(6506007)(53546011)(71200400001)(82960400001)(966005)(122000001)(55016003)(83380400001)(508600001)(54906003)(110136005)(9686003)(38100700002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEQwcU9wSzluZlgzTWpSV3BiVEpVOU9Eb1NnYXhaQ1dYY3dkcWdSckhWVUkr?= =?utf-8?B?NytsR2tLUVFrL2k4cUtJdGpHMHVxcXhvMk13aTdvMzFTWG9jeDVMNDltR1Ar?= =?utf-8?B?cVFLTmpxSjhwMk1YQUlLcE81dkM1cmtRTGVQWTVFOUg1VXdnbk5XN25NQm5i?= =?utf-8?B?OEE1Z1d6T1ZGeGx3YmlPMUdBUXFuODYxaldoNW9SRmVLYVJpZjZZMVVqVWI0?= =?utf-8?B?NlI3QStuYUNkQzVSaytXcmk5ZE1VblBsa3lNKzdEWEtZUUZLSHp5WWI1OWM3?= =?utf-8?B?UzJBM2FpSGdyVzYwYzREZWRWVWd6TmpUcGw4UTVKRTkwdEhydnc3UVoyT0Iv?= =?utf-8?B?aklLaXNVREVVakg3NE1ramVLMkp0M25WSXZFQ0RQL1NkajAvdm1DMHp4ZkUz?= =?utf-8?B?Z3BHZTYrVk85ZnptRTdxOVhyL3hxN1dFT2tPd0Y2SlRmT2VJVHNvSk1jTFlN?= =?utf-8?B?MllyTlhOcXl3dFBrSjA1UGNWQjN4ZlhPUjJsWjYrMy9idUJVdFdMVzVoUlhv?= =?utf-8?B?cmNpTDIzRDk0ZU5pOWUvTkZtZXk2OGFtVW9WdndNeE50WG96cFpLclVWaVAv?= =?utf-8?B?cHp5NjBNVUw4dzIyeEZacm1BSW9SNHlJU0lzdHhRL1U2cWpyNWQyeElvV3RZ?= =?utf-8?B?c1RpNGEyQ0Z0M29JaEh1c1hoUmZUWndpNGNhZjJIT0ZodXRUZWh3MHpNSmRN?= =?utf-8?B?VGtLUkpUU0RCUnE5blA0bDlmOVdxWlg4dXV2QUkrNjlYVElqekt0UDBhV2hs?= =?utf-8?B?L1VqQVcyNStIdlIwSzBCc3lIeWduQlRRYTFwQ1VOb1pvUFl5UmNOMmRTYW1I?= =?utf-8?B?UkQzaHJ4SDhrMFRvNkNBZkZjSzFTLzBFNUlxUlZER3dYWU9MWThOdWMrYkNp?= =?utf-8?B?SlFUTlU2cDhCNURtOFZEYVp1aHhFSHhMb2xvTkwrVWZsTm9NUEt4QWptRjZT?= =?utf-8?B?M0NTL3U5U2lpWitnMUpQZFZKYUJLTVdLU3pUbkhaRjJCeSswRGc4Tkx6N25L?= =?utf-8?B?TWdzYUpTRVRxMnpDTGt5MWtMVXFrRzEwbnFSTVFGd09KVWhNdVg0U1NLWDVF?= =?utf-8?B?WWNnSXA4dVM1N2xSWFlBdmhsMkdhbjdPcVovUEd4M0o2b3lXNjl5MVJvRnly?= =?utf-8?B?ZmxLS2N5VGdoUEZuTFg4NzRka3c3aEZTT3FiblphRU5hTi9EK0IxeG83cFBx?= =?utf-8?B?cllPNFVwSTNTVkZwK2tyc0FFV3hYazcrRGVValZwNzFTMlN0VGhDcmZ0bHl5?= =?utf-8?B?ZHY2a1o2VmhmRFM1OHZCbXU2RTI4WVBqOFEzZnVyTUI0b2RrenFBWndjOEE4?= =?utf-8?B?dlhuWjd1QWlHYmZnLzJTUmNQVXN3ZW13SFk1Q0FjUWhZY1RvR3I1WGsvd2tF?= =?utf-8?B?dTJFcmo0L3RNc25zT1Y1SmFidjB3clp0YzdJSnN5Y09xWVEwUlkwVGM3THJ0?= =?utf-8?B?c3pCazlYT0FOQXRHaE1FamxDdFc2c1ZSYkdRVE5yTGNlL3J1RWZjWmc4czRa?= =?utf-8?B?QnNhNGVmZDd5NjFOY2JyZnRUWEN6WG9OTVF0aUR1VzFNOVhhUVBGMlpPYS95?= =?utf-8?B?RjNNRFRuTmVZYUpONmxNemhRTThibHUzbldZNUxUOURXQVExT1ozUDlUSlRH?= =?utf-8?B?Z0NOQmlvMktpVHY0ZWRaZlhnYXlCVXVYaXJWZXFOeDhmYUcwaEVpQ2c3dHZk?= =?utf-8?B?S2pSTFFHa09QQkM0dDBmYW5HZFpOQ0dVUFZsYTJ4cUs4UTVEblZQY0hIVmdF?= =?utf-8?B?OWJWMW02anNYWittSWZXVDJLanJqeFI4WUhoWHQvNXEvYmxPZk5BYWhRVGJE?= =?utf-8?B?V2JPbjFFREdZRkFFR3pnNklaUXE4bm9saXlxa0x0MkhSbHJBUERnSW9iekhz?= =?utf-8?B?WGh3WnRFVXFaK2tOdlROMjljUDdTd0dUR2p3dGMrWEtpM3k5dWZWaUdObDVO?= =?utf-8?B?MC9pWFdoWUUwL3YxYXp2TnNFcUxlV2t3SWorSDk5Y2tmeUpTOVBFc1IrVFJ6?= =?utf-8?B?MGVLcklrTm8vcDVPR3YrNk5CRkFEVlpCU1ZrV2dyUzJqM1VOMExLTENaRVBY?= =?utf-8?B?UEhwZEc5c0lNTklXbWMyWDFaTkNESk5aTWZ1NG5EV09KbVdtQlJNZXpEZmEw?= =?utf-8?B?MTdLZmswQ2ZYenZUbTJ4Zi9tT3FEenhLMXV4V1pKbzBVMjNFNitBbkMxNWxP?= =?utf-8?B?Qmc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4738.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86e9de04-5e14-4c97-5fce-08d9fb5ae8f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2022 08:10:12.1899 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NESbpD53T+4zXtDF7ZOSoOurqCq8ZywojeXGQbsf/NloAeAuIyHCAD3eof71V8hg7BAz3svKFLm0Mu+f4uC0MA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5377 Return-Path: zhihao.li@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MS4gSW5pdGlhbGl6ZVNtbUNwdVNlcnZpY2VzKCk6IHBsZWFzZSBrZWVwIHRoZSBBU1NFUlRfRUZJ X0VSUk9SIChTdGF0dXMpIGZvciBDcHVTZXJ2aWNlIHByb3RvY29sIGluc3RhbGxhdGlvbi4NCldp bGwgYWRkIGFzc2VydC4NCjIuIFNtbVdhaXRGb3JBcEFycml2YWwgKCk6IENhbiB5b3UgcmVtb3Zl IHRoZSBCbG9ja2luZ01vZGUgcGFyYW1ldGVyIGJlY2F1c2UgSSBjYW5ub3QgZmluZCBhbnkgaW52 b2NhdGlvbiB1c2luZyBGQUxTRSBhcyBwYXJhbWV0ZXIuDQpIYXZlIHJlbW92ZWQgaW4gcGF0Y2h2 NC4NCjMuIG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uOiB3aGVyZSBp cyB0aGlzIHZhcmlhYmxlIGFzc2lnbmVkIHRvIFRSVUU/DQpIYXZlIGFkZGVkIGluIHBhdGNodjQu DQo0LiBTbW1DcHVSZW5kZXp2b3VzUHJvdG9jb2xOb3RpZnkoKTogRnVuY3Rpb24gaGVhZGVyIGlz IGluY29ycmVjdCAoSSBzYXcgIlJlcG9ydCBTdGF0dXMgQ29kZSIpLiBDYW4geW91IGFkZCBjb21t ZW50cyB0byBleHBsYWluIHdoeSBwcm90b2NvbCBub3RpZmljYXRpb24gaXMgbmVlZGVkIGluc3Rl YWQgb2YgdXNpbmcgbGlicmFyeSBjb25zdHJ1Y3RvciB0byBsb2NhdGUgdGhlIHByb3RvY29sPw0K RmVhdHVyZSBuZWVkIHRvIHN1cHBvcnQgTU1fU1RBTkRBTE9ORSBhbmQgRFhFX1NNTV9EUklWRVIg ZHJpdmVyLiBUaGV5IGhhdmUgZGlmZmVyZW50IGVudHJ5IGZ1bmN0aW9uIHBhcmFtZXRlci4gV2ls bCBhZGQgY29tbWVudCBpbiBmdW5jdGlvbiBoZWFkZXIuDQo1LiBMaWI6IFNtbVdhaXRGb3JBbGxQ cm9jZXNzb3IoKTogQ2FuIHlvdSBhZGQgY29tbWVudHMgdG8gZXhwbGFpbiB3aHkgKG1TbW1DcHVS ZW5kZXp2b3VzID09IE5VTEwpIGlzIGEgc3VjY2Vzcz8gQW5kIHRoaXMgQVBJIGlzIHRoZSBzYW1l IGFzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBuYW1lIGluIFBpU21tQ3B1RHhlIGRyaXZlci4gSXQg bWF5IGNhdXNlIGNvbmZ1c2luZy4gQ2FuIHlvdSBjaGFuZ2UgdGhhdCBpbnRlcm5hbCBmdW5jdGlv biB0byB1c2UgYSBkaWZmZXJlbnQgbmFtZT8NCjEpIElmIFNtbUNwdVJlbmRlenZvdXMgc2Vydmlj ZSBkbyBub3QgbG9jYXRlLCBpdCBtZWFucyB0aGUgcGxhdGZvcm0gaGF2ZSBub3Qgc2V0dXAgYW5k IGluZmx1ZW5jZSBjcHUgcmVuZGV6dm91cy4gV2lsbCBhZGQgY29tbWVudCBpbiBmdW5jdGlvbiBo ZWFkZXIuDQoyKSBGb3IgdGhpcywgSSBwbGFuIHRvIG1vZGlmaWVkIG5hbWUgb2YgU21tV2FpdEZv ckFsbFByb2Nlc3NvciBpbiBTbW1DcHVSZW5kZXp2b3VzTGliIHRvIGJlIFNtbUNwdVJlbmRlenZv dXMoKSBhbmQga2VlcCBQaVNtbUNwdUR4ZSBkcml2ZXIgdGhlIHNhbWUuDQoNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+ IA0KU2VudDogVHVlc2RheSwgTWFyY2ggMSwgMjAyMiAzOjQ2IFBNDQpUbzogTGksIFpoaWhhbyA8 emhpaGFvLmxpQGludGVsLmNvbT4NClN1YmplY3Q6IEZXOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0 IDEvMV0gVWVmaUNwdVBrZzogRXh0ZW5kIFNNTSBDUFUgU2VydmljZSB3aXRoIHJlbmRlenZvdXMg c3VwcG9ydC4NCg0KDQoNCkJlc3QgUmVnYXJkcw0KU2l5dWFuIA0KDQotLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgTGksIFpoaWhhbw0KU2VudDogMjAyMuW5tDLmnIgyM+aXpSAyMDo1 OQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGlu dGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1 bDEua3VtYXJAaW50ZWwuY29tPjsgRnUsIFNpeXVhbiA8c2l5dWFuLmZ1QGludGVsLmNvbT4NClN1 YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjQgMS8xXSBVZWZpQ3B1UGtnOiBFeHRlbmQgU01N IENQVSBTZXJ2aWNlIHdpdGggcmVuZGV6dm91cyBzdXBwb3J0Lg0KDQpSRUbvvJogaHR0cHM6Ly9i dWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zODE1DQoNClRoaXMgcGF0Y2gg ZGVmaW5lIGEgbmV3IFByb3RvY29sIHdpdGggdGhlIG5ldyBzZXJ2aWNlcyBTbW1XYWl0Rm9yQWxs UHJvY2Vzc29yKCksIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IFNNSSBoYW5kbGVyIHRvIG9wdGlvbmFs bHkgd2FpdCBmb3Igb3RoZXIgQVBzIHRvIGNvbXBsZXRlIFNNTSByZW5kZXp2b3VzIGluIHJlbGF4 ZWQgQVAgbW9kZS4NCg0KQSBuZXcgbGlicmFyeSBTbW1DcHVSZW5kZXp2b3VzTGliIGlzIHByb3Zp ZGVkIHRvIGFic3RyYWN0IHRoZSBzZXJ2aWNlIGludG8gbGlicmFyeSBBUEkgdG8gc2ltcGxlIFNN SSBoYW5kbGVyIGNvZGUuDQoNClBhdGNoX3YzIG1vZGlmaWVkIHRvIHBhc3MgQ0kgdGVzdC4gKDEp QWRkIFNtbUNwdVJlbmRlenZvdXNMaWIuaW5mIGludG8gVWVmaUNwdVBrZy5kc2MgPExpYnJhcnlD bGFzc2VzPi88Q29tcG9uZW50PiAoMilBZGQgU21tQ3B1UmVuZGV6dm91c0xpYi5oIGluIFVlZmlD cHVQa2cuZGVjIFtMaWJyYXJ5Y2xhc3Nlcy5JQTMyLCBMaWJyYXJ5Y2xhc3Nlcy54NjRdICgzKSBT b21lIFVuY3J1c3RpZnlDaGVjayBtb2RpZmljYXRpb25zLg0KDQpDYzogRXJpYyBEb25nIDxlcmlj LmRvbmdAaW50ZWwuY29tPg0KQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCkNjOiBSYWh1 bCBLdW1hciA8cmFodWwxLmt1bWFyQGludGVsLmNvbT4NCkNjOiBTaXl1YW4gRnUgPHNpeXVhbi5m dUBpbnRlbC5jb20+DQoNClNpZ25lZC1vZmYtYnk6IFpoaWhhbyBMaSA8emhpaGFvLmxpQGludGVs LmNvbT4NCi0tLQ0KIFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGliL1NtbUNw dVJlbmRlenZvdXNMaWIuYyAgIHwgOTggKysrKysrKysrKysrKysrKysrKysNCiBVZWZpQ3B1UGtn L1BpU21tQ3B1RHhlU21tL0NwdVNlcnZpY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDY4 ICsrKysrKysrKysrKystDQogVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9NcFNlcnZpY2UuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCArKystDQogVWVmaUNwdVBrZy9JbmNsdWRlL0xp YnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi5oICAgICAgICAgICAgICAgfCAyNyArKysrKysNCiBV ZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oICAgICAgICAgICAgICAg ICAgICB8IDM2ICsrKysrKy0NCiBVZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xp Yi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZiB8IDM1ICsrKysrKysNCiBVZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmggICAgICAgICAgICAgICAgICAgICB8IDI5ICsrKysr LQ0KIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mICAgICAgICAg ICAgICAgICAgIHwgIDUgKy0NCiBVZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICstDQogVWVmaUNwdVBrZy9VZWZpQ3B1UGtn LmRzYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArDQogMTAgZmls ZXMgY2hhbmdlZCwgMzE2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6 dm91c0xpYi5jIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1 UmVuZGV6dm91c0xpYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAw Li4yMmY2OTRiNzdkNTENCi0tLSAvZGV2L251bGwNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9T bW1DcHVSZW5kZXp2b3VzTGliL1NtbUNwdVJlbmRlenZvdXNMaWIuYw0KQEAgLTAsMCArMSw5OCBA QA0KKy8qKiBAZmlsZQ0KDQorICBTTU0gQ1BVIFJlbmRlenZvdXMgc2V2aWNlIGltcGxlbWVudC4N Cg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCg0KKw0KDQorKiovDQoNCisNCg0KKyNpbmNsdWRlIDxCYXNlLmg+DQoNCisj aW5jbHVkZSA8VWVmaS5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KDQorI2lu Y2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L01tU2Vydmlj ZXNUYWJsZUxpYi5oPg0KDQorI2luY2x1ZGUgPFByb3RvY29sL1NtbUNwdVNlcnZpY2UuaD4NCg0K KyNpbmNsdWRlIDxMaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIuaD4NCg0KKw0KDQorU1RBVElD IEVES0lJX1NNTV9DUFVfUkVOREVaVk9VU19QUk9UT0NPTCAgKm1TbW1DcHVSZW5kZXp2b3VzID0g TlVMTDsNCg0KK1NUQVRJQyBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICptUmVn aXN0cmF0aW9uICAgICA9IE5VTEw7DQoNCisNCg0KKy8qKg0KDQorICBSZWdpc3RlciBzdGF0dXMg Y29kZSBjYWxsYmFjayBmdW5jdGlvbiBvbmx5IHdoZW4gUmVwb3J0IFN0YXR1cyBDb2RlIA0KKyBw cm90b2NvbA0KDQorICBpcyBpbnN0YWxsZWQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBQcm90b2Nv bCAgIFBvaW50cyB0byB0aGUgcHJvdG9jb2wncyB1bmlxdWUgaWRlbnRpZmllci4NCg0KKyAgQHBh cmFtW2luXSBJbnRlcmZhY2UgIFBvaW50cyB0byB0aGUgaW50ZXJmYWNlIGluc3RhbmNlLg0KDQor ICBAcGFyYW1baW5dIEhhbmRsZSAgICAgVGhlIGhhbmRsZSBvbiB3aGljaCB0aGUgaW50ZXJmYWNl IHdhcyBpbnN0YWxsZWQuDQoNCisNCg0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgTm90aWZpY2F0 aW9uIHJ1bnMgc3VjY2Vzc2Z1bGx5Lg0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VG SUFQSQ0KDQorU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sTm90aWZ5ICgNCg0KKyAgSU4gQ09OU1Qg RUZJX0dVSUQgICAgKlByb3RvY29sLA0KDQorICBJTiAgICAgICBWT0lEICAgICAgICAqSW50ZXJm YWNlLA0KDQorICBJTiAgICAgICBFRklfSEFORExFICBIYW5kbGUNCg0KKyAgKQ0KDQorew0KDQor ICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisNCg0KKyAgU3RhdHVzID0gZ01tc3QtPk1tTG9jYXRl UHJvdG9jb2wgKA0KDQorICAgICAgICAgICAgICAgICAgICAmZ0Vka2lpU21tQ3B1UmVuZGV6dm91 c1Byb3RvY29sR3VpZCwNCg0KKyAgICAgICAgICAgICAgICAgICAgTlVMTCwNCg0KKyAgICAgICAg ICAgICAgICAgICAgKFZPSUQgKiopJm1TbW1DcHVSZW5kZXp2b3VzDQoNCisgICAgICAgICAgICAg ICAgICAgICk7DQoNCisgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQoNCisNCg0KKyAgcmV0 dXJuIEVGSV9TVUNDRVNTOw0KDQorfQ0KDQorDQoNCisvKioNCg0KKyAgVGhpcyByb3V0aW5lIHdh aXQgZm9yIGFsbCBBUCBwcm9jZXNzb3JzIHRvIGFycml2ZSBpbiBTTU0uDQoNCisNCg0KKyAgQHBh cmFtW2luXSBCbG9ja2luZ01vZGUgIEJsb2NraW5nIG1vZGUgb3Igbm9uLWJsb2NraW5nIG1vZGUu DQoNCisNCg0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgQWxsIGF2YWlhYmxlIEFQcyBhcnJpdmVk Lg0KDQorICBAcmV0dmFsIEVGSV9USU1FT1VUICBXYWl0IGZvciBhbGwgQVBzIHVudGlsIHRpbWVv dXQuDQoNCisgIEByZXR2YWwgT1RIRVIgICAgICAgIEZhaWwgdG8gcmVnaXN0ZXIgU01NIENQVSBS ZW5kZXp2b3VzIHNlcnZpY2UgUHJvdG9jb2wuDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VG SUFQSQ0KDQorU21tV2FpdEZvckFsbFByb2Nlc3NvciAoDQoNCisgIElOIEJPT0xFQU4gIEJsb2Nr aW5nTW9kZQ0KDQorICApDQoNCit7DQoNCisgIEVGSV9TVEFUVVMgIFN0YXR1czsNCg0KKw0KDQor ICBpZiAoKG1SZWdpc3RyYXRpb24gPT0gTlVMTCkgJiYgKG1TbW1DcHVSZW5kZXp2b3VzID09IE5V TEwpKSB7DQoNCisgICAgLy8NCg0KKyAgICAvLyBMb2NhdGUgU01NIGNwdSByZW5kZXp2b3VzIHBy b3RvY29sIGZvciB0aGUgZmlyc3QgdGltZSBleGVjdXRlIHRoZSBmdW5jdGlvbi4NCg0KKyAgICAv Lw0KDQorICAgIFN0YXR1cyA9IGdNbXN0LT5NbUxvY2F0ZVByb3RvY29sICgNCg0KKyAgICAgICAg ICAgICAgICAgICAgICAmZ0Vka2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCwNCg0KKyAg ICAgICAgICAgICAgICAgICAgICBOVUxMLA0KDQorICAgICAgICAgICAgICAgICAgICAgIChWT0lE ICoqKSZtU21tQ3B1UmVuZGV6dm91cw0KDQorICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisg ICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgICAgU3RhdHVzID0gZ01tc3QtPk1t UmVnaXN0ZXJQcm90b2NvbE5vdGlmeSAoDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAmZ0Vk a2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCwNCg0KKyAgICAgICAgICAgICAgICAgICAg ICAgIFNtbUNwdVJlbmRlenZvdXNQcm90b2NvbE5vdGlmeSwNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICZtUmVnaXN0cmF0aW9uDQoNCisgICAgICAgICAgICAgICAgICAgICAgICApOw0KDQor ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgICAgICByZXR1cm4gU3RhdHVz Ow0KDQorICAgICAgfQ0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmIChtU21tQ3B1UmVu ZGV6dm91cyA9PSBOVUxMKSB7DQoNCisgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoN CisNCg0KKyAgU3RhdHVzID0gbVNtbUNwdVJlbmRlenZvdXMtPldhaXRGb3JBbGxQcm9jZXNzb3Ig KA0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtU21tQ3B1UmVuZGV6dm91cywN Cg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxvY2tpbmdNb2RlDQoNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgIHJldHVybiBTdGF0dXM7DQoNCit9 DQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVNlcnZpY2UuYyBi L1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1U2VydmljZS5jDQppbmRleCA1ZDYyNGY4ZTll ZDYuLmUwOTY5NzBhYzYyZSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v Q3B1U2VydmljZS5jDQorKysgYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVNlcnZpY2Uu Yw0KQEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQoNCiBJbXBsZW1lbnRhdGlvbiBvZiBTTU0g Q1BVIFNlcnZpY2VzIFByb3RvY29sLg0KDQogDQoNCi1Db3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE1 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCitDb3B5cmln aHQgKGMpIDIwMTEgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQoNCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K DQogDQoNCiAqKi8NCg0KQEAgLTIwLDYgKzIwLDEzIEBAIEVGSV9TTU1fQ1BVX1NFUlZJQ0VfUFJP VE9DT0wgIG1TbW1DcHVTZXJ2aWNlID0gew0KICAgU21tUmVnaXN0ZXJFeGNlcHRpb25IYW5kbGVy DQoNCiB9Ow0KDQogDQoNCisvLw0KDQorLy8gRURLSUkgU01NIENQVSBSZW5kZXp2b3VzIFNlcnZp Y2UgUHJvdG9jb2wgaW5zdGFuY2UNCg0KKy8vDQoNCitFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNf UFJPVE9DT0wgIG1TbW1DcHVSZW5kZXp2b3VzU2VydmljZSA9IHsNCg0KKyAgU21tV2FpdEZvckFs bFByb2Nlc3Nvcg0KDQorfTsNCg0KKw0KDQogLyoqDQoNCiAgIEdldHMgcHJvY2Vzc29yIGluZm9y bWF0aW9uIG9uIHRoZSByZXF1ZXN0ZWQgcHJvY2Vzc29yIGF0IHRoZSBpbnN0YW50IHRoaXMgY2Fs bCBpcyBtYWRlLg0KDQogDQoNCkBAIC0zNTAsNiArMzU3LDcgQEAgU21tUmVnaXN0ZXJFeGNlcHRp b25IYW5kbGVyICgNCiAgIEBwYXJhbSBJbWFnZUhhbmRsZSBUaGUgZmlybXdhcmUgYWxsb2NhdGVk IGhhbmRsZSBmb3IgdGhlIEVGSSBpbWFnZS4NCg0KIA0KDQogICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgIEVGSSBTTU0gQ1BVIFNlcnZpY2VzIFByb3RvY29sIHdhcyBpbnN0YWxsZWQgc3VjY2Vzc2Z1 bGx5Lg0KDQorICBAcmV0dmFsIE9USEVSICAgICAgICAgIEZhaWwgdG8gaW5zdGFsbCBQcm90b2Nv bC4NCg0KICoqLw0KDQogRUZJX1NUQVRVUw0KDQogSW5pdGlhbGl6ZVNtbUNwdVNlcnZpY2VzICgN Cg0KQEAgLTM2NCw2ICszNzIsNjQgQEAgSW5pdGlhbGl6ZVNtbUNwdVNlcnZpY2VzICgNCiAgICAg ICAgICAgICAgICAgICAgIEVGSV9OQVRJVkVfSU5URVJGQUNFLA0KDQogICAgICAgICAgICAgICAg ICAgICAmbVNtbUNwdVNlcnZpY2UNCg0KICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKyAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgIHJldHVybiBTdGF0dXM7DQoNCisgIH0NCg0K Kw0KDQorICBTdGF0dXMgPSBnU21zdC0+U21tSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlICgNCg0K KyAgICAgICAgICAgICAgICAgICAgJkhhbmRsZSwNCg0KKyAgICAgICAgICAgICAgICAgICAgJmdF ZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1aWQsDQoNCisgICAgICAgICAgICAgICAgICAg IEVGSV9OQVRJVkVfSU5URVJGQUNFLA0KDQorICAgICAgICAgICAgICAgICAgICAmbVNtbUNwdVJl bmRlenZvdXNTZXJ2aWNlDQoNCisgICAgICAgICAgICAgICAgICAgICk7DQoNCiAgIEFTU0VSVF9F RklfRVJST1IgKFN0YXR1cyk7DQoNCiAgIHJldHVybiBTdGF0dXM7DQoNCiB9DQoNCisNCg0KKy8q Kg0KDQorICBXYWl0IGZvciBhbGwgcHJvY2Vzc29ycyBlbnRlcnJpbmcgU01NIHVudGlsIGFsbCBD UFVzIGFyZSBhbHJlYWR5IHN5bmNocm9uaXplZCBvciBub3QuDQoNCisNCg0KKyAgSWYgQmxvY2tp bmdNb2RlIGlzIEZhbHNlLCB0aW1lb3V0IHZhbHVlIGlzIHplcm8uDQoNCisNCg0KKyAgQHBhcmFt IFRoaXMgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNf UFJPVE9DT0wgaW5zdGFuY2UuDQoNCisgIEBwYXJhbSBCbG9ja2luZ01vZGUgIEJsb2NraW5nIG1v ZGUgb3Igbm9uLWJsb2NraW5nIG1vZGUuDQoNCisNCg0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg QWxsIGF2YWlhYmxlIEFQcyBhcnJpdmVkLg0KDQorICBAcmV0dmFsIEVGSV9USU1FT1VUICBXYWl0 IGZvciBhbGwgQVBzIHVudGlsIHRpbWVvdXQuDQoNCisNCg0KKyoqLw0KDQorRUZJX1NUQVRVUw0K DQorRUZJQVBJDQoNCitTbW1XYWl0Rm9yQWxsUHJvY2Vzc29yICgNCg0KKyAgSU4gRURLSUlfU01N X0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MICAqVGhpcywNCg0KKyAgSU4gQk9PTEVBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCbG9ja2luZ01vZGUNCg0KKyAgKQ0KDQorew0KDQorICBFRklf U1RBVFVTICBTdGF0dXM7DQoNCisNCg0KKyAgLy8NCg0KKyAgLy8gUmV0dXJuIHN1Y2Nlc3MgaW1t ZWRpYXRlbHkgaWYgYWxsIENQVXMgYXJlIGFscmVhZHkgc3luY2hyb25pemVkLg0KDQorICAvLw0K DQorICBpZiAobVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdpdGhFeGNlcHRpb24pIHsNCg0K KyAgICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCg0KKyAgICBnb3RvIE9OX0VYSVQ7DQoNCisgIH0N Cg0KKw0KDQorICBpZiAoIUJsb2NraW5nTW9kZSkgew0KDQorICAgIFN0YXR1cyA9IEVGSV9USU1F T1VUOw0KDQorICAgIGdvdG8gT05fRVhJVDsNCg0KKyAgfQ0KDQorDQoNCisgIC8vDQoNCisgIC8v IFRoZXJlIGFyZSBzb21lIEFQcyBvdXRzaWRlIFNNTSwgV2FpdCBmb3IgYWxsIGF2YWlhYmxlIEFQ cyB0byBhcnJpdmUuDQoNCisgIC8vDQoNCisgIFNtbVdhaXRGb3JBcEFycml2YWwgKCk7DQoNCisg IFN0YXR1cyA9IG1TbW1NcFN5bmNEYXRhLT5BbGxBcEFycml2ZWRXaXRoRXhjZXB0aW9uID8gRUZJ X1NVQ0NFU1MgOiANCisgRUZJX1RJTUVPVVQ7DQoNCisNCg0KK09OX0VYSVQ6DQoNCisgIGlmICgh bVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdpdGhFeGNlcHRpb24pIHsNCg0KKyAgICBERUJV RyAoKERFQlVHX0lORk8sICJFZGtpaVNtbVdhaXRGb3JBbGxBcEFycml2YWw6IFRpbWVvdXQgdG8g d2FpdCANCisgYWxsIEFQcyBhcnJpdmFsXG4iKSk7DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4g U3RhdHVzOw0KDQorfQ0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9N cFNlcnZpY2UuYyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vTXBTZXJ2aWNlLmMNCmluZGV4 IDg4MmRlZTRmZTI0Ni4uMTNjMmNiOGRhNGMzIDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9QaVNt bUNwdUR4ZVNtbS9NcFNlcnZpY2UuYw0KKysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9N cFNlcnZpY2UuYw0KQEAgLTEsNyArMSw3IEBADQogLyoqIEBmaWxlDQoNCiBTTU0gTVAgc2Vydmlj ZSBpbXBsZW1lbnRhdGlvbg0KDQogDQoNCi1Db3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIxLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCitDb3B5cmlnaHQgKGMp IDIwMDkgLSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQoNCiBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KDQogDQoNCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KDQpAQCAtMjkzLDEwICsyOTMsMTQgQEAgU21tV2FpdEZvckFwQXJyaXZhbCAoDQog ICAvLyBTeW5jIHdpdGggQVBzIDFzdCB0aW1lb3V0DQoNCiAgIC8vDQoNCiAgIGZvciAoVGltZXIg PSBTdGFydFN5bmNUaW1lciAoKTsNCg0KLSAgICAgICAhSXNTeW5jVGltZXJUaW1lb3V0IChUaW1l cikgJiYgIShMbWNlRW4gJiYgTG1jZVNpZ25hbCkgJiYNCg0KLSAgICAgICAhQWxsQ3B1c0luU21t V2l0aEV4Y2VwdGlvbnMgKEFSUklWQUxfRVhDRVBUSU9OX0JMT0NLRUQgfCBBUlJJVkFMX0VYQ0VQ VElPTl9TTUlfRElTQUJMRUQpOw0KDQorICAgICAgICFJc1N5bmNUaW1lclRpbWVvdXQgKFRpbWVy KSAmJiAhKExtY2VFbiAmJiBMbWNlU2lnbmFsKTsNCg0KICAgICAgICApDQoNCiAgIHsNCg0KKyAg ICBtU21tTXBTeW5jRGF0YS0+QWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbiA9IA0KKyBBbGxDcHVz SW5TbW1XaXRoRXhjZXB0aW9ucyAoQVJSSVZBTF9FWENFUFRJT05fQkxPQ0tFRCB8IA0KKyBBUlJJ VkFMX0VYQ0VQVElPTl9TTUlfRElTQUJMRUQpOw0KDQorICAgIGlmIChtU21tTXBTeW5jRGF0YS0+ QWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbikgew0KDQorICAgICAgYnJlYWs7DQoNCisgICAgfQ0K DQorDQoNCiAgICAgQ3B1UGF1c2UgKCk7DQoNCiAgIH0NCg0KIA0KDQpAQCAtMzMwLDEwICszMzQs MTQgQEAgU21tV2FpdEZvckFwQXJyaXZhbCAoDQogICAgIC8vIFN5bmMgd2l0aCBBUHMgMm5kIHRp bWVvdXQuDQoNCiAgICAgLy8NCg0KICAgICBmb3IgKFRpbWVyID0gU3RhcnRTeW5jVGltZXIgKCk7 DQoNCi0gICAgICAgICAhSXNTeW5jVGltZXJUaW1lb3V0IChUaW1lcikgJiYNCg0KLSAgICAgICAg ICFBbGxDcHVzSW5TbW1XaXRoRXhjZXB0aW9ucyAoQVJSSVZBTF9FWENFUFRJT05fQkxPQ0tFRCB8 IEFSUklWQUxfRVhDRVBUSU9OX1NNSV9ESVNBQkxFRCk7DQoNCisgICAgICAgICAhSXNTeW5jVGlt ZXJUaW1lb3V0IChUaW1lcik7DQoNCiAgICAgICAgICApDQoNCiAgICAgew0KDQorICAgICAgbVNt bU1wU3luY0RhdGEtPkFsbEFwQXJyaXZlZFdpdGhFeGNlcHRpb24gPSANCisgQWxsQ3B1c0luU21t V2l0aEV4Y2VwdGlvbnMgKEFSUklWQUxfRVhDRVBUSU9OX0JMT0NLRUQgfCANCisgQVJSSVZBTF9F WENFUFRJT05fU01JX0RJU0FCTEVEKTsNCg0KKyAgICAgIGlmIChtU21tTXBTeW5jRGF0YS0+QWxs QXBBcnJpdmVkV2l0aEV4Y2VwdGlvbikgew0KDQorICAgICAgICBicmVhazsNCg0KKyAgICAgIH0N Cg0KKw0KDQogICAgICAgQ3B1UGF1c2UgKCk7DQoNCiAgICAgfQ0KDQogICB9DQoNCkBAIC0xODg3 LDYgKzE4OTUsOCBAQCBJbml0aWFsaXplTXBTeW5jRGF0YSAoDQogICAgICptU21tTXBTeW5jRGF0 YS0+SW5zaWRlU21tICAgICA9IEZBTFNFOw0KDQogICAgICptU21tTXBTeW5jRGF0YS0+QWxsQ3B1 c0luU3luYyA9IEZBTFNFOw0KDQogDQoNCisgICAgbVNtbU1wU3luY0RhdGEtPkFsbEFwQXJyaXZl ZFdpdGhFeGNlcHRpb24gPSBGQUxTRTsNCg0KKw0KDQogICAgIGZvciAoQ3B1SW5kZXggPSAwOyBD cHVJbmRleCA8IGdTbW1DcHVQcml2YXRlLT5TbW1Db3JlRW50cnlDb250ZXh0Lk51bWJlck9mQ3B1 czsgQ3B1SW5kZXgrKykgew0KDQogICAgICAgbVNtbU1wU3luY0RhdGEtPkNwdURhdGFbQ3B1SW5k ZXhdLkJ1c3kgPQ0KDQogICAgICAgICAoU1BJTl9MT0NLICopKChVSU5UTiltU21tQ3B1U2VtYXBo b3Jlcy5TZW1hcGhvcmVDcHUuQnVzeSArIG1TZW1hcGhvcmVTaXplICogQ3B1SW5kZXgpOw0KDQpk aWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9JbmNsdWRlL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xp Yi5oIGIvVWVmaUNwdVBrZy9JbmNsdWRlL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi5oDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi44MmU0NTllOTEwNmUNCi0t LSAvZGV2L251bGwNCisrKyBiL1VlZmlDcHVQa2cvSW5jbHVkZS9MaWJyYXJ5L1NtbUNwdVJlbmRl enZvdXNMaWIuaA0KQEAgLTAsMCArMSwyNyBAQA0KKy8qKiBAZmlsZQ0KDQorICBTTU0gQ1BVIFJl bmRlenZvdXMgbGlicmFyeSBoZWFkZXIgZmlsZS4NCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDIw MjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKw0KDQorKiovDQoN CisNCg0KKyNpZm5kZWYgU01NX0NQVV9SRU5ERVpWT1VTX0hfDQoNCisjZGVmaW5lIFNNTV9DUFVf UkVOREVaVk9VU19IXw0KDQorDQoNCisvKioNCg0KKyAgVGhpcyByb3V0aW5lIHdhaXQgZm9yIGFs bCBBUCBwcm9jZXNzb3JzIHRvIGFycml2ZSBpbiBTTU0uDQoNCisNCg0KKyAgQHBhcmFtW2luXSAg QmxvY2tpbmdNb2RlICBCbG9ja2luZyBtb2RlIG9yIG5vbi1ibG9ja2luZyBtb2RlLg0KDQorDQoN CisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgQWxsIHByb2Nlc3NvcnMgY2hlY2tlZCBpbiB0 byBTTU0uDQoNCisgIEByZXR2YWwgRUZJX1RJTUVPVVQgICAgICAgV2FpdCBmb3IgYWxsIEFQcyB1 bnRpbCB0aW1lb3V0Lg0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQor U21tV2FpdEZvckFsbFByb2Nlc3NvciAoDQoNCisgIElOICBCT09MRUFOICBCbG9ja2luZ01vZGUN Cg0KKyAgKTsNCg0KKw0KDQorI2VuZGlmDQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0luY2x1 ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oIGIvVWVmaUNwdVBrZy9JbmNsdWRlL1Byb3RvY29s L1NtbUNwdVNlcnZpY2UuaA0KaW5kZXggOTUyNzY3YWZjZTc1Li4zZDkzZDI0MzQwOWMgMTAwNjQ0 DQotLS0gYS9VZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oDQorKysg Yi9VZWZpQ3B1UGtnL0luY2x1ZGUvUHJvdG9jb2wvU21tQ3B1U2VydmljZS5oDQpAQCAtMSw3ICsx LDcgQEANCiAvKiogQGZpbGUNCg0KIFNNTSBDUFUgU2VydmljZSBwcm90b2NvbCBkZWZpbml0aW9u Lg0KDQogDQoNCi1Db3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCitDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDIyLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQogDQoNCiAqKi8NCg0KQEAgLTIw MCw0ICsyMDAsMzggQEAgc3RydWN0IF9FRklfU01NX0NQVV9TRVJWSUNFX1BST1RPQ09MIHsNCiAN Cg0KIGV4dGVybiBFRklfR1VJRCAgZ0VmaVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1aWQ7DQoNCiAN Cg0KKy8vDQoNCisvLyAgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MIHByb3ZpZGUg U01NIENQVQ0KDQorLy8gIHJlbmRlenZvdXMgc2VydmljZSBzdXBwb3J0Lg0KDQorLy8NCg0KKyNk ZWZpbmUgRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MX0dVSUQgXA0KDQorICB7IFwN Cg0KKyAgICAweGFhMDBkNTBiLCAweDQ5MTEsIDB4NDI4ZiwgeyAweGI5LCAweDFhLCAweGE1LCAw eDlkLCAweGRiLCAweDEzLCANCisgMHhlMiwgMHg0YyB9IFwNCg0KKyAgfQ0KDQorDQoNCit0eXBl ZGVmIHN0cnVjdCBfRURLSUlfU01NX0NQVV9SRU5ERVpWT1VTX1BST1RPQ09MIA0KK0VES0lJX1NN TV9DUFVfUkVOREVaVk9VU19QUk9UT0NPTDsNCg0KKw0KDQorLyoqDQoNCisgIFdhaXQgZm9yIGFs bCBBUHMgdG8gYXJyaXZlIFNNTSBtb2RlIGluIGdpdmVuIHRpbWVvdXQgY29uc3RyYWludC4NCg0K Kw0KDQorICBAcGFyYW1baW5dICBUaGlzICAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRo ZSBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgaW5zdGFuY2UuDQoNCisgIEBwYXJh bVtpbl0gIEJsb2NraW5nTW9kZSAgICAgICAgICBCbG9jayBvciBub24tYmxvY2sgbW9kZS4NCg0K Kw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgQWxsIEFQcyBoYXZlIGFy cml2ZWQgU01NIG1vZGUgZXhjZXB0IFNNSSBkaXNhYmxlZCBBUHMuDQoNCisgIEByZXR2YWwgRUZJ X1RJTUVPVVQgICAgICAgICAgICAgICBUaGVyZSBhcmUgQVBzIG5vdCBpbiBTTU0gbW9kZSBpbiBn aXZlbiB0aW1lb3V0IGNvbnN0cmFpbnQuDQoNCisNCg0KKyoqLw0KDQordHlwZWRlZg0KDQorRUZJ X1NUQVRVUw0KDQorKEVGSUFQSSAqRURLSUlfV0FJVF9GT1JfQUxMX1BST0NFU1NPUikoDQoNCisg IElOICBFREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgICpUaGlzLA0KDQorICBJTiAg Qk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja2luZ01vZGUNCg0KKyAgKTsN Cg0KKw0KDQorc3RydWN0IF9FREtJSV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgew0KDQor ICBFREtJSV9XQUlUX0ZPUl9BTExfUFJPQ0VTU09SICAgIFdhaXRGb3JBbGxQcm9jZXNzb3I7DQoN Cit9Ow0KDQorDQoNCitleHRlcm4gRUZJX0dVSUQgIGdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90 b2NvbEd1aWQ7DQoNCisNCg0KICNlbmRpZg0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIvU21tQ3B1UmVuZGV6dm91c0xpYi5pbmYgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZg0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uNTIzNzRiZjZlOWI0DQot LS0gL2Rldi9udWxsDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xp Yi9TbW1DcHVSZW5kZXp2b3VzTGliLmluZg0KQEAgLTAsMCArMSwzNSBAQA0KKyMjIEBmaWxlDQoN CisjIFNNTSBDUFUgUmVuZGV6dm91cyBzZXJ2aWNlIGxpYi4NCg0KKyMNCg0KKyMgVGhpcyBpcyBT TU0gQ1BVIHJlbmRlenZvdXMgc2VydmljZSBsaWIgdGhhdCB3YWl0IGZvciBhbGwNCg0KKyMgQVBz IHRvIGVudGVyIFNNTSBtb2RlLg0KDQorIw0KDQorIyBDb3B5cmlnaHQgKGMpIDIwMjIsIEludGVs IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMNCg0KKyMjDQoNCisNCg0KK1tE ZWZpbmVzXQ0KDQorICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1 DQoNCisgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IFNtbUNwdVJlbmRlenZvdXNM aWINCg0KKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gMTUwOUJiMzYtOUJhNC00 MzhCLUIxOTUtQWM1OTE0RGIxNEUyDQoNCisgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAg ICA9IERYRV9TTU1fRFJJVkVSDQoNCisgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9 IFNtbUNwdVJlbmRlenZvdXNMaWJ8TU1fU1RBTkRBTE9ORSBEWEVfU01NX0RSSVZFUg0KDQorDQoN CitbU291cmNlc10NCg0KKyAgU21tQ3B1UmVuZGV6dm91c0xpYi5jDQoNCisNCg0KK1tQYWNrYWdl c10NCg0KKyAgTWRlUGtnL01kZVBrZy5kZWMNCg0KKyAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRl Yw0KDQorDQoNCitbTGlicmFyeUNsYXNzZXNdDQoNCisgIEJhc2VMaWINCg0KKyAgRGVidWdMaWIN Cg0KKyAgTW1TZXJ2aWNlc1RhYmxlTGliDQoNCisNCg0KK1tQY2RdDQoNCisgIGdVZWZpQ3B1UGtn VG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tQXBTeW5jVGltZW91dCAgICAgICAgICAgICAgICAgIyMg Q09OU1VNRVMNCg0KKw0KDQorW1Byb3RvY29sc10NCg0KKyAgZ0Vka2lpU21tQ3B1UmVuZGV6dm91 c1Byb3RvY29sR3VpZA0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Q aVNtbUNwdUR4ZVNtbS5oIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNt bS5oDQppbmRleCAyNmQwN2M1YjVlYTAuLmM3ZjQ3YTFkMmZlNSAxMDA2NDQNCi0tLSBhL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KKysrIGIvVWVmaUNwdVBrZy9Q aVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oDQpAQCAtMSw3ICsxLDcgQEANCiAvKiogQGZp bGUNCg0KIEFnZW50IE1vZHVsZSB0byBsb2FkIG90aGVyIG1vZHVsZXMgdG8gZGVwbG95IFNNTSBF bnRyeSBWZWN0b3IgZm9yIFg4NiBDUFUuDQoNCiANCg0KLUNvcHlyaWdodCAoYykgMjAwOSAtIDIw MjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KK0NvcHly aWdodCAoYykgMjAwOSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCg0KIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQoNCiANCg0KIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQoNCkBAIC00MjgsNiArNDI4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0K ICAgdm9sYXRpbGUgU01NX0NQVV9TWU5DX01PREUgICAgRWZmZWN0aXZlU3luY01vZGU7DQoNCiAg IHZvbGF0aWxlIEJPT0xFQU4gICAgICAgICAgICAgIFN3aXRjaEJzcDsNCg0KICAgdm9sYXRpbGUg Qk9PTEVBTiAgICAgICAgICAgICAgKkNhbmRpZGF0ZUJzcDsNCg0KKyAgdm9sYXRpbGUgQk9PTEVB TiAgICAgICAgICAgICAgQWxsQXBBcnJpdmVkV2l0aEV4Y2VwdGlvbjsNCg0KICAgRUZJX0FQX1BS T0NFRFVSRSAgICAgICAgICAgICAgU3RhcnR1cFByb2NlZHVyZTsNCg0KICAgVk9JRCAgICAgICAg ICAgICAgICAgICAgICAgICAgKlN0YXJ0dXBQcm9jQXJnczsNCg0KIH0gU01NX0RJU1BBVENIRVJf TVBfU1lOQ19EQVRBOw0KDQpAQCAtMTQ4OCw0ICsxNDg5LDMwIEBAIElzUmVzdHJpY3RlZE1lbW9y eUFjY2VzcyAoDQogICBWT0lEDQoNCiAgICk7DQoNCiANCg0KKy8qKg0KDQorICBDaG9vc2UgYmxv Y2tpbmcgb3Igbm9uLWJsb2NraW5nIG1vZGUgdG8gV2FpdCBmb3IgYWxsIEFQcy4NCg0KKw0KDQor ICBAcGFyYW1baW5dICBUaGlzICAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBFREtJ SV9TTU1fQ1BVX1JFTkRFWlZPVVNfUFJPVE9DT0wgaW5zdGFuY2UuDQoNCisgIEBwYXJhbVtpbl0g IEJsb2NraW5nTW9kZSAgICAgICAgICBCbG9ja2luZyBvciBub24tYmxvY2tpbmcgbW9kZS4NCg0K Kw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgQWxsIEFQcyBoYXZlIGFy cml2ZWQgU01NIG1vZGUgZXhjZXB0IFNNSSBkaXNhYmxlZCBBUHMuDQoNCisgIEByZXR2YWwgRUZJ X1RJTUVPVVQgICAgICAgICAgICAgICBUaGVyZSBhcmUgQVBzIG5vdCBpbiBTTU0gbW9kZSBpbiBn aXZlbiB0aW1lb3V0IGNvbnN0cmFpbnQuDQoNCisNCg0KKyoqLw0KDQorRUZJX1NUQVRVUw0KDQor RUZJQVBJDQoNCitTbW1XYWl0Rm9yQWxsUHJvY2Vzc29yICgNCg0KKyAgSU4gIEVES0lJX1NNTV9D UFVfUkVOREVaVk9VU19QUk9UT0NPTCAgKlRoaXMsDQoNCisgIElOICBCT09MRUFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJsb2NraW5nTW9kZQ0KDQorICApOw0KDQorDQoNCisvKioNCg0K KyAgSW5zdXJlIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLCBubyBBUCB3aWxsIGV4ZWN1dGUg bm9ybWFsIG1vZGUgY29kZSBiZWZvcmUgZW50ZXJpbmcgU01NLCBleGNlcHQgU01JIGRpc2FibGVk IEFQcy4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitTbW1XYWl0Rm9yQXBBcnJpdmFsICgNCg0K KyAgVk9JRA0KDQorICApOw0KDQorDQoNCiAjZW5kaWYNCg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQ a2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mIGIvVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5pbmYNCmluZGV4IDBlODgwNzFjNzA3OS4uZGVlZjAwZjlj NmU5IDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNt bS5pbmYNCisrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5m DQpAQCAtNCw3ICs0LDcgQEANCiAjIFRoaXMgU01NIGRyaXZlciBwZXJmb3JtcyBTTU0gaW5pdGlh bGl6YXRpb24sIGRlcGxveSBTTU0gRW50cnkgVmVjdG9yLA0KDQogIyBwcm92aWRlcyBDUFUgc3Bl Y2lmaWMgc2VydmljZXMgaW4gU01NLg0KDQogIw0KDQotIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAy MDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisjIENv cHlyaWdodCAoYykgMjAwOSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0K K3Jlc2VydmVkLjxCUj4NCg0KICMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVk LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KICMNCg0KICMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KQEAgLTEwNyw3ICsxMDcsOCBAQA0KICAgZ0Vm aVNtbVJlYWR5VG9Mb2NrUHJvdG9jb2xHdWlkICAgICAgICAgICAjIyBOT1RJRlkNCg0KICAgZ0Vm aVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1aWQgICAgICAgICAgICAjIyBQUk9EVUNFUw0KDQogICBn RWRraWlTbW1NZW1vcnlBdHRyaWJ1dGVQcm90b2NvbEd1aWQgICAgICMjIFBST0RVQ0VTDQoNCi0g IGdFZmlNbU1wUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAgICAjIyBQUk9EVUNFUw0KDQor ICBnRWZpTW1NcFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTDQoN CisgIGdFZGtpaVNtbUNwdVJlbmRlenZvdXNQcm90b2NvbEd1aWQgICAgICAgIyMgUFJPRFVDRVMN Cg0KIA0KDQogW0d1aWRzXQ0KDQogICBnRWZpQWNwaVZhcmlhYmxlR3VpZCAgICAgICAgICAgICAg ICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBIT0IgIyBpdCBpcyB1c2VkIGZvciBTMyBi b290Lg0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYyBiL1VlZmlDcHVQ a2cvVWVmaUNwdVBrZy5kZWMgaW5kZXggN2RlNjZmZGU2NzRjLi41MjVjZGU0NjM0MzUgMTAwNjQ0 DQotLS0gYS9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjDQorKysgYi9VZWZpQ3B1UGtnL1VlZmlD cHVQa2cuZGVjDQpAQCAtMSw3ICsxLDcgQEANCiAjIyBAZmlsZSAgVWVmaUNwdVBrZy5kZWMNCg0K ICMgVGhpcyBQYWNrYWdlIHByb3ZpZGVzIFVFRkkgY29tcGF0aWJsZSBDUFUgbW9kdWxlcyBhbmQg bGlicmFyaWVzLg0KDQogIw0KDQotIyBDb3B5cmlnaHQgKGMpIDIwMDcgLSAyMDIxLCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisjIENvcHlyaWdodCAoYykg MjAwNyAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KK3Jlc2VydmVkLjxC Uj4NCg0KICMNCg0KICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCg0KICMNCg0KQEAgLTYyLDYgKzYyLDkgQEANCiAgICMjICBAbGlicmFyeWNsYXNzICBQcm92 aWRlcyBmdW5jdGlvbiBmb3IgbG9hZGluZyBtaWNyb2NvZGUuDQoNCiAgIE1pY3JvY29kZUxpYnxJ bmNsdWRlL0xpYnJhcnkvTWljcm9jb2RlTGliLmgNCg0KIA0KDQorICAjIyBAbGlicmFyeWNsYXNz ICBQcm92aWRlcyBmdW5jdGlvbiBmb3IgU01NIENQVSBSZW5kZXp2b3VzIExpYnJhcnkuDQoNCisg IFNtbUNwdVJlbmRlenZvdXNMaWJ8SW5jbHVkZS9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWIu aA0KDQorDQoNCiBbR3VpZHNdDQoNCiAgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQgICAgICA9 IHsgMHhhYzA1YmYzMywgMHg5OTVhLCAweDRlZDQsIHsgMHhhYSwgMHhiOCwgMHhlZiwgMHg3YSwg MHhlOCwgMHhmLCAweDVjLCAweGIwIH19DQoNCiAgIGdNc2VnU21yYW1HdWlkICAgICAgICAgICAg ICAgICA9IHsgMHg1ODAyYmNlNCwgMHhlZWVlLCAweDRlMzMsIHsgMHhhMSwgMHgzMCwgMHhlYiwg MHhhZCwgMHgyNywgMHhmMCwgMHhlNCwgMHgzOSB9fQ0KDQpAQCAtNzcsNyArODAsOCBAQA0KIA0K DQogW1Byb3RvY29sc10NCg0KICAgIyMgSW5jbHVkZS9Qcm90b2NvbC9TbW1DcHVTZXJ2aWNlLmgN Cg0KLSAgZ0VmaVNtbUNwdVNlcnZpY2VQcm90b2NvbEd1aWQgID0geyAweDFkMjAyY2FiLCAweGM4 YWIsIDB4NGQ1YywgeyAweDk0LCAweGY3LCAweDNjLCAweGZjLCAweGMwLCAweGQzLCAweGQzLCAw eDM1IH19DQoNCisgIGdFZmlTbW1DcHVTZXJ2aWNlUHJvdG9jb2xHdWlkICAgPSB7IDB4MWQyMDJj YWIsIDB4YzhhYiwgMHg0ZDVjLCB7IDB4OTQsIDB4ZjcsIDB4M2MsIDB4ZmMsIDB4YzAsIDB4ZDMs IDB4ZDMsIDB4MzUgfX0NCg0KKyAgZ0Vka2lpU21tQ3B1UmVuZGV6dm91c1Byb3RvY29sR3VpZCA9 IHsgMHhhYTAwZDUwYiwgMHg0OTExLCAweDQyOGYsIHsgDQorIDB4YjksIDB4MWEsIDB4YTUsIDB4 OWQsIDB4ZGIsIDB4MTMsIDB4ZTIsIDB4NGMgfX0NCg0KIA0KDQogICAjIyBJbmNsdWRlL1Byb3Rv Y29sL1NtTW9uaXRvckluaXQuaA0KDQogICBnRWZpU21Nb25pdG9ySW5pdFByb3RvY29sR3VpZCAg PSB7IDB4MjI4ZjM0NGQsIDB4YjNkZSwgMHg0M2JiLCB7IDB4YTQsIDB4ZDcsIDB4ZWEsIDB4MjAs IDB4YiwgMHgxYiwgMHgxNCwgMHg4MiB9fQ0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9VZWZp Q3B1UGtnLmRzYyBiL1VlZmlDcHVQa2cvVWVmaUNwdVBrZy5kc2MgaW5kZXggZDFkNjFkZDZhMDNi Li5hMGJiZGU5OTg1ZDMgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZHNjDQor KysgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZHNjDQpAQCAtNjEsNiArNjEsNyBAQA0KICAgVHBt TWVhc3VyZW1lbnRMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvVHBtTWVhc3VyZW1lbnRMaWJOdWxs L1RwbU1lYXN1cmVtZW50TGliTnVsbC5pbmYNCg0KICAgVm1nRXhpdExpYnxVZWZpQ3B1UGtnL0xp YnJhcnkvVm1nRXhpdExpYk51bGwvVm1nRXhpdExpYk51bGwuaW5mDQoNCiAgIE1pY3JvY29kZUxp YnxVZWZpQ3B1UGtnL0xpYnJhcnkvTWljcm9jb2RlTGliL01pY3JvY29kZUxpYi5pbmYNCg0KKyAg DQorIFNtbUNwdVJlbmRlenZvdXNMaWJ8VWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZv dXNMaWIvU21tQ3B1UmVuZGUNCisgenZvdXNMaWIuaW5mDQoNCiANCg0KIFtMaWJyYXJ5Q2xhc3Nl cy5jb21tb24uU0VDXQ0KDQogICBQbGF0Zm9ybVNlY0xpYnxVZWZpQ3B1UGtnL0xpYnJhcnkvUGxh dGZvcm1TZWNMaWJOdWxsL1BsYXRmb3JtU2VjTGliTnVsbC5pbmYNCg0KQEAgLTE3Myw2ICsxNzQs NyBAQA0KICAgfQ0KDQogICBVZWZpQ3B1UGtnL1VuaXZlcnNhbC9BY3BpL1MzUmVzdW1lMlBlaS9T M1Jlc3VtZTJQZWkuaW5mDQoNCiAgIFVlZmlDcHVQa2cvUmVzZXRWZWN0b3IvVnRmMC9CaW4vUmVz ZXRWZWN0b3IuaW5mDQoNCisgIFVlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVSZW5kZXp2b3VzTGli L1NtbUNwdVJlbmRlenZvdXNMaWIuaW5mDQoNCiANCg0KIFtCdWlsZE9wdGlvbnNdDQoNCiAgICpf Kl8qX0NDX0ZMQUdTID0gLUQgRElTQUJMRV9ORVdfREVQUkVDQVRFRF9JTlRFUkZBQ0VTDQoNCi0t DQoyLjI2LjIud2luZG93cy4xDQoNCg0KDQoNCg0KDQo=