From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B58DCA04C7; Tue, 15 Sep 2020 22:44:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A1A651BE8E; Tue, 15 Sep 2020 22:44:30 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id E2250E07 for ; Tue, 15 Sep 2020 22:44:28 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Tue, 15 Sep 2020 22:44:25 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C612EE@smartserver.smartshare.dk> In-Reply-To: <20200915190728.18143-3-i.dyukov@samsung.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH v11 02/24] ethdev: format a link status text Thread-Index: AdaLk4iE0SfCParOTci2rOcfbTNLXgADUr4g References: <20200427095737.11082-1-i.dyukov@samsung.com><20200915190728.18143-1-i.dyukov@samsung.com> <20200915190728.18143-3-i.dyukov@samsung.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [dpdk-dev] [PATCH v11 02/24] ethdev: format a link status text X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiBGcm9tOiBJdmFuIER5dWtvdiBbbWFpbHRvOmkuZHl1a292QHNhbXN1bmcuY29tXQ0KPiBTZW50 OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTUsIDIwMjAgOTowNyBQTQ0KPiANCj4gVGhlcmUgaXMgbmV3 IGxpbmtfc3BlZWQgdmFsdWUgaW50cm9kdWNlZC4gSXQncyBJTlRfTUFYIHZhbHVlIHdoaWNoDQo+ IG1lYW5zIHRoYXQgc3BlZWQgaXMgdW5rbm93bi4gVG8gc2ltcGxpZnkgcHJvY2Vzc2luZyBvZiB0 aGUgdmFsdWUNCj4gaW4gYXBwbGljYXRpb24sIG5ldyBmdW5jdGlvbiBpcyBhZGRlZCB3aGljaCBj b252ZXJ0IGxpbmtfc3BlZWQgdG8NCj4gc3RyaW5nLiBBbHNvIGRwZGsgZXhhbXBsZXMgaGF2ZSBt YW55IGR1cGxpY2F0ZWQgY29kZSB3aGljaCBmb3JtYXQNCj4gZW50aXJlIGxpbmsgc3RhdHVzIHN0 cnVjdHVyZSB0byB0ZXh0Lg0KPiANCj4gVGhpcyBjb21taXQgYWRkcyB0d28gZnVuY3Rpb25zOg0K PiAgICogcnRlX2V0aF9saW5rX3NwZWVkX3RvX3N0ciAtIGZvcm1hdCBsaW5rX3NwZWVkIHRvIHN0 cmluZw0KPiAgICogcnRlX2V0aF9saW5rX3RvX3N0ciAtIGNvbnZlcnQgbGluayBzdGF0dXMgc3Ry dWN0dXJlIHRvIHN0cmluZw0KPiANCj4gU2lnbmVkLW9mZi1ieTogSXZhbiBEeXVrb3YgPGkuZHl1 a292QHNhbXN1bmcuY29tPg0KPiAtLS0NCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKw0KPiAgYXBwL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMyArDQo+ICBhcHAvdGVzdC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAg ICAgIHwgICAyICsNCj4gIGFwcC90ZXN0L3Rlc3RfZXRoZGV2X2xpbmsuYyAgICAgICAgICAgICAg fCAxNjkgKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9l dGhkZXYuYyAgICAgICAgICAgfCAgMzcgKysrKysNCj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9l dGhkZXYuaCAgICAgICAgICAgfCAgMzIgKysrKysNCj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9l dGhkZXZfdmVyc2lvbi5tYXAgfCAgIDQgKw0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0 aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFwcC90ZXN0L3Rlc3RfZXRoZGV2X2xpbmsu Yw0KPiANCj4gZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMNCj4gaW5kZXgg NWU3MDZjZDdlLi5mNGZiMzFlYTIgMTAwNjQ0DQo+IC0tLSBhL01BSU5UQUlORVJTDQo+ICsrKyBi L01BSU5UQUlORVJTDQo+IEBAIC0zOTMsNiArMzkzLDcgQEAgVDogZ2l0Oi8vZHBkay5vcmcvbmV4 dC9kcGRrLW5leHQtbmV0DQo+ICBGOiBsaWIvbGlicnRlX2V0aGRldi8NCj4gIEY6IGRldnRvb2xz L3Rlc3QtbnVsbC5zaA0KPiAgRjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3N3aXRjaF9yZXByZXNl bnRhdGlvbi5yc3QNCj4gK0Y6IGFwcC90ZXN0L3Rlc3RfZXRoZGV2Kg0KPiANCj4gIEZsb3cgQVBJ DQo+ICBNOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5jb20+DQo+IGRpZmYgLS1naXQgYS9hcHAv dGVzdC9NYWtlZmlsZSBiL2FwcC90ZXN0L01ha2VmaWxlDQo+IGluZGV4IGU1NDQwNzc0Yi4uOWY0 M2I4YzNjIDEwMDY0NA0KPiAtLS0gYS9hcHAvdGVzdC9NYWtlZmlsZQ0KPiArKysgYi9hcHAvdGVz dC9NYWtlZmlsZQ0KPiBAQCAtMjUxLDYgKzI1MSw5IEBAIFNSQ1MtJChDT05GSUdfUlRFX0xJQlJU RV9TRUNVUklUWSkgKz0NCj4gdGVzdF9zZWN1cml0eS5jDQo+IA0KPiAgU1JDUy0kKENPTkZJR19S VEVfTElCUlRFX0lQU0VDKSArPSB0ZXN0X2lwc2VjLmMgdGVzdF9pcHNlY19wZXJmLmMNCj4gIFNS Q1MtJChDT05GSUdfUlRFX0xJQlJURV9JUFNFQykgKz0gdGVzdF9pcHNlY19zYWQuYw0KPiArDQo+ ICtTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfRVRIRVIpICs9IHRlc3RfZXRoZGV2X2xpbmsuYw0K PiArDQo+ICBpZmVxICgkKENPTkZJR19SVEVfTElCUlRFX0lQU0VDKSx5KQ0KPiAgTERMSUJTICs9 IC1scnRlX2lwc2VjDQo+ICBlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvbWVzb24uYnVp bGQgYi9hcHAvdGVzdC9tZXNvbi5idWlsZA0KPiBpbmRleCA1NjU5MWRiNGUuLjFlNmFjZjcwMSAx MDA2NDQNCj4gLS0tIGEvYXBwL3Rlc3QvbWVzb24uYnVpbGQNCj4gKysrIGIvYXBwL3Rlc3QvbWVz b24uYnVpbGQNCj4gQEAgLTM5LDYgKzM5LDcgQEAgdGVzdF9zb3VyY2VzID0gZmlsZXMoJ2NvbW1h bmRzLmMnLA0KPiAgCSd0ZXN0X2VmZC5jJywNCj4gIAkndGVzdF9lZmRfcGVyZi5jJywNCj4gIAkn dGVzdF9lcnJuby5jJywNCj4gKwkndGVzdF9ldGhkZXZfbGluay5jJywNCj4gIAkndGVzdF9ldmVu dF9jcnlwdG9fYWRhcHRlci5jJywNCj4gIAkndGVzdF9ldmVudF9ldGhfcnhfYWRhcHRlci5jJywN Cj4gIAkndGVzdF9ldmVudF9yaW5nLmMnLA0KPiBAQCAtMTk5LDYgKzIwMCw3IEBAIGZhc3RfdGVz dHMgPSBbDQo+ICAgICAgICAgIFsnZWFsX2ZsYWdzX21pc2NfYXV0b3Rlc3QnLCBmYWxzZV0sDQo+ ICAgICAgICAgIFsnZWFsX2ZzX2F1dG90ZXN0JywgdHJ1ZV0sDQo+ICAgICAgICAgIFsnZXJybm9f YXV0b3Rlc3QnLCB0cnVlXSwNCj4gKyAgICAgICAgWydldGhkZXZfbGlua19zdGF0dXMnLCB0cnVl XSwNCj4gICAgICAgICAgWydldmVudF9yaW5nX2F1dG90ZXN0JywgdHJ1ZV0sDQo+ICAgICAgICAg IFsnZmliX2F1dG90ZXN0JywgdHJ1ZV0sDQo+ICAgICAgICAgIFsnZmliNl9hdXRvdGVzdCcsIHRy dWVdLA0KPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9ldGhkZXZfbGluay5jIGIvYXBwL3Rl c3QvdGVzdF9ldGhkZXZfbGluay5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMC4uZWUxMTk4N2JhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvYXBwL3Rlc3QvdGVz dF9ldGhkZXZfbGluay5jDQo+IEBAIC0wLDAgKzEsMTY5IEBADQo+ICsvKiBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjAgU2Ftc3Vu ZyBFbGVjdHJvbmljcyBDby4sIEx0ZCBBbGwgUmlnaHRzIFJlc2VydmVkDQo+ICsgKi8NCj4gKw0K PiArI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gKyNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+DQo+ICsN Cj4gKyNpbmNsdWRlIDxydGVfdGVzdC5oPg0KPiArI2luY2x1ZGUgInRlc3QuaCINCj4gKw0KPiAr DQo+ICtzdGF0aWMgaW50MzJfdA0KPiArdGVzdF9saW5rX3N0YXR1c191cF9kZWZhdWx0KHZvaWQp DQo+ICt7DQo+ICsJaW50IHJldCA9IDA7DQo+ICsJc3RydWN0IHJ0ZV9ldGhfbGluayBsaW5rX3N0 YXR1cyA9IHsNCj4gKwkJLmxpbmtfc3BlZWQgPSBFVEhfU1BFRURfTlVNXzJfNUcsDQo+ICsJCS5s aW5rX3N0YXR1cyA9IEVUSF9MSU5LX1VQLA0KPiArCQkubGlua19hdXRvbmVnID0gRVRIX0xJTktf QVVUT05FRywNCj4gKwkJLmxpbmtfZHVwbGV4ID0gRVRIX0xJTktfRlVMTF9EVVBMRVgNCj4gKwl9 Ow0KPiArCWNoYXIgdGV4dFtSVEVfRVRIX0xJTktfTUFYX1NUUl9MRU5dOw0KPiArDQo+ICsJcmV0 ID0gcnRlX2V0aF9saW5rX3RvX3N0cih0ZXh0LCBzaXplb2YodGV4dCksICZsaW5rX3N0YXR1cyk7 DQo+ICsJUlRFX1RFU1RfQVNTRVJUKHJldCA+IDAsICJGYWlsZWQgdG8gZm9ybWF0IGRlZmF1bHQg c3RyaW5nXG4iKTsNCj4gKwlwcmludGYoIkRlZmF1bHQgbGluayB1cCAjMTogJXNcbiIsIHRleHQp Ow0KPiArCVRFU1RfQVNTRVJUX0JVRkZFUlNfQVJFX0VRVUFMKCJMaW5rIHVwIGF0IDIuNSBHYnBz IEZEWCBBdXRvbmVnIiwNCj4gKwkJdGV4dCwgc3RybGVuKHRleHQpLCAiSW52YWxpZCBkZWZhdWx0 IGxpbmsgc3RhdHVzIHN0cmluZyIpOw0KPiArDQo+ICsJbGlua19zdGF0dXMubGlua19kdXBsZXgg PSBFVEhfTElOS19IQUxGX0RVUExFWDsNCj4gKwlsaW5rX3N0YXR1cy5saW5rX2F1dG9uZWcgPSBF VEhfTElOS19GSVhFRDsNCj4gKwlsaW5rX3N0YXR1cy5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05V TV8xME0sDQo+ICsJcmV0ID0gcnRlX2V0aF9saW5rX3RvX3N0cih0ZXh0LCBzaXplb2YodGV4dCks ICZsaW5rX3N0YXR1cyk7DQo+ICsJcHJpbnRmKCJEZWZhdWx0IGxpbmsgdXAgIzI6ICVzXG4iLCB0 ZXh0KTsNCj4gKwlSVEVfVEVTVF9BU1NFUlQocmV0ID4gMCwgIkZhaWxlZCB0byBmb3JtYXQgZGVm YXVsdCBzdHJpbmdcbiIpOw0KPiArCVRFU1RfQVNTRVJUX0JVRkZFUlNfQVJFX0VRVUFMKCJMaW5r IHVwIGF0IDEwIE1icHMgSERYIEZpeGVkIiwNCj4gKwkJdGV4dCwgc3RybGVuKHRleHQpLCAiSW52 YWxpZCBkZWZhdWx0IGxpbmsgc3RhdHVzICINCj4gKwkJInN0cmluZyB3aXRoIEhEWCIpOw0KPiAr DQo+ICsJbGlua19zdGF0dXMubGlua19zcGVlZCA9IEVUSF9TUEVFRF9OVU1fVU5LTk9XTjsNCj4g KwlyZXQgPSBydGVfZXRoX2xpbmtfdG9fc3RyKHRleHQsIHNpemVvZih0ZXh0KSwgJmxpbmtfc3Rh dHVzKTsNCj4gKwlwcmludGYoIkRlZmF1bHQgbGluayB1cCAjMzogJXNcbiIsIHRleHQpOw0KPiAr CVJURV9URVNUX0FTU0VSVChyZXQgPiAwLCAiRmFpbGVkIHRvIGZvcm1hdCBkZWZhdWx0IHN0cmlu Z1xuIik7DQo+ICsJVEVTVF9BU1NFUlRfQlVGRkVSU19BUkVfRVFVQUwoIkxpbmsgdXAgYXQgVW5r bm93biBIRFggRml4ZWQiLA0KPiArCQl0ZXh0LCBzdHJsZW4odGV4dCksICJJbnZhbGlkIGRlZmF1 bHQgbGluayBzdGF0dXMgIg0KPiArCQkic3RyaW5nIHdpdGggSERYIik7DQo+ICsNCj4gKwlsaW5r X3N0YXR1cy5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05VTV9OT05FOw0KPiArCXJldCA9IHJ0ZV9l dGhfbGlua190b19zdHIodGV4dCwgc2l6ZW9mKHRleHQpLCAmbGlua19zdGF0dXMpOw0KPiArCXBy aW50ZigiRGVmYXVsdCBsaW5rIHVwICMzOiAlc1xuIiwgdGV4dCk7DQo+ICsJUlRFX1RFU1RfQVNT RVJUKHJldCA+IDAsICJGYWlsZWQgdG8gZm9ybWF0IGRlZmF1bHQgc3RyaW5nXG4iKTsNCj4gKwlU RVNUX0FTU0VSVF9CVUZGRVJTX0FSRV9FUVVBTCgiTGluayB1cCBhdCBOb25lIEhEWCBGaXhlZCIs DQo+ICsJCXRleHQsIHN0cmxlbih0ZXh0KSwgIkludmFsaWQgZGVmYXVsdCBsaW5rIHN0YXR1cyAi DQo+ICsJCSJzdHJpbmcgd2l0aCBIRFgiKTsNCj4gKw0KPiArCS8qIHRlc3QgbWF4IHN0ciBsZW4g Ki8NCj4gKwlsaW5rX3N0YXR1cy5saW5rX3NwZWVkID0gRVRIX1NQRUVEX05VTV8yMDBHOw0KPiAr CWxpbmtfc3RhdHVzLmxpbmtfZHVwbGV4ID0gRVRIX0xJTktfSEFMRl9EVVBMRVg7DQo+ICsJbGlu a19zdGF0dXMubGlua19hdXRvbmVnID0gRVRIX0xJTktfQVVUT05FRzsNCj4gKwlyZXQgPSBydGVf ZXRoX2xpbmtfdG9fc3RyKHRleHQsIHNpemVvZih0ZXh0KSwgJmxpbmtfc3RhdHVzKTsNCj4gKwlw cmludGYoIkRlZmF1bHQgbGluayB1cCAjNDpsZW4gPSAlZCwgJXNcbiIsIHJldCwgdGV4dCk7DQo+ ICsJUlRFX1RFU1RfQVNTRVJUKHJldCA8IFJURV9FVEhfTElOS19NQVhfU1RSX0xFTiwNCj4gKwkJ IlN0cmluZyBsZW5ndGggZXhjZWVkcyBtYXggYWxsb3dlZCB2YWx1ZVxuIik7DQo+ICsJcmV0dXJu IFRFU1RfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludDMyX3QNCj4gK3Rlc3RfbGlu a19zdGF0dXNfZG93bl9kZWZhdWx0KHZvaWQpDQo+ICt7DQo+ICsJaW50IHJldCA9IDA7DQo+ICsJ c3RydWN0IHJ0ZV9ldGhfbGluayBsaW5rX3N0YXR1cyA9IHsNCj4gKwkJLmxpbmtfc3BlZWQgPSBF VEhfU1BFRURfTlVNXzJfNUcsDQo+ICsJCS5saW5rX3N0YXR1cyA9IEVUSF9MSU5LX0RPV04sDQo+ ICsJCS5saW5rX2F1dG9uZWcgPSBFVEhfTElOS19BVVRPTkVHLA0KPiArCQkubGlua19kdXBsZXgg PSBFVEhfTElOS19GVUxMX0RVUExFWA0KPiArCX07DQo+ICsJY2hhciB0ZXh0W1JURV9FVEhfTElO S19NQVhfU1RSX0xFTl07DQo+ICsNCj4gKwlyZXQgPSBydGVfZXRoX2xpbmtfdG9fc3RyKHRleHQs IHNpemVvZih0ZXh0KSwgJmxpbmtfc3RhdHVzKTsNCj4gKwlSVEVfVEVTVF9BU1NFUlQocmV0ID4g MCwgIkZhaWxlZCB0byBmb3JtYXQgZGVmYXVsdCBzdHJpbmdcbiIpOw0KPiArCVRFU1RfQVNTRVJU X0JVRkZFUlNfQVJFX0VRVUFMKCJMaW5rIGRvd24iLA0KPiArCQl0ZXh0LCBzdHJsZW4odGV4dCks ICJJbnZhbGlkIGRlZmF1bHQgbGluayBzdGF0dXMgc3RyaW5nIik7DQo+ICsNCj4gKwlyZXR1cm4g VEVTVF9TVUNDRVNTOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50MzJfdA0KPiArdGVzdF9saW5r X3N0YXR1c19pbnZhbGlkKHZvaWQpDQo+ICt7DQo+ICsJaW50IHJldCA9IDA7DQo+ICsJc3RydWN0 IHJ0ZV9ldGhfbGluayBsaW5rX3N0YXR1cyA9IHsNCj4gKwkJLmxpbmtfc3BlZWQgPSA1NTU1NSwN Cj4gKwkJLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfVVAsDQo+ICsJCS5saW5rX2F1dG9uZWcgPSBF VEhfTElOS19BVVRPTkVHLA0KPiArCQkubGlua19kdXBsZXggPSBFVEhfTElOS19GVUxMX0RVUExF WA0KPiArCX07DQo+ICsJY2hhciB0ZXh0W1JURV9FVEhfTElOS19NQVhfU1RSX0xFTl07DQo+ICsN Cj4gKwlyZXQgPSBydGVfZXRoX2xpbmtfdG9fc3RyKHRleHQsIHNpemVvZih0ZXh0KSwgJmxpbmtf c3RhdHVzKTsNCj4gKwlSVEVfVEVTVF9BU1NFUlQocmV0IDwgUlRFX0VUSF9MSU5LX01BWF9TVFJf TEVOLA0KPiArCQkiRmFpbGVkIHRvIGZvcm1hdCBpbnZhbGlkIHN0cmluZ1xuIik7DQo+ICsJcHJp bnRmKCJpbnZhbGlkIGxpbmsgdXAgIzE6IGxlbj0lZCAlc1xuIiwgcmV0LCB0ZXh0KTsNCj4gKwlU RVNUX0FTU0VSVF9CVUZGRVJTX0FSRV9FUVVBTCgiTGluayB1cCBhdCBJbnZhbGlkIEZEWCBBdXRv bmVnIiwNCj4gKwkJdGV4dCwgc3RybGVuKHRleHQpLCAiSW5jb3JyZWN0IGludmFsaWQgbGluayBz dGF0dXMNCj4gc3RyaW5nIik7DQo+ICsNCj4gKwlyZXR1cm4gVEVTVF9TVUNDRVNTOw0KPiArfQ0K PiArDQo+ICsNCj4gK3N0YXRpYyBpbnQzMl90DQo+ICt0ZXN0X2xpbmtfc3BlZWRfYWxsX3ZhbHVl cyh2b2lkKQ0KPiArew0KPiArCWNvbnN0IGNoYXIgKnNwZWVkOw0KPiArCXVpbnQzMl90IGk7DQo+ ICsJc3RydWN0IGxpbmtfc3BlZWRfdCB7DQo+ICsJCWNvbnN0IGNoYXIgKnZhbHVlOw0KPiArCQl1 aW50MzJfdCBsaW5rX3NwZWVkOw0KPiArCX0gc3BlZWRfc3RyX21hcFtdID0gew0KPiArCQl7ICJO b25lIiwgICBFVEhfU1BFRURfTlVNX05PTkUgfSwNCj4gKwkJeyAiMTAgTWJwcyIsICBFVEhfU1BF RURfTlVNXzEwTSB9LA0KPiArCQl7ICIxMDAgTWJwcyIsIEVUSF9TUEVFRF9OVU1fMTAwTSB9LA0K PiArCQl7ICIxIEdicHMiLCAgIEVUSF9TUEVFRF9OVU1fMUcgfSwNCj4gKwkJeyAiMi41IEdicHMi LCBFVEhfU1BFRURfTlVNXzJfNUcgfSwNCj4gKwkJeyAiNSBHYnBzIiwgICBFVEhfU1BFRURfTlVN XzVHIH0sDQo+ICsJCXsgIjEwIEdicHMiLCAgRVRIX1NQRUVEX05VTV8xMEcgfSwNCj4gKwkJeyAi MjAgR2JwcyIsICBFVEhfU1BFRURfTlVNXzIwRyB9LA0KPiArCQl7ICIyNSBHYnBzIiwgIEVUSF9T UEVFRF9OVU1fMjVHIH0sDQo+ICsJCXsgIjQwIEdicHMiLCAgRVRIX1NQRUVEX05VTV80MEcgfSwN Cj4gKwkJeyAiNTAgR2JwcyIsICBFVEhfU1BFRURfTlVNXzUwRyB9LA0KPiArCQl7ICI1NiBHYnBz IiwgIEVUSF9TUEVFRF9OVU1fNTZHIH0sDQo+ICsJCXsgIjEwMCBHYnBzIiwgRVRIX1NQRUVEX05V TV8xMDBHIH0sDQo+ICsJCXsgIjIwMCBHYnBzIiwgRVRIX1NQRUVEX05VTV8yMDBHIH0sDQo+ICsJ CXsgIlVua25vd24iLCAgRVRIX1NQRUVEX05VTV9VTktOT1dOIH0sDQo+ICsJCXsgIkludmFsaWQi LCAgIDUwNTA1IH0NCj4gKwl9Ow0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHNpemVvZihzcGVl ZF9zdHJfbWFwKSAvIHNpemVvZihzdHJ1Y3QNCj4gbGlua19zcGVlZF90KTsNCj4gKwkJCWkrKykg ew0KPiArCQlzcGVlZCA9DQo+IHJ0ZV9ldGhfbGlua19zcGVlZF90b19zdHIoc3BlZWRfc3RyX21h cFtpXS5saW5rX3NwZWVkKTsNCj4gKwkJVEVTVF9BU1NFUlRfQlVGRkVSU19BUkVfRVFVQUwoc3Bl ZWRfc3RyX21hcFtpXS52YWx1ZSwNCj4gKwkJCXNwZWVkLCBzdHJsZW4oc3BlZWRfc3RyX21hcFtp XS52YWx1ZSksDQo+ICsJCQkiSW52YWxpZCBsaW5rIHNwZWVkIHN0cmluZyIpOw0KPiArCX0NCj4g KwlyZXR1cm4gVEVTVF9TVUNDRVNTOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHVuaXRf dGVzdF9zdWl0ZSBsaW5rX3N0YXR1c190ZXN0c3VpdGUgPSB7DQo+ICsJLnN1aXRlX25hbWUgPSAi bGluayBzdGF0dXMgZm9ybWF0dGluZyIsDQo+ICsJLnNldHVwID0gTlVMTCwNCj4gKwkudGVhcmRv d24gPSBOVUxMLA0KPiArCS51bml0X3Rlc3RfY2FzZXMgPSB7DQo+ICsJCVRFU1RfQ0FTRSh0ZXN0 X2xpbmtfc3RhdHVzX3VwX2RlZmF1bHQpLA0KPiArCQlURVNUX0NBU0UodGVzdF9saW5rX3N0YXR1 c19kb3duX2RlZmF1bHQpLA0KPiArCQlURVNUX0NBU0UodGVzdF9saW5rX3NwZWVkX2FsbF92YWx1 ZXMpLA0KPiArCQlURVNUX0NBU0UodGVzdF9saW5rX3N0YXR1c19pbnZhbGlkKSwNCj4gKwkJVEVT VF9DQVNFU19FTkQoKSAvKio8IE5VTEwgdGVybWluYXRlIHVuaXQgdGVzdCBhcnJheSAqLw0KPiAr CX0NCj4gK307DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Rlc3RfbGlua19zdGF0dXModm9pZCkN Cj4gK3sNCj4gKwlydGVfbG9nX3NldF9nbG9iYWxfbGV2ZWwoUlRFX0xPR19ERUJVRyk7DQo+ICsJ cnRlX2xvZ19zZXRfbGV2ZWwoUlRFX0xPR1RZUEVfRUFMLCBSVEVfTE9HX0RFQlVHKTsNCj4gKw0K PiArCXJldHVybiB1bml0X3Rlc3Rfc3VpdGVfcnVubmVyKCZsaW5rX3N0YXR1c190ZXN0c3VpdGUp Ow0KPiArfQ0KPiArDQo+ICtSRUdJU1RFUl9URVNUX0NPTU1BTkQoZXRoZGV2X2xpbmtfc3RhdHVz LCB0ZXN0X2xpbmtfc3RhdHVzKTsNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0 ZV9ldGhkZXYuYw0KPiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiBpbmRleCBk MDZiN2Y5YjEuLjQzOGNlY2U3MiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRl X2V0aGRldi5jDQo+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiBAQCAt MjM4Myw2ICsyMzgzLDQzIEBAIHJ0ZV9ldGhfbGlua19nZXRfbm93YWl0KHVpbnQxNl90IHBvcnRf aWQsIHN0cnVjdA0KPiBydGVfZXRoX2xpbmsgKmV0aF9saW5rKQ0KPiAgCXJldHVybiAwOw0KPiAg fQ0KPiANCj4gK2NvbnN0IGNoYXIgKg0KPiArcnRlX2V0aF9saW5rX3NwZWVkX3RvX3N0cih1aW50 MzJfdCBsaW5rX3NwZWVkKQ0KPiArew0KPiArCXN3aXRjaCAobGlua19zcGVlZCkgew0KPiArCWNh c2UgRVRIX1NQRUVEX05VTV9OT05FOiByZXR1cm4gIk5vbmUiOw0KPiArCWNhc2UgRVRIX1NQRUVE X05VTV8xME06ICByZXR1cm4gIjEwIE1icHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV8xMDBN OiByZXR1cm4gIjEwMCBNYnBzIjsNCj4gKwljYXNlIEVUSF9TUEVFRF9OVU1fMUc6ICAgcmV0dXJu ICIxIEdicHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV8yXzVHOiByZXR1cm4gIjIuNSBHYnBz IjsNCj4gKwljYXNlIEVUSF9TUEVFRF9OVU1fNUc6ICAgcmV0dXJuICI1IEdicHMiOw0KPiArCWNh c2UgRVRIX1NQRUVEX05VTV8xMEc6ICByZXR1cm4gIjEwIEdicHMiOw0KPiArCWNhc2UgRVRIX1NQ RUVEX05VTV8yMEc6ICByZXR1cm4gIjIwIEdicHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV8y NUc6ICByZXR1cm4gIjI1IEdicHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV80MEc6ICByZXR1 cm4gIjQwIEdicHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV81MEc6ICByZXR1cm4gIjUwIEdi cHMiOw0KPiArCWNhc2UgRVRIX1NQRUVEX05VTV81Nkc6ICByZXR1cm4gIjU2IEdicHMiOw0KPiAr CWNhc2UgRVRIX1NQRUVEX05VTV8xMDBHOiByZXR1cm4gIjEwMCBHYnBzIjsNCj4gKwljYXNlIEVU SF9TUEVFRF9OVU1fMjAwRzogcmV0dXJuICIyMDAgR2JwcyI7DQo+ICsJY2FzZSBFVEhfU1BFRURf TlVNX1VOS05PV046IHJldHVybiAiVW5rbm93biI7DQo+ICsJZGVmYXVsdDogcmV0dXJuICJJbnZh bGlkIjsNCj4gKwl9DQo+ICt9DQo+ICsNCj4gK2ludA0KPiArcnRlX2V0aF9saW5rX3RvX3N0cihj aGFyICpzdHIsIHNpemVfdCBsZW4sIGNvbnN0IHN0cnVjdCBydGVfZXRoX2xpbmsNCj4gKmV0aF9s aW5rKQ0KPiArew0KPiArCWlmIChldGhfbGluay0+bGlua19zdGF0dXMgPT0gRVRIX0xJTktfRE9X TikNCj4gKwkJcmV0dXJuIHNucHJpbnRmKHN0ciwgbGVuLCAiTGluayBkb3duIik7DQo+ICsJZWxz ZQ0KPiArCQlyZXR1cm4gc25wcmludGYoc3RyLCBsZW4sICJMaW5rIHVwIGF0ICVzICVzICVzIiwN Cj4gKwkJCXJ0ZV9ldGhfbGlua19zcGVlZF90b19zdHIoZXRoX2xpbmstPmxpbmtfc3BlZWQpLA0K PiArCQkJKGV0aF9saW5rLT5saW5rX2R1cGxleCA9PSBFVEhfTElOS19GVUxMX0RVUExFWCkgPw0K PiArCQkJIkZEWCIgOiAiSERYIiwNCj4gKwkJCShldGhfbGluay0+bGlua19hdXRvbmVnID09IEVU SF9MSU5LX0FVVE9ORUcpID8NCj4gKwkJCSJBdXRvbmVnIiA6ICJGaXhlZCIpOw0KPiArfQ0KPiAr DQo+ICBpbnQNCj4gIHJ0ZV9ldGhfc3RhdHNfZ2V0KHVpbnQxNl90IHBvcnRfaWQsIHN0cnVjdCBy dGVfZXRoX3N0YXRzICpzdGF0cykNCj4gIHsNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRo ZGV2L3J0ZV9ldGhkZXYuaA0KPiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiBp bmRleCAyMDkwYWY1MDEuLmE4NmY4ZjkxNiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX2V0aGRldi5oDQo+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaA0K PiBAQCAtMzIzLDYgKzMyMyw3IEBAIHN0cnVjdCBydGVfZXRoX2xpbmsgew0KPiAgI2RlZmluZSBF VEhfTElOS19VUCAgICAgICAgICAxIC8qKjwgTGluayBpcyB1cCAoc2VlIGxpbmtfc3RhdHVzKS4g Ki8NCj4gICNkZWZpbmUgRVRIX0xJTktfRklYRUQgICAgICAgMCAvKio8IE5vIGF1dG9uZWdvdGlh dGlvbiAoc2VlDQo+IGxpbmtfYXV0b25lZykuICovDQo+ICAjZGVmaW5lIEVUSF9MSU5LX0FVVE9O RUcgICAgIDEgLyoqPCBBdXRvbmVnb3RpYXRlZCAoc2VlIGxpbmtfYXV0b25lZykuDQo+ICovDQo+ ICsjZGVmaW5lIFJURV9FVEhfTElOS19NQVhfU1RSX0xFTiA0MCAvKio8IE1heCBsZW5ndGggb2Yg ZGVmYXVsdCBsaW5rDQo+IHN0cmluZy4gKi8NCj4gDQo+ICAvKioNCj4gICAqIEEgc3RydWN0dXJl IHVzZWQgdG8gY29uZmlndXJlIHRoZSByaW5nIHRocmVzaG9sZCByZWdpc3RlcnMgb2YgYW4NCj4g UlgvVFgNCj4gQEAgLTIyOTUsNiArMjI5NiwzNyBAQCBpbnQgcnRlX2V0aF9saW5rX2dldCh1aW50 MTZfdCBwb3J0X2lkLCBzdHJ1Y3QNCj4gcnRlX2V0aF9saW5rICpsaW5rKTsNCj4gICAqLw0KPiAg aW50IHJ0ZV9ldGhfbGlua19nZXRfbm93YWl0KHVpbnQxNl90IHBvcnRfaWQsIHN0cnVjdCBydGVf ZXRoX2xpbmsNCj4gKmxpbmspOw0KPiANCj4gKy8qKg0KPiArICogVGhlIGZ1bmN0aW9uIGNvbnZl cnRzIGEgbGlua19zcGVlZCB0byBhIHN0cmluZy4gSXQgaGFuZGxlcyBhbGwNCj4gc3BlY2lhbA0K PiArICogdmFsdWVzIGxpa2UgdW5rbm93biBvciBub25lIHNwZWVkLg0KPiArICogQHBhcmFtIGxp bmtfc3BlZWQNCj4gKyAqICAgbGlua19zcGVlZCBvZiBydGVfZXRoX2xpbmsgc3RydWN0DQo+ICsg KiBAcmV0dXJuDQo+ICsgKiAgIExpbmsgc3BlZWQgaW4gdGV4dHVhbCBmb3JtYXQuIEl0J3MgcG9p bnRlciB0byBpbW11dGFibGUgbWVtb3J5Lg0KPiArICogICBObyBmcmVlIGlzIHJlcXVpcmVkLg0K PiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2NvbnN0IGNoYXIgKnJ0ZV9ldGhfbGlu a19zcGVlZF90b19zdHIodWludDMyX3Qgc3BlZWRfbGluayk7DQo+ICsNCj4gKy8qKg0KPiArICog VGhlIGZ1bmN0aW9uIGNvbnZlcnRzIGEgcnRlX2V0aF9saW5rIHN0cnVjdCByZXByZXNlbnRpbmcg YSBsaW5rDQo+IHN0YXR1cyB0bw0KPiArICogYSBzdHJpbmcuDQo+ICsgKiBAcGFyYW0gc3RyDQo+ ICsgKiAgIEEgcG9pbnRlciB0byBhIHN0cmluZyB0byBiZSBmaWxsZWQgd2l0aCB0ZXh0dWFsIHJl cHJlc2VudGF0aW9uIG9mDQo+ICsgKiAgIGRldmljZSBzdGF0dXMuIEF0IGxlYXN0IEVUSF9MSU5L X01BWF9TVFJfTEVOIGJ5dGVzIHNob3VsZCBiZQ0KPiBhbGxvY2F0ZWQgdG8NCj4gKyAqICAgc3Rv cmUgZGVmYXVsdCBsaW5rIHN0YXR1cyB0ZXh0Lg0KPiArICogQHBhcmFtIGxlbg0KPiArICogICBM ZW5ndGggb2YgYXZhaWxhYmxlIG1lbW9yeSBhdCAnc3RyJyBzdHJpbmcuDQo+ICsgKiBAcGFyYW0g ZXRoX2xpbmsNCj4gKyAqICAgTGluayBzdGF0dXMgcmV0dXJuZWQgYnkgcnRlX2V0aF9saW5rX2dl dCBmdW5jdGlvbg0KPiArICogQHJldHVybg0KPiArICogICAtIE51bWJlciBvZiBieXRlcyB3cml0 dGVuIHRvIHN0ciBhcnJheS4NCj4gKyAqDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0K PiAraW50IHJ0ZV9ldGhfbGlua190b19zdHIoY2hhciAqc3RyLCBzaXplX3QgbGVuLA0KPiArCQkJ Y29uc3Qgc3RydWN0IHJ0ZV9ldGhfbGluayAqZXRoX2xpbmspOw0KPiArDQo+ICAvKioNCj4gICAq IFJldHJpZXZlIHRoZSBnZW5lcmFsIEkvTyBzdGF0aXN0aWNzIG9mIGFuIEV0aGVybmV0IGRldmlj ZS4NCj4gICAqDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2X3Zl cnNpb24ubWFwDQo+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0K PiBpbmRleCA3MTU1MDU2MDQuLjY5YTc2M2Q0YiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0KPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9y dGVfZXRoZGV2X3ZlcnNpb24ubWFwDQo+IEBAIC0yNDEsNCArMjQxLDggQEAgRVhQRVJJTUVOVEFM IHsNCj4gIAlfX3J0ZV9ldGhkZXZfdHJhY2VfcnhfYnVyc3Q7DQo+ICAJX19ydGVfZXRoZGV2X3Ry YWNlX3R4X2J1cnN0Ow0KPiAgCXJ0ZV9mbG93X2dldF9hZ2VkX2Zsb3dzOw0KPiArDQo+ICsJIyBh ZGRlZCBpbiAyMC4xMQ0KPiArCXJ0ZV9ldGhfbGlua190b19zdHI7DQo+ICsJcnRlX2V0aF9saW5r X3NwZWVkX3RvX3N0cjsNCj4gIH07DQo+IC0tDQo+IDIuMTcuMQ0KPiANCg0KR3JlYXQgd29yaywg SXZhbiENCg0KQWNrZWQtYnk6IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5j b20+DQoNCg==