From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web12.34602.1658187655307614860 for ; Mon, 18 Jul 2022 16:40:55 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=QbDXJ+Os; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658187655; x=1689723655; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=vI0sR1todMAFAgshMBbjKjFvV1JJvR3dn7f1dHTU8kQ=; b=QbDXJ+Os7S9JgUUA7Sh34hnSP2+cc28X/VEq4MAT/hhHJA4YJT/C+r8g Mz7JA92AVksxLB0lEPbsAzWhwHSOnBXVlJmYV06JMCtBfiLMyjGIp8ZR8 qFBSyMtNHiog9/aQvk7moFY/UmuSLvqAnlCQ7cfdhudBCLHD0R+MAt2dS iKT2y6IL3tJXPLtOASPgIOgny419RkDfasmSWaqZUat4fHuevvTt9ZCMW yrwqxsaG8XpnzPhT2qEDIqjL6rBJ2DE4PcckDPFgi1v0cl1pOLg+OUpNO Ua+1iSjBZS3z31hEaBtO8KeDQX6yq8jdSU2WORJirWxrhCHpA5wCiI07I Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10412"; a="283909461" X-IronPort-AV: E=Sophos;i="5.92,282,1650956400"; d="scan'208";a="283909461" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2022 16:40:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,282,1650956400"; d="scan'208";a="665198930" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga004.fm.intel.com with ESMTP; 18 Jul 2022 16:40:54 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 18 Jul 2022 16:40:54 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) 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.27; Mon, 18 Jul 2022 16:40:53 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 18 Jul 2022 16:40:53 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) 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.27; Mon, 18 Jul 2022 16:40:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nUowQKpHdnr6osAHJEOeMBVjrcTcgoze0N1Cfqmmt8GyMTaLJOt0lQ/HCggNFrfSH3hdgsQPHt8H5XT+EklFVRUJY0uhrgsZwosIcJWmDBIoMBjsnXl/77mOBhqchkeE1iCFJ68d3pouKwpBNhVxP+wu3Iy1X8Aczh64l3sm+f5JMamgfbL3s7X5e2CUZvnfTjOELcW8N8ntt3SG/q1AX1PM8xVOCZijxSI45TbSt1BLtke6B7cRlQ8ADDyO7GB6bOoQ1jEeH6stzcsT7bN3gydllrAubETKm5MJ0LLSSnQ4pTdg/40AslO1XYn39tgh6ihFxYvV2X+5lrxUrXpATg== 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=vI0sR1todMAFAgshMBbjKjFvV1JJvR3dn7f1dHTU8kQ=; b=HR34T90/KxwFPcqGXW1UGlF1mLxlZGAaChqs6BT8GheyEA+hSpYjwyDf6FO/BbVuMGfGK4L1a/9o+e+oCmSbChrNwLf4wGa8nas7gFqkwb7l5v1Pz0LZbe8+xSBn/9+C4d02j/MUD2AfHnLcLLFD5Pvglpsfq4I0vreI9H5zWL/XekJGzUdPeWiyhWygaYcGfznyQmU8QvJps3AsGuiWXCtv7SK4k26xAsgewabSeMzWyHoAgZd0j4A70dSRIpScj15Mk9LnLSYR1ARAxuQGKaWwSgVDS/F2LpcIqin12bItYZW/IqZ7T5MszDgi6saLUXkCFGHadZkXOGQvH7HW/w== 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 MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by DM6PR11MB4154.namprd11.prod.outlook.com (2603:10b6:5:191::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.17; Mon, 18 Jul 2022 23:40:46 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::f59c:6174:7737:9179]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::f59c:6174:7737:9179%4]) with mapi id 15.20.5438.017; Mon, 18 Jul 2022 23:40:46 +0000 From: "Nate DeSimone" To: Pedro Falcato , edk2-devel-groups-io CC: "Chiu, Chasel" , "Zhang, Hongbin1" , "Zeng, Star" Subject: Re: [edk2-devel] [PATCH] IntelFsp2Pkg/FspSecCore: Add FSP-I API for SMM support. Thread-Topic: [edk2-devel] [PATCH] IntelFsp2Pkg/FspSecCore: Add FSP-I API for SMM support. Thread-Index: AQHYl7z7bPo9GG/d6EeRCId04kZT0a2Ep/tggAAJIACAAB5ZMA== Date: Mon, 18 Jul 2022 23:40:45 +0000 Message-ID: References: <20220714200428.1989-1-chasel.chiu@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: 46ef07be-0a90-46fb-1616-08da6916efce x-ms-traffictypediagnostic: DM6PR11MB4154:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kDE0Z155dkl77OduBUvjR1CfPAPVx07N4+2HtG5fJYvCWi1o9RP7pM82/D7HcmXLaMWgeMZK6LdLAySc0Kqi9P9uK9BtG3YxzWrwqhDFnykQ47qBeTJv8wtHrkm+kbCKSzP8DqeBAZBrl7sZE70/hKJ0y2AHG6ZXFl6QR7yRM8nQXqyyUECSuLK6HCSaOGpREjS0AKMV0JdjZSh9Nfa3C3HwaQPh2WSOauW/raUuUe8j07llcfECflLMbPQTPLUw3ITMHUGzWkZek6FZzdS/cmaGNIO61sXFJS92bhGUohatLoBdNfLEAtos9GSQb6qFD14KJvlIgDE7YBk3qdVEKEQS6FDgo+AFQEOSI4EtCW8EE+myqgmIVptVv0h06U8Kl5wUBqkNqNiWNo9k6g0tbbO61hvNdI8T5bAVl27gdnTeAucXk/pq4anTahVf+Kvahu1DfdUqeA2zK+SscXZ57cmHSPdB1lonDCo+Vp0PC8uHmxfRvVcO5YQ6qscqWWuFaO6fLdXp46N/ziLRgX5x4D1zg/HEavxQxGOfo1AwV7ZIRGmqSkg+pJf7Kfu+si/B4LPy2MJkPS9jp7VvlOSoWAZWAqEPdVDiiy9EkVqT7LcMNLnzJ7RgupR1O+aREkuqz/JCAHCujuCMVi805A4SbaKDBSSAAtdq6OnVuhxfkBOXqUgoez8HKUZKAHcG9TQwMCx0vnf3Y03D8u0+nQM1nOV+2lG0HKcePRP3DSbEWAsMv6WjDxyLVw3ytzjimKuRJ2MIlaV86eoW00c2s2Mkh4FFOHVz7Y2Aoqju3SNGcm/Zfy6jByaGqszgS71JmukDiJbHhtxfrwi2jFJpewCXGNqdxOz1J2XY86cu8fEaksw7T2yIY7bz2pDRrMSU0M4Z x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(346002)(376002)(39860400002)(396003)(366004)(107886003)(186003)(83380400001)(26005)(9686003)(41300700001)(122000001)(5660300002)(966005)(55016003)(2906002)(71200400001)(30864003)(478600001)(76116006)(66476007)(66556008)(4326008)(8676002)(66946007)(66446008)(64756008)(52536014)(33656002)(8936002)(86362001)(38070700005)(316002)(53546011)(7696005)(54906003)(82960400001)(6506007)(19627235002)(110136005)(38100700002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eEZEMUllUVF3dUY2d2NiWFFHRXB4S0ttUXFEUXZNNUhmWE1abmI5bkpZSS9V?= =?utf-8?B?d09rQ2VlbFVaYzF2M1NpREpmWUQydFl3NGdwVkJFc3R5M0VMSEowQ0pDblZa?= =?utf-8?B?NXRuck9zS1VkYXJjQWwwa3lqN0FzanlsOFFZcmtWUU15UnNJNm1RU3hFeDc0?= =?utf-8?B?QXdTSHNVOUR3Y0QzbmQrNy9neExzTU5DNVBNNDNwQ2RIYTljRnBMQzZObnJ6?= =?utf-8?B?enF6STZjL0ZCNHFkTWcvSC9rMWRHYXFCQ2YrbjE4b01tdXB3aW9PQ1Vzdkxa?= =?utf-8?B?T2Y5cTczZFROOCttNExSaFVCUjZsS0R6c3dPQmtXTU53OWJVc2lRMnp6azlk?= =?utf-8?B?ekpKSXlhSDBXMkg5Q291Vk90MHRrTWFjMVkwV1NuS2Z6MW1EN3BkWDM0S0dl?= =?utf-8?B?WnVuU1BjZ0laK0FDa1lJYkxwa29KRXFyUjN1dEJtZWFmQWdnRDhzRWxkSUVF?= =?utf-8?B?MnIrREZXQm03YmpmOFpFUkN5cGFCU0czUzZKN2lMRW53MDM4QzRXdXBXdGIy?= =?utf-8?B?TkpKbDNnYndURnQzbHFycG1PVzI3ZDhPN1FySC9HcTlJMFYzV2p4RU5FZU9Q?= =?utf-8?B?c2M3M0M4bmNRTm9lcmF0ME5QS2IxUVM0VTg0Y0ovTHJjY1BPdlZVU09xNGU2?= =?utf-8?B?TENqNSt3TGN0QThXZmlEbC9qeEpuZlptTUcrb0NOam94NEZGaWxabUJLMGIv?= =?utf-8?B?cHo0QnR2OEI2L3hhTDdtQ2cxRnJoNGJMeXhkMjR1YktnZmhxU2lVRy9OQzlZ?= =?utf-8?B?VjFTVjRGQkcybUthQ0NKL0IzMDMvclZnT3FaSk1JS1lISnhOS3BJd0hGYmtH?= =?utf-8?B?SnRlZEJtUGtqWVF6OFVUOStualMxYXBJK2MxZEk4d0FSb2M2K2tSeDNORXZO?= =?utf-8?B?T1NwMkRRbkhjY2hBUFlHSEhuRkU1RXJVQ1N1UzJkVjVsT3hWbHpCWlJNVzBj?= =?utf-8?B?R2FtSkhMMStIc0s2YmNmNXJvZUVIblE1WUN0bFYzMlgvajN4SGdBajFobktS?= =?utf-8?B?MVd6Z29iYUJHQ2VpVlBobVRpcTBtMnVKVFJqTTREbzU1ang3RlcyaG9uc1VU?= =?utf-8?B?My9yL3RKTnNOSWptYkdia1BMbFg4bDUwZ212UkF0eUE4UE5WL21ibVloOXY0?= =?utf-8?B?a1NjRU1ZVnN1dFZiOU9BYllLRWhwVHdwbUphdHBCbzRJQmdaY1E0dDdNK0p5?= =?utf-8?B?K1p1NFQyeGZFelhJbnUwM2xNTDNDaGNxZDNqcS9aejlGc2NYQlM4bDZvMU15?= =?utf-8?B?WFkrNHpaenNRU21uSXgxbU5sNlVMeGhUR3Q1eUordm9DUHR0QnlhQjE3YmpQ?= =?utf-8?B?VTBTdlI4eG9BVng4UFZ1cmZCOHloQ0xaZTNvazdyaENIS0xNTFA3b1lQQkdF?= =?utf-8?B?RmJmTHVGbTRpVmV1alN6YU9zVjY2Z3FjV3pyU3ZMSVJWUmRJUTkzMWZPbXg2?= =?utf-8?B?M05iL09FS2hQMHdqbkxXV21sdXRWVGtRR1dxN0VCaUMrb0hLek05aEVmMW5U?= =?utf-8?B?ZEs0NnNTOFJkdTM1SFYwTGNKOHA1MWdHRzd4YW1KWjROS2h6UlJNemJhVVZj?= =?utf-8?B?Qml6dlJEK2pGaXQ3M2RGSTk5R3NmNDIwcmJzSy9adWFDbTRIRVNVZ3g0ZC9U?= =?utf-8?B?N3hvMU5jcmxNT3NkVDRxekdkbW9Sd1lXTG0rd0NIQlM1ZnkzTmpKS0hOODVI?= =?utf-8?B?YWZiVnhNaGozRDRucEVvOFlTODFBWWpLcmI5LzI5d0dBTE1uWkk5N1Jic3ZX?= =?utf-8?B?Z1RvQ1hxZUVsV3ZyeWVvdDkxWTJQRmluVTZNcmxuSFRtb2s5K2hPVDJsb09R?= =?utf-8?B?QUNpVW01ZEkvVkhmd1RhNHovZWZMY01KNzh2bHduM3lTSGQ5TmtmZGVrU3BE?= =?utf-8?B?OXJMYTdPNnhsZzkxYVFsbnhVaTNBcTF2OWdDT2F5TCsrLzZDQmxWOFFuSjUv?= =?utf-8?B?SHdobjJJRFlTMjdQUXVZSC9vQS82TWs4RmtQMitVaUFMU09xdWk0eTJ2cFVa?= =?utf-8?B?MGdEZS9LL0RUQjMzdVo2WlcwTW9pbTRpd2xJSUZrYTQ0cGlHc0R4czZ4cWtW?= =?utf-8?B?aWMzMmlqY0ZyaDQrdlBFSlgrZ2FqMlNYLzk1UzlDU29YQUxabGt6elBLNHZk?= =?utf-8?B?OVR2bC9VNUlyRXUza295UEcwMFY2ZDNhQjdQL3UycVpYRkFwU0ZYNktncHRh?= =?utf-8?B?ZkE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46ef07be-0a90-46fb-1616-08da6916efce X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2022 23:40:45.9647 (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: pxxkEeeyJqws3p1DqesVAkATcKcuTHDWd/Tn7k0FXEUH26iv+UhxL9ZKqioXR/gkSvGquWpuQ8MHQ4bW1vuicSbL/NgzCTLMt/43yJR851o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUGVkcm8sDQoNCldvdyB5b3UgYXJlIHRvdGFsbHkgcmlnaHQuLi4gdGhhdCBpcyBjcmF6eSEg VGhlIGV4YWN0IG9wcG9zaXRlIG9mIHRoZSB3YXkgMzItYml0IG1vZGUgd29ya3MhDQoNCkdvb2Qg Y2F0Y2ggdGhhbmsgeW91IQ0KDQpQbGVhc2UgY29uc2lkZXIgYnkgY29kZSByZXZpZXcgZmVlZGJh Y2sgZG93bmdyYWRlZCBmcm9tIGEgYnVnIHRvIGEgcmVjb21tZW5kYXRpb24gdG8gdXNlIHJheCBp bnN0ZWFkIG9mIGVheCB0byBhdm9pZCBjb25mdXNpb24g8J+Yii4NCg0KVGhhbmtzLA0KTmF0ZQ0K DQpGcm9tOiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT4gDQpTZW50OiBN b25kYXksIEp1bHkgMTgsIDIwMjIgMjo1MCBQTQ0KVG86IGVkazItZGV2ZWwtZ3JvdXBzLWlvIDxk ZXZlbEBlZGsyLmdyb3Vwcy5pbz47IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwu ZGVzaW1vbmVAaW50ZWwuY29tPg0KQ2M6IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwu Y29tPjsgWmhhbmcsIEhvbmdiaW4xIDxob25nYmluMS56aGFuZ0BpbnRlbC5jb20+OyBaZW5nLCBT dGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFU Q0hdIEludGVsRnNwMlBrZy9Gc3BTZWNDb3JlOiBBZGQgRlNQLUkgQVBJIGZvciBTTU0gc3VwcG9y dC4NCg0KDQoNCk9uIE1vbiwgSnVsIDE4LCAyMDIyIGF0IDEwOjQwIFBNIE5hdGUgRGVTaW1vbmUg PG1haWx0bzpuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+IHdyb3RlOg0KSGkgQ2hhc2Vs LA0KDQpQbGVhc2Ugc2VlIGNvbW1lbnRzIGlubGluZS4gSGVyZSBpcyBhIHN1bW1hcnkgb2YgbXkg ZmVlZGJhY2s6DQoNCiMxKSBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9YNjQvRnNwQXBpRW50cnlJ Lm5hc20gLSBsaW5lIDM0IC0gQnVnOiBlYXggc2hvdWxkIGJlIHJheA0KIzIpIEludGVsRnNwMlBr Zy9JbmNsdWRlL0ZzcEVhcy9Gc3BBcGkuaCAtIFZhcmlvdXMgdW5uZWNlc3Nhcnkgd2hpdGVzcGFj ZSBjaGFuZ2VzIHRoYXQgbWFrZSB0aGUgZmlsZSBsb29rIHdvcnNlIHRoYW4gYmVmb3JlLg0KIzMp IEludGVsRnNwMlBrZy9JbmNsdWRlL0d1aWQvRnNwSGVhZGVyRmlsZS5oIC0gV2h5IGluZGVudCB0 aGUgI3ByYWdtYSBsaW5lcz8NCg0KVGhhbmtzLA0KTmF0ZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IENoaXUsIENoYXNlbCA8bWFpbHRvOmNoYXNlbC5jaGl1QGludGVs LmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bHkgMTQsIDIwMjIgMTowNCBQTQ0KPiBUbzogbWFp bHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBaaGFuZywgSG9uZ2JpbjEgPG1haWx0bzpo b25nYmluMS56aGFuZ0BpbnRlbC5jb20+OyBEZXNpbW9uZSwgTmF0aGFuaWVsIEwNCj4gPG1haWx0 bzpuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxtYWlsdG86c3Rh ci56ZW5nQGludGVsLmNvbT47IENoaXUsDQo+IENoYXNlbCA8bWFpbHRvOmNoYXNlbC5jaGl1QGlu dGVsLmNvbT4NCj4gU3ViamVjdDogW1BBVENIXSBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZTogQWRk IEZTUC1JIEFQSSBmb3IgU01NIHN1cHBvcnQuDQo+IA0KPiBGcm9tOiBIb25nYmluMSBaaGFuZyA8 bWFpbHRvOmhvbmdiaW4xLnpoYW5nQGludGVsLmNvbT4NCj4gDQo+IFJFRjogaHR0cHM6Ly9idWd6 aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkzDQo+IEFkZCBGU1AtSSBBUEkg ZW50cnkgcG9pbnQgZm9yIFNNTSBzdXBwb3J0Lg0KPiANCj4gQ2M6IE5hdGUgRGVTaW1vbmUgPG1h aWx0bzpuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+IENjOiBTdGFyIFplbmcgPG1h aWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBDaGFzZWwgQ2hpdSA8 bWFpbHRvOmNoYXNlbC5jaGl1QGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSG9uZ2JpbjEg WmhhbmcgPG1haWx0bzpob25nYmluMS56aGFuZ0BpbnRlbC5jb20+DQo+IC0tLQ0KPsKgIEludGVs RnNwMlBrZy9Gc3BTZWNDb3JlL1NlY0ZzcEFwaUNoay5jwqAgwqAgwqAgwqAgwqB8IDEzICsrKysr KysrKysrKysNCj7CoCBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9Gc3BTZWNDb3JlSS5pbmbCoCDC oCDCoCDCoCB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPsKgIEludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL0lhMzIvRnNwQXBpRW50cnlJ Lm5hc20gfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PsKgIEludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL1g2NC9Gc3BBcGlFbnRyeUkubmFzbcKgIHwgNDQg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj7CoCBJbnRlbEZz cDJQa2cvSW5jbHVkZS9Gc3BFYXMvRnNwQXBpLmjCoCDCoCDCoCDCoCDCoCDCoHwgNTcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tDQo+wqAg SW50ZWxGc3AyUGtnL0luY2x1ZGUvRnNwR2xvYmFsRGF0YS5owqAgwqAgwqAgwqAgwqAgwqB8IDUz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ wqAgSW50ZWxGc3AyUGtnL0luY2x1ZGUvR3VpZC9Gc3BIZWFkZXJGaWxlLmjCoCDCoCDCoCB8IDIy ICsrKysrKysrKysrKysrKy0tLS0tLS0NCj7CoCBJbnRlbEZzcDJQa2cvSW50ZWxGc3AyUGtnLmRz Y8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHzCoCAxICsNCj7CoCBJbnRlbEZzcDJQa2cvVG9v bHMvR2VuQ2ZnT3B0LnB5wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAyNiArKysrKysrKysrKysr KysrLS0tLS0tLS0tLQ0KPsKgIEludGVsRnNwMlBrZy9Ub29scy9TcGxpdEZzcEJpbi5wecKgIMKg IMKgIMKgIMKgIMKgIMKgIHzCoCA2ICsrKy0tLQ0KPsKgIDEwIGZpbGVzIGNoYW5nZWQsIDI1NiBp bnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZz cDJQa2cvRnNwU2VjQ29yZS9TZWNGc3BBcGlDaGsuYyBiL0ludGVsRnNwMlBrZy9Gc3BTZWNDb3Jl L1NlY0ZzcEFwaUNoay5jDQo+IGluZGV4IGUyMmE4OGNjODQuLjM1ZDIyM2E0MDQgMTAwNjQ0DQo+ IC0tLSBhL0ludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL1NlY0ZzcEFwaUNoay5jDQo+ICsrKyBiL0lu dGVsRnNwMlBrZy9Gc3BTZWNDb3JlL1NlY0ZzcEFwaUNoay5jDQo+IEBAIC03MSw2ICs3MSwxOSBA QCBGc3BBcGlDYWxsaW5nQ2hlY2sgKA0KPsKgIMKgIMKgIMKgIMKgIFN0YXR1cyA9IEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj7CoCDCoCDCoCDCoCB9DQo+wqAgwqAgwqAgfQ0KPiArwqAgfSBlbHNl IGlmIChBcGlJZHggPT0gRnNwU21tSW5pdEFwaUluZGV4KSB7DQo+ICvCoCDCoCAvLw0KPiArwqAg wqAgLy8gRnNwU21tSW5pdEFwaUluZGV4IGNoZWNrDQo+ICvCoCDCoCAvLw0KPiArwqAgwqAgaWYg KChGc3BEYXRhID09IE5VTEwpIHx8ICgoVUlOVE4pRnNwRGF0YSA9PSBNQVhfQUREUkVTUykgfHwg KChVSU5UTilGc3BEYXRhID09IE1BWF9VSU5UMzIpKSB7DQo+ICvCoCDCoCDCoCBTdGF0dXMgPSBF RklfVU5TVVBQT1JURUQ7DQo+ICvCoCDCoCB9IGVsc2Ugew0KPiArwqAgwqAgwqAgaWYgKEZzcERh dGEtPlNpZ25hdHVyZSAhPSBGU1BfR0xPQkFMX0RBVEFfU0lHTkFUVVJFKSB7DQo+ICvCoCDCoCDC oCDCoCBTdGF0dXMgPSBFRklfVU5TVVBQT1JURUQ7DQo+ICvCoCDCoCDCoCB9IGVsc2UgaWYgKEVG SV9FUlJPUiAoRnNwVXBkU2lnbmF0dXJlQ2hlY2sgKEZzcFNtbUluaXRBcGlJbmRleCwgQXBpUGFy YW0pKSkgew0KPiArwqAgwqAgwqAgwqAgU3RhdHVzID0gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0K PiArwqAgwqAgwqAgfQ0KPiArwqAgwqAgfQ0KPsKgIMKgIH0gZWxzZSB7DQo+wqAgwqAgwqAgU3Rh dHVzID0gRUZJX1VOU1VQUE9SVEVEOw0KPsKgIMKgIH0NCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNw MlBrZy9Gc3BTZWNDb3JlL0ZzcFNlY0NvcmVJLmluZiBiL0ludGVsRnNwMlBrZy9Gc3BTZWNDb3Jl L0ZzcFNlY0NvcmVJLmluZg0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwLi5kMzE1NzZjMDBiDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvSW50ZWxGc3AyUGtnL0Zz cFNlY0NvcmUvRnNwU2VjQ29yZUkuaW5mDQo+IEBAIC0wLDAgKzEsNTQgQEANCj4gKyMjIEBmaWxl DQo+ICsjwqAgU2VjIENvcmUgZm9yIEZTUA0KPiArIw0KPiArI8KgIENvcHlyaWdodCAoYykgMjAy MiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIw0KPiAr I8KgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsjDQo+ ICsjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gK8KgIElORl9WRVJTSU9OwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgPSAweDAwMDEwMDA1DQo+ICvCoCBCQVNFX05BTUXCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCA9IEZzcFNlY0NvcmVJDQo+ICvCoCBGSUxFX0dVSUTCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA9IDU1ODc4MmI1LTc4MmQtNDE1ZS1hYjllLTBjZWI3 OWRjMzQyNQ0KPiArwqAgTU9EVUxFX1RZUEXCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA9 IFNFQw0KPiArwqAgVkVSU0lPTl9TVFJJTkfCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoD0gMS4w DQo+ICsNCj4gKyMNCj4gKyMgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJl bmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUgYnVpbGQgdG9vbHMuDQo+ICsjDQo+ICsj wqAgVkFMSURfQVJDSElURUNUVVJFU8KgIMKgIMKgIMKgIMKgIMKgPSBJQTMyIFg2NA0KPiArIw0K PiArDQo+ICtbU291cmNlc10NCj4gK8KgIFNlY0ZzcEFwaUNoay5jDQo+ICvCoCBTZWNGc3AuaA0K PiArDQo+ICtbU291cmNlcy5YNjRdDQo+ICvCoCBYNjQvRnNwQXBpRW50cnlJLm5hc20NCj4gK8Kg IFg2NC9Gc3BBcGlFbnRyeUNvbW1vbi5uYXNtDQo+ICvCoCBYNjQvRnNwSGVscGVyLm5hc20NCj4g Kw0KPiArW1NvdXJjZXMuSUEzMl0NCj4gK8KgIElhMzIvRnNwQXBpRW50cnlJLm5hc20NCj4gK8Kg IElhMzIvRnNwQXBpRW50cnlDb21tb24ubmFzbQ0KPiArwqAgSWEzMi9Gc3BIZWxwZXIubmFzbQ0K PiArDQo+ICtbQmluYXJpZXMuSWEzMl0NCj4gK8KgIFJBV3xWdGYwL0Jpbi9SZXNldFZlYy5pYTMy LnJhdyB8R0NDDQo+ICsNCj4gK1tQYWNrYWdlc10NCj4gK8KgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ ICvCoCBJbnRlbEZzcDJQa2cvSW50ZWxGc3AyUGtnLmRlYw0KPiArDQo+ICtbTGlicmFyeUNsYXNz ZXNdDQo+ICvCoCBCYXNlTWVtb3J5TGliDQo+ICvCoCBEZWJ1Z0xpYg0KPiArwqAgQmFzZUxpYg0K PiArwqAgUGNpQ2Y4TGliDQo+ICvCoCBTZXJpYWxQb3J0TGliDQo+ICvCoCBGc3BTd2l0Y2hTdGFj a0xpYg0KPiArwqAgRnNwQ29tbW9uTGliDQo+ICvCoCBGc3BTZWNQbGF0Zm9ybUxpYg0KPiArDQo+ ICsNCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL0lhMzIvRnNwQXBpRW50 cnlJLm5hc20gYi9JbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9JYTMyL0ZzcEFwaUVudHJ5SS5uYXNt DQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmU5MzY1ZDY4MzIN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9JbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9JYTMyL0Zz cEFwaUVudHJ5SS5uYXNtDQo+IEBAIC0wLDAgKzEsNDQgQEANCj4gKzs7IEBmaWxlDQo+ICs7wqAg UHJvdmlkZSBGU1AgQVBJIGVudHJ5IHBvaW50cy4NCj4gKzsNCj4gKzsgQ29weXJpZ2h0IChjKSAy MDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICs7IFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICs7Ow0KPiArDQo+ ICvCoCDCoCBTRUNUSU9OIC50ZXh0DQo+ICsNCj4gKzsNCj4gKzsgRm9sbG93aW5nIGZ1bmN0aW9u cyB3aWxsIGJlIHByb3ZpZGVkIGluIEMNCj4gKzsNCj4gK2V4dGVybiBBU01fUEZYKEZzcEFwaUNv bW1vbikNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgRnNwQXBpQ29tbW9uQ29u dGludWUgQVBJDQo+ICs7DQo+ICs7IFRoaXMgaXMgdGhlIEZTUCBBUEkgY29tbW9uIGVudHJ5IHBv aW50IHRvIHJlc3VtZSB0aGUgRlNQIGV4ZWN1dGlvbg0KPiArOw0KPiArOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gK2dsb2JhbCBBU01fUEZYKEZzcEFwaUNvbW1vbkNvbnRpbnVlKQ0KPiArQVNNX1BG WChGc3BBcGlDb21tb25Db250aW51ZSk6DQo+ICvCoCBqbXAgJA0KPiArDQo+ICs7LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiArOyBGc3BTbW1Jbml0IEFQSQ0KPiArOw0KPiArOyBUaGlzIEZTUCBBUEkg d2lsbCBub3RpZnkgdGhlIEZTUCBhYm91dCB0aGUgZGlmZmVyZW50IHBoYXNlcyBpbiB0aGUgYm9v dA0KPiArOyBwcm9jZXNzDQo+ICs7DQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArZ2xvYmFs IEFTTV9QRlgoRnNwU21tSW5pdEFwaSkNCj4gK0FTTV9QRlgoRnNwU21tSW5pdEFwaSk6DQo+ICvC oCBtb3bCoCDCoCBlYXgswqAgNyA7IEZTUF9BUElfSU5ERVguRnNwU21tSW5pdEFwaUluZGV4DQo+ ICvCoCBqbXDCoCDCoCBBU01fUEZYKEZzcEFwaUNvbW1vbikNCj4gKw0KPiArOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gKzsgTW9kdWxlIEVudHJ5cG9pbnQgQVBJDQo+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArZ2xvYmFsIEFTTV9QRlgoX01vZHVsZUVudHJ5UG9pbnQpDQo+ICtBU01fUEZYKF9N b2R1bGVFbnRyeVBvaW50KToNCj4gK8KgIGptcMKgICQNCj4gK8KgIDsgQWRkIHJlZmVyZW5jZSB0 byBBUElzIHNvIHRoYXQgaXQgd2lsbCBub3QgYmUgb3B0aW1pemVkIGJ5IGNvbXBpbGVyDQo+ICvC oCBqbXDCoCBBU01fUEZYKEZzcFNtbUluaXRBcGkpDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQ a2cvRnNwU2VjQ29yZS9YNjQvRnNwQXBpRW50cnlJLm5hc20gYi9JbnRlbEZzcDJQa2cvRnNwU2Vj Q29yZS9YNjQvRnNwQXBpRW50cnlJLm5hc20NCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMC4uZTkzNjVkNjgzMg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0ludGVs RnNwMlBrZy9Gc3BTZWNDb3JlL1g2NC9Gc3BBcGlFbnRyeUkubmFzbQ0KPiBAQCAtMCwwICsxLDQ0 IEBADQo+ICs7OyBAZmlsZQ0KPiArO8KgIFByb3ZpZGUgRlNQIEFQSSBlbnRyeSBwb2ludHMuDQo+ ICs7DQo+ICs7IENvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiArOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiArOzsNCj4gKw0KPiArwqAgwqAgU0VDVElPTiAudGV4dA0KPiArDQo+ICs7 DQo+ICs7IEZvbGxvd2luZyBmdW5jdGlvbnMgd2lsbCBiZSBwcm92aWRlZCBpbiBDDQo+ICs7DQo+ ICtleHRlcm4gQVNNX1BGWChGc3BBcGlDb21tb24pDQo+ICsNCj4gKzstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ICs7IEZzcEFwaUNvbW1vbkNvbnRpbnVlIEFQSQ0KPiArOw0KPiArOyBUaGlzIGlzIHRo ZSBGU1AgQVBJIGNvbW1vbiBlbnRyeSBwb2ludCB0byByZXN1bWUgdGhlIEZTUCBleGVjdXRpb24N Cj4gKzsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtnbG9iYWwgQVNNX1BGWChGc3BBcGlD b21tb25Db250aW51ZSkNCj4gK0FTTV9QRlgoRnNwQXBpQ29tbW9uQ29udGludWUpOg0KPiArwqAg am1wICQNCj4gKw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKzsgRnNwU21tSW5pdCBBUEkN Cj4gKzsNCj4gKzsgVGhpcyBGU1AgQVBJIHdpbGwgbm90aWZ5IHRoZSBGU1AgYWJvdXQgdGhlIGRp ZmZlcmVudCBwaGFzZXMgaW4gdGhlIGJvb3QNCj4gKzsgcHJvY2Vzcw0KPiArOw0KPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gK2dsb2JhbCBBU01fUEZYKEZzcFNtbUluaXRBcGkpDQo+ICtBU01f UEZYKEZzcFNtbUluaXRBcGkpOg0KPiArwqAgbW92wqAgwqAgZWF4LMKgIDcgOyBGU1BfQVBJX0lO REVYLkZzcFNtbUluaXRBcGlJbmRleA0KDQpUaGlzIGlzIGEgYnVnLiBJdCBzaG91bGQgYmU6DQoN Cm1vdsKgIMKgIHJheCzCoCA3IDsgRlNQX0FQSV9JTkRFWC5Gc3BTbW1Jbml0QXBpSW5kZXgNCsKg DQpIaSBOYXRlLA0KDQpUaGlzIGlzIG5vdCBhY3R1YWxseSBhIHByb2JsZW0sIGEgMzItYml0IG1v diB0byBhIDMyLWJpdCByZWdpc3RlciBpbiBsb25nIG1vZGUgd2lsbCB6ZXJvIHRoZSB1cHBlciBw YXJ0Lg0KwqANCg0KTm90ZSB0aGF0IEludGVsRnNwMlBrZy9Gc3BTZWNDb3JlL1g2NC9Gc3BBcGlF bnRyeUNvbW1vbi5uYXNtIGNvbXBhcmVzIEFwaUluZGV4IG51bWJlcnMgdXNpbmcgcmF4LCBzbyBp dCBpcyBpbXBvcnRhbnQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHVwcGVyIDMyLWJpdHMgYXJlIHpl cm86DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL2M5NjYyMDQwNDlm M2Q1ZGFlNmQ1ZTU4N2RkYzI5OGM2ODQxNDJjNWMvSW50ZWxGc3AyUGtnL0ZzcFNlY0NvcmUvWDY0 L0ZzcEFwaUVudHJ5Q29tbW9uLm5hc20jTDY1DQoNCj4gK8KgIGptcMKgIMKgIEFTTV9QRlgoRnNw QXBpQ29tbW9uKQ0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyBNb2R1bGUgRW50 cnlwb2ludCBBUEkNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtnbG9iYWwgQVNNX1BGWChf TW9kdWxlRW50cnlQb2ludCkNCj4gK0FTTV9QRlgoX01vZHVsZUVudHJ5UG9pbnQpOg0KPiArwqAg am1wwqAgJA0KPiArwqAgOyBBZGQgcmVmZXJlbmNlIHRvIEFQSXMgc28gdGhhdCBpdCB3aWxsIG5v dCBiZSBvcHRpbWl6ZWQgYnkgY29tcGlsZXINCj4gK8KgIGptcMKgIEFTTV9QRlgoRnNwU21tSW5p dEFwaSkNCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMlBrZy9JbmNsdWRlL0ZzcEVhcy9Gc3BBcGku aCBiL0ludGVsRnNwMlBrZy9JbmNsdWRlL0ZzcEVhcy9Gc3BBcGkuaA0KPiBpbmRleCBiMzZiYzJi OWFlLi4xZDZjMmZiNjNkIDEwMDY0NA0KPiAtLS0gYS9JbnRlbEZzcDJQa2cvSW5jbHVkZS9Gc3BF YXMvRnNwQXBpLmgNCj4gKysrIGIvSW50ZWxGc3AyUGtnL0luY2x1ZGUvRnNwRWFzL0ZzcEFwaS5o DQo+IEBAIC0xMzUsMTggKzEzNSwxOCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+wqAgwqAgLy8vDQo+ wqAgwqAgLy8vIFJldmlzaW9uIG9mIHRoZSBzdHJ1Y3R1cmUgaXMgMiBmb3IgdGhpcyB2ZXJzaW9u IG9mIHRoZSBzcGVjaWZpY2F0aW9uLg0KPsKgIMKgIC8vLw0KPiAtwqAgVUlOVDjCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBSZXZpc2lvbjsNCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgUmVzZXJ2ZWRbM107DQo+ICvCoCBVSU5UOMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg UmV2aXNpb247DQo+ICvCoCBVSU5UOMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgUmVzZXJ2 ZWRbM107DQoNCkFueSByZWFzb24gZm9yIHRoZXNlIHdoaXRlc3BhY2UgY2hhbmdlcz8gSXQgbG9v a3Mgd29yc2UgdGhhbiBiZWZvcmUuDQoNCj7CoCDCoCAvLy8NCj7CoCDCoCAvLy8gTGVuZ3RoIG9m IHRoZSBzdHJ1Y3R1cmUgaW4gYnl0ZXMuIFRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGlzIGZpZWxk IGlzIDMyLg0KPsKgIMKgIC8vLw0KPiAtwqAgVUlOVDMywqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBM ZW5ndGg7DQo+ICvCoCBVSU5UMzLCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBMZW5ndGg7DQoN CkFueSByZWFzb24gZm9yIHRoaXMgd2hpdGVzcGFjZSBjaGFuZ2U/IEl0IGxvb2tzIHdvcnNlIHRo YW4gYmVmb3JlLg0KDQo+wqAgwqAgLy8vDQo+wqAgwqAgLy8vIEZzcERlYnVnSGFuZGxlciBPcHRp b25hbCBkZWJ1ZyBoYW5kbGVyIGZvciB0aGUgYm9vdGxvYWRlciB0byByZWNlaXZlIGRlYnVnIG1l c3NhZ2VzDQo+wqAgwqAgLy8vIG9jY3VycmluZyBkdXJpbmcgRlNQIGV4ZWN1dGlvbi4NCj7CoCDC oCAvLy8NCj4gLcKgIEVGSV9QSFlTSUNBTF9BRERSRVNTIEZzcERlYnVnSGFuZGxlcjsNCj4gLcKg IFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzZXJ2ZWQxWzE2XTsNCj4gK8KgIEVGSV9Q SFlTSUNBTF9BRERSRVNTwqAgwqAgRnNwRGVidWdIYW5kbGVyOw0KPiArwqAgVUlOVDjCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJlc2VydmVkMVsxNl07DQoNCkFueSByZWFzb24gZm9yIHRo ZXNlIHdoaXRlc3BhY2UgY2hhbmdlcz8gSXQgbG9va3Mgd29yc2UgdGhhbiBiZWZvcmUuDQoNCj7C oCB9IEZTUFRfQVJDSDJfVVBEOw0KPsKgIA0KPsKgIC8vLw0KPiBAQCAtMTk3LDM3ICsxOTcsMzcg QEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPsKgIMKgIC8vLw0KPsKgIMKgIC8vLyBSZXZpc2lvbiBvZiB0 aGUgc3RydWN0dXJlIGlzIDMgZm9yIHRoaXMgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbi4N Cj7CoCDCoCAvLy8NCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmV2aXNpb247 DQo+IC3CoCBVSU5UOMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc2VydmVkWzNdOw0KPiArwqAg VUlOVDjCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJldmlzaW9uOw0KPiArwqAgVUlOVDjC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJlc2VydmVkWzNdOw0KDQpBbnkgcmVhc29uIGZv ciB0aGVzZSB3aGl0ZXNwYWNlIGNoYW5nZXM/IEl0IGxvb2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0K DQo+wqAgwqAgLy8vDQo+wqAgwqAgLy8vIExlbmd0aCBvZiB0aGUgc3RydWN0dXJlIGluIGJ5dGVz LiBUaGUgY3VycmVudCB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyA2NC4NCj7CoCDCoCAvLy8NCj4g LcKgIFVJTlQzMsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgTGVuZ3RoOw0KPiArwqAgVUlOVDMywqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgTGVuZ3RoOw0KDQpBbnkgcmVhc29uIGZvciB0aGlzIHdo aXRlc3BhY2UgY2hhbmdlPyBJdCBsb29rcyB3b3JzZSB0aGFuIGJlZm9yZS4NCg0KPsKgIMKgIC8v Lw0KPsKgIMKgIC8vLyBQb2ludGVyIHRvIHRoZSB0ZW1wb3Jhcnkgc3RhY2sgYmFzZSBhZGRyZXNz IHRvIGJlDQo+wqAgwqAgLy8vIGNvbnN1bWVkIGluc2lkZSBGc3BNZW1vcnlJbml0KCkgQVBJLg0K PsKgIMKgIC8vLw0KPiAtwqAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgU3RhY2tCYXNlOw0KPiArwqAg RUZJX1BIWVNJQ0FMX0FERFJFU1PCoCDCoCBTdGFja0Jhc2U7DQoNCkFueSByZWFzb24gZm9yIHRo aXMgd2hpdGVzcGFjZSBjaGFuZ2U/IEl0IGxvb2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0KDQo+wqAg wqAgLy8vDQo+wqAgwqAgLy8vIFRlbXBvcmFyeSBzdGFjayBzaXplIHRvIGJlIGNvbnN1bWVkIGlu c2lkZQ0KPsKgIMKgIC8vLyBGc3BNZW1vcnlJbml0KCkgQVBJLg0KPsKgIMKgIC8vLw0KPiAtwqAg VUlOVDY0wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBTdGFja1NpemU7DQo+ICvCoCBVSU5UNjTCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTdGFja1NpemU7DQoNCkFueSByZWFzb24gZm9yIHRoaXMg d2hpdGVzcGFjZSBjaGFuZ2U/IEl0IGxvb2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0KDQo+wqAgwqAg Ly8vDQo+wqAgwqAgLy8vIFNpemUgb2YgbWVtb3J5IHRvIGJlIHJlc2VydmVkIGJ5IEZTUCBiZWxv dyAidG9wDQo+wqAgwqAgLy8vIG9mIGxvdyB1c2FibGUgbWVtb3J5IiBmb3IgYm9vdGxvYWRlciB1 c2FnZS4NCj7CoCDCoCAvLy8NCj4gLcKgIFVJTlQzMsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQm9v dExvYWRlclRvbHVtU2l6ZTsNCj4gK8KgIFVJTlQzMsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IEJvb3RMb2FkZXJUb2x1bVNpemU7DQoNCkFueSByZWFzb24gZm9yIHRoaXMgd2hpdGVzcGFjZSBj aGFuZ2U/IEl0IGxvb2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0KDQo+wqAgwqAgLy8vDQo+wqAgwqAg Ly8vIEN1cnJlbnQgYm9vdCBtb2RlLg0KPsKgIMKgIC8vLw0KPiAtwqAgVUlOVDMywqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBCb290TW9kZTsNCj4gK8KgIFVJTlQzMsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIEJvb3RNb2RlOw0KDQpBbnkgcmVhc29uIGZvciB0aGlzIHdoaXRlc3BhY2UgY2hhbmdl PyBJdCBsb29rcyB3b3JzZSB0aGFuIGJlZm9yZS4NCg0KPsKgIMKgIC8vLw0KPsKgIMKgIC8vLyBP cHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB0aGUgYm9vdGxvYWRlciB0byBiZSBpbmZvcm1lZCBv ZiBldmVudHMgb2NjdXJyaW5nIGR1cmluZyBGU1AgZXhlY3V0aW9uLg0KPsKgIMKgIC8vLyBUaGlz IHZhbHVlIGlzIG9ubHkgdmFsaWQgaWYgUmV2aXNpb24gaXMgPj0gMi4NCj7CoCDCoCAvLy8NCj4g LcKgIEVGSV9QSFlTSUNBTF9BRERSRVNTIEZzcEV2ZW50SGFuZGxlcjsNCj4gLcKgIFVJTlQ4wqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzZXJ2ZWQxWzI0XTsNCj4gK8KgIEVGSV9QSFlTSUNBTF9B RERSRVNTwqAgwqAgRnNwRXZlbnRIYW5kbGVyOw0KPiArwqAgVUlOVDjCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoFJlc2VydmVkMVsyNF07DQoNCkFueSByZWFzb24gZm9yIHRoZXNlIHdoaXRl c3BhY2UgY2hhbmdlcz8gSXQgbG9va3Mgd29yc2UgdGhhbiBiZWZvcmUuDQoNCj7CoCB9IEZTUE1f QVJDSDJfVVBEOw0KPsKgIA0KPsKgIC8vLw0KPiBAQCAtMjY2LDE4ICsyNjYsMTggQEAgdHlwZWRl ZiBzdHJ1Y3Qgew0KPsKgIMKgIC8vLw0KPsKgIMKgIC8vLyBSZXZpc2lvbiBvZiB0aGUgc3RydWN0 dXJlIGlzIDIgZm9yIHRoaXMgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbi4NCj7CoCDCoCAv Ly8NCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmV2aXNpb247DQo+IC3CoCBV SU5UOMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc2VydmVkWzNdOw0KPiArwqAgVUlOVDjCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJldmlzaW9uOw0KPiArwqAgVUlOVDjCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoFJlc2VydmVkWzNdOw0KDQpBbnkgcmVhc29uIGZvciB0aGVzZSB3 aGl0ZXNwYWNlIGNoYW5nZXM/IEl0IGxvb2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0KDQo+wqAgwqAg Ly8vDQo+wqAgwqAgLy8vIExlbmd0aCBvZiB0aGUgc3RydWN0dXJlIGluIGJ5dGVzLiBUaGUgY3Vy cmVudCB2YWx1ZSBmb3IgdGhpcyBmaWVsZCBpcyAzMi4NCj7CoCDCoCAvLy8NCj4gLcKgIFVJTlQz MsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgTGVuZ3RoOw0KPiArwqAgVUlOVDMywqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgTGVuZ3RoOw0KDQpBbnkgcmVhc29uIGZvciB0aGlzIHdoaXRlc3BhY2Ug Y2hhbmdlPyBJdCBsb29rcyB3b3JzZSB0aGFuIGJlZm9yZS4NCg0KPsKgIMKgIC8vLw0KPsKgIMKg IC8vLyBGc3BFdmVudEhhbmRsZXIgT3B0aW9uYWwgZXZlbnQgaGFuZGxlciBmb3IgdGhlIGJvb3Rs b2FkZXIgdG8gYmUgaW5mb3JtZWQgb2YgZXZlbnRzDQo+wqAgwqAgLy8vIG9jY3VycmluZyBkdXJp bmcgRlNQIGV4ZWN1dGlvbi4NCj7CoCDCoCAvLy8NCj4gLcKgIEVGSV9QSFlTSUNBTF9BRERSRVNT IEZzcEV2ZW50SGFuZGxlcjsNCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVz ZXJ2ZWQxWzE2XTsNCj4gK8KgIEVGSV9QSFlTSUNBTF9BRERSRVNTwqAgwqAgRnNwRXZlbnRIYW5k bGVyOw0KPiArwqAgVUlOVDjCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFJlc2VydmVkMVsx Nl07DQoNCkFueSByZWFzb24gZm9yIHRoZXNlIHdoaXRlc3BhY2UgY2hhbmdlcz8gSXQgbG9va3Mg d29yc2UgdGhhbiBiZWZvcmUuDQoNCj7CoCB9IEZTUFNfQVJDSDJfVVBEOw0KPsKgIA0KPsKgIC8v Lw0KPiBAQCAtNjA5LDQgKzYwOSwyMyBAQCBFRklfU1RBVFVTDQo+wqAgwqAgSU4gRlNQX01VTFRJ X1BIQVNFX1BBUkFNU8KgIMKgIMKgKk11bHRpUGhhc2VTaUluaXRQYXJhbVB0cg0KPsKgIMKgICk7 DQo+wqAgDQo+ICsvKioNCj4gK8KgIFRoaXMgRlNQIEFQSSBpbml0aWFsaXplcyBTTU0gYW5kIHBy b3ZpZGUgYW55IE9TIHJ1bnRpbWUgc2lsaWNvbiBzZXJ2aWNlcywNCj4gK8KgIGluY2x1ZGluZyBS ZWxpYWJpbGl0eSwgQXZhaWxhYmlsaXR5LCBhbmQgU2VydmljZWFiaWxpdHkgKFJBUykgZmVhdHVy ZXMgaW1wbGVtZW50ZWQgYnkgdGhlIENQVS4NCj4gKw0KPiArwqAgQHBhcmFtW2luXSBGc3BpVXBk RGF0YVB0csKgIMKgIMKgUG9pbnRlciB0byB0aGUgRlNQSV9VUEQgZGF0YSBzdHJ1Y3R1cmUuDQo+ ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBJZiBOVUxM LCBGU1Agd2lsbCB1c2UgdGhlIGRlZmF1bHQgcGFyYW1ldGVycy4NCj4gKw0KPiArwqAgQHJldHZh bCBFRklfU1VDQ0VTU8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgRlNQIGV4ZWN1dGlvbiBlbnZp cm9ubWVudCB3YXMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiArwqAgQHJldHZhbCBFRklf SU5WQUxJRF9QQVJBTUVURVLCoCDCoCDCoCDCoElucHV0IHBhcmFtZXRlcnMgYXJlIGludmFsaWQu DQo+ICvCoCBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRMKgIMKgIMKgIMKgIMKgIMKgIMKgVGhlIEZT UCBjYWxsaW5nIGNvbmRpdGlvbnMgd2VyZSBub3QgbWV0Lg0KPiArwqAgQHJldHZhbCBFRklfREVW SUNFX0VSUk9SwqAgwqAgwqAgwqAgwqAgwqAgRlNQIGluaXRpYWxpemF0aW9uIGZhaWxlZC4NCj4g K8KgIEByZXR2YWwgRlNQX1NUQVRVU19SRVNFVF9SRVFVSVJFRHjCoCBBIHJlc2V0IGlzIHJlcXVp cmVkLiBUaGVzZSBzdGF0dXMgY29kZXMgd2lsbCBub3QgYmUgcmV0dXJuZWQgZHVyaW5nIFMzLg0K PiArKiovDQo+ICt0eXBlZGVmDQo+ICtFRklfU1RBVFVTDQo+ICsoRUZJQVBJICpGU1BfU01NX0lO SVQpKA0KPiArwqAgSU4gVk9JRMKgIMKgIMKgIMKgIMKgICpGc3BpVXBkRGF0YVB0cg0KPiArwqAg KTsNCj4gKw0KPsKgICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvSW50ZWxGc3AyUGtnL0luY2x1ZGUv RnNwR2xvYmFsRGF0YS5oIGIvSW50ZWxGc3AyUGtnL0luY2x1ZGUvRnNwR2xvYmFsRGF0YS5oDQo+ IGluZGV4IDQ0NTU0MGFiZmEuLjY5N2IyMGVkNGMgMTAwNjQ0DQo+IC0tLSBhL0ludGVsRnNwMlBr Zy9JbmNsdWRlL0ZzcEdsb2JhbERhdGEuaA0KPiArKysgYi9JbnRlbEZzcDJQa2cvSW5jbHVkZS9G c3BHbG9iYWxEYXRhLmgNCj4gQEAgLTEwLDkgKzEwLDkgQEANCj7CoCANCj7CoCAjaW5jbHVkZSA8 RnNwRWFzLmg+DQo+wqAgDQo+IC0jZGVmaW5lIEZTUF9JTl9BUElfTU9ERcKgIMKgIMKgIMKgIMKg MA0KPiAtI2RlZmluZSBGU1BfSU5fRElTUEFUQ0hfTU9ERcKgIMKgIDENCj4gLSNkZWZpbmUgRlNQ X0dMT0JBTF9EQVRBX1ZFUlNJT04gMQ0KPiArI2RlZmluZSBGU1BfSU5fQVBJX01PREXCoCDCoCDC oCDCoCDCoCAwDQo+ICsjZGVmaW5lIEZTUF9JTl9ESVNQQVRDSF9NT0RFwqAgwqAgwqAxDQo+ICsj ZGVmaW5lIEZTUF9HTE9CQUxfREFUQV9WRVJTSU9OwqAgMQ0KPsKgIA0KPsKgICNwcmFnbWEgcGFj aygxKQ0KPsKgIA0KPiBAQCAtMjQsMTYgKzI0LDE3IEBAIHR5cGVkZWYgZW51bSB7DQo+wqAgwqAg VGVtcFJhbUV4aXRBcGlJbmRleCwNCj7CoCDCoCBGc3BTaWxpY29uSW5pdEFwaUluZGV4LA0KPsKg IMKgIEZzcE11bHRpUGhhc2VTaUluaXRBcGlJbmRleCwNCj4gK8KgIEZzcFNtbUluaXRBcGlJbmRl eCwNCj7CoCDCoCBGc3BBcGlJbmRleE1heA0KPsKgIH0gRlNQX0FQSV9JTkRFWDsNCj7CoCANCj7C oCB0eXBlZGVmIHN0cnVjdMKgIHsNCj4gLcKgIFZPSUTCoCDCoCDCoCAqRGF0YVB0cjsNCj4gLcKg IFVJTlROwqAgwqAgwqBNaWNyb2NvZGVSZWdpb25CYXNlOw0KPiAtwqAgVUlOVE7CoCDCoCDCoE1p Y3JvY29kZVJlZ2lvblNpemU7DQo+IC3CoCBVSU5UTsKgIMKgIMKgQ29kZVJlZ2lvbkJhc2U7DQo+ IC3CoCBVSU5UTsKgIMKgIMKgQ29kZVJlZ2lvblNpemU7DQo+IC3CoCBVSU5UTsKgIMKgIMKgUmVz ZXJ2ZWQ7DQo+ICvCoCBWT0lEwqAgwqAgwqAqRGF0YVB0cjsNCj4gK8KgIFVJTlROwqAgwqAgTWlj cm9jb2RlUmVnaW9uQmFzZTsNCj4gK8KgIFVJTlROwqAgwqAgTWljcm9jb2RlUmVnaW9uU2l6ZTsN Cj4gK8KgIFVJTlROwqAgwqAgQ29kZVJlZ2lvbkJhc2U7DQo+ICvCoCBVSU5UTsKgIMKgIENvZGVS ZWdpb25TaXplOw0KPiArwqAgVUlOVE7CoCDCoCBSZXNlcnZlZDsNCj7CoCB9IEZTUF9QTEFUX0RB VEE7DQo+wqAgDQo+wqAgI2RlZmluZSBGU1BfR0xPQkFMX0RBVEFfU0lHTkFUVVJFwqAgwqAgwqAg wqAgU0lHTkFUVVJFXzMyICgnRicsICdTJywgJ1AnLCAnRCcpDQo+IEBAIC00MSwyOCArNDIsMjgg QEAgdHlwZWRlZiBzdHJ1Y3TCoCB7DQo+wqAgI2RlZmluZSBGU1BfUEVSRk9STUFOQ0VfREFUQV9U SU1FUl9NQVNLwqAgMHhGRkZGRkZGRkZGRkZGRg0KPsKgIA0KPsKgIHR5cGVkZWYgc3RydWN0wqAg ew0KPiAtwqAgVUlOVDMywqAgwqAgwqAgwqAgwqAgwqAgwqBTaWduYXR1cmU7DQo+IC3CoCBVSU5U OMKgIMKgIMKgIMKgIMKgIMKgIMKgIFZlcnNpb247DQo+IC3CoCBVSU5UOMKgIMKgIMKgIMKgIMKg IMKgIMKgIFJlc2VydmVkMVszXTsNCj4gK8KgIFVJTlQzMsKgIMKgIFNpZ25hdHVyZTsNCj4gK8Kg IFVJTlQ4wqAgwqAgwqBWZXJzaW9uOw0KPiArwqAgVUlOVDjCoCDCoCDCoFJlc2VydmVkMVszXTsN Cj7CoCDCoCAvLy8NCj7CoCDCoCAvLy8gT2Zmc2V0IDB4MDgNCj7CoCDCoCAvLy8NCj4gLcKgIFVJ TlROwqAgwqAgwqAgwqAgwqAgwqAgwqAgQ29yZVN0YWNrOw0KPiAtwqAgVUlOVE7CoCDCoCDCoCDC oCDCoCDCoCDCoCBSZXNlcnZlZDI7DQo+ICvCoCBVSU5UTsKgIMKgIMKgQ29yZVN0YWNrOw0KPiAr wqAgVUlOVE7CoCDCoCDCoFJlc2VydmVkMjsNCj7CoCDCoCAvLy8NCj7CoCDCoCAvLy8gSUEzMjog T2Zmc2V0IDB4MTA7IFg2NDogT2Zmc2V0IDB4MTgNCj7CoCDCoCAvLy8NCj4gLcKgIFVJTlQzMsKg IMKgIMKgIMKgIMKgIMKgIMKgU3RhdHVzQ29kZTsNCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAg wqAgwqAgQXBpSWR4Ow0KPiArwqAgVUlOVDMywqAgwqAgU3RhdHVzQ29kZTsNCj4gK8KgIFVJTlQ4 wqAgwqAgwqBBcGlJZHg7DQo+wqAgwqAgLy8vDQo+wqAgwqAgLy8vIDA6IEZTUCBpbiBBUEkgbW9k ZTsgMTogRlNQIGluIERJU1BBVENIIG1vZGUNCj7CoCDCoCAvLy8NCj4gLcKgIFVJTlQ4wqAgwqAg wqAgwqAgwqAgwqAgwqAgRnNwTW9kZTsNCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAg T25TZXBhcmF0ZVN0YWNrOw0KPiAtwqAgVUlOVDjCoCDCoCDCoCDCoCDCoCDCoCDCoCBSZXNlcnZl ZDM7DQo+IC3CoCBVSU5UMzLCoCDCoCDCoCDCoCDCoCDCoCDCoE51bWJlck9mUGhhc2VzOw0KPiAt wqAgVUlOVDMywqAgwqAgwqAgwqAgwqAgwqAgwqBQaGFzZXNFeGVjdXRlZDsNCj4gLcKgIFVJTlQz MsKgIMKgIMKgIMKgIMKgIMKgIMKgUmVzZXJ2ZWQ0WzhdOw0KPiArwqAgVUlOVDjCoCDCoCDCoEZz cE1vZGU7DQo+ICvCoCBVSU5UOMKgIMKgIMKgT25TZXBhcmF0ZVN0YWNrOw0KPiArwqAgVUlOVDjC oCDCoCDCoFJlc2VydmVkMzsNCj4gK8KgIFVJTlQzMsKgIMKgIE51bWJlck9mUGhhc2VzOw0KPiAr wqAgVUlOVDMywqAgwqAgUGhhc2VzRXhlY3V0ZWQ7DQo+ICvCoCBVSU5UMzLCoCDCoCBSZXNlcnZl ZDRbOF07DQo+wqAgwqAgLy8vDQo+wqAgwqAgLy8vIElBMzI6IE9mZnNldCAweDQwOyBYNjQ6IE9m ZnNldCAweDQ4DQo+wqAgwqAgLy8vIFN0YXJ0IG9mIFVJTlROIGFuZCBwb2ludGVyIHNlY3Rpb24N Cj4gQEAgLTc1LDIxICs3NiwyMyBAQCB0eXBlZGVmIHN0cnVjdMKgIHsNCj7CoCDCoCBWT0lEwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAqVGVtcFJhbUluaXRVcGRQdHI7DQo+wqAgwqAgVk9JRMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgKk1lbW9yeUluaXRVcGRQdHI7DQo+wqAgwqAgVk9JRMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgKlNpbGljb25Jbml0VXBkUHRyOw0KPiArwqAgVk9JRMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgKlNtbUluaXRVcGRQdHI7DQo+wqAgwqAgLy8vDQo+IC3CoCAvLy8gSUEzMjog T2Zmc2V0IDB4NjQ7IFg2NDogT2Zmc2V0IDB4OTANCj4gK8KgIC8vLyBJQTMyOiBPZmZzZXQgMHg2 ODsgWDY0OiBPZmZzZXQgMHg5OA0KPsKgIMKgIC8vLyBUbyBzdG9yZSBmdW5jdGlvbiBwYXJhbWV0 ZXJzIHBvaW50ZXINCj7CoCDCoCAvLy8gc28gaXQgY2FuIGJlIHJldHJpZXZlZCBhZnRlciBzdGFj ayBzd2l0Y2hlZC4NCj7CoCDCoCAvLy8NCj7CoCDCoCBWT0lEwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAqRnVuY3Rpb25QYXJhbWV0ZXJQdHI7DQo+wqAgwqAgRlNQX0lORk9fSEVBREVSwqAgwqAgKkZz cEluZm9IZWFkZXI7DQo+wqAgwqAgVk9JRMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKlVwZERhdGFQ dHI7DQo+ICvCoCBVSU5UTsKgIMKgIMKgIMKgIMKgIMKgIMKgIFJlc2VydmVkNTsNCj7CoCDCoCAv Ly8NCj7CoCDCoCAvLy8gRW5kIG9mIFVJTlROIGFuZCBwb2ludGVyIHNlY3Rpb24NCj7CoCDCoCAv Ly8NCj4gLcKgIFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzZXJ2ZWQ1WzE2XTsNCj4gK8Kg IFVJTlQ4wqAgwqAgwqAgwqAgwqAgwqAgwqAgUmVzZXJ2ZWQ2WzE2XTsNCj7CoCDCoCBVSU5UMzLC oCDCoCDCoCDCoCDCoCDCoCDCoFBlcmZTaWc7DQo+wqAgwqAgVUlOVDE2wqAgwqAgwqAgwqAgwqAg wqAgwqBQZXJmTGVuOw0KPiAtwqAgVUlOVDE2wqAgwqAgwqAgwqAgwqAgwqAgwqBSZXNlcnZlZDY7 DQo+ICvCoCBVSU5UMTbCoCDCoCDCoCDCoCDCoCDCoCDCoFJlc2VydmVkNzsNCj7CoCDCoCBVSU5U MzLCoCDCoCDCoCDCoCDCoCDCoCDCoFBlcmZJZHg7DQo+wqAgwqAgVUlOVDY0wqAgwqAgwqAgwqAg wqAgwqAgwqBQZXJmRGF0YVszMl07DQo+wqAgfSBGU1BfR0xPQkFMX0RBVEE7DQo+IGRpZmYgLS1n aXQgYS9JbnRlbEZzcDJQa2cvSW5jbHVkZS9HdWlkL0ZzcEhlYWRlckZpbGUuaCBiL0ludGVsRnNw MlBrZy9JbmNsdWRlL0d1aWQvRnNwSGVhZGVyRmlsZS5oDQo+IGluZGV4IGM2NjBkZWZhYzMuLmM3 ZmI2MzE2OGYgMTAwNjQ0DQo+IC0tLSBhL0ludGVsRnNwMlBrZy9JbmNsdWRlL0d1aWQvRnNwSGVh ZGVyRmlsZS5oDQo+ICsrKyBiL0ludGVsRnNwMlBrZy9JbmNsdWRlL0d1aWQvRnNwSGVhZGVyRmls ZS5oDQo+IEBAIC0yNiwxMyArMjYsMTMgQEANCj7CoCANCj7CoCAjZGVmaW5lIEZTUF9JTkZPX0hF QURFUl9TSUdOQVRVUkXCoCBTSUdOQVRVUkVfMzIgKCdGJywgJ1MnLCAnUCcsICdIJykNCj7CoCAN Cj4gLSNkZWZpbmUgSU1BR0VfQVRUUklCVVRFX0dSQVBISUNTX1NVUFBPUlTCoCDCoCDCoCBCSVQw DQo+IC0jZGVmaW5lIElNQUdFX0FUVFJJQlVURV9ESVNQQVRDSF9NT0RFX1NVUFBPUlQgQklUMQ0K PiAtI2RlZmluZSBJTUFHRV9BVFRSSUJVVEVfNjRCSVRfTU9ERV9TVVBQT1JUwqAgwqAgQklUMg0K PiAtI2RlZmluZSBGU1BfSUEzMsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIDANCj4gLSNkZWZpbmUgRlNQX1g2NMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgMQ0KPiArI2RlZmluZSBJTUFHRV9BVFRSSUJVVEVfR1JBUEhJQ1Nf U1VQUE9SVMKgIMKgIMKgIMKgQklUMA0KPiArI2RlZmluZSBJTUFHRV9BVFRSSUJVVEVfRElTUEFU Q0hfTU9ERV9TVVBQT1JUwqAgQklUMQ0KPiArI2RlZmluZSBJTUFHRV9BVFRSSUJVVEVfNjRCSVRf TU9ERV9TVVBQT1JUwqAgwqAgwqBCSVQyDQo+ICsjZGVmaW5lIEZTUF9JQTMywqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAwDQo+ICsjZGVmaW5lIEZTUF9YNjTC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxDQo+wqAgDQo+ IC0jcHJhZ21hIHBhY2soMSkNCj4gK8KgICNwcmFnbWEgcGFjaygxKQ0KDQpXaHkgYWRkIGFuIGlu ZGVudCB0byB0aGUgI3ByYWdtYSBsaW5lPyBJJ20gcHJldHR5IHN1cmUgdGhhdCBlZGsyIGNvZGlu ZyBzdHlsZSBndWlkZWxpbmVzIGRvbid0IHJlcXVpcmUgdGhhdCBhbmQgaXQgY2VydGFpbmx5IGxv b2tzIHdvcnNlIHRoYW4gYmVmb3JlLg0KDQo+wqAgDQo+wqAgLy8vDQo+wqAgLy8vIEZTUCBJbmZv cm1hdGlvbiBIZWFkZXIgYXMgZGVzY3JpYmVkIGluIEZTUCB2Mi4wIFNwZWMgc2VjdGlvbiA1LjEu MS4NCj4gQEAgLTE1OSw2ICsxNTksMTQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPsKgIMKgIC8vLyBC eXRlIDB4NEU6IFJlc2VydmVkNC4NCj7CoCDCoCAvLy8NCj7CoCDCoCBVSU5UMTbCoCDCoCBSZXNl cnZlZDQ7DQo+ICvCoCAvLy8NCj4gK8KgIC8vLyBCeXRlIDB4NTA6IE9mZnNldCBmb3IgdGhlIEFQ SSBmb3IgdGhlIE11bHRpLVBoYXNlIG1lbW9yeSBpbml0aWFsaXphdGlvbi4NCj4gK8KgIC8vLw0K PiArwqAgVUlOVDMywqAgwqAgRnNwTXVsdGlQaGFzZU1lbUluaXRFbnRyeU9mZnNldDsNCj4gK8Kg IC8vLw0KPiArwqAgLy8vIEJ5dGUgMHg1NDogT2Zmc2V0IGZvciB0aGUgQVBJIHRvIGluaXRpYWxp emUgU01NLg0KPiArwqAgLy8vDQo+ICvCoCBVSU5UMzLCoCDCoCBGc3BTbW1Jbml0RW50cnlPZmZz ZXQ7DQo+wqAgfSBGU1BfSU5GT19IRUFERVI7DQo+wqAgDQo+wqAgLy8vDQo+IEBAIC0yNDAsNyAr MjQ4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPsKgIMKgIC8vIFVJTlQzMsKgIFBhdGNoRGF0YVtd Ow0KPsKgIH0gRlNQX1BBVENIX1RBQkxFOw0KPsKgIA0KPiAtI3ByYWdtYSBwYWNrKCkNCj4gK8Kg ICNwcmFnbWEgcGFjaygpDQoNCldoeSBhZGQgYW4gaW5kZW50IHRvIHRoZSAjcHJhZ21hIGxpbmU/ IEknbSBwcmV0dHkgc3VyZSB0aGF0IGVkazIgY29kaW5nIHN0eWxlIGd1aWRlbGluZXMgZG9uJ3Qg cmVxdWlyZSB0aGF0IGFuZCBpdCBjZXJ0YWlubHkgbG9va3Mgd29yc2UgdGhhbiBiZWZvcmUuDQoN Cj7CoCANCj7CoCBleHRlcm4gRUZJX0dVSUTCoCBnRnNwSGVhZGVyRmlsZUd1aWQ7DQo+wqAgDQo+ IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvSW50ZWxGc3AyUGtnLmRzYyBiL0ludGVsRnNwMlBr Zy9JbnRlbEZzcDJQa2cuZHNjDQo+IGluZGV4IDdjZjdlODgyNDUuLmIyZDc4Njc4ODAgMTAwNjQ0 DQo+IC0tLSBhL0ludGVsRnNwMlBrZy9JbnRlbEZzcDJQa2cuZHNjDQo+ICsrKyBiL0ludGVsRnNw MlBrZy9JbnRlbEZzcDJQa2cuZHNjDQo+IEBAIC02OCw2ICs2OCw3IEBADQo+wqAgwqAgSW50ZWxG c3AyUGtnL0ZzcFNlY0NvcmUvRnNwU2VjQ29yZVQuaW5mDQo+wqAgwqAgSW50ZWxGc3AyUGtnL0Zz cFNlY0NvcmUvRnNwU2VjQ29yZU0uaW5mDQo+wqAgwqAgSW50ZWxGc3AyUGtnL0ZzcFNlY0NvcmUv RnNwU2VjQ29yZVMuaW5mDQo+ICvCoCBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9Gc3BTZWNDb3Jl SS5pbmYNCj7CoCDCoCBJbnRlbEZzcDJQa2cvRnNwU2VjQ29yZS9Gc3AyMlNlY0NvcmVTLmluZg0K PsKgIMKgIEludGVsRnNwMlBrZy9Gc3BOb3RpZnlQaGFzZS9Gc3BOb3RpZnlQaGFzZVBlaW0uaW5m DQo+wqAgDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJQa2cvVG9vbHMvR2VuQ2ZnT3B0LnB5IGIv SW50ZWxGc3AyUGtnL1Rvb2xzL0dlbkNmZ09wdC5weQ0KPiBpbmRleCBjNGZiMWYxYmIyLi4xMjhi ODk2NTkyIDEwMDY0NA0KPiAtLS0gYS9JbnRlbEZzcDJQa2cvVG9vbHMvR2VuQ2ZnT3B0LnB5DQo+ ICsrKyBiL0ludGVsRnNwMlBrZy9Ub29scy9HZW5DZmdPcHQucHkNCj4gQEAgLTk1Myw4ICs5NTMs OCBAQCBFbmRMaXN0DQo+wqAgwqAgwqAgwqAgwqAgcmV0dXJuIE5vRmlsZUNoYW5nZQ0KPsKgIA0K PsKgIMKgIMKgIGRlZiBDcmVhdGVTcGxpdFVwZFR4dCAoc2VsZiwgVXBkVHh0RmlsZSk6DQo+IC3C oCDCoCDCoCDCoCBHdWlkTGlzdCA9IFsnRlNQX1RfVVBEX1RPT0xfR1VJRCcsJ0ZTUF9NX1VQRF9U T09MX0dVSUQnLCdGU1BfU19VUERfVE9PTF9HVUlEJ10NCj4gLcKgIMKgIMKgIMKgIFNpZ25hdHVy ZUxpc3QgPSBbJzB4NTQ1RicsICcweDRENUYnLCcweDUzNUYnXcKgIMKgIMKgIMKgICPCoCBfVCwg X00sIGFuZCBfUyBzaWduYXR1cmUgZm9yIEZTUFQsIEZTUE0sIEZTUFMNCj4gK8KgIMKgIMKgIMKg IEd1aWRMaXN0ID0gWydGU1BfVF9VUERfVE9PTF9HVUlEJywnRlNQX01fVVBEX1RPT0xfR1VJRCcs J0ZTUF9TX1VQRF9UT09MX0dVSUQnLCdGU1BfSV9VUERfVE9PTF9HVUlEJ10NCj4gK8KgIMKgIMKg IMKgIFNpZ25hdHVyZUxpc3QgPSBbJzB4NTQ1RicsICcweDRENUYnLCcweDUzNUYnLCcweDQ5NUYn XcKgIMKgIMKgIMKgICPCoCBfVCwgX00sIF9TIGFuZCBfSSBzaWduYXR1cmUgZm9yIEZTUFQsIEZT UE0sIEZTUFMsIEZTUEkNCj7CoCDCoCDCoCDCoCDCoCBmb3IgSW5kZXggaW4gcmFuZ2UobGVuKEd1 aWRMaXN0KSk6DQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgVXBkVHh0RmlsZSA9ICcnDQo+wqAgwqAg wqAgwqAgwqAgwqAgwqAgRnZEaXIgPSBzZWxmLl9GdkRpcg0KPiBAQCAtMTI4OCwxOSArMTI4OCwy MSBAQCBFbmRMaXN0DQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBDaGFycy5hcHBl bmQoY2hyKFZhbHVlICYgMHhGRikpDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBW YWx1ZSA9IFZhbHVlID4+IDgNCj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFNpZ25hdHVyZVN0 ciA9ICcnLmpvaW4oQ2hhcnMpDQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCMgU2lnbmF0dXJl IHdpbGwgYmUgX1QgLyBfTSAvIF9TIGZvciBGU1BUIC8gRlNQTSAvIEZTUFMgYWNjb3JkaW5nbHkN Cj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIyBTaWduYXR1cmUgd2lsbCBiZSBfVCAvIF9NIC8g X1MgLyBfSSBmb3IgRlNQVCAvIEZTUE0gLyBGU1BTIC9GU1BJIGFjY29yZGluZ2x5DQo+wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAnX1QnIGluIFNpZ25hdHVyZVN0cls2OjYrMl06DQo+wqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBUeHRCb2R5LmFwcGVuZCgiI2RlZmluZSBGU1BU X1VQRF9TSUdOQVRVUkXCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCVzwqAgwqAgwqAgwqAgLyogJyVz JyAqL1xuXG4iICUgKEl0ZW1bJ3ZhbHVlJ10sIFNpZ25hdHVyZVN0cikpDQo+wqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBlbGlmICdfTScgaW4gU2lnbmF0dXJlU3RyWzY6NisyXToNCj7CoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFR4dEJvZHkuYXBwZW5kKCIjZGVmaW5lIEZTUE1fVVBE X1NJR05BVFVSRcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgJXPCoCDCoCDCoCDCoCAvKiAnJXMnICov XG5cbiIgJSAoSXRlbVsndmFsdWUnXSwgU2lnbmF0dXJlU3RyKSkNCj7CoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoGVsaWYgJ19TJyBpbiBTaWduYXR1cmVTdHJbNjo2KzJdOg0KPsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgVHh0Qm9keS5hcHBlbmQoIiNkZWZpbmUgRlNQU19VUERfU0lH TkFUVVJFwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAlc8KgIMKgIMKgIMKgIC8qICclcycgKi9cblxu IiAlIChJdGVtWyd2YWx1ZSddLCBTaWduYXR1cmVTdHIpKQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBlbGlmICdfSScgaW4gU2lnbmF0dXJlU3RyWzY6NisyXToNCj4gK8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgVHh0Qm9keS5hcHBlbmQoIiNkZWZpbmUgRlNQSV9VUERfU0lHTkFUVVJF wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAlc8KgIMKgIMKgIMKgIC8qICclcycgKi9cblxuIiAlIChJ dGVtWyd2YWx1ZSddLCBTaWduYXR1cmVTdHIpKQ0KPsKgIMKgIMKgIMKgIMKgIFR4dEJvZHkuYXBw ZW5kKCJcbiIpDQo+wqAgDQo+wqAgwqAgwqAgwqAgwqAgZm9yIFJlZ2lvbiBpbiBbJ1VQRCddOg0K PsKgIMKgIMKgIMKgIMKgIMKgIMKgIFVwZE9mZnNldFRhYmxlID0gW10NCj4gLcKgIMKgIMKgIMKg IMKgIMKgIFVwZFNpZ25hdHVyZSA9IFsnMHg1NDVGJywgJzB4NEQ1RicsICcweDUzNUYnXcKgIMKg I1snX1QnLCAnX00nLCAnX1MnXSBzaWduYXR1cmUgZm9yIEZTUFQsIEZTUE0sIEZTUFMNCj4gLcKg IMKgIMKgIMKgIMKgIMKgIFVwZFN0cnVjdHVyZSA9IFsnRlNQVF9VUEQnLCAnRlNQTV9VUEQnLCAn RlNQU19VUEQnXQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgVXBkU2lnbmF0dXJlID0gWycweDU0NUYn LCAnMHg0RDVGJywgJzB4NTM1RicsICcweDQ5NUYnXcKgIMKgI1snX1QnLCAnX00nLCAnX1MnLCAn X0knXSBzaWduYXR1cmUgZm9yIEZTUFQsIEZTUE0sIEZTUFMsIEZTUEkNCj4gK8KgIMKgIMKgIMKg IMKgIMKgIFVwZFN0cnVjdHVyZSA9IFsnRlNQVF9VUEQnLCAnRlNQTV9VUEQnLCAnRlNQU19VUEQn LCAnRlNQSV9VUEQnXQ0KPsKgIMKgIMKgIMKgIMKgIMKgIMKgIGZvciBJdGVtIGluIHNlbGYuX0Nm Z0l0ZW1MaXN0Og0KPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIEl0ZW1bImNuYW1lIl0g PT0gJ1NpZ25hdHVyZScgYW5kIEl0ZW1bInZhbHVlIl1bMDo2XSBpbiBVcGRTaWduYXR1cmU6DQo+ wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgSXRlbVsib2Zmc2V0Il0gPSAwICMgcmUt aW5pdGlhbGl6ZSBvZmZzZXQgdG8gMCB3aGVuIG5ldyBVUEQgc3RydWN0dXJlIHN0YXJ0aW5nDQo+ IEBAIC0xMzkzLDExICsxMzk1LDEyIEBAIEVuZExpc3QNCj7CoCDCoCDCoCDCoCDCoCBIZWFkZXJU RmlsZU5hbWUgPSAnRnNwdFVwZC5oJw0KPsKgIMKgIMKgIMKgIMKgIEhlYWRlck1GaWxlTmFtZSA9 ICdGc3BtVXBkLmgnDQo+wqAgwqAgwqAgwqAgwqAgSGVhZGVyU0ZpbGVOYW1lID0gJ0ZzcHNVcGQu aCcNCj4gK8KgIMKgIMKgIMKgIEhlYWRlcklGaWxlTmFtZSA9ICdGc3BpVXBkLmgnDQo+wqAgDQo+ IC3CoCDCoCDCoCDCoCBVcGRSZWdpb25DaGVjayA9IFsnRlNQVCcsICdGU1BNJywgJ0ZTUFMnXcKg IMKgIMKgIyBGU1BYX1VQRF9SRUdJT04NCj4gLcKgIMKgIMKgIMKgIFVwZENvbmZpZ0NoZWNrID0g WydGU1BfVCcsICdGU1BfTScsICdGU1BfUyddwqAgIyBGU1BfWF9DT05GSUcsIEZTUF9YX1RFU1Rf Q09ORklHLCBGU1BfWF9SRVNUUklDVEVEX0NPTkZJRw0KPiAtwqAgwqAgwqAgwqAgVXBkU2lnbmF0 dXJlQ2hlY2sgPSBbJ0ZTUFRfVVBEX1NJR05BVFVSRScsICdGU1BNX1VQRF9TSUdOQVRVUkUnLCAn RlNQU19VUERfU0lHTkFUVVJFJ10NCj4gLcKgIMKgIMKgIMKgIEV4Y2x1ZGVkU3BlY2lmaWNVcGQg PSBbJ0ZTUFRfQVJDSF9VUEQnLCAnRlNQTV9BUkNIX1VQRCcsICdGU1BTX0FSQ0hfVVBEJ10NCj4g K8KgIMKgIMKgIMKgIFVwZFJlZ2lvbkNoZWNrID0gWydGU1BUJywgJ0ZTUE0nLCAnRlNQUycsICdG U1BJJ13CoCDCoCDCoCMgRlNQWF9VUERfUkVHSU9ODQo+ICvCoCDCoCDCoCDCoCBVcGRDb25maWdD aGVjayA9IFsnRlNQX1QnLCAnRlNQX00nLCAnRlNQX1MnLCAnRlNQX0knXcKgICMgRlNQX1hfQ09O RklHLCBGU1BfWF9URVNUX0NPTkZJRywgRlNQX1hfUkVTVFJJQ1RFRF9DT05GSUcNCj4gK8KgIMKg IMKgIMKgIFVwZFNpZ25hdHVyZUNoZWNrID0gWydGU1BUX1VQRF9TSUdOQVRVUkUnLCAnRlNQTV9V UERfU0lHTkFUVVJFJywgJ0ZTUFNfVVBEX1NJR05BVFVSRScsICdGU1BJX1VQRF9TSUdOQVRVUkUn XQ0KPiArwqAgwqAgwqAgwqAgRXhjbHVkZWRTcGVjaWZpY1VwZCA9IFsnRlNQVF9BUkNIX1VQRCcs ICdGU1BNX0FSQ0hfVVBEJywgJ0ZTUFNfQVJDSF9VUEQnLCAnRlNQSV9BUkNIX1VQRCddDQo+wqAg wqAgwqAgwqAgwqAgRXhjbHVkZWRTcGVjaWZpY1VwZDEgPSBbJ0ZTUFRfQVJDSDJfVVBEJywgJ0ZT UE1fQVJDSDJfVVBEJywgJ0ZTUFNfQVJDSDJfVVBEJ10NCj7CoCANCj7CoCDCoCDCoCDCoCDCoCBJ bmNMaW5lcyA9IFtdDQo+IEBAIC0xNDIwLDYgKzE0MjMsOSBAQCBFbmRMaXN0DQo+wqAgwqAgwqAg wqAgwqAgwqAgwqAgZWxpZiBVcGRSZWdpb25DaGVja1tpdGVtXSA9PSAnRlNQUyc6DQo+wqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgSGVhZGVyRmQgPSBvcGVuKG9zLnBhdGguam9pbihGdkRpciwg SGVhZGVyU0ZpbGVOYW1lKSwgInciKQ0KPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEZpbGVC YXNlID0gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLmpvaW4oRnZEaXIsIEhlYWRlclNGaWxlTmFt ZSkpDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCBlbGlmIFVwZFJlZ2lvbkNoZWNrW2l0ZW1dID09ICdG U1BJJzoNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIEhlYWRlckZkID0gb3Blbihvcy5wYXRo LmpvaW4oRnZEaXIsIEhlYWRlcklGaWxlTmFtZSksICJ3IikNCj4gK8KgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIEZpbGVCYXNlID0gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLmpvaW4oRnZEaXIsIEhl YWRlcklGaWxlTmFtZSkpDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgRmlsZU5hbWUgPSBGaWxlQmFz ZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgSGVhZGVy RmQud3JpdGUoIiVzXG4iwqAgwqAlIChfX2NvcHlyaWdodF9oX18gJSBkYXRlLnRvZGF5KCkueWVh cikpDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgSGVhZGVyRmQud3JpdGUoIiNpZm5kZWYgX18lc19f XG4iwqAgwqAlIEZpbGVOYW1lKQ0KPiBAQCAtMTY5Niw3ICsxNzAyLDcgQEAgRW5kTGlzdA0KPsKg IA0KPsKgIA0KPsKgIGRlZiBVc2FnZSgpOg0KPiAtwqAgwqAgcHJpbnQgKCJHZW5DZmdPcHQgVmVy c2lvbiAwLjU3IikNCj4gK8KgIMKgIHByaW50ICgiR2VuQ2ZnT3B0IFZlcnNpb24gMC41OCIpDQo+ wqAgwqAgwqAgcHJpbnQgKCJVc2FnZToiKQ0KPsKgIMKgIMKgIHByaW50ICgiwqAgwqAgR2VuQ2Zn T3B0wqAgVVBEVFhUwqAgUGxhdGZvcm1Ec2NGaWxlIEJ1aWxkRnZEaXLCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoFstRCBNYWNyb3NdIikNCj7CoCDCoCDCoCBwcmludCAoIsKgIMKgIEdlbkNmZ09w dMKgIEhFQURFUsKgIFBsYXRmb3JtRHNjRmlsZSBCdWlsZEZ2RGlywqAgSW5wdXRIRmlsZcKgIMKg IMKgWy1EIE1hY3Jvc10iKQ0KPiBkaWZmIC0tZ2l0IGEvSW50ZWxGc3AyUGtnL1Rvb2xzL1NwbGl0 RnNwQmluLnB5IGIvSW50ZWxGc3AyUGtnL1Rvb2xzL1NwbGl0RnNwQmluLnB5DQo+IGluZGV4IGY5 MTUxYjVhZmQuLjMxN2Q5YzFmYTAgMTAwNjQ0DQo+IC0tLSBhL0ludGVsRnNwMlBrZy9Ub29scy9T cGxpdEZzcEJpbi5weQ0KPiArKysgYi9JbnRlbEZzcDJQa2cvVG9vbHMvU3BsaXRGc3BCaW4ucHkN Cj4gQEAgLTEsNiArMSw2IEBADQo+wqAgIyMgQCBTcGxpdEZzcEJpbi5weQ0KPsKgICMNCj4gLSMg Q29weXJpZ2h0IChjKSAyMDE1IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMTUgLSAyMDIyLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+wqAgIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPsKgICMNCj7CoCAjIw0KPiBAQCAtNDkyLDcg KzQ5Miw3IEBAIGNsYXNzIEZzcEltYWdlOg0KPsKgIMKgIMKgIMKgIMKgIHNlbGYuRmloT2Zmc2V0 ID0gZmlob2ZmDQo+wqAgwqAgwqAgwqAgwqAgc2VsZi5PZmZzZXTCoCDCoCA9IG9mZnNldA0KPsKg IMKgIMKgIMKgIMKgIHNlbGYuRnZJZHhMaXN0ID0gW10NCj4gLcKgIMKgIMKgIMKgIHNlbGYuVHlw ZcKgIMKgIMKgID0gIlhUTVNYWFhYT1hYWFhYWFgiWyhmaWguQ29tcG9uZW50QXR0cmlidXRlID4+ IDEyKSAmIDB4MEZdDQo+ICvCoCDCoCDCoCDCoCBzZWxmLlR5cGXCoCDCoCDCoCA9ICJYVE1TSVhY WFhPWFhYWFhYWCJbKGZpaC5Db21wb25lbnRBdHRyaWJ1dGUgPj4gMTIpICYgMHgwRl0NCj7CoCDC oCDCoCDCoCDCoCBzZWxmLlBhdGNoTGlzdCA9IHBhdGNoDQo+wqAgwqAgwqAgwqAgwqAgc2VsZi5Q YXRjaExpc3QuYXBwZW5kKGZpaG9mZiArIDB4MUMpDQo+wqAgDQo+IEBAIC04NjksNyArODY5LDcg QEAgZGVmIG1haW4gKCk6DQo+wqAgwqAgwqAgcGFyc2VyX3JlYmFzZcKgID0gc3VicGFyc2Vycy5h ZGRfcGFyc2VyKCdyZWJhc2UnLMKgIGhlbHA9J3JlYmFzZSBhIEZTUCBpbnRvIGEgbmV3IGJhc2Ug YWRkcmVzcycpDQo+wqAgwqAgwqAgcGFyc2VyX3JlYmFzZS5zZXRfZGVmYXVsdHMod2hpY2g9J3Jl YmFzZScpDQo+wqAgwqAgwqAgcGFyc2VyX3JlYmFzZS5hZGRfYXJndW1lbnQoJy1mJyzCoCAnLS1m c3BiaW4nICwgZGVzdD0nRnNwQmluYXJ5JyzCoCB0eXBlPXN0ciwgaGVscD0nRlNQIGJpbmFyeSBm aWxlIHBhdGgnLCByZXF1aXJlZCA9IFRydWUpDQo+IC3CoCDCoCBwYXJzZXJfcmViYXNlLmFkZF9h cmd1bWVudCgnLWMnLMKgICctLWZzcGNvbXAnLCBjaG9pY2VzPVsndCcsJ20nLCdzJywnbyddLMKg IG5hcmdzPScrJywgZGVzdD0nRnNwQ29tcG9uZW50JywgdHlwZT1zdHIsIGhlbHA9J0ZTUCBjb21w b25lbnQgdG8gcmViYXNlJywgZGVmYXVsdCA9ICJbJ3QnXSIsIHJlcXVpcmVkID0gVHJ1ZSkNCj4g K8KgIMKgIHBhcnNlcl9yZWJhc2UuYWRkX2FyZ3VtZW50KCctYycswqAgJy0tZnNwY29tcCcsIGNo b2ljZXM9Wyd0JywnbScsJ3MnLCdvJywnaSddLMKgIG5hcmdzPScrJywgZGVzdD0nRnNwQ29tcG9u ZW50JywgdHlwZT1zdHIsIGhlbHA9J0ZTUCBjb21wb25lbnQgdG8gcmViYXNlJywgZGVmYXVsdCA9 ICJbJ3QnXSIsIHJlcXVpcmVkID0gVHJ1ZSkNCj7CoCDCoCDCoCBwYXJzZXJfcmViYXNlLmFkZF9h cmd1bWVudCgnLWInLMKgICctLW5ld2Jhc2UnLCBkZXN0PSdGc3BCYXNlJywgbmFyZ3M9JysnLCB0 eXBlPXN0ciwgaGVscD0nUmViYXNlZCBGU1AgYmluYXJ5IGZpbGUgbmFtZScsIGRlZmF1bHQgPSAn JywgcmVxdWlyZWQgPSBUcnVlKQ0KPsKgIMKgIMKgIHBhcnNlcl9yZWJhc2UuYWRkX2FyZ3VtZW50 KCctbycswqAgJy0tb3V0ZGlyJyAsIGRlc3Q9J091dHB1dERpcicswqAgdHlwZT1zdHIsIGhlbHA9 J091dHB1dCBkaXJlY3RvcnkgcGF0aCcsIGRlZmF1bHQgPSAnLicpDQo+wqAgwqAgwqAgcGFyc2Vy X3JlYmFzZS5hZGRfYXJndW1lbnQoJy1uJyzCoCAnLS1vdXRmaWxlJywgZGVzdD0nT3V0cHV0Rmls ZScsIHR5cGU9c3RyLCBoZWxwPSdSZWJhc2VkIEZTUCBiaW5hcnkgZmlsZSBuYW1lJywgZGVmYXVs dCA9ICcnKQ0KPiAtLSANCj4gMi4zNS4wLndpbmRvd3MuMQ0KDQoNCg0KDQoNCg0KDQoNCi0tIA0K UGVkcm8gRmFsY2F0bw0K