From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.0.58; helo=eur02-am5-obe.outbound.protection.outlook.com; envelope-from=udit.kumar@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00058.outbound.protection.outlook.com [40.107.0.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A72DC211AEA66 for ; Tue, 5 Jun 2018 10:15:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=phrJln4eWdDvGcB4c9IuoSaChlIrN0f2bfGjzI0Sl38=; b=WLvaHQ7jF+VXtngCaQ4Y7YJ1bW9ANKVX3FmJcjnuJJFIimt+Gi3wsOV/NupVQ7x3Yv0hpaaHwGval3Wlgzc4Vd9qO1Tvo5TcORxzDB57vOPtEizpgqvIJlJEBIkOzW+kq0FMdDV4Yuk9qpmG9QpKHy4A7sIlX8KObGD1ZAXs9j8= Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com (52.133.18.151) by AM6PR0402MB3894.eurprd04.prod.outlook.com (52.133.29.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Tue, 5 Jun 2018 17:15:02 +0000 Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::397b:61de:4465:b93c]) by AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::397b:61de:4465:b93c%2]) with mapi id 15.20.0820.012; Tue, 5 Jun 2018 17:15:02 +0000 From: Udit Kumar To: Ard Biesheuvel CC: "edk2-devel@lists.01.org" , Leif Lindholm Thread-Topic: [edk2][PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Thread-Index: AQHT/MHWCxYmq1d8vUGBd1u/VKMBP6RRlpgAgAAAhoCAAFCmMA== Date: Tue, 5 Jun 2018 17:15:01 +0000 Message-ID: References: <1528155339-5050-1-git-send-email-udit.kumar@nxp.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=udit.kumar@nxp.com; x-originating-ip: [117.242.225.166] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR0402MB3894; 7:wZg4dZ5yoFM/FlTJwAhacO+qRVdyNyUp3k11d3uQUkQ/9hP8lqDwg3Pq8Rs/hMeXee8Q7MPwLqXca+Z/NOdLh+rMSOaQjTMK/O1fQA3XjTKLXPXNv93r/oWx4V1W69dTFJ+Qq99CsWcxe8tjO23lQ1xRhuF84LV1b1J66wlFjPv9QoB1WQWRFzdQpjihu9N0bIxOyLsHrmU0rSHWCRL7FjNOcMM/2vjTPn7jgWz2ybKaOZD7Hsmbk0F/0/1vm1J0 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM6PR0402MB3894; x-ms-traffictypediagnostic: AM6PR0402MB3894: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(185117386973197)(162533806227266)(45079756050767); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:AM6PR0402MB3894; BCL:0; PCL:0; RULEID:; SRVR:AM6PR0402MB3894; x-forefront-prvs: 0694C54398 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(376002)(366004)(396003)(39860400002)(39380400002)(346002)(199004)(13464003)(189003)(4326008)(8936002)(8676002)(3846002)(5660300001)(2906002)(7736002)(305945005)(478600001)(54906003)(45080400002)(99286004)(6306002)(186003)(316002)(59450400001)(25786009)(16799955002)(68736007)(106356001)(3660700001)(6246003)(74316002)(33656002)(53546011)(3280700002)(6916009)(102836004)(11346002)(6506007)(26005)(55016002)(2900100001)(476003)(97736004)(76176011)(5250100002)(486006)(14454004)(6116002)(44832011)(81166006)(6436002)(9686003)(66066001)(86362001)(53936002)(446003)(105586002)(81156014)(7696005)(229853002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0402MB3894; H:AM6PR0402MB3334.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: cfl5kJmPIWkaI0zHxuNlY1Kxn2kwZ6ZQKlG4eMfSaKv3TRuBCNvfVzfzRYMkr+glYnFbi/ajK28TFdmGobrvWzzqAYjYWlDyEVMw+WA8Q/psPx7wzyxe9f5IjcNJxqZiB3NBe+zshGUwF7Z/Sf1rnXQ2UyIMF2GA8ihS+6T7LDmMqfKYk+cGClAY5JpVXp62 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 230d50f2-77e4-4775-17e2-08d5cb07dfa3 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 230d50f2-77e4-4775-17e2-08d5cb07dfa3 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2018 17:15:01.8689 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3894 Subject: Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jun 2018 17:15:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwg W21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiBTZW50OiBUdWVzZGF5LCBKdW5l IDUsIDIwMTggNTo1NiBQTQ0KPiBUbzogVWRpdCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPg0K PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhv bG1AbGluYXJvLm9yZz4NCj4gU3ViamVjdDogUmU6IFtlZGsyXVtQQVRDSCAxLzJdIEFybVBsYXRm b3JtUGtnOiBQTDAxMSBEeW5hbWljIGNsb2NrIGZyZXENCj4gU3VwcG9ydA0KPiANCj4gT24gNSBK dW5lIDIwMTggYXQgMTQ6MjMsIEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnPiB3cm90ZToNCj4gPiBPbiA1IEp1bmUgMjAxOCBhdCAwMTozNSwgVWRpdCBLdW1hciA8dWRp dC5rdW1hckBueHAuY29tPiB3cm90ZToNCj4gPj4gU29tZSBwbGF0Zm9ybSBzdXBwb3J0IGR5bmFt aWMgY2xvY2tpbmcsIFdoaWNoIGlzIGNvbnRyb2xsZWQgYnkgc29tZQ0KPiA+PiBqdW1wZXIgc2V0 dGluZyBvciBoYXJkd2FyZSByZWdpc3RlcnMuDQo+ID4+IFJlc3VsdCBvZiB0aGF0IFBDRCBQTDAx MVVhcnRDbGtJbkh6IG5lZWRzIHRvIGJlIHVwZGF0ZWQgZm9yIGZyZXF1ZW5jeQ0KPiA+PiBjaGFu Z2UuDQo+ID4+IFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBkeW5hbWljIGZyZXF1 ZW5jeSBmb3INCj4gPj4gUEwwMTEgdWFydC4NCj4gPj4gVGhpcyBwYXRjaCBpbXBsZW1lbnQgTlVM TCBsaWIgZm9yIHN1Y2ggcGxhdGZvcm0gd2hlcmUgUGNkIGNsb2NrDQo+ID4+IGZyZXF1ZW5jeSB0 byBQTDAxMSBjYW4gY2hhbmdlDQo+ID4+DQo+ID4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0Nv cmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gPj4gU2lnbmVkLW9mZi1ieTogVWRpdCBL dW1hciA8dWRpdC5rdW1hckBueHAuY29tPg0KPiA+DQo+ID4gSSdtIG5vdCBjcmF6eSBhYm91dCB0 aGlzLiBIb3cgZXhhY3RseSBhcmUgeW91IHJlYWRpbmcgdGhlIGZyZXF1ZW5jeSBpbg0KPiA+IHlv dXIgY2FzZT8NCj4gPg0KPiA+PiAtLS0NCj4gPj4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvQXJtUGxh dGZvcm1DbG9ja0xpYi5oICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysNCj4gPj4g IC4uLi9Bcm1QbGF0Zm9ybUNsb2NrTGliLmluZiAgICAgICAgICAgICAgICAgICAgICAgIHwgMzMg KysrKysrKysrKysrKysrKysrKysNCj4gPj4gIC4uLi9Bcm1QbGF0Zm9ybUNsb2NrTGliTnVsbC5j ICAgICAgICAgICAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKw0KPiA+PiAg MyBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKQ0KPiA+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0DQo+ID4+IEFybVBsYXRmb3JtUGtnL0luY2x1ZGUvTGlicmFyeS9Bcm1QbGF0Zm9ybUNsb2Nr TGliLmgNCj4gPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+PiBBcm1QbGF0Zm9ybVBrZy9MaWJy YXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWJOdWxsL0FybVBsYXRmb3JtQ2xvY2tMaWIuaW4NCj4gPj4g ZiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4+IEFybVBsYXRmb3JtUGtnL0xpYnJhcnkvQXJtUGxh dGZvcm1DbG9ja0xpYk51bGwvQXJtUGxhdGZvcm1DbG9ja0xpYk51bA0KPiA+PiBsLmMNCj4gPj4N Cj4gPg0KPiA+IEFybVBsYXRmb3JtQ2xvY2tMaWIgZG9lc24ndCBtYWtlIHNlbnNlLCBzaW5jZSB0 aGlzIGlzIHNwZWNpZmljIHRvIFBMMDExLCBubz8NCj4gPg0KPiA+DQo+ID4+IGRpZmYgLS1naXQg YS9Bcm1QbGF0Zm9ybVBrZy9JbmNsdWRlL0xpYnJhcnkvQXJtUGxhdGZvcm1DbG9ja0xpYi5oDQo+ ID4+IGIvQXJtUGxhdGZvcm1Qa2cvSW5jbHVkZS9MaWJyYXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWIu aA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAwMDAwLi5mOWQxNDI1 DQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvQXJtUGxhdGZvcm1Qa2cvSW5jbHVkZS9M aWJyYXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWIuaA0KPiA+DQo+ID4gUGxlYXNlIGFkZCBuZXcgbGli cmFyeSBjbGFzc2VzIHRvIHRoZSBwYWNrYWdlIC5kZWMgZmlsZQ0KPiA+DQo+ID4+IEBAIC0wLDAg KzEsMzIgQEANCj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiArKg0KPiA+PiArKiAgQ29weXJpZ2h0IDIw MTggTlhQDQo+ID4+ICsqDQo+ID4+ICsqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlp bmcgbWF0ZXJpYWxzDQo+ID4+ICsqICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVu ZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZg0KPiA+PiArdGhlIEJTRCBMaWNlbnNlDQo+ ID4+ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRl eHQgb2YgdGhlDQo+ID4+ICtsaWNlbnNlIG1heSBiZSBmb3VuZCBhdA0KPiA+PiArKg0KPiA+PiAr aHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRw JTNBJTJGJTJGb3ANCj4gPj4gK2Vuc291cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNl bnNlLnBocCZkYXRhPTAyJTdDMDElN0N1ZGl0Lmt1bWFyJQ0KPiA+Pg0KPiArNDBueHAuY29tJTdD MTI5M2JmNWYxNmRkNDU2ZTFhNDcwOGQ1Y2FkZjc1MGQlN0M2ODZlYTFkM2JjMmI0YzZmYQ0KPiA5 MmNkDQo+ID4+DQo+ICs5OWM1YzMwMTYzNSU3QzAlN0MwJTdDNjM2NjM3OTgzNDUwMDA3NTk0JnNk YXRhPTFxVDJaVEpBWWFiSEJ2Y1ENCj4ga05YblANCj4gPj4gK1BQUWdNMDM4ZjdoU1lVYTdyMkho dm8lM0QmcmVzZXJ2ZWQ9MA0KPiA+PiArKg0KPiA+PiArKiAgVEhFIFBST0dSQU0gSVMgRElTVFJJ QlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPj4gK0JBU0lTLA0K PiA+PiArKiAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lO RCwgRUlUSEVSDQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPj4gKyoNCj4gPj4gKyoqLw0KPiA+ PiArDQo+ID4+ICsjaWZuZGVmIF9BUk1QTEFURk9STUNMT0NLTElCX0hfDQo+ID4+ICsjZGVmaW5l IF9BUk1QTEFURk9STUNMT0NLTElCX0hfDQo+ID4+ICsNCj4gPj4gKw0KPiA+PiArLyoqDQo+ID4+ ICsgIFJldHVybiBmcmVxdWVuY3kgb2YgUEwwMTEuDQo+ID4+ICsNCj4gPj4gKyAgSWYgdGhpcyBm dW5jdGlvbiByZXR1cm4gMCB0aGVuIGZpeGVkIHZhbHVlIGluIFBjZCB3aWxsIGJlIHVzZWQNCj4g Pj4gKw0KPiA+PiArICBAcmV0dXJuIFJldHVybiBmcmVxdWVuY3kgb2YgUEwwMTENCj4gPj4gKw0K PiA+PiArKiovDQo+ID4+ICtVSU5UMzINCj4gPj4gK0FybVBsYXRmb3JtR2V0UEwwMTFDbG9ja0Zy ZXEgKA0KPiA+PiArICBWT0lEDQo+ID4+ICsgICk7DQo+ID4+ICsNCj4gPj4gKyNlbmRpZg0KPiA+ PiBkaWZmIC0tZ2l0DQo+ID4+IGEvQXJtUGxhdGZvcm1Qa2cvTGlicmFyeS9Bcm1QbGF0Zm9ybUNs b2NrTGliTnVsbC9Bcm1QbGF0Zm9ybUNsb2NrTGliLg0KPiA+PiBpbmYNCj4gPj4gYi9Bcm1QbGF0 Zm9ybVBrZy9MaWJyYXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWJOdWxsL0FybVBsYXRmb3JtQ2xvY2tM aWIuDQo+ID4+IGluZg0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAw MDAwLi5iNzA4YWQzDQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvQXJtUGxhdGZvcm1Q a2cvTGlicmFyeS9Bcm1QbGF0Zm9ybUNsb2NrTGliTnVsbC9Bcm1QbGF0Zm9ybUNsb2NrDQo+ID4+ ICsrKyBMaWIuaW5mDQo+ID4+IEBAIC0wLDAgKzEsMzMgQEANCj4gPj4gKyMvKiBAZmlsZQ0KPiA+ PiArIyAgQ29weXJpZ2h0IDIwMTggTlhQDQo+ID4+ICsjDQo+ID4+ICsjICBUaGlzIHByb2dyYW0g YW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICMgIGFyZSBsaWNlbnNlZCBhbmQNCj4gPj4g K21hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNE IExpY2Vuc2UgIw0KPiA+PiArd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBU aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4+ICttYXkgYmUgZm91bmQgYXQgIw0KPiA+ PiAraHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1o dHRwJTNBJTJGJTJGb3ANCj4gPj4gK2Vuc291cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBs aWNlbnNlLnBocCZkYXRhPTAyJTdDMDElN0N1ZGl0Lmt1bWFyJQ0KPiA+Pg0KPiArNDBueHAuY29t JTdDMTI5M2JmNWYxNmRkNDU2ZTFhNDcwOGQ1Y2FkZjc1MGQlN0M2ODZlYTFkM2JjMmI0YzZmYQ0K PiA5MmNkDQo+ID4+DQo+ICs5OWM1YzMwMTYzNSU3QzAlN0MwJTdDNjM2NjM3OTgzNDUwMDA3NTk0 JnNkYXRhPTFxVDJaVEpBWWFiSEJ2Y1ENCj4ga05YblANCj4gPj4gK1BQUWdNMDM4ZjdoU1lVYTdy Mkhodm8lM0QmcmVzZXJ2ZWQ9MA0KPiA+PiArIw0KPiA+PiArIyAgVEhFIFBST0dSQU0gSVMgRElT VFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPj4gK0JBU0lT LCAjICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELA0K PiBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+PiArIw0KPiA+PiArIyovDQo+ID4+ICsN Cj4gPj4gK1tEZWZpbmVzXQ0KPiA+PiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAg PSAweDAwMDEwMDBBDQo+ID4+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IEFy bVBsYXRmb3JtQ2xvY2tMaWJOdWxsDQo+IA0KPiBJIGZvcmdvdDogdGhlIE51bGwgc3VmZml4IGlz IGluYXBwcm9wcmlhdGUgaGVyZS4gUGxlYXNlIGludmVudCBhIG5hbWUgdGhhdCByZWZsZWN0cw0K PiB0aGUgZml4ZWQsIGNvbnN0YW50IG5hdHVyZSBvZiB0aGUgY2xvY2sgZnJlcXVlbmN5Lg0KDQpB Z3JlZSwgd2l0aCByZXR1cm4gb2YgUGNkIHZhbHVlLCBOVUxMIG1ha2Ugbm8gc2Vuc2UgDQpXaWxs IHVwZGF0ZSBpbiB2MiANCg0KVGhhbmtzIA0KIA0KPiA+PiArICBGSUxFX0dVSUQgICAgICAgICAg ICAgICAgICAgICAgPSBhZjhmZWYyNC1hZmJiLTQ3MmEtYjhiNy0xMzEwMWE3OTcwM2MNCj4gPj4g KyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0gQkFTRQ0KPiA+PiArICBWRVJTSU9O X1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPj4gKyAgTElCUkFSWV9DTEFTUyAgICAg ICAgICAgICAgICAgID0gQXJtUGxhdGZvcm1DbG9ja0xpYg0KPiA+PiArDQo+ID4+ICtbUGFja2Fn ZXNdDQo+ID4+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4+ICsgIE1kZU1vZHVsZVBrZy9NZGVN b2R1bGVQa2cuZGVjDQo+ID4+ICsgIEFybVBrZy9Bcm1Qa2cuZGVjDQo+ID4+ICsgIEFybVBsYXRm b3JtUGtnL0FybVBsYXRmb3JtUGtnLmRlYw0KPiA+PiArDQo+ID4+ICtbTGlicmFyeUNsYXNzZXNd DQo+ID4+ICsgIEFybUxpYg0KPiA+PiArICBEZWJ1Z0xpYg0KPiA+PiArDQo+ID4+ICtbU291cmNl cy5jb21tb25dDQo+ID4+ICsgIEFybVBsYXRmb3JtQ2xvY2tMaWJOdWxsLmMNCj4gPj4gZGlmZiAt LWdpdA0KPiA+PiBhL0FybVBsYXRmb3JtUGtnL0xpYnJhcnkvQXJtUGxhdGZvcm1DbG9ja0xpYk51 bGwvQXJtUGxhdGZvcm1DbG9ja0xpYk4NCj4gPj4gdWxsLmMNCj4gPj4gYi9Bcm1QbGF0Zm9ybVBr Zy9MaWJyYXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWJOdWxsL0FybVBsYXRmb3JtQ2xvY2tMaWJODQo+ ID4+IHVsbC5jDQo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAwMDAwMDAu LjI4ZWFhNjMNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9Bcm1QbGF0Zm9ybVBrZy9M aWJyYXJ5L0FybVBsYXRmb3JtQ2xvY2tMaWJOdWxsL0FybVBsYXRmb3JtQ2xvY2sNCj4gPj4gKysr IExpYk51bGwuYw0KPiA+PiBAQCAtMCwwICsxLDM1IEBADQo+ID4+ICsvKiogQGZpbGUNCj4gPj4g KyoNCj4gPj4gKyogIENvcHlyaWdodCAyMDE4IE5YUA0KPiA+PiArKg0KPiA+PiArKiAgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiA+PiArKiAgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YN Cj4gPj4gK3RoZSBCU0QgTGljZW5zZQ0KPiA+PiArKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBk aXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZQ0KPiA+PiArbGljZW5zZSBtYXkgYmUg Zm91bmQgYXQNCj4gPj4gKyoNCj4gPj4gK2h0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0 aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm9wDQo+ID4+ICtlbnNvdXJjZS5vcmcl MkZsaWNlbnNlcyUyRmJzZC0NCj4gbGljZW5zZS5waHAmZGF0YT0wMiU3QzAxJTdDdWRpdC5rdW1h ciUNCj4gPj4NCj4gKzQwbnhwLmNvbSU3QzEyOTNiZjVmMTZkZDQ1NmUxYTQ3MDhkNWNhZGY3NTBk JTdDNjg2ZWExZDNiYzJiNGM2ZmENCj4gOTJjZA0KPiA+Pg0KPiArOTljNWMzMDE2MzUlN0MwJTdD MCU3QzYzNjYzNzk4MzQ1MDAwNzU5NCZzZGF0YT0xcVQyWlRKQVlhYkhCdmNRDQo+IGtOWG5QDQo+ ID4+ICtQUFFnTTAzOGY3aFNZVWE3cjJIaHZvJTNEJnJlc2VydmVkPTANCj4gPj4gKyoNCj4gPj4g KyogIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBB TiAiQVMgSVMiDQo+ID4+ICtCQVNJUywNCj4gPj4gKyogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBS RVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPiBFWFBSRVNTIE9SIElNUExJRUQu DQo+ID4+ICsqDQo+ID4+ICsqKi8NCj4gPj4gKw0KPiA+PiArI2luY2x1ZGUgPExpYnJhcnkvQXJt UGxhdGZvcm1DbG9ja0xpYi5oPg0KPiA+PiArDQo+ID4+ICsNCj4gPj4gKw0KPiA+PiArLyoqDQo+ ID4+ICsgIFJldHVybiBjbG9jayBpbiBmb3IgUEwwMTEgVWFydCBJUC4NCj4gPj4gKyoqLw0KPiA+ PiArVUlOVDMyDQo+ID4+ICtBcm1QbGF0Zm9ybUdldFBMMDExQ2xvY2tGcmVxICgNCj4gPj4gKyAg Vk9JRA0KPiA+PiArICApDQo+ID4+ICt7DQo+ID4+ICsgIC8vIEltcGxlbWVudCBwbGF0Zm9ybSBz cGVjaWZpYyBjb2RlDQo+ID4+ICsgIC8vIGFuZCByZXR1cm4gUEwwMTEgZnJlcQ0KPiA+PiArDQo+ ID4+ICsgIC8vIFNvbWUgcGxhdGZvcm0gc3VwcG9ydHMgZHluYW1pYyBjbG9ja2luZywgIC8vIFRo aXMgZnVuY3Rpb24NCj4gPj4gKyBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZCBvbiBwbGF0Zm9ybXMg d2hpY2ggc3VwcG9ydHMgIC8vIGR5bmFtaWMNCj4gPj4gKyBjbG9ja2luZyB0byBhdm9pZCByZS1i dWlsZGluZyBvZiBVRUZJIGZpcm13YXJlIGZvciBQTDAxMSAgLy8gY2xvY2sNCj4gPj4gKyBjaGFu Z2UgIHJldHVybiAwOw0KPiA+DQo+ID4gV2h5IG5vdCByZXR1cm4gdGhlIFBDRCB2YWx1ZSBoZXJl PyBUaGF0IHdheSwgeW91IGNhbiBhbHNvIGdldCByaWQgb2YNCj4gPiB0aGUgaG9ycmlkIGNvbmRp dGlvbmFsIGV4cHJlc3Npb24gaW4gdGhlIG5leHQgcGF0Y2guDQo+ID4NCj4gPj4gK30NCj4gPj4g LS0NCj4gPj4gMS45LjENCj4gPj4NCg==