From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.2.41; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=evan.lloyd@arm.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0041.outbound.protection.outlook.com [104.47.2.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id EA7D02257C2D7 for ; Mon, 5 Mar 2018 07:01:57 -0800 (PST) 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=YIzaLG2OXWD9dFkkxtMMF8MtmPei6nj2kbSAr+osHLw=; b=WrQcu3r0ny2ZSO/Xq5iOQ9pQGo1jQpmTlBX9830CErKhmFoo4xsnryx/aYceQ7MqYRCNytwAAVYgSyf3Jgz0n7MSsfk4ZspYVH8CfdD5/duHYefC3oTRJB5clQaRbn7eH/M1b5OjOGJvophS7Vh4lOCukqGB7IEPpIy78qVBPyk= Received: from HE1PR0801MB1771.eurprd08.prod.outlook.com (10.168.150.14) by HE1PR0801MB1721.eurprd08.prod.outlook.com (10.168.149.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Mon, 5 Mar 2018 15:08:07 +0000 Received: from HE1PR0801MB1771.eurprd08.prod.outlook.com ([fe80::1925:dd6f:e583:faaf]) by HE1PR0801MB1771.eurprd08.prod.outlook.com ([fe80::1925:dd6f:e583:faaf%15]) with mapi id 15.20.0548.016; Mon, 5 Mar 2018 15:08:04 +0000 From: Evan Lloyd To: Ard Biesheuvel CC: "leif.lindholm@linaro.org" , Girish Pathak , Matteo Carlini , nd , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH edk2-platforms v2 06/18] ARM/VExpressPkg: Add and update debug ASSERTS Thread-Index: AQHTe1hOO2sr3Hscrk+bI5jbnjbR/aNQ+WgAgBMq8gCAAAgyAIAAButQgAABoICAVndnYIADEB4AgARykhA= Date: Mon, 5 Mar 2018 15:08:04 +0000 Message-ID: References: <20171222190821.12440-1-evan.lloyd@arm.com> <20171222190821.12440-7-evan.lloyd@arm.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Evan.Lloyd@arm.com; x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1721; 7:tlC3MQAINEpJAnjNA3SZbKhTSnD2wfAjV7VjTAI3RnNvtb2ThSsbL0r1q2UEr93jLVVOKkpU0Dhe8GQWEUz+UOC86IrhaLpXSE62eoDnDj/7pgQv7KHjZAmWPJfbHp3wFTZWH7mQ1INXLV0sVdwd3rdKcEvE+35Jyaq6qN/s8kZQi4mkZUg6d0W8mB+7DhXvEPvzm+epQPcptmeTpmUE3gopXD/1RzvA6sqMVxC+vsV7O9fJMGgOE5T6mUHTf5Mr x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 341be8e9-0914-4a19-1af5-08d582aae56f x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:HE1PR0801MB1721; x-ms-traffictypediagnostic: HE1PR0801MB1721: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(162533806227266); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(10201501046)(3231220)(944501244)(52105095)(3002001)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:HE1PR0801MB1721; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB1721; x-forefront-prvs: 06022AA85F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(346002)(396003)(376002)(39380400002)(189003)(199004)(13464003)(102836004)(3660700001)(15650500001)(6506007)(7696005)(26005)(478600001)(229853002)(8936002)(76176011)(81166006)(81156014)(575784001)(8676002)(54906003)(99286004)(72206003)(105586002)(305945005)(53546011)(68736007)(74316002)(966005)(66066001)(3280700002)(59450400001)(86362001)(7736002)(14454004)(186003)(316002)(4326008)(33656002)(25786009)(6436002)(93886005)(106356001)(2906002)(3846002)(5250100002)(6246003)(53936002)(2950100002)(6306002)(9686003)(6916009)(97736004)(55016002)(5660300001)(6116002)(2900100001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1721; H:HE1PR0801MB1771.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: vp1SFQBYBmWNjFqmRr9n8qBpvq8HKpIP5aKw7KfYfh601nxNksigjvhOYmLJr6dy0aXt7MYO15d3IwQf9QqAoZ/Pd/mNpqXARBwoTzrQm950QAnZWQBo/aCBg82qClghk+nSD6wTCURl0AwvGGO1RfTB2WY35Uqq/8u4RTTC0/jNCfFzAdOmKVlGtuhXmaX8/IIXBvmrSdF36+6eAOAEsHcv370X/uldydKjN8Z31gb8F4+C4Gkb0IJbK110SsO1ezUdXJ1GZX7NWkIqdkG7SbPWlexfWsXPOBkOjYpGFz1+lhfAvB5rr1oNKcsaREkADFfEmqu/gyVQPEBcaN/m8w== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 341be8e9-0914-4a19-1af5-08d582aae56f X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2018 15:08:04.6702 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1721 Subject: Re: [PATCH edk2-platforms v2 06/18] ARM/VExpressPkg: Add and update debug ASSERTS X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2018 15:01:59 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SW4gdGhhdCBjYXNlLCB3b3VsZCB5b3UgYmUgaGFwcHkgdG8gdGFrZSBHaXJpc2gncyBwYXRjaGVz IHdpdGggdGhlIEFTU0VSVHMgZG9uZSB5b3VyIChvdXIpIHdheT8NCkxlaWYgY2FuIGZ1bG1pbmF0 ZSBhYm91dCBpdCB3aGVuIGhlIGdldHMgYmFjaywgaWYgaGUgcmVhbGx5IGZlZWxzIHRoYXQgc3Ry b25nbHkuDQpJIHN1c3BlY3QsIHRob3VnaCwgdGhhdCBMZWlmIGlzIGNhcGFibGUgb2YgYmVpbmcg cmVhc29uYWJsZSBpZiBwcmVzc2VkIChhbmQgb2ZmZXJlZCBiZWVyIGF0IFBsdWdmZXN0KS4NCg0K UmVnYXJkcywNCkV2YW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBB cmQgQmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddDQo+IFNlbnQ6 IDAyIE1hcmNoIDIwMTggMTk6MDcNCj4gVG86IEV2YW4gTGxveWQgPEV2YW4uTGxveWRAYXJtLmNv bT4NCj4gQ2M6IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZzsgR2lyaXNoIFBhdGhhayA8R2lyaXNo LlBhdGhha0Bhcm0uY29tPjsNCj4gTWF0dGVvIENhcmxpbmkgPE1hdHRlby5DYXJsaW5pQGFybS5j b20+OyBuZCA8bmRAYXJtLmNvbT47IGVkazItDQo+IGRldmVsQGxpc3RzLjAxLm9yZw0KPiBTdWJq ZWN0OiBSZTogW2VkazJdIFtQQVRDSCBlZGsyLXBsYXRmb3JtcyB2MiAwNi8xOF0gQVJNL1ZFeHBy ZXNzUGtnOg0KPiBBZGQgYW5kIHVwZGF0ZSBkZWJ1ZyBBU1NFUlRTDQo+IA0KPiBPbiAyOCBGZWJy dWFyeSAyMDE4IGF0IDIwOjI3LCBFdmFuIExsb3lkIDxFdmFuLkxsb3lkQGFybS5jb20+IHdyb3Rl Og0KPiA+IEhpIExlaWYsIEFyZC4NCj4gPiBDYW4gSSBnZXQgeW91IHR3byBhcmd1ZSBvdXQgdGhl IHByb3MgYW5kIGNvbnMgb2YgdGhlICJBU1NFUlQoRkFMU0UpIg0KPiBkZWJhdGUsIHBsZWFzZS4N Cj4gDQo+IEkgY2FuIGFyZ3VlIHRoZSBjb25zIGlmIHlvdSBsaWtlLiBGb3IgdGhlIHByb3MsIHlv dSdsbCBoYXZlIHRvIHdhaXQgZm9yIExlaWYgdG8NCj4gcmV0dXJuIGZyb20gaG9saWRheSAoaW4g YSB3ZWVrIG9yIHR3byBBRkFJSykNCj4gDQo+ID4gKHNlZQ0KPiA+IGh0dHBzOi8vbGlzdHMuMDEu b3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTgtSmFudWFyeS8wMTk3ODguaHRtbCkNCj4gPiBG b3Igd2hhdCBpdCBpcyB3b3J0aCwgb3VyIChzdXJwcmlzaW5nbHkgdW5hbmltb3VzKSBvcGluaW9u IGlzIHRoYXQsIHNpbmNlDQo+IHRoZSBBU1NFUlQgaXMgb25seSB0aGVyZSB0byBoZWxwIHNwb3Qg YSBwcm9ibGVtLCB0aGVuIHRoZSBtb3JlIGluZm9ybWF0aW9uDQo+IHJlcG9ydGVkIHRoZSBiZXR0 ZXIuICBUaGUgb25seSBiZW5lZml0cyBvZiBBU1NFUlQoRkFMU0UpIHdvdWxkIGJlIGEgc21hbGxl cg0KPiBkZWJ1ZyBpbWFnZSBhbmQgbWlub3IgZWZmaWNpZW5jeSBpbXByb3ZlbWVudCBvbiB0aGUg cGF0aCB0byB0aGUgY3Jhc2guDQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IEV2YW4NCj4gPg0KPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBBcmQgQmllc2hldXZlbCBb bWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmddDQo+ID4+IFNlbnQ6IDA0IEphbnVhcnkg MjAxOCAxOTo1NQ0KPiA+PiBUbzogRXZhbiBMbG95ZCA8RXZhbi5MbG95ZEBhcm0uY29tPg0KPiA+ PiBDYzogR2lyaXNoIFBhdGhhayA8R2lyaXNoLlBhdGhha0Bhcm0uY29tPjsgTWF0dGVvIENhcmxp bmkNCj4gPj4gPE1hdHRlby5DYXJsaW5pQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IGVkazIt DQo+IGRldmVsQGxpc3RzLjAxLm9yZzsNCj4gPj4gVGhvbWFzIEFicmFoYW0gPHRob21hcy5hYnJh aGFtQGFybS5jb20+OyBBcnZpbmQgQ2hhdWhhbg0KPiA+PiA8QXJ2aW5kLkNoYXVoYW5AYXJtLmNv bT47IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQ QVRDSCBlZGsyLXBsYXRmb3JtcyB2MiAwNi8xOF0gQVJNL1ZFeHByZXNzUGtnOg0KPiA+PiBBZGQg YW5kIHVwZGF0ZSBkZWJ1ZyBBU1NFUlRTDQo+ID4+DQo+ID4+IE9uIDQgSmFudWFyeSAyMDE4IGF0 IDE5OjUxLCBFdmFuIExsb3lkIDxFdmFuLkxsb3lkQGFybS5jb20+IHdyb3RlOg0KPiA+PiA+DQo+ ID4+ID4NCj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gPj4gRnJvbTog QXJkIEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+PiA+ PiBTZW50OiAwNCBKYW51YXJ5IDIwMTggMTk6MjQNCj4gPj4gPj4gVG86IEdpcmlzaCBQYXRoYWsg PEdpcmlzaC5QYXRoYWtAYXJtLmNvbT4NCj4gPj4gPj4gQ2M6IEV2YW4gTGxveWQgPEV2YW4uTGxv eWRAYXJtLmNvbT47IE1hdHRlbyBDYXJsaW5pDQo+ID4+ID4+IDxNYXR0ZW8uQ2FybGluaUBhcm0u Y29tPjsgbmQgPG5kQGFybS5jb20+OyBlZGsyLQ0KPiA+PiBkZXZlbEBsaXN0cy4wMS5vcmc7DQo+ ID4+ID4+IFRob21hcyBBYnJhaGFtIDx0aG9tYXMuYWJyYWhhbUBhcm0uY29tPjsgQXJ2aW5kIENo YXVoYW4NCj4gPj4gPj4gPEFydmluZC5DaGF1aGFuQGFybS5jb20+OyBsZWlmLmxpbmRob2xtQGxp bmFyby5vcmcNCj4gPj4gPj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggZWRrMi1wbGF0Zm9y bXMgdjIgMDYvMThdDQo+IEFSTS9WRXhwcmVzc1BrZzoNCj4gPj4gPj4gQWRkIGFuZCB1cGRhdGUg ZGVidWcgQVNTRVJUUw0KPiA+PiA+Pg0KPiA+PiA+PiBPbiA0IEphbnVhcnkgMjAxOCBhdCAxODo1 NSwgR2lyaXNoIFBhdGhhayA8R2lyaXNoLlBhdGhha0Bhcm0uY29tPg0KPiA+PiA+PiB3cm90ZToN Cj4gPj4gPj4gPiBIaSBBcmQsDQo+ID4+ID4+ID4NCj4gPj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPj4gPj4gPj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2 ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uDQo+ID4+ID4+ID4+IEJlaGFsZiBPZiBBcmQgQmll c2hldXZlbA0KPiA+PiA+PiA+PiBTZW50OiAyMyBEZWNlbWJlciAyMDE3IDE0OjEyDQo+ID4+ID4+ ID4+IFRvOiBFdmFuIExsb3lkIDxFdmFuLkxsb3lkQGFybS5jb20+DQo+ID4+ID4+ID4+IENjOiAi TWF0dGVvLkNhcmxpbmlAYXJtLmNvbSJAYXJtLmNvbTsNCj4gPj4gPj4gPj4gImxlaWYubGluZGhv bG1AbGluYXJvLm9yZyJAYXJtLmNvbTsgIm5kQGFybS5jb20iQGFybS5jb207DQo+ID4+IGVkazIt DQo+ID4+ID4+ID4+IGRldmVsQGxpc3RzLjAxLm9yZzsgVGhvbWFzIEFicmFoYW0NCj4gPHRob21h cy5hYnJhaGFtQGFybS5jb20+Ow0KPiA+PiA+PiBBcnZpbmQNCj4gPj4gPj4gPj4gQ2hhdWhhbiA8 QXJ2aW5kLkNoYXVoYW5AYXJtLmNvbT47DQo+ID4+ID4+ICJhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnIkBhcm0uY29tDQo+ID4+ID4+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIGVkazIt cGxhdGZvcm1zIHYyIDA2LzE4XQ0KPiA+PiBBUk0vVkV4cHJlc3NQa2c6DQo+ID4+ID4+ID4+IEFk ZCBhbmQgdXBkYXRlIGRlYnVnIEFTU0VSVFMNCj4gPj4gPj4gPj4NCj4gPj4gPj4gPj4gT24gMjIg RGVjZW1iZXIgMjAxNyBhdCAxOTowOCwgIDxldmFuLmxsb3lkQGFybS5jb20+IHdyb3RlOg0KPiA+ PiA+PiA+PiA+IEZyb206IEdpcmlzaCBQYXRoYWsgPGdpcmlzaC5wYXRoYWsgYXQgYXJtLmNvbT4N Cj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IFRoaXMgY2hhbmdlIGFkZHMgc29tZSBkZWJ1ZyBh c3NlcnRpb25zIGUuZyB0byBjYXRjaCBOVUxMDQo+ID4+ID4+ID4+ID4gcG9pbnRlciBlcnJvcnMg bWlzc2luZyBpbiBQTDExTGNkIGFuZCBIZExjZCBwbGF0Zm9ybSBsaWJyYXJpZXMuDQo+ID4+ID4+ ID4+ID4NCj4gPj4gPj4gPj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1 dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4+ID4+ID4+ID4gU2lnbmVkLW9mZi1ieTogR2lyaXNoIFBh dGhhayA8Z2lyaXNoLnBhdGhha0Bhcm0uY29tPg0KPiA+PiA+PiA+PiA+IFNpZ25lZC1vZmYtYnk6 IEV2YW4gTGxveWQgPGV2YW4ubGxveWRAYXJtLmNvbT4NCj4gPj4gPj4gPj4gPiAtLS0NCj4gPj4g Pj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+Pg0KPiA+Pg0KPiBQbGF0Zm9ybS9BUk0vVkV4cHJl c3NQa2cvTGlicmFyeS9IZExjZEFybVZFeHByZXNzTGliL0hkTGNkQXJtVkV4cA0KPiA+PiA+PiBy DQo+ID4+ID4+ID4+IGVzcy5jICAgICAgIHwgMjIgKysrKysrKysrKysrKysrKystDQo+ID4+ID4+ ID4+ID4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+Pg0KPiA+Pg0KPiBQbGF0Zm9y bS9BUk0vVkV4cHJlc3NQa2cvTGlicmFyeS9QTDExMUxjZEFybVZFeHByZXNzTGliL1BMMTExTGNk QXINCj4gPj4gPj4gbQ0KPiA+PiA+PiA+PiBWRXgNCj4gPj4gPj4gPj4gPiBwcmVzcy5jIHwgMjQg KysrKysrKysrKysrKysrKysrKy0NCj4gPj4gPj4gPj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NCBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+PiA+PiA+PiA+DQo+ID4+ID4+ID4+ID4g ZGlmZiAtLWdpdA0KPiA+PiA+PiA+PiA+DQo+ID4+ID4+ID4+DQo+ID4+ID4+DQo+ID4+DQo+IGEv UGxhdGZvcm0vQVJNL1ZFeHByZXNzUGtnL0xpYnJhcnkvSGRMY2RBcm1WRXhwcmVzc0xpYi9IZExj ZEFybVZFDQo+ID4+ID4+IHgNCj4gPj4gPj4gPj4gcHJlcw0KPiA+PiA+PiA+PiA+IHMuYw0KPiA+ PiA+PiA+PiA+DQo+ID4+ID4+ID4+DQo+ID4+ID4+DQo+ID4+DQo+IGIvUGxhdGZvcm0vQVJNL1ZF eHByZXNzUGtnL0xpYnJhcnkvSGRMY2RBcm1WRXhwcmVzc0xpYi9IZExjZEFybVZFDQo+ID4+ID4+ IHgNCj4gPj4gPj4gPj4gcHJlcw0KPiA+PiA+PiA+PiA+IHMuYyBpbmRleA0KPiA+PiA+PiA+PiA+ DQo+ID4+ID4+ID4+DQo+ID4+ID4+DQo+ID4+DQo+IDZhZmQ3NjQ4OTdmNDljNjQ0OTBjZTg5MTY4 MmY5OWJiMGY1ZDk5M2IuLmE4ZmU4Njk2ZGEwNjUzMDE3Y2U5ZmENCj4gPj4gPj4gNmU0YQ0KPiA+ PiA+PiA+PiA4Ng0KPiA+PiA+PiA+PiA+IGNhZjI4M2JjMDRjOSAxMDA2NDQNCj4gPj4gPj4gPj4g PiAtLS0NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+Pg0KPiA+Pg0KPiBhL1BsYXRm b3JtL0FSTS9WRXhwcmVzc1BrZy9MaWJyYXJ5L0hkTGNkQXJtVkV4cHJlc3NMaWIvSGRMY2RBcm1W RQ0KPiA+PiA+PiB4DQo+ID4+ID4+ID4+IHByZXMNCj4gPj4gPj4gPj4gPiBzLmMNCj4gPj4gPj4g Pj4gPiArKysNCj4gPj4gPj4gPj4NCj4gPj4gPj4NCj4gPj4NCj4gYi9QbGF0Zm9ybS9BUk0vVkV4 cHJlc3NQa2cvTGlicmFyeS9IZExjZEFybVZFeHByZXNzTGliL0hkTGNkQXJtVkUNCj4gPj4gPj4g eA0KPiA+PiA+PiA+PiA+ICsrKyBwcmVzcy5jDQo+ID4+ID4+ID4+ID4gQEAgLTE1Myw2ICsxNTMs OSBAQCBMY2RQbGF0Zm9ybUdldFZyYW0gKA0KPiA+PiA+PiA+PiA+ICAgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgIFN0YXR1czsNCj4gPj4gPj4gPj4gPiAgICBFRklfQUxMT0NBVEVfVFlQRSAgICAg ICBBbGxvY2F0aW9uVHlwZTsNCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+ICsgIEFTU0VSVCAo VnJhbUJhc2VBZGRyZXNzICE9IE5VTEwpOyAgQVNTRVJUIChWcmFtU2l6ZSAhPQ0KPiA+PiA+PiA+ PiA+ICsgTlVMTCk7DQo+ID4+ID4+ID4+ID4gKw0KPiA+PiA+PiA+PiA+ICAgIC8vIFNldCB0aGUg dnJhbSBzaXplDQo+ID4+ID4+ID4+ID4gICAgKlZyYW1TaXplID0gTENEX1ZSQU1fU0laRTsNCj4g Pj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEBAIC0xNzEsNiArMTc0LDcgQEAgTGNkUGxhdGZvcm1H ZXRWcmFtICgNCj4gPj4gPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgVnJhbUJhc2VBZGRyZXNz DQo+ID4+ID4+ID4+ID4gICAgICAgICAgICAgICAgICAgICk7DQo+ID4+ID4+ID4+ID4gICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+PiA+PiA+PiA+ICsgICAgQVNTRVJUIChGQUxTRSk7 DQo+ID4+ID4+ID4+ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+PiA+PiA+PiA+ICAgIH0NCj4g Pj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEBAIC0xODEsOCArMTg1LDggQEAgTGNkUGxhdGZvcm1H ZXRWcmFtICgNCj4gPj4gPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgKlZyYW1TaXplLA0KPiA+ PiA+PiA+PiA+ICAgICAgICAgICAgICAgICAgICBFRklfTUVNT1JZX1dDDQo+ID4+ID4+ID4+ID4g ICAgICAgICAgICAgICAgICAgICk7DQo+ID4+ID4+ID4+ID4gLSAgQVNTRVJUX0VGSV9FUlJPUiAo U3RhdHVzKTsNCj4gPj4gPj4gPj4gPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ ID4+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4NCj4gPj4gPj4gPj4gQXMg aW4gdGhlIHNpYmxpbmcgcGF0Y2ggYWdhaW5zdCBFREsyLCB0aGlzIHBhdGNoIG1ha2VzIGl0IG1v cmUNCj4gPj4gPj4gPj4gZGlmZmljdWx0IHRvIGZpZ3VyZSBvdXQgd2hhdCB3ZW50IHdyb25nIHdo ZW4geW91IGhpdCB0aGUgQVNTRVJULg0KPiA+PiA+PiA+PiBBU1NFUlRfRUZJX0VSUk9SIHByaW50 cyB0aGUgdmFsdWUgb2YgU3RhdHVzLCBBU1NFUlQoRkFMU0UpIG9ubHkNCj4gPj4gPj4gPj4gcHJp bnRzDQo+ID4+ID4+ID4+ICcwICE9IDEnDQo+ID4+ID4+ID4+DQo+ID4+ID4+ID4NCj4gPj4gPj4g PiBUaGlzIGNoYW5nZShhbmQgb3RoZXIgc2ltaWxhciBjaGFuZ2VzKSBpcyBpbiByZXNwb25zZSB0 byByZXZpZXcNCj4gPj4gPj4gPiBjb21tZW50cyBvbiBwYXRjaCB2MQ0KPiA+PiA+PiA+IGh0dHBz Oi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctDQo+IE9jdG9iZXIvMDE1 OTk1Lmh0DQo+ID4+ID4+ID4gbWwNCj4gPj4gPj4gPg0KPiA+PiA+PiA+IHdpdGggYWJvdmUgcmVm ZXJlbmNlLCBDYW4geW91IHBsZWFzZSBjb25maXJtIGlmIHdlIHNob3VsZCByZXZlcnQNCj4gPj4g Pj4gPiB0byB0aGUNCj4gPj4gPj4gcGF0Y2ggdjEgdmVyc2lvbiA/DQo+ID4+ID4+ID4NCj4gPj4g Pj4NCj4gPj4gPj4gSSBndWVzcyBMZWlmIGFuZCBJIGFyZSBpbiBkaXNhZ3JlZW1lbnQgaGVyZS4g SW4gcGFydGljdWxhciwgSQ0KPiA+PiA+PiB0aGluayBoaXMgY29tbWVudA0KPiA+PiA+Pg0KPiA+ PiA+PiAiIiINCj4gPj4gPj4gQVNTRVJUIChGQUxTRSk/ICAoWW91IGFscmVhZHkga25vdyBTdGF0 dXMgaXMgYW4gRUZJX0VSUk9SLCBhbmQgYQ0KPiA+PiA+PiBjb25zb2xlIG1lc3NhZ2Ugc2F5aW5n IEFTU0VSVCAoU3RhdHVzKSBpcyBub3QgZ2V0dGluZyB5b3Ugb3V0IG9mDQo+ID4+ID4+IGxvb2tp bmcgYXQgdGhlIHNvdXJjZSBjb2RlIHRvIGZpbmQgb3V0IHdoYXQgaGFwcGVuZWQuKSAiIiINCj4g Pj4gPj4NCj4gPj4gPj4gaXMgbWlzZ3VpZGVkLCBnaXZlbiB0aGF0IEFTU0VSVF9FRklfRVJST1Ig KFN0YXR1cykgd2lsbCBhY3R1YWxseQ0KPiA+PiA+PiBwcmludCB0aGUgdmFsdWUgb2YgU3RhdHVz IHRvIHRoZSBkZWJ1ZyBjb25zb2xlLg0KPiA+PiA+Pg0KPiA+PiA+PiBIb3dldmVyLCB0aGUgb2Jq ZWN0aW9ucyBhZ2FpbnN0IHB1dHRpbmcgZnVuY3Rpb24gY2FsbHMgaW4NCj4gPj4gPj4gQVNTRVJU KClzIGFyZQ0KPiA+PiA+PiBqdXN0aWZpZWQ6IEFTU0VSVCgpIHNob3VsZCBub3QgaGF2ZSBzaWRl IGVmZmVjdHMgaWYgaXRzIGNvbmRpdGlvbg0KPiA+PiA+PiBpcyBtZXQsIGFuZCBmdW5jdGlvbiBj YWxscyBtYXkgaGF2ZSBzaWRlIGVmZmVjdHMuDQo+ID4+ID4+DQo+ID4+ID4+IEkgc3VwcG9zZSB3 ZSBzaG91bGQgd2FpdCBmb3IgTGVpZiB0byByZXR1cm4gb24gdGhlIDIybmQgYmVmb3JlDQo+ID4+ ID4+IHByb2NlZWRpbmcgd2l0aCB0aGUgcmV2aWV3Lg0KPiA+PiA+PiBBcG9sb2dpZXMgZm9yIHRo ZSBjb25mdXNpb24sIGFuZCBmb3IgdGhlIGRlbGF5Lg0KPiA+PiA+DQo+ID4+ID4gIFtbRXZhbiBM bG95ZF1dIEFuIGFsdGVybmF0aXZlIG1pZ2h0IGJlIGZvciBHaXJpc2ggdG8gdGFrZSB0aGUNCj4g Pj4gPiBvdGhlciByb3V0ZQ0KPiA+PiBMZWlmIHN1Z2dlc3RlZCwgYW5kIGNhY2hlIHRoZSBjb25k aXRpb24gaW4gYSB2YXJpYWJsZS4NCj4gPj4gPiBUaGF0IG1pZ2h0IGJlIGEgc2xpZ2h0IG92ZXJo ZWFkLCBhbmQgdGhlIChwcmVzdW1hYmx5IEJPT0xFQU4pDQo+ID4+ID4gdmFyaWFibGUNCj4gPj4g bWF5IG5lZWQgY2FyZWZ1bCBuYW1pbmcsIGJ1dC4uLg0KPiA+PiA+DQo+ID4+DQo+ID4+IElmIHdl IGFyZSBnb2luZyB0byB1c2UgYSBib29sZWFuIHRvIHJlY29yZCB0aGUgcmVzdWx0IG9mIHRoZQ0K PiA+PiBjb21wYXJpc29uLCBhbmQNCj4gPj4gQVNTRVJUKCkgb24gaXQgaW4gdGhlIGlmICgpIGJs b2NrIGlmIHRoZSBjb21wYXJpc29uIGlzIGZhbHNlLCBJIGRvbid0DQo+ID4+IHNlZSB3aGF0IHRo ZSBkaWZmZXJlbmNlIGlzIHdpdGggZG9pbmcgQVNTRVJUIChGQUxTRSkgZGlyZWN0bHkuDQo+ID4+ DQo+ID4+DQo+ID4+ID4+DQo+ID4+ID4+DQo+ID4+ID4+DQo+ID4+ID4+ID4+ID4gICAgICBnQlMt PkZyZWVQYWdlcyAoKlZyYW1CYXNlQWRkcmVzcywgRUZJX1NJWkVfVE9fUEFHRVMNCj4gPj4gPj4g KCpWcmFtU2l6ZSkpOw0KPiA+PiA+PiA+PiA+ICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4gPj4g Pj4gPiAgICB9DQo+ID4+ID4+ID4+ID4gQEAgLTIyMSw2ICsyMjUsNyBAQCBMY2RQbGF0Zm9ybVNl dE1vZGUgKA0KPiA+PiA+PiA+PiA+ICAgIEVGSV9TVEFUVVMgICAgICAgICAgICBTdGF0dXM7DQo+ ID4+ID4+ID4+ID4NCj4gPj4gPj4gPj4gPiAgICBpZiAoTW9kZU51bWJlciA+PSBMY2RQbGF0Zm9y bUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPj4gPj4gPiArICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+ PiA+PiA+Pg0KPiA+PiA+PiA+PiBUaGVzZSBhcmUgZmluZTogdGhlIGNvZGUgaXRzZWxmIGV4cGxh aW5zIGFkZXF1YXRlbHkgd2hpY2gNCj4gPj4gPj4gPj4gY29uZGl0aW9uIHRyaWdnZXJlZCB0aGUg QVNTRVJUIHRvIGZpcmUuDQo+ID4+ID4+ID4+DQo+ID4+ID4+ID4+ID4gICAgICByZXR1cm4gRUZJ X0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+PiA+PiA+PiA+ICAgIH0NCj4gPj4gPj4gPj4gPg0KPiA+ PiA+PiA+PiA+IEBAIC0yNzksNyArMjg0LDEwIEBAIExjZFBsYXRmb3JtUXVlcnlNb2RlICgNCj4g Pj4gPj4gPj4gPiAgICBPVVQgRUZJX0dSQVBISUNTX09VVFBVVF9NT0RFX0lORk9STUFUSU9OICog Q09OU1QNCj4gPj4gSW5mbw0KPiA+PiA+PiA+PiA+ICAgICkNCj4gPj4gPj4gPj4gPiAgew0KPiA+ PiA+PiA+PiA+ICsgIEFTU0VSVCAoSW5mbyAhPSBOVUxMKTsNCj4gPj4gPj4gPj4gPiArDQo+ID4+ ID4+ID4+ID4gICAgaWYgKE1vZGVOdW1iZXIgPj0gTGNkUGxhdGZvcm1HZXRNYXhNb2RlICgpKSB7 DQo+ID4+ID4+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4gPiAgICAgIHJl dHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4+ID4+ID4+ID4gICAgfQ0KPiA+PiA+PiA+ PiA+DQo+ID4+ID4+ID4+ID4gQEAgLTM0Myw3ICszNTEsMTggQEAgTGNkUGxhdGZvcm1HZXRUaW1p bmdzICgNCj4gPj4gPj4gPj4gPiAgICBPVVQgVUlOVDMyICogQ09OU1QgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVkZyb250UG9yY2gNCj4gPj4gPj4gPj4gPiAgICApDQo+ID4+ID4+ID4+ID4g IHsNCj4gPj4gPj4gPj4gPiArICAvLyBPbmUgb2YgdGhlIHBvaW50ZXJzIGlzIE5VTEwgIEFTU0VS VCAoSFJlcyAhPSBOVUxMKTsNCj4gPj4gPj4gPj4gPiArIEFTU0VSVCAoSFN5bmMgIT0gTlVMTCk7 ICBBU1NFUlQgKEhCYWNrUG9yY2ggIT0gTlVMTCk7DQo+ID4+ID4+ID4+ID4gKyBBU1NFUlQgKEhG cm9udFBvcmNoICE9IE5VTEwpOyAgQVNTRVJUIChWUmVzICE9IE5VTEwpOw0KPiA+PiA+PiA+PiA+ ICsgQVNTRVJUIChWU3luYyAhPSBOVUxMKTsgIEFTU0VSVCAoVkJhY2tQb3JjaCAhPSBOVUxMKTsN Cj4gPj4gPj4gPj4gPiArIEFTU0VSVCAoVkZyb250UG9yY2ggIT0gTlVMTCk7DQo+ID4+ID4+ID4+ ID4gKw0KPiA+PiA+PiA+PiA+ICAgIGlmIChNb2RlTnVtYmVyID49IExjZFBsYXRmb3JtR2V0TWF4 TW9kZSAoKSkgew0KPiA+PiA+PiA+PiA+ICsgICAgQVNTRVJUIChGQUxTRSk7DQo+ID4+ID4+ID4+ ID4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+PiA+PiA+PiA+ICAgIH0N Cj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEBAIC0zNzYsNiArMzk1LDcgQEAgTGNkUGxhdGZv cm1HZXRCcHAgKA0KPiA+PiA+PiA+PiA+ICAgICkNCj4gPj4gPj4gPj4gPiAgew0KPiA+PiA+PiA+ PiA+ICAgIGlmIChNb2RlTnVtYmVyID49IExjZFBsYXRmb3JtR2V0TWF4TW9kZSAoKSkgew0KPiA+ PiA+PiA+PiA+ICsgICAgQVNTRVJUIChGQUxTRSk7DQo+ID4+ID4+ID4+ID4gICAgICByZXR1cm4g RUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+PiA+PiA+PiA+ICAgIH0NCj4gPj4gPj4gPj4gPg0K PiA+PiA+PiA+PiA+IGRpZmYgLS1naXQNCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+ Pg0KPiA+Pg0KPiBhL1BsYXRmb3JtL0FSTS9WRXhwcmVzc1BrZy9MaWJyYXJ5L1BMMTExTGNkQXJt VkV4cHJlc3NMaWIvUEwxMTFMY2QNCj4gPj4gPj4gQXINCj4gPj4gPj4gPj4gbVYNCj4gPj4gPj4g Pj4gPiBFeHByZXNzLmMNCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+Pg0KPiA+Pg0K PiBiL1BsYXRmb3JtL0FSTS9WRXhwcmVzc1BrZy9MaWJyYXJ5L1BMMTExTGNkQXJtVkV4cHJlc3NM aWIvUEwxMTFMY2QNCj4gPj4gPj4gQXINCj4gPj4gPj4gPj4gbVYNCj4gPj4gPj4gPj4gPiBFeHBy ZXNzLmMgaW5kZXgNCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+Pg0KPiA+Pg0KPiA3 OTlmYjNmYzc4MWNlMDRiYjY0Y2IxZmEwYjg3ZjI2MmE2NzBlZDc4Li5mZDRlZWE4ZjhlMjM5N2Jj N2Q0ZGRmDQo+ID4+ID4+IDRjZmUNCj4gPj4gPj4gPj4gM2QNCj4gPj4gPj4gPj4gPiBjYzk3YTUx MDllZGIgMTAwNjQ0DQo+ID4+ID4+ID4+ID4gLS0tDQo+ID4+ID4+ID4+ID4NCj4gPj4gPj4gPj4N Cj4gPj4gPj4NCj4gPj4NCj4gYS9QbGF0Zm9ybS9BUk0vVkV4cHJlc3NQa2cvTGlicmFyeS9QTDEx MUxjZEFybVZFeHByZXNzTGliL1BMMTExTGNkDQo+ID4+ID4+IEFyDQo+ID4+ID4+ID4+IG1WDQo+ ID4+ID4+ID4+ID4gRXhwcmVzcy5jDQo+ID4+ID4+ID4+ID4gKysrDQo+ID4+ID4+ID4+DQo+ID4+ ID4+DQo+ID4+DQo+IGIvUGxhdGZvcm0vQVJNL1ZFeHByZXNzUGtnL0xpYnJhcnkvUEwxMTFMY2RB cm1WRXhwcmVzc0xpYi9QTDExMUxjZA0KPiA+PiA+PiA+PiA+ICsrKyBBcm1WRXhwcmVzcy5jDQo+ ID4+ID4+ID4+ID4gQEAgLTIwNSw2ICsyMDUsOSBAQCBMY2RQbGF0Zm9ybUdldFZyYW0gKA0KPiA+ PiA+PiA+PiA+DQo+ID4+ID4+ID4+ID4gICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4+ID4+ ID4+ID4NCj4gPj4gPj4gPj4gPiArICBBU1NFUlQgKFZyYW1CYXNlQWRkcmVzcyAhPSBOVUxMKTsg IEFTU0VSVCAoVnJhbVNpemUgIT0NCj4gPj4gPj4gPj4gPiArIE5VTEwpOw0KPiA+PiA+PiA+PiA+ ICsNCj4gPj4gPj4gPj4gPiAgICAvLyBJcyBpdCBvbiB0aGUgbW90aGVyYm9hcmQgb3Igb24gdGhl IGRhdWdodGVyYm9hcmQ/DQo+ID4+ID4+ID4+ID4gICAgc3dpdGNoIChQTDExMV9DTENEX1NJVEUp IHsNCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEBAIC0yMjUsNiArMjI4LDcgQEAgTGNkUGxh dGZvcm1HZXRWcmFtICgNCj4gPj4gPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICBWcmFtQmFz ZUFkZHJlc3MNCj4gPj4gPj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+PiA+PiA+ PiA+ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+PiA+PiA+PiA+ICsgICAgICBB U1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4gPiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4g Pj4gPj4gPiAgICAgIH0NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEBAIC0yMzUsOCArMjM5 LDggQEAgTGNkUGxhdGZvcm1HZXRWcmFtICgNCj4gPj4gPj4gPj4gPiAgICAgICAgICAgICAgICAg ICAgICAqVnJhbVNpemUsDQo+ID4+ID4+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgRUZJX01F TU9SWV9XQw0KPiA+PiA+PiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4+ID4+ID4+ ID4gLSAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+PiA+PiA+PiA+ICAgICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+PiA+PiA+PiA+ICsgICAgICBBU1NFUlQgKEZBTFNF KTsNCj4gPj4gPj4gPj4gPiAgICAgICAgZ0JTLT5GcmVlUGFnZXMgKCpWcmFtQmFzZUFkZHJlc3Ms IEVGSV9TSVpFX1RPX1BBR0VTDQo+ID4+ID4+ID4+ICgqVnJhbVNpemUpKTsNCj4gPj4gPj4gPj4g PiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4gPj4gPj4gPiAgICAgIH0NCj4gPj4gPj4gPj4g PiBAQCAtMjk0LDYgKzI5OCw3IEBAIExjZFBsYXRmb3JtU2V0TW9kZSAoDQo+ID4+ID4+ID4+ID4g ICAgVUlOVDMyICAgICAgICAgICAgICAgIFN5c0lkOw0KPiA+PiA+PiA+PiA+DQo+ID4+ID4+ID4+ ID4gICAgaWYgKE1vZGVOdW1iZXIgPj0gTGNkUGxhdGZvcm1HZXRNYXhNb2RlICgpKSB7DQo+ID4+ ID4+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4gPiAgICAgIHJldHVybiBF RklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4+ID4+ID4+ID4gICAgfQ0KPiA+PiA+PiA+PiA+DQo+ ID4+ID4+ID4+ID4gQEAgLTM2OSw3ICszNzQsMTAgQEAgTGNkUGxhdGZvcm1RdWVyeU1vZGUgKA0K PiA+PiA+PiA+PiA+ICAgIE9VVCBFRklfR1JBUEhJQ1NfT1VUUFVUX01PREVfSU5GT1JNQVRJT04g KiBDT05TVA0KPiBJbmZvDQo+ID4+ID4+ID4+ID4gICAgKQ0KPiA+PiA+PiA+PiA+ICB7DQo+ID4+ ID4+ID4+ID4gKyAgQVNTRVJUIChJbmZvICE9IE5VTEwpOw0KPiA+PiA+PiA+PiA+ICsNCj4gPj4g Pj4gPj4gPiAgICBpZiAoTW9kZU51bWJlciA+PSBMY2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsN Cj4gPj4gPj4gPj4gPiArICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+PiA+PiA+PiA+ICAgICAgcmV0 dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4gPj4gPj4gPiAgICB9DQo+ID4+ID4+ID4+ ID4NCj4gPj4gPj4gPj4gPiBAQCAtNDMzLDcgKzQ0MSwxOCBAQCBMY2RQbGF0Zm9ybUdldFRpbWlu Z3MgKA0KPiA+PiA+PiA+PiA+ICAgIE9VVCBVSU5UMzIgKiBDT05TVCAgICAgICAgICAgICAgICAg ICAgICBWRnJvbnRQb3JjaA0KPiA+PiA+PiA+PiA+ICAgICkNCj4gPj4gPj4gPj4gPiAgew0KPiA+ PiA+PiA+PiA+ICsgIC8vIE9uZSBvZiB0aGUgcG9pbnRlcnMgaXMgTlVMTCAgQVNTRVJUIChIUmVz ICE9IE5VTEwpOw0KPiA+PiA+PiA+PiA+ICsgQVNTRVJUIChIU3luYyAhPSBOVUxMKTsgIEFTU0VS VCAoSEJhY2tQb3JjaCAhPSBOVUxMKTsNCj4gPj4gPj4gPj4gPiArIEFTU0VSVCAoSEZyb250UG9y Y2ggIT0gTlVMTCk7ICBBU1NFUlQgKFZSZXMgIT0gTlVMTCk7DQo+ID4+ID4+ID4+ID4gKyBBU1NF UlQgKFZTeW5jICE9IE5VTEwpOyAgQVNTRVJUIChWQmFja1BvcmNoICE9IE5VTEwpOw0KPiA+PiA+ PiA+PiA+ICsgQVNTRVJUIChWRnJvbnRQb3JjaCAhPSBOVUxMKTsNCj4gPj4gPj4gPj4gPiArDQo+ ID4+ID4+ID4+ID4gICAgaWYgKE1vZGVOdW1iZXIgPj0gTGNkUGxhdGZvcm1HZXRNYXhNb2RlICgp KSB7DQo+ID4+ID4+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4gPiAgICAg IHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4+ID4+ID4+ID4gICAgfQ0KPiA+PiA+ PiA+PiA+DQo+ID4+ID4+ID4+ID4gQEAgLTQ2NSw3ICs0ODQsMTAgQEAgTGNkUGxhdGZvcm1HZXRC cHAgKA0KPiA+PiA+PiA+PiA+ICAgIE9VVCBMQ0RfQlBQICogQ09OU1QgICAgICAgICAgICAgICAg ICAgICBCcHANCj4gPj4gPj4gPj4gPiAgICApDQo+ID4+ID4+ID4+ID4gIHsNCj4gPj4gPj4gPj4g PiArICBBU1NFUlQgKEJwcCAhPSBOVUxMKTsNCj4gPj4gPj4gPj4gPiArDQo+ID4+ID4+ID4+ID4g ICAgaWYgKE1vZGVOdW1iZXIgPj0gTGNkUGxhdGZvcm1HZXRNYXhNb2RlICgpKSB7DQo+ID4+ID4+ ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPj4gPj4gPiAgICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7DQo+ID4+ID4+ID4+ID4gICAgfQ0KPiA+PiA+PiA+PiA+DQo+ID4+ ID4+ID4+ID4gLS0NCj4gPj4gPj4gPj4gPiBHdWlkKCJDRTE2NTY2OS0zRUYzLTQ5M0YtQjg1RC02 MTkwRUU1Qjk3NTkiKQ0KPiA+PiA+PiA+PiA+DQo+ID4+ID4+ID4+ID4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4gPj4gPj4gPiBlZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KPiA+PiA+PiA+PiA+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+ ID4+ID4+ID4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVs DQo+ID4+ID4+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+ID4+ID4+ID4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4+ID4+ID4+IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+ID4+ID4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxt YW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K