From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.0.62; helo=eur01-he1-obe.outbound.protection.outlook.com; envelope-from=evan.lloyd@arm.com; receiver=edk2-devel@lists.01.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0062.outbound.protection.outlook.com [104.47.0.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 05F782236BA8B for ; Thu, 4 Jan 2018 11:46:21 -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=xIqXsU7acXLw95p1p1BsmcppB3n750J5dho2QKDWPn0=; b=Id+e/hZk7zTh1nlF6aA1KWVUg6Iw4zSCyiZyDMu6WAYXG/FCOYrFy7LObweUErxyd8eh+TbTriQ3jEWwdkMj1sYHWQItyGUxsJRjB0ycG06ysod6UcdIm0CpVH4usUVCuYA/I+irG28+/xb6p8WAPCyN757cP5SkUpLXQ+R2tOI= Received: from HE1PR08MB2684.eurprd08.prod.outlook.com (10.170.248.27) by HE1PR08MB0490.eurprd08.prod.outlook.com (10.161.120.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.366.8; Thu, 4 Jan 2018 19:51:19 +0000 Received: from HE1PR08MB2684.eurprd08.prod.outlook.com ([fe80::2cba:9ca8:24d:df80]) by HE1PR08MB2684.eurprd08.prod.outlook.com ([fe80::2cba:9ca8:24d:df80%13]) with mapi id 15.20.0366.009; Thu, 4 Jan 2018 19:51:19 +0000 From: Evan Lloyd To: Ard Biesheuvel , Girish Pathak CC: Matteo Carlini , nd , "edk2-devel@lists.01.org" , Thomas Abraham , Arvind Chauhan , "leif.lindholm@linaro.org" Thread-Topic: [edk2] [PATCH edk2-platforms v2 06/18] ARM/VExpressPkg: Add and update debug ASSERTS Thread-Index: AQHTe1hOO2sr3Hscrk+bI5jbnjbR/aNQ+WgAgBMq8gCAAAgyAIAAButQ Date: Thu, 4 Jan 2018 19:51:19 +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; HE1PR08MB0490; 7:OI4rvVmSdwgmZDZJErW+7xKcM6FwaJT5yEC7Y/lR07gwE6t3tGys1JZ8WcLti+CENF+U0caP6y6MNiPxciKZbdA64aY1N2afX9DxRuKoJlXosmYzZQNmE/ZDdmMn7x/LgP/gubT3yVdgaY9grkF7al/7KjKbLRQNnr8Z+Hm6rxBA5hisC7uUphtOsvQrfT9JH4wn3swKr9PmBgcFYVhsbal23+4Fw0BxBp4R3bOiKCia2RH8nz4M/kdp3XPbeEoD x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 1aebe6a1-7e32-4582-11d2-08d553ac8650 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060); SRVR:HE1PR08MB0490; x-ms-traffictypediagnostic: HE1PR08MB0490: 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:(6040470)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231023)(944501075)(6055026)(6041268)(20161123564045)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:HE1PR08MB0490; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HE1PR08MB0490; x-forefront-prvs: 054231DC40 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(346002)(376002)(366004)(39380400002)(189003)(199004)(13464003)(24454002)(76176011)(7696005)(6506007)(6116002)(59450400001)(229853002)(5250100002)(74316002)(53546011)(7736002)(3846002)(305945005)(102836004)(2906002)(2950100002)(15650500001)(55016002)(66066001)(6436002)(6636002)(33656002)(5660300001)(2900100001)(9686003)(6306002)(81156014)(86362001)(8936002)(14454004)(4326008)(478600001)(68736007)(81166006)(97736004)(316002)(575784001)(105586002)(106356001)(53936002)(6246003)(3280700002)(93886005)(99286004)(3660700001)(110136005)(966005)(54906003)(8676002)(72206003)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR08MB0490; H:HE1PR08MB2684.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: koTvbJ9XmpRlBnulqGOcCCvIRgIAbR/Llnd00bLAJ4BUBC+bPzVnsVzI5uNFDWByXx4CLlQ6BGx8qdcWO6DJnw== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1aebe6a1-7e32-4582-11d2-08d553ac8650 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2018 19:51:19.3949 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB0490 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: Thu, 04 Jan 2018 19:46:23 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwg W21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiBTZW50OiAwNCBKYW51YXJ5IDIw MTggMTk6MjQNCj4gVG86IEdpcmlzaCBQYXRoYWsgPEdpcmlzaC5QYXRoYWtAYXJtLmNvbT4NCj4g Q2M6IEV2YW4gTGxveWQgPEV2YW4uTGxveWRAYXJtLmNvbT47IE1hdHRlbyBDYXJsaW5pDQo+IDxN YXR0ZW8uQ2FybGluaUBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZzsNCj4gVGhvbWFzIEFicmFoYW0gPHRob21hcy5hYnJhaGFtQGFybS5jb20+OyBBcnZp bmQgQ2hhdWhhbg0KPiA8QXJ2aW5kLkNoYXVoYW5AYXJtLmNvbT47IGxlaWYubGluZGhvbG1AbGlu YXJvLm9yZw0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCBlZGsyLXBsYXRmb3JtcyB2MiAw Ni8xOF0gQVJNL1ZFeHByZXNzUGtnOg0KPiBBZGQgYW5kIHVwZGF0ZSBkZWJ1ZyBBU1NFUlRTDQo+ IA0KPiBPbiA0IEphbnVhcnkgMjAxOCBhdCAxODo1NSwgR2lyaXNoIFBhdGhhayA8R2lyaXNoLlBh dGhha0Bhcm0uY29tPg0KPiB3cm90ZToNCj4gPiBIaSBBcmQsDQo+ID4NCj4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2 ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZg0KPiA+PiBPZiBBcmQgQmllc2hldXZl bA0KPiA+PiBTZW50OiAyMyBEZWNlbWJlciAyMDE3IDE0OjEyDQo+ID4+IFRvOiBFdmFuIExsb3lk IDxFdmFuLkxsb3lkQGFybS5jb20+DQo+ID4+IENjOiAiTWF0dGVvLkNhcmxpbmlAYXJtLmNvbSJA YXJtLmNvbTsNCj4gPj4gImxlaWYubGluZGhvbG1AbGluYXJvLm9yZyJAYXJtLmNvbTsgIm5kQGFy bS5jb20iQGFybS5jb207IGVkazItDQo+ID4+IGRldmVsQGxpc3RzLjAxLm9yZzsgVGhvbWFzIEFi cmFoYW0gPHRob21hcy5hYnJhaGFtQGFybS5jb20+Ow0KPiBBcnZpbmQNCj4gPj4gQ2hhdWhhbiA8 QXJ2aW5kLkNoYXVoYW5AYXJtLmNvbT47DQo+ICJhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnIkBh cm0uY29tDQo+ID4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIGVkazItcGxhdGZvcm1zIHYy IDA2LzE4XSBBUk0vVkV4cHJlc3NQa2c6DQo+ID4+IEFkZCBhbmQgdXBkYXRlIGRlYnVnIEFTU0VS VFMNCj4gPj4NCj4gPj4gT24gMjIgRGVjZW1iZXIgMjAxNyBhdCAxOTowOCwgIDxldmFuLmxsb3lk QGFybS5jb20+IHdyb3RlOg0KPiA+PiA+IEZyb206IEdpcmlzaCBQYXRoYWsgPGdpcmlzaC5wYXRo YWsgYXQgYXJtLmNvbT4NCj4gPj4gPg0KPiA+PiA+IFRoaXMgY2hhbmdlIGFkZHMgc29tZSBkZWJ1 ZyBhc3NlcnRpb25zIGUuZyB0byBjYXRjaCBOVUxMIHBvaW50ZXINCj4gPj4gPiBlcnJvcnMgbWlz c2luZyBpbiBQTDExTGNkIGFuZCBIZExjZCBwbGF0Zm9ybSBsaWJyYXJpZXMuDQo+ID4+ID4NCj4g Pj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQg MS4xDQo+ID4+ID4gU2lnbmVkLW9mZi1ieTogR2lyaXNoIFBhdGhhayA8Z2lyaXNoLnBhdGhha0Bh cm0uY29tPg0KPiA+PiA+IFNpZ25lZC1vZmYtYnk6IEV2YW4gTGxveWQgPGV2YW4ubGxveWRAYXJt LmNvbT4NCj4gPj4gPiAtLS0NCj4gPj4gPg0KPiA+Pg0KPiBQbGF0Zm9ybS9BUk0vVkV4cHJlc3NQ a2cvTGlicmFyeS9IZExjZEFybVZFeHByZXNzTGliL0hkTGNkQXJtVkV4cA0KPiByDQo+ID4+IGVz cy5jICAgICAgIHwgMjIgKysrKysrKysrKysrKysrKystDQo+ID4+ID4NCj4gPj4gPg0KPiA+Pg0K PiBQbGF0Zm9ybS9BUk0vVkV4cHJlc3NQa2cvTGlicmFyeS9QTDExMUxjZEFybVZFeHByZXNzTGli L1BMMTExTGNkQXINCj4gbQ0KPiA+PiBWRXgNCj4gPj4gPiBwcmVzcy5jIHwgMjQgKysrKysrKysr KysrKysrKysrKy0NCj4gPj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQ0KPiA+PiA+DQo+ID4+ID4gZGlmZiAtLWdpdA0KPiA+PiA+DQo+ID4+DQo+ IGEvUGxhdGZvcm0vQVJNL1ZFeHByZXNzUGtnL0xpYnJhcnkvSGRMY2RBcm1WRXhwcmVzc0xpYi9I ZExjZEFybVZFDQo+IHgNCj4gPj4gcHJlcw0KPiA+PiA+IHMuYw0KPiA+PiA+DQo+ID4+DQo+IGIv UGxhdGZvcm0vQVJNL1ZFeHByZXNzUGtnL0xpYnJhcnkvSGRMY2RBcm1WRXhwcmVzc0xpYi9IZExj ZEFybVZFDQo+IHgNCj4gPj4gcHJlcw0KPiA+PiA+IHMuYyBpbmRleA0KPiA+PiA+DQo+ID4+DQo+ IDZhZmQ3NjQ4OTdmNDljNjQ0OTBjZTg5MTY4MmY5OWJiMGY1ZDk5M2IuLmE4ZmU4Njk2ZGEwNjUz MDE3Y2U5ZmENCj4gNmU0YQ0KPiA+PiA4Ng0KPiA+PiA+IGNhZjI4M2JjMDRjOSAxMDA2NDQNCj4g Pj4gPiAtLS0NCj4gPj4gPg0KPiA+Pg0KPiBhL1BsYXRmb3JtL0FSTS9WRXhwcmVzc1BrZy9MaWJy YXJ5L0hkTGNkQXJtVkV4cHJlc3NMaWIvSGRMY2RBcm1WRQ0KPiB4DQo+ID4+IHByZXMNCj4gPj4g PiBzLmMNCj4gPj4gPiArKysNCj4gPj4NCj4gYi9QbGF0Zm9ybS9BUk0vVkV4cHJlc3NQa2cvTGli cmFyeS9IZExjZEFybVZFeHByZXNzTGliL0hkTGNkQXJtVkUNCj4geA0KPiA+PiA+ICsrKyBwcmVz cy5jDQo+ID4+ID4gQEAgLTE1Myw2ICsxNTMsOSBAQCBMY2RQbGF0Zm9ybUdldFZyYW0gKA0KPiA+ PiA+ICAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgIFN0YXR1czsNCj4gPj4gPiAgICBFRklfQUxM T0NBVEVfVFlQRSAgICAgICBBbGxvY2F0aW9uVHlwZTsNCj4gPj4gPg0KPiA+PiA+ICsgIEFTU0VS VCAoVnJhbUJhc2VBZGRyZXNzICE9IE5VTEwpOyAgQVNTRVJUIChWcmFtU2l6ZSAhPSBOVUxMKTsN Cj4gPj4gPiArDQo+ID4+ID4gICAgLy8gU2V0IHRoZSB2cmFtIHNpemUNCj4gPj4gPiAgICAqVnJh bVNpemUgPSBMQ0RfVlJBTV9TSVpFOw0KPiA+PiA+DQo+ID4+ID4gQEAgLTE3MSw2ICsxNzQsNyBA QCBMY2RQbGF0Zm9ybUdldFZyYW0gKA0KPiA+PiA+ICAgICAgICAgICAgICAgICAgICBWcmFtQmFz ZUFkZHJlc3MNCj4gPj4gPiAgICAgICAgICAgICAgICAgICAgKTsNCj4gPj4gPiAgICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPiAg ICAgIHJldHVybiBTdGF0dXM7DQo+ID4+ID4gICAgfQ0KPiA+PiA+DQo+ID4+ID4gQEAgLTE4MSw4 ICsxODUsOCBAQCBMY2RQbGF0Zm9ybUdldFZyYW0gKA0KPiA+PiA+ICAgICAgICAgICAgICAgICAg ICAqVnJhbVNpemUsDQo+ID4+ID4gICAgICAgICAgICAgICAgICAgIEVGSV9NRU1PUllfV0MNCj4g Pj4gPiAgICAgICAgICAgICAgICAgICAgKTsNCj4gPj4gPiAtICBBU1NFUlRfRUZJX0VSUk9SIChT dGF0dXMpOw0KPiA+PiA+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPj4gPiArICAg IEFTU0VSVCAoRkFMU0UpOw0KPiA+Pg0KPiA+PiBBcyBpbiB0aGUgc2libGluZyBwYXRjaCBhZ2Fp bnN0IEVESzIsIHRoaXMgcGF0Y2ggbWFrZXMgaXQgbW9yZQ0KPiA+PiBkaWZmaWN1bHQgdG8gZmln dXJlIG91dCB3aGF0IHdlbnQgd3Jvbmcgd2hlbiB5b3UgaGl0IHRoZSBBU1NFUlQuDQo+ID4+IEFT U0VSVF9FRklfRVJST1IgcHJpbnRzIHRoZSB2YWx1ZSBvZiBTdGF0dXMsIEFTU0VSVChGQUxTRSkg b25seQ0KPiA+PiBwcmludHMNCj4gPj4gJzAgIT0gMScNCj4gPj4NCj4gPg0KPiA+IFRoaXMgY2hh bmdlKGFuZCBvdGhlciBzaW1pbGFyIGNoYW5nZXMpIGlzIGluIHJlc3BvbnNlIHRvIHJldmlldw0K PiA+IGNvbW1lbnRzIG9uIHBhdGNoIHYxDQo+ID4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvcGlwZXJt YWlsL2VkazItZGV2ZWwvMjAxNy1PY3RvYmVyLzAxNTk5NS5odG1sDQo+ID4NCj4gPiB3aXRoIGFi b3ZlIHJlZmVyZW5jZSwgQ2FuIHlvdSBwbGVhc2UgY29uZmlybSBpZiB3ZSBzaG91bGQgcmV2ZXJ0 IHRvIHRoZQ0KPiBwYXRjaCB2MSB2ZXJzaW9uID8NCj4gPg0KPiANCj4gSSBndWVzcyBMZWlmIGFu ZCBJIGFyZSBpbiBkaXNhZ3JlZW1lbnQgaGVyZS4gSW4gcGFydGljdWxhciwgSSB0aGluayBoaXMg Y29tbWVudA0KPiANCj4gIiIiDQo+IEFTU0VSVCAoRkFMU0UpPyAgKFlvdSBhbHJlYWR5IGtub3cg U3RhdHVzIGlzIGFuIEVGSV9FUlJPUiwgYW5kIGEgY29uc29sZQ0KPiBtZXNzYWdlIHNheWluZyBB U1NFUlQgKFN0YXR1cykgaXMgbm90IGdldHRpbmcgeW91IG91dCBvZiBsb29raW5nIGF0IHRoZQ0K PiBzb3VyY2UgY29kZSB0byBmaW5kIG91dCB3aGF0IGhhcHBlbmVkLikgIiIiDQo+IA0KPiBpcyBt aXNndWlkZWQsIGdpdmVuIHRoYXQgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKSB3aWxsIGFjdHVh bGx5IHByaW50IHRoZQ0KPiB2YWx1ZSBvZiBTdGF0dXMgdG8gdGhlIGRlYnVnIGNvbnNvbGUuDQo+ IA0KPiBIb3dldmVyLCB0aGUgb2JqZWN0aW9ucyBhZ2FpbnN0IHB1dHRpbmcgZnVuY3Rpb24gY2Fs bHMgaW4gQVNTRVJUKClzIGFyZQ0KPiBqdXN0aWZpZWQ6IEFTU0VSVCgpIHNob3VsZCBub3QgaGF2 ZSBzaWRlIGVmZmVjdHMgaWYgaXRzIGNvbmRpdGlvbiBpcyBtZXQsIGFuZA0KPiBmdW5jdGlvbiBj YWxscyBtYXkgaGF2ZSBzaWRlIGVmZmVjdHMuDQo+IA0KPiBJIHN1cHBvc2Ugd2Ugc2hvdWxkIHdh aXQgZm9yIExlaWYgdG8gcmV0dXJuIG9uIHRoZSAyMm5kIGJlZm9yZSBwcm9jZWVkaW5nDQo+IHdp dGggdGhlIHJldmlldy4NCj4gQXBvbG9naWVzIGZvciB0aGUgY29uZnVzaW9uLCBhbmQgZm9yIHRo ZSBkZWxheS4NCg0KIFtbRXZhbiBMbG95ZF1dIEFuIGFsdGVybmF0aXZlIG1pZ2h0IGJlIGZvciBH aXJpc2ggdG8gdGFrZSB0aGUgb3RoZXIgcm91dGUgTGVpZiBzdWdnZXN0ZWQsIGFuZCBjYWNoZSB0 aGUgY29uZGl0aW9uIGluIGEgdmFyaWFibGUuDQpUaGF0IG1pZ2h0IGJlIGEgc2xpZ2h0IG92ZXJo ZWFkLCBhbmQgdGhlIChwcmVzdW1hYmx5IEJPT0xFQU4pIHZhcmlhYmxlIG1heSBuZWVkIGNhcmVm dWwgbmFtaW5nLCBidXQuLi4NCg0KPiANCj4gDQo+IA0KPiA+PiA+ICAgICAgZ0JTLT5GcmVlUGFn ZXMgKCpWcmFtQmFzZUFkZHJlc3MsIEVGSV9TSVpFX1RPX1BBR0VTDQo+ICgqVnJhbVNpemUpKTsN Cj4gPj4gPiAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+ID4gICAgfQ0KPiA+PiA+IEBAIC0yMjEs NiArMjI1LDcgQEAgTGNkUGxhdGZvcm1TZXRNb2RlICgNCj4gPj4gPiAgICBFRklfU1RBVFVTICAg ICAgICAgICAgU3RhdHVzOw0KPiA+PiA+DQo+ID4+ID4gICAgaWYgKE1vZGVOdW1iZXIgPj0gTGNk UGxhdGZvcm1HZXRNYXhNb2RlICgpKSB7DQo+ID4+ID4gKyAgICBBU1NFUlQgKEZBTFNFKTsNCj4g Pj4NCj4gPj4gVGhlc2UgYXJlIGZpbmU6IHRoZSBjb2RlIGl0c2VsZiBleHBsYWlucyBhZGVxdWF0 ZWx5IHdoaWNoIGNvbmRpdGlvbg0KPiA+PiB0cmlnZ2VyZWQgdGhlIEFTU0VSVCB0byBmaXJlLg0K PiA+Pg0KPiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4gPiAg ICB9DQo+ID4+ID4NCj4gPj4gPiBAQCAtMjc5LDcgKzI4NCwxMCBAQCBMY2RQbGF0Zm9ybVF1ZXJ5 TW9kZSAoDQo+ID4+ID4gICAgT1VUIEVGSV9HUkFQSElDU19PVVRQVVRfTU9ERV9JTkZPUk1BVElP TiAqIENPTlNUICBJbmZvDQo+ID4+ID4gICAgKQ0KPiA+PiA+ICB7DQo+ID4+ID4gKyAgQVNTRVJU IChJbmZvICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAgICBpZiAoTW9kZU51bWJlciA+PSBM Y2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiArICAgIEFTU0VSVCAoRkFMU0UpOw0K PiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4gPiAgICB9DQo+ ID4+ID4NCj4gPj4gPiBAQCAtMzQzLDcgKzM1MSwxOCBAQCBMY2RQbGF0Zm9ybUdldFRpbWluZ3Mg KA0KPiA+PiA+ICAgIE9VVCBVSU5UMzIgKiBDT05TVCAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWRnJvbnRQb3JjaA0KPiA+PiA+ICAgICkNCj4gPj4gPiAgew0KPiA+PiA+ICsgIC8vIE9uZSBv ZiB0aGUgcG9pbnRlcnMgaXMgTlVMTA0KPiA+PiA+ICsgIEFTU0VSVCAoSFJlcyAhPSBOVUxMKTsN Cj4gPj4gPiArICBBU1NFUlQgKEhTeW5jICE9IE5VTEwpOw0KPiA+PiA+ICsgIEFTU0VSVCAoSEJh Y2tQb3JjaCAhPSBOVUxMKTsNCj4gPj4gPiArICBBU1NFUlQgKEhGcm9udFBvcmNoICE9IE5VTEwp Ow0KPiA+PiA+ICsgIEFTU0VSVCAoVlJlcyAhPSBOVUxMKTsNCj4gPj4gPiArICBBU1NFUlQgKFZT eW5jICE9IE5VTEwpOw0KPiA+PiA+ICsgIEFTU0VSVCAoVkJhY2tQb3JjaCAhPSBOVUxMKTsNCj4g Pj4gPiArICBBU1NFUlQgKFZGcm9udFBvcmNoICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAg ICBpZiAoTW9kZU51bWJlciA+PSBMY2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiAr ICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFN RVRFUjsNCj4gPj4gPiAgICB9DQo+ID4+ID4NCj4gPj4gPiBAQCAtMzc2LDYgKzM5NSw3IEBAIExj ZFBsYXRmb3JtR2V0QnBwICgNCj4gPj4gPiAgICApDQo+ID4+ID4gIHsNCj4gPj4gPiAgICBpZiAo TW9kZU51bWJlciA+PSBMY2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiArICAgIEFT U0VSVCAoRkFMU0UpOw0KPiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsN Cj4gPj4gPiAgICB9DQo+ID4+ID4NCj4gPj4gPiBkaWZmIC0tZ2l0DQo+ID4+ID4NCj4gPj4NCj4g YS9QbGF0Zm9ybS9BUk0vVkV4cHJlc3NQa2cvTGlicmFyeS9QTDExMUxjZEFybVZFeHByZXNzTGli L1BMMTExTGNkDQo+IEFyDQo+ID4+IG1WDQo+ID4+ID4gRXhwcmVzcy5jDQo+ID4+ID4NCj4gPj4N Cj4gYi9QbGF0Zm9ybS9BUk0vVkV4cHJlc3NQa2cvTGlicmFyeS9QTDExMUxjZEFybVZFeHByZXNz TGliL1BMMTExTGNkDQo+IEFyDQo+ID4+IG1WDQo+ID4+ID4gRXhwcmVzcy5jIGluZGV4DQo+ID4+ ID4NCj4gPj4NCj4gNzk5ZmIzZmM3ODFjZTA0YmI2NGNiMWZhMGI4N2YyNjJhNjcwZWQ3OC4uZmQ0 ZWVhOGY4ZTIzOTdiYzdkNGRkZg0KPiA0Y2ZlDQo+ID4+IDNkDQo+ID4+ID4gY2M5N2E1MTA5ZWRi IDEwMDY0NA0KPiA+PiA+IC0tLQ0KPiA+PiA+DQo+ID4+DQo+IGEvUGxhdGZvcm0vQVJNL1ZFeHBy ZXNzUGtnL0xpYnJhcnkvUEwxMTFMY2RBcm1WRXhwcmVzc0xpYi9QTDExMUxjZA0KPiBBcg0KPiA+ PiBtVg0KPiA+PiA+IEV4cHJlc3MuYw0KPiA+PiA+ICsrKw0KPiA+Pg0KPiBiL1BsYXRmb3JtL0FS TS9WRXhwcmVzc1BrZy9MaWJyYXJ5L1BMMTExTGNkQXJtVkV4cHJlc3NMaWIvUEwxMTFMY2QNCj4g Pj4gPiArKysgQXJtVkV4cHJlc3MuYw0KPiA+PiA+IEBAIC0yMDUsNiArMjA1LDkgQEAgTGNkUGxh dGZvcm1HZXRWcmFtICgNCj4gPj4gPg0KPiA+PiA+ICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0K PiA+PiA+DQo+ID4+ID4gKyAgQVNTRVJUIChWcmFtQmFzZUFkZHJlc3MgIT0gTlVMTCk7ICBBU1NF UlQgKFZyYW1TaXplICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAgICAvLyBJcyBpdCBvbiB0 aGUgbW90aGVyYm9hcmQgb3Igb24gdGhlIGRhdWdodGVyYm9hcmQ/DQo+ID4+ID4gICAgc3dpdGNo IChQTDExMV9DTENEX1NJVEUpIHsNCj4gPj4gPg0KPiA+PiA+IEBAIC0yMjUsNiArMjI4LDcgQEAg TGNkUGxhdGZvcm1HZXRWcmFtICgNCj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICBWcmFtQmFz ZUFkZHJlc3MNCj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+PiA+ICAgICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+PiA+ICsgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4g Pj4gPiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4gPiAgICAgIH0NCj4gPj4gPg0KPiA+PiA+ IEBAIC0yMzUsOCArMjM5LDggQEAgTGNkUGxhdGZvcm1HZXRWcmFtICgNCj4gPj4gPiAgICAgICAg ICAgICAgICAgICAgICAqVnJhbVNpemUsDQo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgRUZJ X01FTU9SWV9XQw0KPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4+ID4gLSAgICBB U1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+PiA+ICAgICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+PiA+ICsgICAgICBBU1NFUlQgKEZBTFNFKTsNCj4gPj4gPiAgICAgICAgZ0JT LT5GcmVlUGFnZXMgKCpWcmFtQmFzZUFkZHJlc3MsIEVGSV9TSVpFX1RPX1BBR0VTDQo+ID4+ICgq VnJhbVNpemUpKTsNCj4gPj4gPiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4gPiAgICAgIH0N Cj4gPj4gPiBAQCAtMjk0LDYgKzI5OCw3IEBAIExjZFBsYXRmb3JtU2V0TW9kZSAoDQo+ID4+ID4g ICAgVUlOVDMyICAgICAgICAgICAgICAgIFN5c0lkOw0KPiA+PiA+DQo+ID4+ID4gICAgaWYgKE1v ZGVOdW1iZXIgPj0gTGNkUGxhdGZvcm1HZXRNYXhNb2RlICgpKSB7DQo+ID4+ID4gKyAgICBBU1NF UlQgKEZBTFNFKTsNCj4gPj4gPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ ID4+ID4gICAgfQ0KPiA+PiA+DQo+ID4+ID4gQEAgLTM2OSw3ICszNzQsMTAgQEAgTGNkUGxhdGZv cm1RdWVyeU1vZGUgKA0KPiA+PiA+ICAgIE9VVCBFRklfR1JBUEhJQ1NfT1VUUFVUX01PREVfSU5G T1JNQVRJT04gKiBDT05TVCBJbmZvDQo+ID4+ID4gICAgKQ0KPiA+PiA+ICB7DQo+ID4+ID4gKyAg QVNTRVJUIChJbmZvICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAgICBpZiAoTW9kZU51bWJl ciA+PSBMY2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiArICAgIEFTU0VSVCAoRkFM U0UpOw0KPiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4gPiAg ICB9DQo+ID4+ID4NCj4gPj4gPiBAQCAtNDMzLDcgKzQ0MSwxOCBAQCBMY2RQbGF0Zm9ybUdldFRp bWluZ3MgKA0KPiA+PiA+ICAgIE9VVCBVSU5UMzIgKiBDT05TVCAgICAgICAgICAgICAgICAgICAg ICBWRnJvbnRQb3JjaA0KPiA+PiA+ICAgICkNCj4gPj4gPiAgew0KPiA+PiA+ICsgIC8vIE9uZSBv ZiB0aGUgcG9pbnRlcnMgaXMgTlVMTA0KPiA+PiA+ICsgIEFTU0VSVCAoSFJlcyAhPSBOVUxMKTsN Cj4gPj4gPiArICBBU1NFUlQgKEhTeW5jICE9IE5VTEwpOw0KPiA+PiA+ICsgIEFTU0VSVCAoSEJh Y2tQb3JjaCAhPSBOVUxMKTsNCj4gPj4gPiArICBBU1NFUlQgKEhGcm9udFBvcmNoICE9IE5VTEwp Ow0KPiA+PiA+ICsgIEFTU0VSVCAoVlJlcyAhPSBOVUxMKTsNCj4gPj4gPiArICBBU1NFUlQgKFZT eW5jICE9IE5VTEwpOw0KPiA+PiA+ICsgIEFTU0VSVCAoVkJhY2tQb3JjaCAhPSBOVUxMKTsNCj4g Pj4gPiArICBBU1NFUlQgKFZGcm9udFBvcmNoICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAg ICBpZiAoTW9kZU51bWJlciA+PSBMY2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiAr ICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFN RVRFUjsNCj4gPj4gPiAgICB9DQo+ID4+ID4NCj4gPj4gPiBAQCAtNDY1LDcgKzQ4NCwxMCBAQCBM Y2RQbGF0Zm9ybUdldEJwcCAoDQo+ID4+ID4gICAgT1VUIExDRF9CUFAgKiBDT05TVCAgICAgICAg ICAgICAgICAgICAgIEJwcA0KPiA+PiA+ICAgICkNCj4gPj4gPiAgew0KPiA+PiA+ICsgIEFTU0VS VCAoQnBwICE9IE5VTEwpOw0KPiA+PiA+ICsNCj4gPj4gPiAgICBpZiAoTW9kZU51bWJlciA+PSBM Y2RQbGF0Zm9ybUdldE1heE1vZGUgKCkpIHsNCj4gPj4gPiArICAgIEFTU0VSVCAoRkFMU0UpOw0K PiA+PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4gPiAgICB9DQo+ ID4+ID4NCj4gPj4gPiAtLQ0KPiA+PiA+IEd1aWQoIkNFMTY1NjY5LTNFRjMtNDkzRi1CODVELTYx OTBFRTVCOTc1OSIpDQo+ID4+ID4NCj4gPj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPiA+PiA+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4+ ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4gPiBodHRwczovL2xpc3RzLjAxLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFp bG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=