From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id B74BF69D8; Tue, 28 Mar 2017 15:19:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490707179; x=1522243179; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=wOzkuBe4GJvFb5NG5OFIz++GGJ3vqY/CNIW2XK+lAaI=; b=QW7vTx/oSyWuUiE3WWIcMnhc/pPjbw0jJSYdIj73rn53gX0GFmzppO37 mg/qLTn7vDktSF5JexKiuOFspnGctw==; Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Mar 2017 06:19:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,236,1486454400"; d="scan'208";a="1112934414" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga001.jf.intel.com with ESMTP; 28 Mar 2017 06:19:37 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 28 Mar 2017 06:19:37 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.235]) by fmsmsx118.amr.corp.intel.com ([169.254.1.144]) with mapi id 14.03.0319.002; Tue, 28 Mar 2017 06:19:37 -0700 From: "Wiles, Keith" To: Thomas Monjalon CC: "dev@dpdk.org" , Olivier Matz , "techboard@dpdk.org" Thread-Topic: [dpdk-dev] [RFC] New CLI for DPDK Thread-Index: AQHSmbKOFgUFXKyiS0Co9tjZ936TrKGjIroAgAFfFACAABuJgIAF+o0AgAA18oA= Date: Tue, 28 Mar 2017 13:19:36 +0000 Message-ID: References: <20170324140954.356e3755@platinum> <5CD3E4F5-4284-4D68-8008-642E9C3685B3@intel.com> <1976507.q6Vb44MXhO@xps13> In-Reply-To: <1976507.q6Vb44MXhO@xps13> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.46.132] Content-Type: text/plain; charset="utf-8" Content-ID: <8098AD8F74AA7E49BD2428E7E5A31503@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC] New CLI for DPDK 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: , X-List-Received-Date: Tue, 28 Mar 2017 13:19:40 -0000 DQo+IE9uIE1hciAyOCwgMjAxNywgYXQgNTowNiBBTSwgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXMu bW9uamFsb25ANndpbmQuY29tPiB3cm90ZToNCj4gDQo+IDIwMTctMDMtMjQgMTQ6NDgsIFdpbGVz LCBLZWl0aDoNCj4+IA0KPj4+IE9uIE1hciAyNCwgMjAxNywgYXQgODowOSBBTSwgT2xpdmllciBN YXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29tPiB3cm90ZToNCj4+PiANCj4+PiBIaSBLZWl0aCwN Cj4+PiANCj4+PiBPbiBUaHUsIDIzIE1hciAyMDE3IDE2OjEzOjIxICswMDAwLCAiV2lsZXMsIEtl aXRoIiA8a2VpdGgud2lsZXNAaW50ZWwuY29tPiB3cm90ZToNCj4+Pj4+IE9uIE1hciAxMCwgMjAx NywgYXQgOToyNSBBTSwgV2lsZXMsIEtlaXRoIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+IHdyb3Rl Og0KPj4+Pj4gDQo+Pj4+PiBJIHdvdWxkIGxpa2UgdG8gcmVxdWVzdCBmb3IgY29tbWVudHMgb24g YSBuZXcgQ0xJIGRlc2lnbiBhbmQgZ2V0IGFueSBmZWVkYmFjay4gSSBoYXZlIGF0dGFjaGVkIHRo ZSBjbGkucnN0IHRleHQsIHdoaWNoIGlzIHN0aWxsIGEgd29yayBpbiBwcm9ncmVzcyBmb3IgeW91 IHJldmlldy4NCj4+Pj4+IA0KPj4+Pj4gSSBoYXZlIGFsc28gcG9ydGVkIHRoZSBDTEkgdG8gYSB2 ZXJzaW9uIG9mIFBrdGdlbiBvbiB0aGUg4oCYZGV24oCZIGJyYW5jaCBvZiB0aGUgcmVwbyBpbiBE UERLLm9yZy4NCj4+Pj4+IA0KPj4+Pj4gaHR0cDovL2RwZGsub3JnL2Jyb3dzZS9hcHBzL3BrdGdl bi1kcGRrL3JlZnMvP2g9ZGV2DQo+Pj4+PiANCj4+Pj4+IEkgd291bGQgbGlrZSB0byBzdWJtaXQg dGhlIENMSSBsaWJyYXJ5IHRvIGJlIHVzZWQgaW4gRFBESywgaWYgdGhhdCBzZWVtcyByZWFzb25h YmxlIHRvIGV2ZXJ5b25lLiBJIG5lZWQgbW9yZSB0ZXN0aW5nIG9mIHRoZSBBUEkgYW5kIFBrdGdl biwgYnV0IEkgZmVlbCBpdCBoYXMgYSBzaW1wbGVyIGRlc2lnbiwgZWFzaWVyIHRvIHVuZGVyc3Rh bmQgYW5kIGhvcGVmdWxseSBtYWtlIGl0IGVhc2llciBmb3IgZGV2ZWxvcGVycyB0byBhZGQgY29t bWFuZHMuDQo+Pj4+PiANCj4+Pj4+IEFzIGFuIGV4YW1wbGUgSSBxdWlja2x5IGNvbnZlcnRlZCBv dmVyIHRlc3RwbWQgZnJvbSBDTURMSU5FIHRvIENMSSAoSSBqdXN0IGFkZCBhIC1JIG9wdGlvbiB0 byBzZWxlY3QgQ0xJIGluc3RlYWQpIGFuZCByZWR1Y2VkIHRoZSB0ZXN0LXBtZC9jbWRsaW5lLmMg ZmlsZSBmcm9tIDEyLjZLIGxpbmVzIHRvIGFib3V0IDQuNUsgbGluZXMuIEkgZGlkIG5vdCBmdWxs eSB0ZXN0IHRoZSBjb2RlLCBidXQgdGhlIG9uZXMgSSBkaWQgdGVzdCBzZWVtIHRvIHdvcmsuDQo+ Pj4+PiANCj4+Pj4+IEkgZG8gbm90IGV4cGVjdCBEUERLIHRvIGNvbnZlcnQgdG8gdGhlIG5ldyBD TEkgb25seSBpZiBpdCBtYWtlcyBzZW5zZSBhbmQgSSBhbSBub3Qgc3VnZ2VzdGluZyB0byByZXBs YWNlIENNRExJTkUgbGlicmFyeS4NCj4+Pj4+IA0KPj4+Pj4gSWYgeW91IHBsYXkgd2l0aCB0aGUg bmV3IENMSSBpbiBwa3RnZW4gYW5kIHNlZSBhbnkgcHJvYmxlbXMgb3Igd2FudCB0byBzdWdnZXN0 IG5ldyBmZWF0dXJlcyBvciBjaGFuZ2VzIHBsZWFzZSBsZXQgbWUga25vdy4NCj4+Pj4+IA0KPj4+ Pj4gQ29tbWVudHMgb24gdGhlIGNsaS5yc3QgdGV4dCBpcyBhbHNvIHdlbGNvbWUsIGJ1dCB0aGUg Y2xpLnJzdCBpcyBub3QgY29tcGxldGUuIEkgdGhpbmsgdGhpcyBmaWxlIG5lZWRzIHRvIGJlIGJy b2tlbiBpbnRvIHR3byBvbmUgdG8gZXhwbGFpbiB0aGUgZXhhbXBsZSBhbmQgYW5vdGhlciB0byBl eHBsYWluIENMSSBpbnRlcm5hbHMuICANCj4+Pj4gDQo+Pj4+IEFueSBtb3JlIGNvbW1lbnRzIG9u IHRoZSBDTEkgY29kZSBmb3IgRFBESy4NCj4+Pj4gDQo+Pj4+IFNob3VsZCBJIHN1Ym1pdCBhIHBh dGNoIGZvciBEUERLIG9yIHdvdWxkIGl0IGJlIGJldHRlciB0byBwdXNoIHRoaXMgaW50byBpdHMg b3duIHJlcG8gb24gRFBESz8NCj4+Pj4gDQo+Pj4gDQo+Pj4gSSBhZ3JlZSB0aGF0IHRoZXJlIGlz IGEgbGFyZ2UgcG9zc2liaWxpdHkgb2YgaW1wcm92ZW1lbnRzIGluIGxpYnJ0ZV9jbWRsaW5lLg0K Pj4+IA0KPj4+IEp1c3QgZm9yIHJlZmVyZW5jZSwgSSB0aGluayB0aGlzIGRlc2lnbiB3YXMgbm90 IHRoYXQgYmFkIGF0IHRoZSB0aW1lIGl0DQo+Pj4gd2FzIGludHJvZHVjZWQ6DQo+Pj4gLSBkZWNs YXJpbmcgY29tbWFuZHMgYXMgc3RhdGljIHZhcmlhYmxlcyBtYWtlcyBzZW5zZSB3aGVuIHJ1bm5p bmcgb24NCj4+PiBiYXJlbWV0YWwgd2l0aG91dCBtYWxsb2MgbGlicmFyeQ0KPj4+IC0gaW1wbGVt ZW50aW5nIGEgcmVhZGxpbmUtbGlrZSBwYXJ0IHdhcyBhbHNvIG5lZWRlZCBiZWNhdXNlIG5vdCBh dmFpbGFibGUNCj4+PiBvbiBiYXJlbWV0YWwNCj4+PiAtIG1hc2tpbmcgc3RydWN0dXJlcyB0byB0 aGUgdXNlciB3YXMgaGFyZGVyIGR1ZSB0byB0aGUgbGFjayBvZiBtYWxsb2MNCj4+PiAtIGhhdmlu ZyBhIGNsaSBpcyByZWFsbHkgaGVscGZ1bCBmb3IgYSBwcm9ncmFtIGxpa2UgdGVzdHBtZCAoYm90 aCBmb3INCj4+PiBhIHVzZXIgb3IgZm9yIGFuIGF1dG9tYXRpYyB0ZXN0IHByb2dyYW0pDQo+PiAN Cj4+IEkgYWdyZWUsIGJ1dCB3ZSBkbyBuZWVkIHRvIHVzZSBhIGJldHRlciB2ZXJzaW9uLg0KPj4g DQo+Pj4gDQo+Pj4gRmV3IGVmZm9ydHMgd2VyZSBtYWRlIHRvIGVuaGFuY2UgdGhpcyBsaWJyYXJ5 IGJlY2F1c2UgaXQncyBub3QgdGhlIGhlYXJ0DQo+Pj4gb2YgZHBkay4NCj4+IA0KPj4gVHJ1ZSBD TEkgaXMgbm90IHRoZSBoZWFydCBvZiBEUERLLCBidXQgYWRkaW5nIGEgYmV0dGVyIHN1cHBvcnRl ZCBDTEkgY291bGQgYmUgYSByZWFzb25hYmxlIGFkZGl0aW9uIHRvIERQREsgZm9yIGRldmVsb3Bl cnMgdG8gY3JlYXRlIGEgcmVhbCBwcm9kdWNlIGluc3RlYWQgb2YgY21kbGluZSwgd2hpY2ggaXMg c3RhdGVkIHdhcyBub3QgYSBDTEkgZm9yIGEgcmVhbCBwcm9kdWN0Lg0KPiANCj4gV2UgY2FuIGFz ayB0byB0aGUgdGVjaGJvYXJkIHdoZXRoZXIgQ0xJIGlzIGluIERQREsgc2NvcGUuDQo+IE15IHBv c2l0aW9uOiBpdCBpcyBuZWl0aGVyIGluIHRoZSBzY29wZSBvZiB0aGUgcmVwbyBub3IgaW4gdGhl IHNjb3BlIG9mIGRwZGsub3JnLg0KDQpUaGUgZ29hbCBpcyB0byByZXBsYWNlIHRoZSBjbWRsaW5l IHdpdGggQ0xJIG9yIGF0IGxlYXN0IHByb3ZpZGUgYSBtdWNoIGJldHRlciBzdXBwb3J0ZWQgYW5k IGVhc2llciBzb2x1dGlvbiBmb3IgRFBESyBkZXZlbG9wZXJzLg0KDQpUaGUgQ0xJIHdhcyB3cml0 dGVuIGp1c3QgZm9yIERQREsgYW5kIHVzZXMgRFBESyBBUElzIG9ubHksIHNvIHRvIG1lIGl0IGlz IHJlbGF0ZWQgdG8gRFBESyBsaWtlIGFueSBvdGhlciB0b29sIG9yIGxpYnJhcnkgd2UgaGF2ZSBp biBEUERLIHRoYXQgaXMgbm90IHJlYWxseSBwcm92aWRpbmcgcGFja2V0IHRyYW5zcG9ydC4gV2Ug aGF2ZSBhIG51bWJlciBvZiB0aGVzZSBpbiBEUERLIHRvZGF5IGFuZCBoYXZpbmcgYSBsaWJyYXJ5 IHJlcG8gb24gRFBESy5vcmcgaXMgdGhlIHZlcnkgcmVhc29uYWJsZS4NCg0KQWxzbyBJIHRob3Vn aHQgd2UgZGVjaWRlZCB0byBhZGQgdGhlIHJlcG8gdG8gRFBESy5vcmcgYW5kIHRoZSBvbmx5IHJl YXNvbiB3ZSBhcmUgcmV2aXNpdGluZyBpZiBDTEkgc2hvdWxkIGJlIG9uIERQREsub3JnIGlzIGhv dyB3ZSBzdXBwb3J0IGV4dGVybmFsIGxpYnMgb2YgdGhpcyB0eXBlLg0KDQpUaG9tYXMgc3RhcnRl ZCBvdXQgbm90IGxpa2luZyB0aGUgbmFtZSBvZiBsaWJydGVfY2xpIGFuZCB3YW50ZWQgc29tZSBv dGhlciBuYW1lLiBJIHN1Z2dlc3RlZCDigJhjbGnigJksIGJ1dCBJIHdhbnRlZCB0byBrZWVwIHRo ZSBsaWJydGVfY2xpIG5hbWUgYXMgSSB3YW50ZWQgdG8gYmUgYWJsZSB0byBwdWxsIHRoZSBsaWJy dGVfY2xpIGludG8gdGhlIERQREsvbGliIGRpcmVjdG9yeSB0byBtYWtlIGl0IHNpbXBsZXIgdG8g aW50ZWdyYXRlIGludG8gRFBESyBmb3IgdGhlIGRldmVsb3Blci4gQnVpbGRpbmcgbGlicmFyeSBv ciBhcHBsaWNhdGlvbnMgZXh0ZXJuYWwgdG8gRFBESyBoYXMgYSBmZXcgaXNzdWVzIGFuZCBub3Qg Y29tcGxldGVseSBzdXBwb3J0ZWQgd2VsbCBpbiBEUERLLg0KDQpJIHdvdWxkIGxpa2UgdG8gY2xv bmUgRFBESyB0aGVuIGNsb25lIGxpYnJ0ZV9jbGkgaW50byB0aGUgRFBESy9saWIgZGlyZWN0b3J5 IGFsbG93aW5nIGxpYnJ0ZV9jbGkgdG8gYmUgYnVpbHQgYXMgYSBpbnRlcm5hbCBsaWJyYXJ5LiBU aGVuIGFkZCB0aGUgY29uZmlnIG9wdGlvbiB0byB0aGUgY29tbW9uX2Jhc2UgYW5kIERQREsvbGli L01ha2VmaWxlIHRvIGFsbG93IHRoZSBsaWJyYXJ5IHRvIGJlIGJ1aWx0LiBUaGlzIGFsbG93IHRo ZSBkZXZlbG9wZXIgdG8gZmluZCB0aGUgaW5jbHVkZSBhbmQgbGlicmFyeSBlYXNpbHksIHdoaWNo IHRoZW4gYWxsb3dzIHVzIHRvIHN0YXJ0IGxvb2tpbmcgYXQgdXBkYXRpbmcgdGhlIGN1cnJlbnQg YXBwcyB0byB1c2UgQ0xJLg0KDQpJIGNvdWxkIHByb3ZpZGUgYSBwYXRjaCB0byBEUERLIHRvIGhl bHAgaW50ZWdyYXRlIENMSSBpbnRvIERQREsgd2l0aG91dCBtb2RpZnlpbmcgRFBESyB0b2RheSBm b3IgdGhlIGRldmVsb3BlciB0byBiZSBhYmxlIHRvIHVzZSBDTEkgYXMgYSBzdGFuZGFyZCBpbnRl cm5hbCBsaWJyYXJ5LiBNeSBnb2FsIGlzIHRvIHByb3ZpZGUgYSBjbGVhbmVyIHNvbHV0aW9uIGZv ciBEUERLIGRldmVsb3BlcnMgYW5kIGEgRFBESyBzdXBwb3J0IENMSS4gDQoNCkkgYW0gbm93IGEg Yml0IGNvbmZ1c2VkIGFzIHRvIHdoeSBUaG9tYXMgaGFzIG9iamVjdGVkIGhlcmUgYW5kIHJlcXVl c3RlZCB0byBiZSBwdXNoIHRvIHRoZSBUZWNoQm9hcmQuDQoNCj4gDQo+Pj4gVGhlIGN1cnJlbnQg c3RhdHVzIGlzIGFjY2VwdGFibGUgdG8gbWU6IHRoaXMgbGlicmFyeSBpcyBtb3N0bHkgdXNlZA0K Pj4+IGludGVybmFsbHkgaW4gZHBkayBmb3IgdGVzdCBhcHBzLCBhbmQgYXBwbGljYXRpb24gZGV2 ZWxvcGVycyBhcmUgZnJlZQ0KPj4+IHRvIHVzZSBhIGJldHRlciBvbmUgaWYgdGhleSB3YW50Lg0K Pj4+IA0KPj4+IEJ1dCBhZGRpbmcgYW5vdGhlciBjbGkgbGliIGluIGRwZGsgZG9lcyBub3QgbWFr ZSBzZW5zZSB0byBtZS4gSSB0aGluaw0KPj4+IHRoZSBwcm9wZXIgZGlyZWN0aW9uIHdvdWxkIGJl IHRvIHJlbW92ZSB0aGUgY2xpIGZyb20gZHBkayBhbmQgdXNlIGENCj4+PiBnb29kIGNsaSBsaWJy YXJ5IHRoYXQgaXMgYXZhaWxhYmxlIGluIGRpc3Ryb3MuIEJ1dCBmb3IgdGhhdDoNCj4+PiAtIHdl IG5lZWQgdG8gZmluZCBvbmUNCj4+PiAtIHdlIG5lZWQgdG8gdXBkYXRlIGFsbCBleGFtcGxlcy90 ZXN0cyB0aGF0IHVzZSB0aGUgY21kbGluZSwgYW5kDQo+Pj4gdGhhdCB3aWxsIGJlIGEgbG90IG9m IHdvcmsNCj4+PiAtIHdlIG5lZWQgdG8gZW5oYW5jZSBkcGRrIGZyYW1ld29yayB0byBiZXR0ZXIg bWFuYWdlIGRlcHMgd2l0aA0KPj4+IGV4dGVybmFsIGxpYnJhcmllcw0KPiANCj4gSSBhZ3JlZSB3 ZSBjb3VsZCBjb252ZXJ0IHRlc3RwbWQgYW5kIGV4YW1wbGVzIHRvIGEgbmV3IENMSSBsaWIuDQo+ IFRoZW4gd2UgY291bGQgcmVtb3ZlIGxpYnJ0ZV9jbWRsaW5lIGZyb20gRFBESy4NCj4gDQo+PiBS ZXBsYWNpbmcgYXBwbGljYXRpb25zIHdpdGggYSBuZXcgQ0xJIGlzIGJhY2tncm91bmQgd29yayBh bmQgd2UgZG8gbm90IG5lZWQgdG8gdG9zcyBvdXQgY21kbGluZSB1bnRpbCBhbGwgaGF2ZSBiZWVu IGNvbnZlcnRlZCwgd2hpY2ggY291bGQgdGFrZSBhIHdoaWxlLiBXZSBjYW4gbW92ZSBjbWRsaW5l IG91dCBvZiBEUERLLCBidXQgdGhlIHByb2JsZW0gaXMgbW9zdCBvZiB0aGUgY3VycmVudCBhcHBs aWNhdGlvbnMgcmVxdWlyZSBjbWRsaW5lIGFuZCB0aGUgZGV2ZWxvcGVyIHdvdWxkIGJlIHJlcXVp cmVkIHRvIHB1bGwgRFBESyBhbmQgY21kbGluZS4gSSB3b3VsZCBzdWdnZXN0IHdlIGhhdmUgYm90 aCBpbiBEUERLIGFuZCBzbG93bHkgY29udmVydCB0aGUgYXBwcyB0byB1c2UgdGhlIG5ldyBDTEku DQo+PiANCj4+IElmIHdlIHNwbGl0IHVwIERQREsgcmVwbyBpbnRvIHNtYWxsZXIgcmVwb3MgYW5k IHVzZSBzb21ldGhpbmcgbGlrZSB0aGUg4oCYcmVwb+KAmSBjb21tYW5kIHdpdGggYSBjYXRhbG9n IGZpbGUgdGhlbiBpdCB3b3VsZCBiZSBtb3N0bHkgdHJhbnNwYXJlbnQgdG8gdGhlIGRldmVsb3Bl ciB3ZSBoYXZlIG11bHRpcGxlIHJlcG9zLiBVbnRpbCB0aGF0IGRheSBpdCBkb2VzIHNlZW0gbW9y ZSByZWFzb25hYmxlIHRvIGhhdmUgQ0xJIGluIERQREsgcmVwbywgYnV0IEkgYW0gd2lsbGluZyB0 byBoYXZlIGl0IGluIGEgZGlmZmVyZW50IHJlcG8gZm9yIG5vdy4NCj4gDQo+IEl0IGlzIHJlYXNv bm5hYmxlIGZvciBhbiBhcHBsaWNhdGlvbiB0byBoYXZlIHNvbWUgZGVwZW5kZW5jaWVzLg0KPiBJ dCBpcyBjb21tb25seSBtYW5hZ2VkIGluIHRocmVlIHdheXM6DQo+IC0gZGV0ZWN0IHRoZSBsaWIg b24gdGhlIHN5c3RlbQ0KPiAtIGRvd25sb2FkIHRoZSBsaWIgYXMgcGFydCBvZiB0aGUgYnVpbGQg cHJvY2Vzcw0KPiAtIGFzayB1c2VyIHRvIGRvd25sb2FkIGl0DQoNCkluIHRoaXMgY2FzZSB0aGUg ZGV2ZWxvcGVyIGNsb25lcyB0aGUgcmVwbyBpbnRvIHRoZSBEUERLL2xpYiBkaXJlY3RvcnkgYW5k IGVuYWJsZSBpdCB0byBiZSBidWlsdCB2aWEgZW5hYmxpbmcgdGhlIGNvbmZpZyBvcHRpb24gb3Ig c29tZSBvdGhlciBtZXRob2QgKFBhdGNoKS4gVGhlbiBidWlsZCBEUERLIGFzIG5vcm1hbCB0byBh bGxvdyBoaXMgYXBwbGljYXRpb25zIHRvIGRldGVjdCBhbmQgaW5jbHVkZSB0aGUgQ0xJIGNvZGUu DQoNCj4gDQo+Pj4gU28sIGluIG15IG9waW5pb24sIHRoZSBDTEkgeW91IGFyZSBwcm9wb3Npbmcg c2hvdWxkIGJlIGhvc3RlZCBvbiBhbm90aGVyDQo+Pj4gcmVwby4NCj4+IA0KPj4gSSB3aWxsIGNv bnRhY3QgVGhvbWFzIHRvIHNldHVwIGEgbmV3IHJlcG8gZm9yIHRoZSBDTEkuDQo+IA0KPiBXZSBo YWQgYSBwcml2YXRlIGRpc2N1c3Npb24uDQo+IEkgaGF2ZSB0cmllZCB0byBwdXQgaGVyZSBteSBj b25jbHVzaW9ucy4NCg0KUmVnYXJkcywNCktlaXRoDQoNCg==