From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eu-smtp-delivery-143.mimecast.com (eu-smtp-delivery-143.mimecast.com [146.101.78.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D837E1A1E18 for ; Mon, 8 Aug 2016 03:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MPHoet+vkTpH+gO60y+jqQkLq1pwToVJ64dCY/cMwKY=; b=D/m02vSgY3I6wrGU9+8lWKz0riv+zwKkBcasppXukRlA4e/t+sFGVVll9NZnder8abt4x0TgqNHoK88uubteCe0bKDFxahMJimG3uDjrYHvR2XddupJ71aHelNwcfrgT6wVUXVMIB/63FMQVjA2cNP8NEqqWd7PPtZcy++g2rwM= Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02lp0151.outbound.protection.outlook.com [213.199.180.151]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-31-vkDQ6_CNOSCDnr9FBOa1Vg-1; Mon, 08 Aug 2016 11:48:07 +0100 Received: from AM5PR0801MB1955.eurprd08.prod.outlook.com (10.168.157.151) by AM5PR0801MB1762.eurprd08.prod.outlook.com (10.169.247.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Mon, 8 Aug 2016 10:48:05 +0000 Received: from AM5PR0801MB1955.eurprd08.prod.outlook.com ([10.168.157.151]) by AM5PR0801MB1955.eurprd08.prod.outlook.com ([10.168.157.151]) with mapi id 15.01.0549.025; Mon, 8 Aug 2016 10:48:05 +0000 From: Alexei Fedorov To: Ard Biesheuvel CC: Evan Lloyd , "Cohen, Eugene" , "edk2-devel@lists.01.org" , Heyi Guo , Leif Lindholm Thread-Topic: [edk2] [PATCH] ArmPkg: Fix double GIC EIOR write per interrupt Thread-Index: AQHR7zq3UpCuqC9RX0qeB/X+2RhBt6A7mYSAgANFQnCAAAMTgIAAAHUQgAAC8YCAAACUYA== Date: Mon, 8 Aug 2016 10:48:05 +0000 Message-ID: References: <20160805165911.14744-1-evan.lloyd@arm.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [217.140.96.140] x-ms-office365-filtering-correlation-id: 7f186cf9-da55-4605-2a9f-08d3bf797a8f x-microsoft-exchange-diagnostics: 1; AM5PR0801MB1762; 20:zkTkDACi5gf8V20GXDM2y7RFjOOcVaAu66WSRIcZbVs+ChUAVKZO7PQatHls56tNiVj4dvLzH0FOIP93ihrn7A7e5r2yPmLvFWodqHkZSZWzAZbliQQBwh12T/v3fpy9A5i89EpMNgkJSJQR4+afyXLkak4uLMyxxVIlqPm6lBM= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1762; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(166708455590820)(162533806227266)(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:AM5PR0801MB1762; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0801MB1762; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(40434004)(189002)(199003)(13464003)(24454002)(74316002)(93886004)(101416001)(76576001)(7846002)(5002640100001)(81166006)(81156014)(8676002)(15975445007)(575784001)(77096005)(105586002)(305945005)(5890100001)(3660700001)(3280700002)(122556002)(2900100001)(33656002)(2950100001)(7736002)(7696003)(8666005)(87936001)(86362001)(8936002)(2906002)(66066001)(106356001)(106116001)(19580405001)(10400500002)(68736007)(92566002)(11100500001)(189998001)(4326007)(9686002)(50986999)(110136002)(97736004)(586003)(76176999)(54356999)(6116002)(3846002)(19580395003)(102836003)(7059030)(217873001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0801MB1762; H:AM5PR0801MB1955.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Aug 2016 10:48:05.6121 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1762 X-MC-Unique: vkDQ6_CNOSCDnr9FBOa1Vg-1 Subject: Re: [PATCH] ArmPkg: Fix double GIC EIOR write per interrupt X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2016 10:48:12 -0000 Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 UGxlYXNlIHByb3ZpZGUgdGhlIGxpbmsgdG8gdGhlIHNwZWMgd2hpY2ggImNsZWFybHkgc3RhdGVz IHRoYXQgaXQgaXMgdGhlIEdJQyBkcml2ZXIgdGhhdCBzaG91bGQgYmUgZG9pbmcgaXQuIg0KDQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzph cmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KU2VudDogMDggQXVndXN0IDIwMTYgMTE6NDUNClRv OiBBbGV4ZWkgRmVkb3Jvdg0KQ2M6IEV2YW4gTGxveWQ7IENvaGVuLCBFdWdlbmU7IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnOyBIZXlpIEd1bzsgTGVpZiBMaW5kaG9sbQ0KU3ViamVjdDogUmU6IFtl ZGsyXSBbUEFUQ0hdIEFybVBrZzogRml4IGRvdWJsZSBHSUMgRUlPUiB3cml0ZSBwZXIgaW50ZXJy dXB0DQoNCk9uIDggQXVndXN0IDIwMTYgYXQgMTI6NDAsIEFsZXhlaSBGZWRvcm92IDxBbGV4ZWku RmVkb3JvdkBhcm0uY29tPiB3cm90ZToNCj4gVGhlIGludGVycnVwdCBpcyBjbGVhcmVkIGluIFRp bWVySW50ZXJydXB0SGFuZGxlcigpIChBcm1Qa2dcRHJpdmVyc1xUaW1lckR4ZVxUaW1lckR4ZS5j KSAgd2hpY2ggaXMgSEFSRFdBUkVfSU5URVJSVVBUX0hBTkRMRVIgcGFyYW1ldGVyIHBhc3NlZCB0 byBnSW50ZXJydXB0LT5SZWdpc3RlckludGVycnVwdFNvdXJjZSgpLg0KDQpJbmRlZWQuIFNvIG5v dywgdGhlIEhBUkRXQVJFX0lOVEVSUlVQVF9IQU5ETEVSIGlzIGNsZWFyaW5nIHRoZSBpbnRlcnJ1 cHQgaW4gdGhlIGludGVycnVwdCByb3V0aW5nIGhhcmR3YXJlLCB3aGlsZSB0aGUgc3BlYyBjbGVh cmx5IHN0YXRlcyB0aGF0IGl0IGlzIHRoZSBHSUMgZHJpdmVyIHRoYXQgc2hvdWxkIGJlIGRvaW5n IGl0Lg0KDQoNCj4gU3B1cmlvdXMgaW50ZXJydXB0cyB3aGljaCBkb24ndCBoYXZlIHJlZ2lzdGVy ZWQgaW50ZXJydXB0IGhhbmRsZXJzIGFyZSBjbGVhcmVkIGluIEdpY1YoMnwzKUlycUludGVycnVw dEhhbmRsZXIoKS4NCj4NCg0KWWVzLCB0aGF0IGlzIGNvcnJlY3QgYWNjb3JkaW5nIHRvIHRoZSB0 ZXh0IHlvdSBxdW90ZWQuDQoNCi0tDQpBcmQuDQoNCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5h cm8ub3JnXQ0KPiBTZW50OiAwOCBBdWd1c3QgMjAxNiAxMTozMg0KPiBUbzogQWxleGVpIEZlZG9y b3YNCj4gQ2M6IEV2YW4gTGxveWQ7IENvaGVuLCBFdWdlbmU7IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnOyBIZXlpIEd1bzsgTGVpZg0KPiBMaW5kaG9sbQ0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQ QVRDSF0gQXJtUGtnOiBGaXggZG91YmxlIEdJQyBFSU9SIHdyaXRlIHBlcg0KPiBpbnRlcnJ1cHQN Cj4NCj4gT24gOCBBdWd1c3QgMjAxNiBhdCAxMjoyNSwgQWxleGVpIEZlZG9yb3YgPEFsZXhlaS5G ZWRvcm92QGFybS5jb20+IHdyb3RlOg0KPj4NCj4+PiBpdCBkb2VzIGNoYW5nZSB0aGUgY29udHJh Y3Qgd2UgaGF2ZSB3aXRoIHJlZ2lzdGVyZWQgaW50ZXJydXB0DQo+Pj4gaGFuZGxlcnMNCj4+DQo+ PiBMb29rcyBsaWtlIGl0IGRvZXMgbm90Og0KPj4gRnJvbSBlZGsyXEVtYmVkZGVkUGtnXEluY2x1 ZGVcUHJvdG9jb2xcSGFyZHdhcmVJbnRlcnJ1cHQuaDoNCj4+DQo+PiAiIEFic3RyYWN0aW9uIGZv ciBoYXJkd2FyZSBiYXNlZCBpbnRlcnJ1cHQgcm91dGluZQ0KPj4NCj4+ICAgLi4uVGhlIGRyaXZl ciBpbXBsZW1lbnRpbmcNCj4+ICAgdGhpcyBwcm90b2NvbCBpcyByZXNwb25zaWJsZSBmb3IgY2xl YXJpbmcgdGhlIHBlbmRpbmcgaW50ZXJydXB0IGluIHRoZQ0KPj4gICBpbnRlcnJ1cHQgcm91dGlu ZyBoYXJkd2FyZS4gVGhlIEhBUkRXQVJFX0lOVEVSUlVQVF9IQU5ETEVSIGlzIHJlc3BvbnNpYmxl DQo+PiAgIGZvciBjbGVhcmluZyBpbnRlcnJ1cHQgc291cmNlcyBmcm9tIGluZGl2aWR1YWwgZGV2 aWNlcy4iDQo+Pg0KPg0KPiBUaGFua3MgZm9yIGRpZ2dpbmcgdGhhdCB1cCENCj4NCj4gU28gYWZ0 ZXIgdGhpcyBjaGFuZ2UsIHRoZSBkcml2ZXIgaW1wbGVtZW50aW5nIHRoZSBoYXJkd2FyZSBpbnRl cnJ1cHQgcHJvdG9jb2wgbm8gbG9uZ2VyIGNsZWFycyB0aGUgcGVuZGluZyBpbnRlcnJ1cHQgaW4g dGhlIGludGVycnVwdCByb3V0aW5nIGhhcmR3YXJlLiBUaGlzIG1lYW5zIHRoYXQgd2UgYXJlIG5v dCBvbmx5IGNoYW5naW5nIHRoZSBleGlzdGluZyBjb250cmFjdCwgd2UgYXJlIGFsc28gdmlvbGF0 aW5nIHRoZSBzcGVjLg0KPg0KPg0KPj4NCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmDQo+PiBPZiBBcmQgQmllc2hldXZlbA0KPj4gU2VudDogMDYgQXVndXN0IDIw MTYgMDk6MjUNCj4+IFRvOiBFdmFuIExsb3lkOyBDb2hlbiwgRXVnZW5lDQo+PiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc7IEhleWkgR3VvOyBMZWlmIExpbmRob2xtDQo+PiBTdWJqZWN0OiBS ZTogW2VkazJdIFtQQVRDSF0gQXJtUGtnOiBGaXggZG91YmxlIEdJQyBFSU9SIHdyaXRlIHBlcg0K Pj4gaW50ZXJydXB0DQo+Pg0KPj4gKCsgRXVnZW5lKQ0KPj4NCj4+IE9uIDUgQXVndXN0IDIwMTYg YXQgMTg6NTksICA8ZXZhbi5sbG95ZEBhcm0uY29tPiB3cm90ZToNCj4+PiBGcm9tOiBBbGV4ZWkg PEFsZXhlaS5GZWRvcm92QGFybS5jb20+DQo+Pj4NCj4+PiBUaGlzIGNvbW1pdCBmaXhlcyBhIGJ1 ZyBpbiB0aGUgR0lDIHYyIGFuZCB2MyBkcml2ZXJzIHdoZXJlIHRoZQ0KPj4+IEdJQ0NfRU9JUiAo RW5kIE9mIEludGVycnVwdCBSZWdpc3RlcikgaXMgd3JpdHRlbiB0d2ljZSBmb3IgYSBzaW5nbGUg aW50ZXJydXB0Lg0KPj4+IEdpY1YoMnwzKUlycUludGVycnVwdEhhbmRsZXIoKSBjYWxscyB0aGUg SW50ZXJydXB0IEhhbmRsZXIgYW5kIHRoZW4NCj4+PiBHaWNWKDJ8MylFbmRPZkludGVycnVwdCgp IG9uIGV4aXQ6DQo+Pj4NCj4+PiAgSW50ZXJydXB0SGFuZGxlciA9IGdSZWdpc3RlcmVkSW50ZXJy dXB0SGFuZGxlcnNbR2ljSW50ZXJydXB0XTsNCj4+PiAgaWYgKEludGVycnVwdEhhbmRsZXIgIT0g TlVMTCkgew0KPj4+ICAgIC8vIENhbGwgdGhlIHJlZ2lzdGVyZWQgaW50ZXJydXB0IGhhbmRsZXIu DQo+Pj4gICAgSW50ZXJydXB0SGFuZGxlciAoR2ljSW50ZXJydXB0LCBTeXN0ZW1Db250ZXh0KTsg IH0gZWxzZSB7DQo+Pj4gICAgREVCVUcgKChFRklfRF9FUlJPUiwgIlNwdXJpb3VzIEdJQyBpbnRl cnJ1cHQ6IDB4JXhcbiIsDQo+Pj4gR2ljSW50ZXJydXB0KSk7ICB9DQo+Pj4NCj4+PiAgR2ljVjJF bmRPZkludGVycnVwdCAoJmdIYXJkd2FyZUludGVycnVwdFYyUHJvdG9jb2wsIEdpY0ludGVycnVw dCk7DQo+Pj4NCj4+PiAsIGFsdGhvdWdoIGdJbnRlcnJ1cHQtPkVuZE9mSW50ZXJydXB0KCkgaGFz IGFscmVhZHkgYmVlbiBjYWxsZWQgYnkNCj4+PiBJbnRlcnJ1cHRIYW5kbGVyKCkuDQo+Pj4NCj4+ PiBUaGUgZml4IG1vdmVzIHRoZSBFbmRPZkludGVycnVwdCgpIGNhbGwgaW5zaWRlIHRoZSBlbHNl IGNhc2UgZm9yDQo+Pj4gdW5yZWdpc3RlcmVkL3NwdXJpb3VzIGludGVycnVwdHMuICBUaGlzIHJl bW92ZXMgYSBwb3RlbnRpYWwgcmFjZQ0KPj4+IGNvbmRpdGlvbiB0aGF0IG1pZ2h0IGhhdmUgbG9z dCBpbnRlcnJ1cHRzLg0KPj4+DQo+Pg0KPj4gSSB1bmRlcnN0YW5kIHRoYXQgdGhpcyBzb2x2ZXMg dGhlIHByb2JsZW0sIGJ1dCBpdCBkb2VzIGNoYW5nZSB0aGUgY29udHJhY3Qgd2UgaGF2ZSB3aXRo IHJlZ2lzdGVyZWQgaW50ZXJydXB0IGhhbmRsZXJzLCBhbmQgd2UgZG9uJ3Qga25vdyBob3cgdGhp cyBtYXkgYmUgdXNlZCBvdXQgb2YgdHJlZS4gSSBrbm93IFVFRkkgb25seSBzdXBwb3J0cyBwb2xs aW5nIGZvciBkcml2ZXJzLCBidXQgYXJlIHRoZXJlIGFueSBvdGhlciBjYXNlcyAoZGVidWc/KSB3 aGVyZSB3ZSBtYXkgYnJlYWsgb3RoZXIgcGVvcGxlJ3MgY29kZSBieSBkb2luZyB0aGlzPw0KPj4N Cj4+DQo+Pj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVt ZW50IDEuMA0KPj4+IFNpZ25lZC1vZmYtYnk6IEFsZXhlaSBGZWRvcm92IDxhbGV4ZWkuZmVkb3Jv dkBhcm0uY29tPg0KPj4+IFNpZ25lZC1vZmYtYnk6IEV2YW4gTGxveWQgPGV2YW4ubGxveWRAYXJt LmNvbT4NCj4+PiAtLS0NCj4+Pg0KPj4+IENvZGUgaXMgYXZhaWxhYmxlIGF0Og0KPj4+IGh0dHBz Oi8vZ2l0aHViLmNvbS9FdmFuTGxveWQvdGlhbm9jb3JlL3RyZWUvRU9JUl92MQ0KPj4+DQo+Pj4g IEFybVBrZy9Ecml2ZXJzL0FybUdpYy9HaWNWMi9Bcm1HaWNWMkR4ZS5jIHwgNSArKy0tLQ0KPj4+ IEFybVBrZy9Ecml2ZXJzL0FybUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jIHwgNSArKy0tLQ0KPj4+ ICAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4+Pg0K Pj4+IGRpZmYgLS1naXQgYS9Bcm1Qa2cvRHJpdmVycy9Bcm1HaWMvR2ljVjIvQXJtR2ljVjJEeGUu Yw0KPj4+IGIvQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMNCj4+PiBp bmRleA0KPj4+IDAzNmViNWNkNmJmNjg0NWRkMmIwM2I2MmM5MzNjMWRlZGFlZjcyNTEuLjM0ZDRi ZTM4Njc2NDdlMGZkYWQ3MzU2Yzk0DQo+Pj4gOQ0KPj4+IGENCj4+PiBmOGNkM2VkZTcxNjQgMTAw NjQ0DQo+Pj4gLS0tIGEvQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMN Cj4+PiArKysgYi9Bcm1Qa2cvRHJpdmVycy9Bcm1HaWMvR2ljVjIvQXJtR2ljVjJEeGUuYw0KPj4+ IEBAIC0yLDcgKzIsNyBAQA0KPj4+DQo+Pj4gIENvcHlyaWdodCAoYykgMjAwOSwgSGV3bGV0dC1Q YWNrYXJkIENvbXBhbnkuIEFsbCByaWdodHMNCj4+PiByZXNlcnZlZC48QlI+IFBvcnRpb25zIGNv cHlyaWdodCAoYykgMjAxMCwgQXBwbGUgSW5jLiBBbGwgcmlnaHRzDQo+Pj4gcmVzZXJ2ZWQuPEJS PiAtUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDExLTIwMTUsIEFSTSBMdGQuIEFsbCByaWdodHMN Cj4+PiByZXNlcnZlZC48QlI+DQo+Pj4gK1BvcnRpb25zIGNvcHlyaWdodCAoYykgMjAxMS0yMDE2 LCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+Pg0KPj4+ICBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIG1hZGUN Cj4+PiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0Qg TGljZW5zZSBAQA0KPj4+IC0xNzgsOQ0KPj4+ICsxNzgsOCBAQCBHaWNWMklycUludGVycnVwdEhh bmRsZXIgKA0KPj4+ICAgICAgSW50ZXJydXB0SGFuZGxlciAoR2ljSW50ZXJydXB0LCBTeXN0ZW1D b250ZXh0KTsNCj4+PiAgICB9IGVsc2Ugew0KPj4+ICAgICAgREVCVUcgKChFRklfRF9FUlJPUiwg IlNwdXJpb3VzIEdJQyBpbnRlcnJ1cHQ6IDB4JXhcbiIsDQo+Pj4gR2ljSW50ZXJydXB0KSk7DQo+ Pj4gKyAgICBHaWNWMkVuZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50ZXJydXB0VjJQcm90b2Nv bCwNCj4+PiArIEdpY0ludGVycnVwdCk7DQo+Pj4gICAgfQ0KPj4+IC0NCj4+PiAtICBHaWNWMkVu ZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50ZXJydXB0VjJQcm90b2NvbCwNCj4+PiBHaWNJbnRl cnJ1cHQpOyB9DQo+Pj4NCj4+PiAgLy8NCj4+PiBkaWZmIC0tZ2l0IGEvQXJtUGtnL0RyaXZlcnMv QXJtR2ljL0dpY1YzL0FybUdpY1YzRHhlLmMNCj4+PiBiL0FybVBrZy9Ecml2ZXJzL0FybUdpYy9H aWNWMy9Bcm1HaWNWM0R4ZS5jDQo+Pj4gaW5kZXgNCj4+PiAxMDZjNjY5ZmNiODc3N2RmYWFkNjA5 YzBjZTlmNWI1NzI3MjdhM2ZmLi45ODM5MzZmMzczOGE3NGJiNWQ1ZTA4ZTAxMg0KPj4+IDkNCj4+ PiA3DQo+Pj4gM2RmMjQwOTU4YThiIDEwMDY0NA0KPj4+IC0tLSBhL0FybVBrZy9Ecml2ZXJzL0Fy bUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+Pj4gKysrIGIvQXJtUGtnL0RyaXZlcnMvQXJtR2lj L0dpY1YzL0FybUdpY1YzRHhlLmMNCj4+PiBAQCAtMSw2ICsxLDYgQEANCj4+PiAgLyoqIEBmaWxl DQo+Pj4gICoNCj4+PiAtKiAgQ29weXJpZ2h0IChjKSAyMDExLTIwMTUsIEFSTSBMaW1pdGVkLiBB bGwgcmlnaHRzIHJlc2VydmVkLg0KPj4+ICsqICBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNiwgQVJN IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+Pj4gICoNCj4+PiAgKiAgVGhpcyBwcm9n cmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPj4+ICAqICBhcmUgbGljZW5zZWQg YW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KPj4+IG9m IHRoZSBCU0QgTGljZW5zZSBAQCAtMTY5LDkgKzE2OSw4IEBAIEdpY1YzSXJxSW50ZXJydXB0SGFu ZGxlciAoDQo+Pj4gICAgICBJbnRlcnJ1cHRIYW5kbGVyIChHaWNJbnRlcnJ1cHQsIFN5c3RlbUNv bnRleHQpOw0KPj4+ICAgIH0gZWxzZSB7DQo+Pj4gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAi U3B1cmlvdXMgR0lDIGludGVycnVwdDogMHgleFxuIiwNCj4+PiBHaWNJbnRlcnJ1cHQpKTsNCj4+ PiArICAgIEdpY1YzRW5kT2ZJbnRlcnJ1cHQgKCZnSGFyZHdhcmVJbnRlcnJ1cHRWM1Byb3RvY29s LA0KPj4+ICsgR2ljSW50ZXJydXB0KTsNCj4+PiAgICB9DQo+Pj4gLQ0KPj4+IC0gIEdpY1YzRW5k T2ZJbnRlcnJ1cHQgKCZnSGFyZHdhcmVJbnRlcnJ1cHRWM1Byb3RvY29sLA0KPj4+IEdpY0ludGVy cnVwdCk7IH0NCj4+Pg0KPj4+ICAvLw0KPj4+IC0tDQo+Pj4gR3VpZCgiQ0UxNjU2NjktM0VGMy00 OTNGLUI4NUQtNjE5MEVFNUI5NzU5IikNCj4+Pg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+PiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9lZGsyLWRldmVsDQo+Pg0KPj4gSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRz IG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBt YXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBp ZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNj bG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVy cG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhh bmsgeW91Lg0KPj4NCj4NCj4gSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMg ZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBi ZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVh c2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUg Y29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Ig c3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lg0K DQpJTVBPUlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0 dGFjaG1lbnRzIGFyZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElm IHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNl bmRlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBhbnkg b3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRo ZSBpbmZvcm1hdGlvbiBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuDQo=