From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 298BCA0032; Tue, 13 Sep 2022 14:53:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD40140151; Tue, 13 Sep 2022 14:53:01 +0200 (CEST) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by mails.dpdk.org (Postfix) with ESMTP id D2E13400D6 for ; Tue, 13 Sep 2022 14:53:00 +0200 (CEST) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 7B50C201C37; Tue, 13 Sep 2022 14:53:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=g9XRugFDZpCQla919bqR YUpwRY2usCtcA1G2vPkOBgQ=; b=hnnwICKHKg4pA+3FEiMB92hk9l3tF+uODgWR N25STZksrNW1eas5f5zsaYv296ylFlZFVNI6CnWNEcAWNDHbT72AS5LWwI91njRk 4E3jLDis+6o8A8yBjONSsntSDDCrRHdbiYcpqwB5I8o2yhHBHPEYqCUr6JOO+NL3 dgyLuPBra3fD+Vu+BBrXgtMJrWFtDvPz9L9TY88PrN+7ZGkjnww8ZvcBJJ7S2GMT fc0KtwQJT0zACYOFaa2Tj6qpqEtaiKJlXcui3IWnP5C9n0O9xfHnB0qjXfSESAXj snC8bmhLtfYgIbtsN6JJ9WYkjebvkDuCVFFk6L39ILYrA/MH+g== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Bruce Richardson CC: "thomas@monjalon.net" , "david.marchand@redhat.com" , "ronan.randles@intel.com" , "Honnappa.Nagarahalli@arm.com" , "ohilyard@iol.unh.edu" , "lijuan.tu@intel.com" , "dev@dpdk.org" Subject: RE: [PATCH v4 3/9] dts: add basic logging facility Thread-Topic: [PATCH v4 3/9] dts: add basic logging facility Thread-Index: AQHYoznJ2DQUADHyLUWMh9RU76qz2a3VUrOAgAhCqxA= Date: Tue, 13 Sep 2022 12:52:58 +0000 Message-ID: <887b7c31537445588330d91d76ac5781@pantheon.tech> References: <20220728100044.1318484-1-juraj.linkes@pantheon.tech> <20220729105550.1382664-1-juraj.linkes@pantheon.tech> <20220729105550.1382664-4-juraj.linkes@pantheon.tech> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1i ZXIgOCwgMjAyMiAxMDozMSBBTQ0KPiBUbzogSnVyYWogTGlua2XFoSA8anVyYWoubGlua2VzQHBh bnRoZW9uLnRlY2g+DQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBkYXZpZC5tYXJjaGFuZEBy ZWRoYXQuY29tOw0KPiByb25hbi5yYW5kbGVzQGludGVsLmNvbTsgSG9ubmFwcGEuTmFnYXJhaGFs bGlAYXJtLmNvbTsNCj4gb2hpbHlhcmRAaW9sLnVuaC5lZHU7IGxpanVhbi50dUBpbnRlbC5jb207 IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0IDMvOV0gZHRzOiBhZGQgYmFz aWMgbG9nZ2luZyBmYWNpbGl0eQ0KPiANCj4gT24gRnJpLCBKdWwgMjksIDIwMjIgYXQgMTA6NTU6 NDRBTSArMDAwMCwgSnVyYWogTGlua2XFoSB3cm90ZToNCj4gPiBUaGUgbG9nZ2luZyBtb2R1bGUg cHJvdmlkZXMgbG9nZ2VycyBkaXN0aW5ndWlzaGVkIGJ5IHR3byBhdHRyaWJ1dGVzLCBhDQo+ID4g Y3VzdG9tIGZvcm1hdCBhbmQgYSB2ZXJib3NpdHkgc3dpdGNoLiBUaGUgbG9nZ2VycyBsb2cgdG8g Ym90aCBjb25zb2xlDQo+ID4gYW5kIG1vcmUgdmVyYm9zZWx5IHRvIGZpbGVzLg0KPiA+DQo+ID4g U2lnbmVkLW9mZi1ieTogT3dlbiBIaWx5YXJkIDxvaGlseWFyZEBpb2wudW5oLmVkdT4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVjaD4N Cj4gDQo+IEZldyBzbWFsbCBjb21tZW50cyBpbmxpbmUgYmVsb3cuDQo+IA0KPiBUaGFua3MsDQo+ IC9CcnVjZQ0KPiANCj4gPiAtLS0NCj4gPiAgZHRzL2ZyYW1ld29yay9fX2luaXRfXy5weSB8ICAg MyArDQo+ID4gIGR0cy9mcmFtZXdvcmsvbG9nZ2VyLnB5ICAgfCAxMjQNCj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5z ZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHRzL2ZyYW1ld29yay9fX2luaXRf Xy5weSAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHRzL2ZyYW1ld29yay9sb2dnZXIucHkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9kdHMvZnJhbWV3b3JrL19faW5pdF9fLnB5IGIvZHRzL2ZyYW1l d29yay9fX2luaXRfXy5weSBuZXcNCj4gPiBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4IDAwMDAwMDAw MDAuLjNjMzBiY2NmNDMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHRzL2ZyYW1ld29y ay9fX2luaXRfXy5weQ0KPiA+IEBAIC0wLDAgKzEsMyBAQA0KPiA+ICsjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UgIyBDb3B5cmlnaHQoYykgMjAyMg0KPiA+ICtQQU5USEVP Ti50ZWNoIHMuci5vLg0KPiA+ICsjDQo+ID4gZGlmZiAtLWdpdCBhL2R0cy9mcmFtZXdvcmsvbG9n Z2VyLnB5IGIvZHRzL2ZyYW1ld29yay9sb2dnZXIucHkgbmV3DQo+ID4gZmlsZSBtb2RlIDEwMDY0 NCBpbmRleCAwMDAwMDAwMDAwLi45MjBjZTBmYjE1DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsr KyBiL2R0cy9mcmFtZXdvcmsvbG9nZ2VyLnB5DQo+ID4gQEAgLTAsMCArMSwxMjQgQEANCj4gPiAr IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICMgQ29weXJpZ2h0KGMpIDIw MTAtMjAxNA0KPiA+ICtJbnRlbCBDb3Jwb3JhdGlvbiAjIENvcHlyaWdodChjKSAyMDIyIFBBTlRI RU9OLnRlY2ggcy5yLm8uDQo+ID4gKyMgQ29weXJpZ2h0KGMpIDIwMjIgVW5pdmVyc2l0eSBvZiBO ZXcgSGFtcHNoaXJlICMNCj4gPiArDQo+ID4gK2ltcG9ydCBsb2dnaW5nDQo+ID4gK2ltcG9ydCBv cy5wYXRoDQo+ID4gK2Zyb20gdHlwaW5nIGltcG9ydCBUeXBlZERpY3QNCj4gPiArDQo+ID4gKyIi Ig0KPiA+ICtEVFMgbG9nZ2VyIG1vZHVsZSB3aXRoIHNldmVyYWwgbG9nIGxldmVsLiBEVFMgZnJh bWV3b3JrIGFuZCBUZXN0U3VpdGUNCj4gPiArbG9nIHdpbGwgc2F2ZWQgaW50byBkaWZmZXJlbnQg bG9nIGZpbGVzLg0KPiA+ICsiIiINCj4gPiArdmVyYm9zZSA9IEZhbHNlDQo+ID4gK2RhdGVfZm10 ID0gIiVkLyVtLyVZICVIOiVNOiVTIg0KPiANCj4gUGxlYXNlIHVzZSBZZWFyLW1vbnRoLWRheSBv cmRlcmluZyBmb3IgZGF0ZXMsIHNpbmNlIGl0J3MgdW5hbWJpZ3VvdXMgLSBhcyB3ZWxsDQo+IGFz IGJlaW5nIGFuIElTTyBzdGFuZGFyZCBkYXRlIGZvcm1hdC4gKElTTyA4NjAxKQ0KPiANCg0KQWNr Lg0KDQo+ID4gK3N0cmVhbV9mbXQgPSAiJShhc2N0aW1lKXMgLSAlKG5hbWUpcyAtICUobGV2ZWxu YW1lKXMgLSAlKG1lc3NhZ2UpcyINCj4gPiArDQo+ID4gKw0KPiA+ICtjbGFzcyBMb2dnZXJEaWN0 VHlwZShUeXBlZERpY3QpOg0KPiA+ICsgICAgbG9nZ2VyOiAiRFRTTE9HIg0KPiA+ICsgICAgbmFt ZTogc3RyDQo+ID4gKyAgICBub2RlOiBzdHINCj4gPiArDQo+ID4gKw0KPiA+ICsjIExpc3QgZm9y IHNhdmluZyBhbGwgdXNpbmcgbG9nZ2Vycw0KPiA+ICtnbG9iYWwgTG9nZ2Vycw0KPiA+ICtMb2dn ZXJzOiBsaXN0W0xvZ2dlckRpY3RUeXBlXSA9IFtdDQo+ID4gKw0KPiA+ICsNCj4gPiArZGVmIHNl dF92ZXJib3NlKCkgLT4gTm9uZToNCj4gPiArICAgIGdsb2JhbCB2ZXJib3NlDQo+ID4gKyAgICB2 ZXJib3NlID0gVHJ1ZQ0KPiA+ICsNCj4gDQo+IElzIHRoZXJlIGEgbmVlZCBmb3IgYSBjbGVhcl92 ZXJib3NlKCkgb3IgInNldF9ub3RfdmVyYm9zZSgpIiBBUEk/DQo+IA0KDQpObywgdGhpcyBpcyB1 c2VkIHdpdGggYSBjb21tYW4tbGluZSBvcHRpb24gb3IgZW52IHZhcmlhYmxlIHdoaWNoIGp1c3Qg c2V0cyBpdCBvbmNlIGFuZCB0aGF0J3MgaXQuDQoNCj4gPiArDQo+ID4gK2NsYXNzIERUU0xPRyhs b2dnaW5nLkxvZ2dlckFkYXB0ZXIpOg0KPiA+ICsgICAgIiIiDQo+ID4gKyAgICBEVFMgbG9nIGNs YXNzIGZvciBmcmFtZXdvcmsgYW5kIHRlc3RzdWl0ZS4NCj4gPiArICAgICIiIg0KPiA+ICsNCj4g PiArICAgIG5vZGU6IHN0cg0KPiA+ICsgICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcg0KPiA+ICsg ICAgc2g6IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcg0KPiA+ICsgICAgZmg6IGxvZ2dpbmcuRmlsZUhh bmRsZXINCj4gPiArICAgIHZlcmJvc2VfaGFuZGxlcjogbG9nZ2luZy5GaWxlSGFuZGxlcg0KPiA+ ICsNCj4gPiArICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyLCBu b2RlOiBzdHIgPSAic3VpdGUiKToNCj4gPiArICAgICAgICBnbG9iYWwgbG9nX2Rpcg0KPiA+ICsN Cj4gPiArICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcg0KPiA+ICsgICAgICAgIHNlbGYubG9n Z2VyLnNldExldmVsKDEpICAjIDEgbWVhbnMgbG9nIGV2ZXJ5dGhpbmcNCj4gPiArDQo+ID4gKyAg ICAgICAgc2VsZi5ub2RlID0gbm9kZQ0KPiA+ICsNCj4gPiArICAgICAgICAjIGFkZCBoYW5kbGVy IHRvIGVtaXQgdG8gc3Rkb3V0DQo+ID4gKyAgICAgICAgc2ggPSBsb2dnaW5nLlN0cmVhbUhhbmRs ZXIoKQ0KPiA+ICsgICAgICAgIHNoLnNldEZvcm1hdHRlcihsb2dnaW5nLkZvcm1hdHRlcihzdHJl YW1fZm10LCBkYXRlX2ZtdCkpDQo+ID4gKw0KPiA+ICsgICAgICAgIHNoLnNldExldmVsKGxvZ2dp bmcuREVCVUcpICAjIGZpbGUgaGFuZGxlciBkZWZhdWx0IGxldmVsDQo+ID4gKyAgICAgICAgZ2xv YmFsIHZlcmJvc2UNCj4gPiArICAgICAgICBpZiB2ZXJib3NlIGlzIFRydWU6DQo+ID4gKyAgICAg ICAgICAgIHNoLnNldExldmVsKGxvZ2dpbmcuREVCVUcpDQo+ID4gKyAgICAgICAgZWxzZToNCj4g PiArICAgICAgICAgICAgc2guc2V0TGV2ZWwobG9nZ2luZy5JTkZPKSAgIyBjb25zb2xlIGhhbmRs ZXIgZGVmYXVsdGxldmVsDQo+IA0KPiBUaGUgZ2xvYmFsIHNob3VsZCBiZSBkZWZpbmVkIGF0IHRo ZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLg0KPiBMb29rcyBsaWtlIHNvbWUgb2YgdGhlIHNldGxldmVs IGNhbGxzIGFyZSB1bm5lY2Vzc2FyeTsgdHdvIHNob3VsZCBiZSBlbm91Z2gNCj4gcmF0aGVyIHRo YW4gdGhyZWUuIEZvciBleGFtcGxlOg0KPiANCj4gCXNoLnNldExldmVsKGxvZ2dpbmcuSU5GTykN Cj4gCWlmIHZlcmJvc2U6DQo+IAkJc2guc2V0TGV2ZWwobG9nZ2luZy5ERUdVRykNCj4gDQoNCkFj ay4NCg0KPiA+ICsNCj4gPiArICAgICAgICBzZWxmLmxvZ2dlci5hZGRIYW5kbGVyKHNoKQ0KPiA+ ICsgICAgICAgIHNlbGYuc2ggPSBzaA0KPiA+ICsNCj4gPiArICAgICAgICBpZiBub3Qgb3MucGF0 aC5leGlzdHMoIm91dHB1dCIpOg0KPiA+ICsgICAgICAgICAgICBvcy5ta2Rpcigib3V0cHV0IikN Cj4gPiArDQo+ID4gKyAgICAgICAgZmggPSBsb2dnaW5nLkZpbGVIYW5kbGVyKGYib3V0cHV0L3tu b2RlfS5sb2ciKQ0KPiA+ICsgICAgICAgIGZoLnNldEZvcm1hdHRlcigNCj4gPiArICAgICAgICAg ICAgbG9nZ2luZy5Gb3JtYXR0ZXIoDQo+ID4gKyAgICAgICAgICAgICAgICBmbXQ9IiUoYXNjdGlt ZSlzIC0gJShuYW1lKXMgLSAlKGxldmVsbmFtZSlzIC0gJShtZXNzYWdlKXMiLA0KPiA+ICsgICAg ICAgICAgICAgICAgZGF0ZWZtdD1kYXRlX2ZtdCwNCj4gPiArICAgICAgICAgICAgKQ0KPiA+ICsg ICAgICAgICkNCj4gPiArDQo+ID4gKyAgICAgICAgZmguc2V0TGV2ZWwoMSkgICMgV2Ugd2FudCBh bGwgdGhlIGxvZ3Mgd2UgY2FuIGdldCBpbiB0aGUgZmlsZQ0KPiA+ICsgICAgICAgIHNlbGYubG9n Z2VyLmFkZEhhbmRsZXIoZmgpDQo+ID4gKyAgICAgICAgc2VsZi5maCA9IGZoDQo+ID4gKw0KPiA+ ICsgICAgICAgICMgVGhpcyBvdXRwdXRzIEVWRVJZVEhJTkcsIGludGVuZGVkIGZvciBwb3N0LW1v cnRlbSBkZWJ1Z2dpbmcNCj4gPiArICAgICAgICAjIEFsc28gb3B0aW1pemVkIGZvciBwcm9jZXNz aW5nIHZpYSBBV0sgKGF3ayAtRiAnfCcgLi4uKQ0KPiA+ICsgICAgICAgIHZlcmJvc2VfaGFuZGxl ciA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoZiJvdXRwdXQve25vZGV9LnZlcmJvc2UubG9nIikNCj4g PiArICAgICAgICB2ZXJib3NlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKA0KPiA+ICsgICAgICAgICAg ICBsb2dnaW5nLkZvcm1hdHRlcigNCj4gPiArDQo+IGZtdD0iJShhc2N0aW1lKXN8JShuYW1lKXN8 JShsZXZlbG5hbWUpc3wlKHBhdGhuYW1lKXN8JShsaW5lbm8pZHwlKGZ1bmNODQo+IGFtZSlzfCIN Cj4gPiArICAgICAgICAgICAgICAgICIlKHByb2Nlc3MpZHwlKHRocmVhZClkfCUodGhyZWFkTmFt ZSlzfCUobWVzc2FnZSlzIiwNCj4gPiArICAgICAgICAgICAgICAgIGRhdGVmbXQ9ZGF0ZV9mbXQs DQo+ID4gKyAgICAgICAgICAgICkNCj4gPiArICAgICAgICApDQo+ID4gKw0KPiA+ICsgICAgICAg IHZlcmJvc2VfaGFuZGxlci5zZXRMZXZlbCgxKSAgIyBXZSB3YW50IGFsbCB0aGUgbG9ncyB3ZSBj YW4gZ2V0IGluIHRoZSBmaWxlDQo+ID4gKyAgICAgICAgc2VsZi5sb2dnZXIuYWRkSGFuZGxlcih2 ZXJib3NlX2hhbmRsZXIpDQo+ID4gKyAgICAgICAgc2VsZi52ZXJib3NlX2hhbmRsZXIgPSB2ZXJi b3NlX2hhbmRsZXINCj4gPiArDQo+ID4gKyAgICAgICAgc3VwZXIoRFRTTE9HLCBzZWxmKS5fX2lu aXRfXyhzZWxmLmxvZ2dlciwNCj4gPiArIGRpY3Qobm9kZT1zZWxmLm5vZGUpKQ0KPiA+ICsNCj4g PiArICAgIGRlZiBsb2dnZXJfZXhpdChzZWxmKSAtPiBOb25lOg0KPiA+ICsgICAgICAgICIiIg0K PiA+ICsgICAgICAgIFJlbW92ZSBzdHJlYW0gaGFuZGxlciBhbmQgbG9nZmlsZSBoYW5kbGVyLg0K PiA+ICsgICAgICAgICIiIg0KPiA+ICsgICAgICAgIGZvciBoYW5kbGVyIGluIChzZWxmLnNoLCBz ZWxmLmZoLCBzZWxmLnZlcmJvc2VfaGFuZGxlcik6DQo+ID4gKyAgICAgICAgICAgIGhhbmRsZXIu Zmx1c2goKQ0KPiA+ICsgICAgICAgICAgICBzZWxmLmxvZ2dlci5yZW1vdmVIYW5kbGVyKGhhbmRs ZXIpDQo+ID4gKw0KPiA+ICsNCj4gPiArZGVmIGdldExvZ2dlcihuYW1lOiBzdHIsIG5vZGU6IHN0 ciA9ICJzdWl0ZSIpIC0+IERUU0xPRzoNCj4gPiArICAgICIiIg0KPiA+ICsgICAgR2V0IGxvZ2dl ciBoYW5kbGVyIGFuZCBpZiB0aGVyZSdzIG5vIGhhbmRsZXIgZm9yIHNwZWNpZmllZCBOb2RlIHdp bGwgY3JlYXRlDQo+IG9uZS4NCj4gPiArICAgICIiIg0KPiA+ICsgICAgZ2xvYmFsIExvZ2dlcnMN Cj4gPiArICAgICMgcmV0dXJuIHNhdmVkIGxvZ2dlcg0KPiA+ICsgICAgbG9nZ2VyOiBMb2dnZXJE aWN0VHlwZQ0KPiA+ICsgICAgZm9yIGxvZ2dlciBpbiBMb2dnZXJzOg0KPiA+ICsgICAgICAgIGlm IGxvZ2dlclsibmFtZSJdID09IG5hbWUgYW5kIGxvZ2dlclsibm9kZSJdID09IG5vZGU6DQo+ID4g KyAgICAgICAgICAgIHJldHVybiBsb2dnZXJbImxvZ2dlciJdDQo+ID4gKw0KPiA+ICsgICAgIyBy ZXR1cm4gbmV3IGxvZ2dlcg0KPiA+ICsgICAgZHRzX2xvZ2dlcjogRFRTTE9HID0gRFRTTE9HKGxv Z2dpbmcuZ2V0TG9nZ2VyKG5hbWUpLCBub2RlKQ0KPiA+ICsgICAgTG9nZ2Vycy5hcHBlbmQoeyJs b2dnZXIiOiBkdHNfbG9nZ2VyLCAibmFtZSI6IG5hbWUsICJub2RlIjogbm9kZX0pDQo+ID4gKyAg ICByZXR1cm4gZHRzX2xvZ2dlcg0KPiANCj4gTG9va2luZyB0aHJvdWdoIHRoaXMgcGF0Y2ggYWxv bmUsIEkgc2VlIHRoZSAidmVyYm9zZSIgZ2xvYmFsIG9ubHkgc2VlbXMgdG8gYmUNCj4gdXNlZCB0 byBzZXQgdGhlIGxvZy1sZXZlbCBpbiB0aGUgbG9nZ2VyIGluaXQgZnVuY3Rpb24uIElmIHRoaXMg aXMgdGhlIG9ubHkgdXNlIG9mIGl0DQo+IGFjcm9zcyBhbGwgdGhlIHBhdGNoZXMgaW4gdGhlIHNl dCwgaXQgbWF5IGJlIG1vcmUgcmVhZGFibGUgdG8gY2hhbmdlIHRoZSB2YXJpYWJsZQ0KPiBmcm9t IGEgInZlcmJvc2UiIGZsYWcsIHRvIGluc3RlYWQgYmVpbmcgYSBsb2ctbGV2ZWwgb25lLiBUaGF0 IHdheSB5b3VyIGdsb2JhbA0KPiBkZWZpbmUgaXM6DQo+IA0KPiAJbG9nX2xldmVsID0gbG9nZ2lu Zy5JTkZPDQo+IA0KPiBhbmQgc2V0X3ZlcmJvc2UoKSBiZWNvbWVzOg0KPiANCj4gCWdsb2JhbCBs b2dfbGV2ZWwNCj4gCWxvZ19sZXZlbCA9IGxvZ2dpbmcuREVCVUcNCj4gDQo+IHRoZXJlYnkgcmVt b3ZpbmcgdGhlIGJyYW5jaCBmcm9tIHlvdSBsb2dnaW5nIGluaXQgZm4uDQo+IA0KPiBOT1RFOiBJ IGhhdmUgbm90IHlldCBoYWQgdGhlIGNoYW5jZSB0byByZXZpZXcgdGhlIHJlc3Qgb2YgdGhlIHNl cmllcywgc28gaWYNCj4gdmVyYm9zZSBpcyB1c2VkIGVsc2V3aGVyZSwgcGxlYXNlIGlnbm9yZSB0 aGlzIGNvbW1lbnQuDQo+IA0KDQpJdCBpc24ndC4gSXQncyB1c2VkIHNvbGVseSB0byBlbmFibGUg bW9yZSBsb2dnaW5nLCBzbyBJJ2xsIG1vdmUgdGhlIGNvZGUgYXJvdW5kIHRvIGFjaGlldmUgd2hh dCB5b3Ugb3V0bGluZWQuDQoNCj4gPiAtLQ0KPiA+IDIuMzAuMg0KPiA+DQoNCg==