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 C993E1A1E18 for ; Mon, 8 Aug 2016 03:57:02 -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=71viURC231KhzGNQoTsVEFBl6iGuvTpEyHUnfbmF46g=; b=H/zujwGheaiLsMCGIHIRh7qz+m9tTuuDQy3b/wu9T0/IyJyI3UJsvB8QVrcpeVQu6/iHqlhuwx9zza3gXbhCddFZ6ocQyajnMe023UA5IoJQVMhceNKBLaGPivvlZ4RcFBrE38qIbwHrFJ8NgQsWtmLP5gTzdhJ/O0ys6Wqumnc= Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03lp0084.outbound.protection.outlook.com [94.245.120.84]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-39-F7jXnUw-OGSqR2oI3jF_2Q-1; Mon, 08 Aug 2016 11:56:59 +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:56:57 +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:56:57 +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+2RhBt6A7mYSAgANFQnCAAAMTgIAAAHUQgAAC8YCAAACUYIAAAK6AgAAAOPA= Date: Mon, 8 Aug 2016 10:56:56 +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: cfc3275d-78b2-4442-7187-08d3bf7ab741 x-microsoft-exchange-diagnostics: 1; AM5PR0801MB1762; 20:A2/qy6JtKae5Be59/ljt1vd0oRc9uC/8HmbKyoS1Hkeliih3ahmzab5aJ83FT7eu2ftcXCchKfB9BDn/zAUAnSen1g6ZCn4zC6tbtO/QbODPlLQbVVnADXhVpQ+O6K66A4Y4G66IrQ+awZqKrjaKAnCYtmjIhqV3JZhoqUKyQVM= 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)(24454002)(199003)(189002)(40434004)(13464003)(92566002)(9686002)(50986999)(11100500001)(4326007)(189998001)(66066001)(2906002)(19580405001)(10400500002)(68736007)(106356001)(106116001)(97736004)(54356999)(76176999)(586003)(6116002)(3846002)(102836003)(19580395003)(110136002)(101416001)(93886004)(76576001)(74316002)(2900100001)(33656002)(2950100001)(7696003)(7736002)(3660700001)(122556002)(3280700002)(8936002)(8666005)(87936001)(86362001)(7846002)(8676002)(15975445007)(5002640100001)(81166006)(81156014)(305945005)(105586002)(5890100001)(575784001)(77096005)(7059030)(217873001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0801MB1762; H:AM5PR0801MB1955.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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:56:56.8855 (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: F7jXnUw-OGSqR2oI3jF_2Q-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:57:03 -0000 Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 SSBxdW90ZWQ6DQoNCiJUaGUgSEFSRFdBUkVfSU5URVJSVVBUX0hBTkRMRVIgaXMgcmVzcG9uc2li bGUgZm9yIGNsZWFyaW5nIGludGVycnVwdCBzb3VyY2VzIGZyb20gaW5kaXZpZHVhbCBkZXZpY2Vz Ii4NCkFyZSByZWFkaW5nIHRoaXMgYXMgIiBzcGVjIGNsZWFybHkgc3RhdGVzIHRoYXQgaXQgaXMg dGhlIEdJQyBkcml2ZXIgdGhhdCBzaG91bGQgYmUgZG9pbmcgaXQiPw0KDQogVGltZXJJbnRlcnJ1 cHRIYW5kbGVyKCkgaXMgSEFSRFdBUkVfSU5URVJSVVBUX0hBTkRMRVIgYW5kIGl0IGNsZWFycyBp dHMgaW50ZXJydXB0IGJ5IGNhbGxpbmcgZ0ludGVycnVwdC0+RW5kT2ZJbnRlcnJ1cHQoKS4NCg0K LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86 YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NClNlbnQ6IDA4IEF1Z3VzdCAyMDE2IDExOjQ5DQpU bzogQWxleGVpIEZlZG9yb3YNCkNjOiBFdmFuIExsb3lkOyBDb2hlbiwgRXVnZW5lOyBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzsgSGV5aSBHdW87IExlaWYgTGluZGhvbG0NClN1YmplY3Q6IFJlOiBb ZWRrMl0gW1BBVENIXSBBcm1Qa2c6IEZpeCBkb3VibGUgR0lDIEVJT1Igd3JpdGUgcGVyIGludGVy cnVwdA0KDQpPbiA4IEF1Z3VzdCAyMDE2IGF0IDEyOjQ4LCBBbGV4ZWkgRmVkb3JvdiA8QWxleGVp LkZlZG9yb3ZAYXJtLmNvbT4gd3JvdGU6DQo+IFBsZWFzZSBwcm92aWRlIHRoZSBsaW5rIHRvIHRo ZSBzcGVjIHdoaWNoICJjbGVhcmx5IHN0YXRlcyB0aGF0IGl0IGlzIHRoZSBHSUMgZHJpdmVyIHRo YXQgc2hvdWxkIGJlIGRvaW5nIGl0LiINCj4NCg0KaXQgaXMgbm90IGluIHRoZSBzcGVjLCBidXQg aW4gdGhlIGNvbW1lbnQgdGhhdCB5b3UgcXVvdGVkIHlvdXJzZWxmOg0KDQo+Pj4gTG9va3MgbGlr ZSBpdCBkb2VzIG5vdDoNCj4+PiBGcm9tIGVkazJcRW1iZWRkZWRQa2dcSW5jbHVkZVxQcm90b2Nv bFxIYXJkd2FyZUludGVycnVwdC5oOg0KPj4+DQo+Pj4gIiBBYnN0cmFjdGlvbiBmb3IgaGFyZHdh cmUgYmFzZWQgaW50ZXJydXB0IHJvdXRpbmUNCj4+Pg0KPj4+ICAgLi4uVGhlIGRyaXZlciBpbXBs ZW1lbnRpbmcNCj4+PiAgIHRoaXMgcHJvdG9jb2wgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFyaW5n IHRoZSBwZW5kaW5nIGludGVycnVwdCBpbiB0aGUNCj4+PiAgIGludGVycnVwdCByb3V0aW5nIGhh cmR3YXJlLiBUaGUgSEFSRFdBUkVfSU5URVJSVVBUX0hBTkRMRVIgaXMgcmVzcG9uc2libGUNCj4+ PiAgIGZvciBjbGVhcmluZyBpbnRlcnJ1cHQgc291cmNlcyBmcm9tIGluZGl2aWR1YWwgZGV2aWNl cy4iDQoNCi0tDQpBcmQuDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4g U2VudDogMDggQXVndXN0IDIwMTYgMTE6NDUNCj4gVG86IEFsZXhlaSBGZWRvcm92DQo+IENjOiBF dmFuIExsb3lkOyBDb2hlbiwgRXVnZW5lOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgSGV5aSBH dW87IExlaWYgTGluZGhvbG0NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIEFybVBrZzog Rml4IGRvdWJsZSBHSUMgRUlPUiB3cml0ZSBwZXIgaW50ZXJydXB0DQo+DQo+IE9uIDggQXVndXN0 IDIwMTYgYXQgMTI6NDAsIEFsZXhlaSBGZWRvcm92IDxBbGV4ZWkuRmVkb3JvdkBhcm0uY29tPiB3 cm90ZToNCj4+IFRoZSBpbnRlcnJ1cHQgaXMgY2xlYXJlZCBpbiBUaW1lckludGVycnVwdEhhbmRs ZXIoKSAoQXJtUGtnXERyaXZlcnNcVGltZXJEeGVcVGltZXJEeGUuYykgIHdoaWNoIGlzIEhBUkRX QVJFX0lOVEVSUlVQVF9IQU5ETEVSIHBhcmFtZXRlciBwYXNzZWQgdG8gZ0ludGVycnVwdC0+UmVn aXN0ZXJJbnRlcnJ1cHRTb3VyY2UoKS4NCj4NCj4gSW5kZWVkLiBTbyBub3csIHRoZSBIQVJEV0FS RV9JTlRFUlJVUFRfSEFORExFUiBpcyBjbGVhcmluZyB0aGUgaW50ZXJydXB0IGluIHRoZSBpbnRl cnJ1cHQgcm91dGluZyBoYXJkd2FyZSwgd2hpbGUgdGhlIHNwZWMgY2xlYXJseSBzdGF0ZXMgdGhh dCBpdCBpcyB0aGUgR0lDIGRyaXZlciB0aGF0IHNob3VsZCBiZSBkb2luZyBpdC4NCj4NCj4NCj4+ IFNwdXJpb3VzIGludGVycnVwdHMgd2hpY2ggZG9uJ3QgaGF2ZSByZWdpc3RlcmVkIGludGVycnVw dCBoYW5kbGVycyBhcmUgY2xlYXJlZCBpbiBHaWNWKDJ8MylJcnFJbnRlcnJ1cHRIYW5kbGVyKCku DQo+Pg0KPg0KPiBZZXMsIHRoYXQgaXMgY29ycmVjdCBhY2NvcmRpbmcgdG8gdGhlIHRleHQgeW91 IHF1b3RlZC4NCj4NCj4gLS0NCj4gQXJkLg0KPg0KPj4NCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+PiBGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxp bmFyby5vcmddDQo+PiBTZW50OiAwOCBBdWd1c3QgMjAxNiAxMTozMg0KPj4gVG86IEFsZXhlaSBG ZWRvcm92DQo+PiBDYzogRXZhbiBMbG95ZDsgQ29oZW4sIEV1Z2VuZTsgZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc7IEhleWkgR3VvOyBMZWlmDQo+PiBMaW5kaG9sbQ0KPj4gU3ViamVjdDogUmU6IFtl ZGsyXSBbUEFUQ0hdIEFybVBrZzogRml4IGRvdWJsZSBHSUMgRUlPUiB3cml0ZSBwZXINCj4+IGlu dGVycnVwdA0KPj4NCj4+IE9uIDggQXVndXN0IDIwMTYgYXQgMTI6MjUsIEFsZXhlaSBGZWRvcm92 IDxBbGV4ZWkuRmVkb3JvdkBhcm0uY29tPiB3cm90ZToNCj4+Pg0KPj4+PiBpdCBkb2VzIGNoYW5n ZSB0aGUgY29udHJhY3Qgd2UgaGF2ZSB3aXRoIHJlZ2lzdGVyZWQgaW50ZXJydXB0DQo+Pj4+IGhh bmRsZXJzDQo+Pj4NCj4+PiBMb29rcyBsaWtlIGl0IGRvZXMgbm90Og0KPj4+IEZyb20gZWRrMlxF bWJlZGRlZFBrZ1xJbmNsdWRlXFByb3RvY29sXEhhcmR3YXJlSW50ZXJydXB0Lmg6DQo+Pj4NCj4+ PiAiIEFic3RyYWN0aW9uIGZvciBoYXJkd2FyZSBiYXNlZCBpbnRlcnJ1cHQgcm91dGluZQ0KPj4+ DQo+Pj4gICAuLi5UaGUgZHJpdmVyIGltcGxlbWVudGluZw0KPj4+ICAgdGhpcyBwcm90b2NvbCBp cyByZXNwb25zaWJsZSBmb3IgY2xlYXJpbmcgdGhlIHBlbmRpbmcgaW50ZXJydXB0IGluIHRoZQ0K Pj4+ICAgaW50ZXJydXB0IHJvdXRpbmcgaGFyZHdhcmUuIFRoZSBIQVJEV0FSRV9JTlRFUlJVUFRf SEFORExFUiBpcyByZXNwb25zaWJsZQ0KPj4+ICAgZm9yIGNsZWFyaW5nIGludGVycnVwdCBzb3Vy Y2VzIGZyb20gaW5kaXZpZHVhbCBkZXZpY2VzLiINCj4+Pg0KPj4NCj4+IFRoYW5rcyBmb3IgZGln Z2luZyB0aGF0IHVwIQ0KPj4NCj4+IFNvIGFmdGVyIHRoaXMgY2hhbmdlLCB0aGUgZHJpdmVyIGlt cGxlbWVudGluZyB0aGUgaGFyZHdhcmUgaW50ZXJydXB0IHByb3RvY29sIG5vIGxvbmdlciBjbGVh cnMgdGhlIHBlbmRpbmcgaW50ZXJydXB0IGluIHRoZSBpbnRlcnJ1cHQgcm91dGluZyBoYXJkd2Fy ZS4gVGhpcyBtZWFucyB0aGF0IHdlIGFyZSBub3Qgb25seSBjaGFuZ2luZyB0aGUgZXhpc3Rpbmcg Y29udHJhY3QsIHdlIGFyZSBhbHNvIHZpb2xhdGluZyB0aGUgc3BlYy4NCj4+DQo+Pg0KPj4+DQo+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBlZGsyLWRldmVsIFttYWls dG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmDQo+Pj4gT2YgQXJk IEJpZXNoZXV2ZWwNCj4+PiBTZW50OiAwNiBBdWd1c3QgMjAxNiAwOToyNQ0KPj4+IFRvOiBFdmFu IExsb3lkOyBDb2hlbiwgRXVnZW5lDQo+Pj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBI ZXlpIEd1bzsgTGVpZiBMaW5kaG9sbQ0KPj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBB cm1Qa2c6IEZpeCBkb3VibGUgR0lDIEVJT1Igd3JpdGUgcGVyDQo+Pj4gaW50ZXJydXB0DQo+Pj4N Cj4+PiAoKyBFdWdlbmUpDQo+Pj4NCj4+PiBPbiA1IEF1Z3VzdCAyMDE2IGF0IDE4OjU5LCAgPGV2 YW4ubGxveWRAYXJtLmNvbT4gd3JvdGU6DQo+Pj4+IEZyb206IEFsZXhlaSA8QWxleGVpLkZlZG9y b3ZAYXJtLmNvbT4NCj4+Pj4NCj4+Pj4gVGhpcyBjb21taXQgZml4ZXMgYSBidWcgaW4gdGhlIEdJ QyB2MiBhbmQgdjMgZHJpdmVycyB3aGVyZSB0aGUNCj4+Pj4gR0lDQ19FT0lSIChFbmQgT2YgSW50 ZXJydXB0IFJlZ2lzdGVyKSBpcyB3cml0dGVuIHR3aWNlIGZvciBhIHNpbmdsZSBpbnRlcnJ1cHQu DQo+Pj4+IEdpY1YoMnwzKUlycUludGVycnVwdEhhbmRsZXIoKSBjYWxscyB0aGUgSW50ZXJydXB0 IEhhbmRsZXIgYW5kIHRoZW4NCj4+Pj4gR2ljVigyfDMpRW5kT2ZJbnRlcnJ1cHQoKSBvbiBleGl0 Og0KPj4+Pg0KPj4+PiAgSW50ZXJydXB0SGFuZGxlciA9IGdSZWdpc3RlcmVkSW50ZXJydXB0SGFu ZGxlcnNbR2ljSW50ZXJydXB0XTsNCj4+Pj4gIGlmIChJbnRlcnJ1cHRIYW5kbGVyICE9IE5VTEwp IHsNCj4+Pj4gICAgLy8gQ2FsbCB0aGUgcmVnaXN0ZXJlZCBpbnRlcnJ1cHQgaGFuZGxlci4NCj4+ Pj4gICAgSW50ZXJydXB0SGFuZGxlciAoR2ljSW50ZXJydXB0LCBTeXN0ZW1Db250ZXh0KTsgIH0g ZWxzZSB7DQo+Pj4+ICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTcHVyaW91cyBHSUMgaW50ZXJy dXB0OiAweCV4XG4iLA0KPj4+PiBHaWNJbnRlcnJ1cHQpKTsgIH0NCj4+Pj4NCj4+Pj4gIEdpY1Yy RW5kT2ZJbnRlcnJ1cHQgKCZnSGFyZHdhcmVJbnRlcnJ1cHRWMlByb3RvY29sLCBHaWNJbnRlcnJ1 cHQpOw0KPj4+Pg0KPj4+PiAsIGFsdGhvdWdoIGdJbnRlcnJ1cHQtPkVuZE9mSW50ZXJydXB0KCkg aGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgYnkNCj4+Pj4gSW50ZXJydXB0SGFuZGxlcigpLg0KPj4+ Pg0KPj4+PiBUaGUgZml4IG1vdmVzIHRoZSBFbmRPZkludGVycnVwdCgpIGNhbGwgaW5zaWRlIHRo ZSBlbHNlIGNhc2UgZm9yDQo+Pj4+IHVucmVnaXN0ZXJlZC9zcHVyaW91cyBpbnRlcnJ1cHRzLiAg VGhpcyByZW1vdmVzIGEgcG90ZW50aWFsIHJhY2UNCj4+Pj4gY29uZGl0aW9uIHRoYXQgbWlnaHQg aGF2ZSBsb3N0IGludGVycnVwdHMuDQo+Pj4+DQo+Pj4NCj4+PiBJIHVuZGVyc3RhbmQgdGhhdCB0 aGlzIHNvbHZlcyB0aGUgcHJvYmxlbSwgYnV0IGl0IGRvZXMgY2hhbmdlIHRoZSBjb250cmFjdCB3 ZSBoYXZlIHdpdGggcmVnaXN0ZXJlZCBpbnRlcnJ1cHQgaGFuZGxlcnMsIGFuZCB3ZSBkb24ndCBr bm93IGhvdyB0aGlzIG1heSBiZSB1c2VkIG91dCBvZiB0cmVlLiBJIGtub3cgVUVGSSBvbmx5IHN1 cHBvcnRzIHBvbGxpbmcgZm9yIGRyaXZlcnMsIGJ1dCBhcmUgdGhlcmUgYW55IG90aGVyIGNhc2Vz IChkZWJ1Zz8pIHdoZXJlIHdlIG1heSBicmVhayBvdGhlciBwZW9wbGUncyBjb2RlIGJ5IGRvaW5n IHRoaXM/DQo+Pj4NCj4+Pg0KPj4+PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRy aWJ1dGlvbiBBZ3JlZW1lbnQgMS4wDQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFsZXhlaSBGZWRvcm92 IDxhbGV4ZWkuZmVkb3JvdkBhcm0uY29tPg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBFdmFuIExsb3lk IDxldmFuLmxsb3lkQGFybS5jb20+DQo+Pj4+IC0tLQ0KPj4+Pg0KPj4+PiBDb2RlIGlzIGF2YWls YWJsZSBhdDoNCj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL0V2YW5MbG95ZC90aWFub2NvcmUvdHJl ZS9FT0lSX3YxDQo+Pj4+DQo+Pj4+ICBBcm1Qa2cvRHJpdmVycy9Bcm1HaWMvR2ljVjIvQXJtR2lj VjJEeGUuYyB8IDUgKystLS0NCj4+Pj4gQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YzL0FybUdp Y1YzRHhlLmMgfCA1ICsrLS0tDQo+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL0FybVBrZy9Ecml2ZXJz L0FybUdpYy9HaWNWMi9Bcm1HaWNWMkR4ZS5jDQo+Pj4+IGIvQXJtUGtnL0RyaXZlcnMvQXJtR2lj L0dpY1YyL0FybUdpY1YyRHhlLmMNCj4+Pj4gaW5kZXgNCj4+Pj4gMDM2ZWI1Y2Q2YmY2ODQ1ZGQy YjAzYjYyYzkzM2MxZGVkYWVmNzI1MS4uMzRkNGJlMzg2NzY0N2UwZmRhZDczNTZjOTQNCj4+Pj4g OQ0KPj4+PiBhDQo+Pj4+IGY4Y2QzZWRlNzE2NCAxMDA2NDQNCj4+Pj4gLS0tIGEvQXJtUGtnL0Ry aXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMNCj4+Pj4gKysrIGIvQXJtUGtnL0RyaXZl cnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMNCj4+Pj4gQEAgLTIsNyArMiw3IEBADQo+Pj4+ DQo+Pj4+ICBDb3B5cmlnaHQgKGMpIDIwMDksIEhld2xldHQtUGFja2FyZCBDb21wYW55LiBBbGwg cmlnaHRzDQo+Pj4+IHJlc2VydmVkLjxCUj4gUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDEwLCBB cHBsZSBJbmMuIEFsbCByaWdodHMNCj4+Pj4gcmVzZXJ2ZWQuPEJSPiAtUG9ydGlvbnMgY29weXJp Z2h0IChjKSAyMDExLTIwMTUsIEFSTSBMdGQuIEFsbCByaWdodHMNCj4+Pj4gcmVzZXJ2ZWQuPEJS Pg0KPj4+PiArUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDExLTIwMTYsIEFSTSBMdGQuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4+Pg0KPj4+PiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNj b21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+Pj4+IGF2YWlsYWJs ZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIEBADQo+ Pj4+IC0xNzgsOQ0KPj4+PiArMTc4LDggQEAgR2ljVjJJcnFJbnRlcnJ1cHRIYW5kbGVyICgNCj4+ Pj4gICAgICBJbnRlcnJ1cHRIYW5kbGVyIChHaWNJbnRlcnJ1cHQsIFN5c3RlbUNvbnRleHQpOw0K Pj4+PiAgICB9IGVsc2Ugew0KPj4+PiAgICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJTcHVyaW91 cyBHSUMgaW50ZXJydXB0OiAweCV4XG4iLA0KPj4+PiBHaWNJbnRlcnJ1cHQpKTsNCj4+Pj4gKyAg ICBHaWNWMkVuZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50ZXJydXB0VjJQcm90b2NvbCwNCj4+ Pj4gKyBHaWNJbnRlcnJ1cHQpOw0KPj4+PiAgICB9DQo+Pj4+IC0NCj4+Pj4gLSAgR2ljVjJFbmRP ZkludGVycnVwdCAoJmdIYXJkd2FyZUludGVycnVwdFYyUHJvdG9jb2wsDQo+Pj4+IEdpY0ludGVy cnVwdCk7IH0NCj4+Pj4NCj4+Pj4gIC8vDQo+Pj4+IGRpZmYgLS1naXQgYS9Bcm1Qa2cvRHJpdmVy cy9Bcm1HaWMvR2ljVjMvQXJtR2ljVjNEeGUuYw0KPj4+PiBiL0FybVBrZy9Ecml2ZXJzL0FybUdp Yy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+Pj4+IGluZGV4DQo+Pj4+IDEwNmM2NjlmY2I4Nzc3ZGZh YWQ2MDljMGNlOWY1YjU3MjcyN2EzZmYuLjk4MzkzNmYzNzM4YTc0YmI1ZDVlMDhlMDEyDQo+Pj4+ IDkNCj4+Pj4gNw0KPj4+PiAzZGYyNDA5NThhOGIgMTAwNjQ0DQo+Pj4+IC0tLSBhL0FybVBrZy9E cml2ZXJzL0FybUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+Pj4+ICsrKyBiL0FybVBrZy9Ecml2 ZXJzL0FybUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+Pj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4+ PiAgLyoqIEBmaWxlDQo+Pj4+ICAqDQo+Pj4+IC0qICBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNSwg QVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+Pj4+ICsqICBDb3B5cmlnaHQgKGMp IDIwMTEtMjAxNiwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+Pj4+ICAqDQo+ Pj4+ICAqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+Pj4+ ICAqICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucw0KPj4+PiBvZiB0aGUgQlNEIExpY2Vuc2UgQEAgLTE2OSw5ICsxNjksOCBAQCBH aWNWM0lycUludGVycnVwdEhhbmRsZXIgKA0KPj4+PiAgICAgIEludGVycnVwdEhhbmRsZXIgKEdp Y0ludGVycnVwdCwgU3lzdGVtQ29udGV4dCk7DQo+Pj4+ICAgIH0gZWxzZSB7DQo+Pj4+ICAgICAg REVCVUcgKChFRklfRF9FUlJPUiwgIlNwdXJpb3VzIEdJQyBpbnRlcnJ1cHQ6IDB4JXhcbiIsDQo+ Pj4+IEdpY0ludGVycnVwdCkpOw0KPj4+PiArICAgIEdpY1YzRW5kT2ZJbnRlcnJ1cHQgKCZnSGFy ZHdhcmVJbnRlcnJ1cHRWM1Byb3RvY29sLA0KPj4+PiArIEdpY0ludGVycnVwdCk7DQo+Pj4+ICAg IH0NCj4+Pj4gLQ0KPj4+PiAtICBHaWNWM0VuZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50ZXJy dXB0VjNQcm90b2NvbCwNCj4+Pj4gR2ljSW50ZXJydXB0KTsgfQ0KPj4+Pg0KPj4+PiAgLy8NCj4+ Pj4gLS0NCj4+Pj4gR3VpZCgiQ0UxNjU2NjktM0VGMy00OTNGLUI4NUQtNjE5MEVFNUI5NzU5IikN Cj4+Pj4NCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KPj4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmcNCj4+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwN Cj4+Pg0KPj4+IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFu ZCBhbnkgYXR0YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmls ZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlm eSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRz IHRvIGFueSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9y IGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCj4+Pg0KPj4N Cj4+IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkg YXR0YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4g SWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSB0aGUg c2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFu eSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkg dGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCj4NCj4gSU1QT1JUQU5U IE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBh cmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5v dCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRp YXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90aGVyIHBlcnNv biwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRp b24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lg0KDQpJTVBPUlRBTlQgTk9USUNFOiBUaGUgY29u dGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0dGFjaG1lbnRzIGFyZSBjb25maWRlbnRpYWwg YW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCBy ZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90 IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBhbnkgb3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFu eSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRoZSBpbmZvcm1hdGlvbiBpbiBhbnkgbWVkaXVt LiBUaGFuayB5b3UuDQo=