From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 526DF231C for ; Tue, 25 Oct 2016 15:13:29 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Tue, 25 Oct 2016 15:13:27 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC359EA8BD@smartserver.smartshare.dk> In-Reply-To: <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] mbuf changes Thread-Index: AdIuvi7ijvZlEUT7TiqF79F6Tz0l+QAAULaA References: <98CBD80474FA8B44BF855DF32C47DC359EA8B1@smartserver.smartshare.dk> <7910CF2F-7087-4307-A9AC-DE0287104185@intel.com> <20161024162538.GA34988@bricha3-MOBL3.ger.corp.intel.com> <20161025093915.GJ5733@6wind.com> <98CBD80474FA8B44BF855DF32C47DC359EA8B7@smartserver.smartshare.dk> <20161025110444.GK5733@6wind.com> <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BA@smartserver.smartshare.dk> <20161025122008.GA54704@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BB@smartserver.smartshare.dk> <20161025124508.GA59784@bricha3-MOBL3.ger.corp.intel.com> <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" , "Bruce Richardson" Cc: "Adrien Mazarguil" , "Wiles, Keith" , , "Oleg Kuporosov" Subject: Re: [dpdk-dev] mbuf changes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Oct 2016 13:13:29 -0000 Q29tbWVudHMgaW5saW5lLg0KDQpNZWQgdmVubGlnIGhpbHNlbiAvIGtpbmQgcmVnYXJkcw0KLSBN b3J0ZW4gQnLDuHJ1cA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog ZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBPbGl2aWVyIE1h dHoNCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwgMjAxNiAyOjQ5IFBNDQo+IFRvOiBCcnVj ZSBSaWNoYXJkc29uOyBNb3J0ZW4gQnLDuHJ1cA0KPiBDYzogQWRyaWVuIE1hemFyZ3VpbDsgV2ls ZXMsIEtlaXRoOyBkZXZAZHBkay5vcmc7IE9sZWcgS3Vwb3Jvc292DQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIG1idWYgY2hhbmdlcw0KPiANCj4gDQo+IA0KPiBPbiAxMC8yNS8yMDE2IDAyOjQ1 IFBNLCBCcnVjZSBSaWNoYXJkc29uIHdyb3RlOg0KPiA+IE9uIFR1ZSwgT2N0IDI1LCAyMDE2IGF0 IDAyOjMzOjU1UE0gKzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBDb21tZW50cyBh dCB0aGUgZW5kLg0KPiA+Pg0KPiA+PiBNZWQgdmVubGlnIGhpbHNlbiAvIGtpbmQgcmVnYXJkcw0K PiA+PiAtIE1vcnRlbiBCcsO4cnVwDQo+ID4+DQo+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+Pj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNvbiBbbWFpbHRvOmJydWNlLnJpY2hhcmRz b25AaW50ZWwuY29tXQ0KPiA+Pj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwgMjAxNiAyOjIw IFBNDQo+ID4+PiBUbzogTW9ydGVuIEJyw7hydXANCj4gPj4+IENjOiBBZHJpZW4gTWF6YXJndWls OyBXaWxlcywgS2VpdGg7IGRldkBkcGRrLm9yZzsgT2xpdmllciBNYXR6Ow0KPiBPbGVnDQo+ID4+ PiBLdXBvcm9zb3YNCj4gPj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYgY2hhbmdlcw0K PiA+Pj4NCj4gPj4+IE9uIFR1ZSwgT2N0IDI1LCAyMDE2IGF0IDAyOjE2OjI5UE0gKzAyMDAsIE1v cnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+Pj4+IENvbW1lbnRzIGlubGluZS4NCj4gPj4+Pg0KPiA+ Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBkZXYgW21haWx0 bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIEJydWNlDQo+ID4+Pj4+IFJpY2hh cmRzb24NCj4gPj4+Pj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwgMjAxNiAxOjE0IFBNDQo+ ID4+Pj4+IFRvOiBBZHJpZW4gTWF6YXJndWlsDQo+ID4+Pj4+IENjOiBNb3J0ZW4gQnLDuHJ1cDsg V2lsZXMsIEtlaXRoOyBkZXZAZHBkay5vcmc7IE9saXZpZXIgTWF0ejsgT2xlZw0KPiA+Pj4+PiBL dXBvcm9zb3YNCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gbWJ1ZiBjaGFuZ2VzDQo+ ID4+Pj4+DQo+ID4+Pj4+IE9uIFR1ZSwgT2N0IDI1LCAyMDE2IGF0IDAxOjA0OjQ0UE0gKzAyMDAs IEFkcmllbiBNYXphcmd1aWwgd3JvdGU6DQo+ID4+Pj4+PiBPbiBUdWUsIE9jdCAyNSwgMjAxNiBh dCAxMjoxMTowNFBNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPj4+Pj4+PiBDb21t ZW50cyBpbmxpbmUuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBNZWQgdmVubGlnIGhpbHNlbiAvIGtp bmQgcmVnYXJkcw0KPiA+Pj4+Pj4+IC0gTW9ydGVuIEJyw7hydXANCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+IEZy b206IEFkcmllbiBNYXphcmd1aWwgW21haWx0bzphZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbV0N Cj4gPj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwgMjAxNiAxMTozOSBBTQ0KPiA+ Pj4+Pj4+PiBUbzogQnJ1Y2UgUmljaGFyZHNvbg0KPiA+Pj4+Pj4+PiBDYzogV2lsZXMsIEtlaXRo OyBNb3J0ZW4gQnLDuHJ1cDsgZGV2QGRwZGsub3JnOyBPbGl2aWVyIE1hdHo7DQo+ID4+Pj4+Pj4+ IE9sZWcgS3Vwb3Jvc292DQo+ID4+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYg Y2hhbmdlcw0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBPbiBNb24sIE9jdCAyNCwgMjAxNiBhdCAw NToyNTozOFBNICswMTAwLCBCcnVjZSBSaWNoYXJkc29uDQo+ID4+PiB3cm90ZToNCj4gPj4+Pj4+ Pj4+IE9uIE1vbiwgT2N0IDI0LCAyMDE2IGF0IDA0OjExOjMzUE0gKzAwMDAsIFdpbGVzLCBLZWl0 aA0KPiA+Pj4gd3JvdGU6DQo+ID4+Pj4+Pj4+IFsuLi5dDQo+ID4+Pj4+Pj4+Pj4+IE9uIE9jdCAy NCwgMjAxNiwgYXQgMTA6NDkgQU0sIE1vcnRlbiBCcsO4cnVwDQo+ID4+Pj4+Pj4+IDxtYkBzbWFy dHNoYXJlc3lzdGVtcy5jb20+IHdyb3RlOg0KPiA+Pj4+Pj4+PiBbLi4uXQ0KPiA+Pj4+DQo+ID4+ Pj4+Pj4+PiBPbmUgb3RoZXIgcG9pbnQgSSdsbCBtZW50aW9uIGlzIHRoYXQgd2UgbmVlZCB0byBo YXZlIGENCj4gPj4+Pj4+Pj4+IGRpc2N1c3Npb24gb24gaG93L3doZXJlIHRvIGFkZCBpbiBhIHRp bWVzdGFtcCB2YWx1ZSBpbnRvDQo+ID4+PiB0aGUNCj4gPj4+Pj4+Pj4+IG1idWYuIFBlcnNvbmFs bHksIEkgdGhpbmsgaXQgY2FuIGJlIGluIGEgdW5pb24gd2l0aCB0aGUNCj4gPj4+Pj4gc2VxdWVu Y2UNCj4gPj4+Pj4+Pj4+IG51bWJlciB2YWx1ZSwgYnV0IEkgYWxzbyBzdXNwZWN0IHRoYXQgMzIt Yml0cyBvZiBhDQo+ID4+PiB0aW1lc3RhbXANCj4gPj4+Pj4+Pj4+IGlzIG5vdCBnb2luZyB0byBi ZSBlbm91Z2ggZm9yDQo+ID4+Pj4+Pj4+IG1hbnkuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4g VGhvdWdodHM/DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IElmIHdlIGNvbnNpZGVyIHRoYXQgdGlt ZXN0YW1wIHJlcHJlc2VudGF0aW9uIHNob3VsZCB1c2UNCj4gPj4+Pj4gbmFub3NlY29uZA0KPiA+ Pj4+Pj4+PiBncmFudWxhcml0eSwgYSAzMi1iaXQgdmFsdWUgbWF5IGxpa2VseSB3cmFwIGFyb3Vu ZCB0b28NCj4gPj4+IHF1aWNrbHkNCj4gPj4+Pj4+Pj4gdG8gYmUgdXNlZnVsLiBXZSBjYW4gYWxz byBhc3N1bWUgdGhhdCBhcHBsaWNhdGlvbnMgcmVxdWVzdGluZw0KPiA+Pj4+Pj4+PiB0aW1lc3Rh bXBzIG1heSBjYXJlIG1vcmUgYWJvdXQgbGF0ZW5jeSB0aGFuIHRocm91Z2hwdXQsIE9sZWcNCj4g Pj4+Pj4gZm91bmQNCj4gPj4+Pj4+Pj4gdGhhdCB1c2luZyB0aGUgc2Vjb25kIGNhY2hlIGxpbmUg Zm9yIHRoaXMgcHVycG9zZSBoYWQgYQ0KPiA+Pj4+PiBub3RpY2VhYmxlIGltcGFjdCBbMV0uDQo+ ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICBbMV0gaHR0cDovL2RwZGsub3JnL21sL2FyY2hpdmVzL2Rl di8yMDE2LU9jdG9iZXIvMDQ5MjM3Lmh0bWwNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEkgYWdyZWUg d2l0aCBPbGVnIGFib3V0IHRoZSBsYXRlbmN5IHZzLiB0aHJvdWdocHV0IGltcG9ydGFuY2UNCj4g Pj4+Pj4+PiBmb3INCj4gPj4+Pj4gc3VjaCBhcHBsaWNhdGlvbnMuDQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiBJZiB5b3UgbmVlZCBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1wcywgY29uc2lkZXIgdGhl bSB0byBiZQ0KPiA+Pj4+PiBnZW5lcmF0ZWQgYnkgdGhlIE5JQyBSWCBkcml2ZXIsIHBvc3NpYmx5 IGJ5IHRoZSBoYXJkd2FyZSBpdHNlbGYNCj4gPj4+Pj4gKGh0dHA6Ly93M25ldy5uYXBhdGVjaC5j b20vZmVhdHVyZXMvdGltZS1wcmVjaXNpb24vaGFyZHdhcmUtdGltZS0NCj4gPj4+Pj4gc3RhbXAp LCBzbyB0aGUgdGltZXN0YW1wIGJlbG9uZ3MgaW4gdGhlIGZpcnN0IGNhY2hlIGxpbmUuIEFuZCBJ DQo+IGFtDQo+ID4+Pj4+IHByb3Bvc2luZyB0aGF0IGl0IHNob3VsZCBoYXZlIHRoZSBoaWdoZXN0 IHBvc3NpYmxlIGFjY3VyYWN5LA0KPiB3aGljaA0KPiA+Pj4+PiBtYWtlcyB0aGUgdmFsdWUgaGFy ZHdhcmUgZGVwZW5kZW50Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gRnVydGhlcm1vcmUsIEkgYW0g YXJndWluZyB0aGF0IHdlIGxlYXZlIGl0IHVwIHRvIHRoZQ0KPiA+Pj4gYXBwbGljYXRpb24NCj4g Pj4+Pj4+PiB0bw0KPiA+Pj4+PiBrZWVwIHRyYWNrIG9mIHRoZSBzbG93bHkgbW92aW5nIGJpdHMg KGkuZS4gY291bnRpbmcgd2hvbGUNCj4gc2Vjb25kcywNCj4gPj4+Pj4gaG91cnMgYW5kIGNhbGVu ZGFyIGRhdGUpIG91dCBvZiBiYW5kLCBzbyB3ZSBkb24ndCB1c2UgcHJlY2lvdXMNCj4gPj4+IHNw YWNlDQo+ID4+Pj4+IGluIHRoZSBtYnVmLiBUaGUgYXBwbGljYXRpb24gZG9lc24ndCBuZWVkIHRo ZSBOSUMgUlggZHJpdmVyJ3MNCj4gZmFzdA0KPiA+Pj4+PiBwYXRoIHRvIGNhcHR1cmUgd2hpY2gg ZGF0ZSAob3IgZXZlbiB3aGljaCBzZWNvbmQpIGEgcGFja2V0IHdhcw0KPiA+Pj4+PiByZWNlaXZl ZC4gWWVzLCBpdCBhZGRzIGNvbXBsZXhpdHkgdG8gdGhlIGFwcGxpY2F0aW9uLCBidXQgd2UNCj4g Y2FuJ3QNCj4gPj4+Pj4gc2V0IGFzaWRlIDY0IGJpdCBmb3IgYSBnZW5lcmljIHRpbWVzdGFtcC4g T3IgYXMgYSB3ZWlyZCB0cmFkZW9mZjoNCj4gPj4+Pj4gUHV0IHRoZSBmYXN0IG1vdmluZyAzMiBi aXQgaW4gdGhlIGZpcnN0IGNhY2hlIGxpbmUgYW5kIHRoZSBzbG93DQo+ID4+Pj4+IG1vdmluZyAz MiBiaXQgaW4gdGhlIHNlY29uZCBjYWNoZSBsaW5lLCBhcyBhIHBsYWNlaG9sZGVyIGZvciB0aGUN Cj4gPj4+IGFwcGxpY2F0aW9uIHRvIGZpbGwgb3V0IGlmIG5lZWRlZC4NCj4gPj4+Pj4gWWVzLCBp dCBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcyB0byBjaGVjayB0aGUgdGltZSBhbmQN Cj4gPj4+Pj4gdXBkYXRlIGl0cyB2YXJpYWJsZSBob2xkaW5nIHRoZSBzbG93IG1vdmluZyB0aW1l IG9uY2UgZXZlcnkNCj4gc2Vjb25kDQo+ID4+Pj4+IG9yIHNvOyBidXQgdGhhdCBzaG91bGQgYmUg ZG9hYmxlIHdpdGhvdXQgc2lnbmlmaWNhbnQgZWZmb3J0Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRo YXQncyBhIGdvb2QgcG9pbnQsIGhvd2V2ZXIgd2l0aG91dCBhIDY0IGJpdCB2YWx1ZSwgZWxhcHNl ZA0KPiB0aW1lDQo+ID4+Pj4+PiBiZXR3ZWVuIHR3byBhcmJpdHJhcnkgbWJ1ZnMgY2Fubm90IGJl IG1lYXN1cmVkIHJlbGlhYmx5IGR1ZSB0bw0KPiA+Pj4gbm90DQo+ID4+Pj4+PiBlbm91Z2ggY29u dGV4dCwgb25lIHdheSBvciBhbm90aGVyIHRoZSBsb3cgcmVzb2x1dGlvbiB2YWx1ZSBpcw0KPiA+ Pj4+Pj4gYWxzbw0KPiA+Pj4+PiBuZWVkZWQuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT2J2aW91c2x5 IGxhdGVuY3ktc2Vuc2l0aXZlIGFwcGxpY2F0aW9ucyBhcmUgdW5saWtlbHkgdG8gcGVyZm9ybQ0K PiA+Pj4+Pj4gbGVuZ3RoeSBidWZmZXJpbmcgYW5kIHJlcXVpcmUgdGhpcyBidXQgSSdtIG5vdCBz dXJlIGFib3V0IGFsbA0KPiB0aGUNCj4gPj4+Pj4+IHBvc3NpYmxlIHVzZS1jYXNlcy4gQ29uc2lk ZXJpbmcgbWFueSBOSUNzIGV4cG9zZSA2NCBiaXQNCj4gPj4+IHRpbWVzdGFwcywNCj4gPj4+Pj4+ IEkgc3VnZ2VzdCB3ZSBkbyBub3QgdHJ1bmNhdGUgdGhlbS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJ J20gbm90IGEgZmFuIG9mIHRoZSB3ZWlyZCB0cmFkZW9mZiBlaXRoZXIsIFBNRHMgd2lsbCBiZSB0 ZW1wdGVkDQo+ID4+Pj4+PiB0byBmaWxsIHRoZSBleHRyYSAzMiBiaXRzIHdoZW5ldmVyIHRoZXkg Y2FuIGFuZCBuZWdhdGUgdGhlDQo+ID4+Pj4+PiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBvZiB0 aGUgZmlyc3QgY2FjaGUgbGluZS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSB3b3VsZCB0ZW5kIHRvIGFn cmVlLCBhbmQgSSBkb24ndCByZWFsbHkgc2VlIGFueSBjb252ZW5pZW50IHdheQ0KPiA+Pj4+PiB0 byBhdm9pZCBwdXR0aW5nIGluIGEgNjQtYml0IGZpZWxkIGZvciB0aGUgdGltZXN0YW1wIGluIGNh Y2hlLQ0KPiBsaW5lIDAuDQo+ID4+Pj4+IElmIHdlIGFyZSBvayB3aXRoIGhhdmluZyB0aGlzIG92 ZXJsYXAvcGFydGlhbGx5IG92ZXJsYXAgd2l0aA0KPiA+Pj4+PiBzZXF1ZW5jZSBudW1iZXIsIGl0 IHdpbGwgdXNlIHVwIGFuIGV4dHJhIDRCIG9mIHN0b3JhZ2UgaW4gdGhhdA0KPiA+Pj4gY2FjaGVs aW5lLg0KPiA+Pj4+DQo+ID4+Pj4gSSBhZ3JlZSBhYm91dCB0aGUgbGFjayBvZiBjb252ZW5pZW5j ZSEgQW5kIEFkcmllbiBjZXJ0YWlubHkgaGFzIGENCj4gPj4+IHBvaW50IGFib3V0IFBNRCB0ZW1w dGF0aW9ucy4NCj4gPj4+Pg0KPiA+Pj4+IEhvd2V2ZXIsIEkgc3RpbGwgZG9uJ3QgdGhpbmsgdGhh dCBhIE5JQ3MgYWJpbGl0eSB0byBkYXRlLXN0YW1wIGENCj4gPj4+IHBhY2tldCBpcyBzdWZmaWNp ZW50IHJlYXNvbiB0byBwdXQgYSBkYXRlLXN0YW1wIGluIGNhY2hlIGxpbmUgMCBvZg0KPiA+Pj4g dGhlIG1idWYuIFN0b3Jpbmcgb25seSB0aGUgZmFzdCBtb3ZpbmcgMzIgYml0IGluIGNhY2hlIGxp bmUgMCBzZWVtcw0KPiA+Pj4gbGlrZSBhIGdvb2QgY29tcHJvbWlzZSB0byBtZS4NCj4gPj4+Pg0K PiA+Pj4+IE1heWJlIHlvdSBjYW4gZmluZCBqdXN0IG9uZSBtb3JlIGJ5dGUsIHNvIGl0IGNhbiBo b2xkIDE3IG1pbnV0ZXMNCj4gPj4+PiB3aXRoIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gKEknbSBq b2tpbmchKQ0KPiA+Pj4+DQo+ID4+Pj4gUGxlYXNlIGRvbid0IHNhY3JpZmljZSB0aGUgc2VxdWVu Y2UgbnVtYmVyIGZvciB0aGUNCj4gPj4+PiBzZWNvbmRzL2hvdXJzL2RheXMNCj4gPj4+IHBhcnQg YSB0aW1lc3RhbXAuIE1heWJlIGl0IGNvdWxkIGJlIGNvbmZpZ3VyYWJsZSB0byB1c2UgYSAzMiBi aXQgb3INCj4gPj4+IDY0IGJpdCB0aW1lc3RhbXAuDQo+ID4+Pj4NCj4gPj4+IERvIHlvdSBzZWUg Ym90aCB0aW1lc3RhbXAgYW5kIHNlcXVlbmNlIG51bWJlcnMgYmVpbmcgdXNlZCB0b2dldGhlcj8N Cj4gPj4+IEkgd291bGQgaGF2ZSB0aG91Z2h0IHRoYXQgYXBwcyB3b3VsZCBlaXRoZXIgdXNlIG9u ZSBvciB0aGUgb3RoZXI/DQo+ID4+PiBIb3dldmVyLCB5b3VyIHN1Z2dlc3Rpb24gaXMgd29ya2Fi bGUgaW4gYW55IGNhc2UsIHRvIGFsbG93IHRoZQ0KPiA+Pj4gc2VxdWVuY2UgbnVtYmVyIHRvIG92 ZXJsYXAganVzdCB0aGUgaGlnaCAzMiBiaXRzIG9mIHRoZSB0aW1lc3RhbXAsDQo+ID4+PiByYXRo ZXIgdGhhbiB0aGUgbG93Lg0KPiA+Pg0KPiA+PiBJbiBvdXIgY2FzZSwgSSBjYW4gZm9yZXNlZSBz ZXF1ZW5jZSBudW1iZXJzIHVzZWQgZm9yIHBhY2tldA0KPiBwcm9jZXNzaW5nIGFuZCB0aW1lc3Rh bXBzIGZvciB0aW1pbmcgYW5hbHlzaXMgKGFuZCBwb3NzaWJseSBmb3IgcGFja2V0DQo+IGNhcHR1 cmluZywgd2hlbiBiZWluZyB1c2VkKS4gRm9yIHRpbWluZyBhbmFseXNpcywgd2UgZG9u4oCZdCBu ZWVkIGxvbmcNCj4gZHVyYXRpb25zLCBlLmcuIDQgc2Vjb25kcyB3aXRoIDMyIGJpdCBuYW5vc2Vj b25kIHJlc29sdXRpb24gc3VmZmljZXMuDQo+IEFuZCBmb3IgcGFja2V0IGNhcHR1cmluZyB3ZSBh cmUgcGVyZmVjdGx5IGNhcGFibGUgb2YgYWRkaW5nIHRoZSBzbG93bHkNCj4gbW92aW5nIDMyIGJp dCBvZiB0aGUgdGltZXN0YW1wIHRvIG91ciBvdXRwdXQgZGF0YSBzdHJlYW0gd2l0aG91dA0KPiBm ZXRjaGluZyBpdCBmcm9tIHRoZSBtYnVmLg0KPiA+Pg0KPiANCj4gV2Ugc2hvdWxkIGtlZXAgaW4g bWluZCB0aGF0IHRvZGF5IHdlIGhhdmUgdGhlIHNlcW4gZmllbGQgYnV0IGl0IGlzIG5vdA0KPiB1 c2VkIGJ5IGFueSBQTUQuIEluIGNhc2UgaXQgaXMgaW1wbGVtZW50ZWQsIHdvdWxkIGl0IGJlIGEg cGVyLXF1ZXVlDQo+IHNlcXVlbmNlIG51bWJlcj8gSXMgaXQgdXNlZnVsIGZyb20gYW4gYXBwbGlj YXRpb24gdmlldz8NCj4gDQo+IFRoaXMgZmllbGQgaXMgb25seSB1c2VkIGJ5IHRoZSBsaWJydGVf cmVvcmRlciBsaWJyYXJ5LCBhbmQgaW4gbXkNCj4gb3Bpbmlvbiwgd2Ugc2hvdWxkIGNvbnNpZGVy IG1vdmluZyBpdCBpbiB0aGUgc2Vjb25kIGNhY2hlIGxpbmUgc2luY2UgaXQNCj4gaXMgbm90IGZp bGxlZCBieSB0aGUgUE1ELg0KDQpPdXIgRFBESyBwcm9qZWN0IGlzIG5vdCB5ZXQgc3VmZmljaWVu dGx5IHByb2dyZXNzZWQgdG8gYmUgYWJsZSB0byBwcm92aWRlIHF1YWxpdHkgZmVlZGJhY2sgYWJv dXQgdGhpcy4NCg0KPiA+IEZvciB0aGUgMzItYml0IHRpbWVzdGFtcCBjYXNlLCBpdCBtaWdodCBi ZSB1c2VmdWwgdG8gaGF2ZSBhDQo+ID4gcmlnaHQtc2hpZnQgdmFsdWUgcGFzc2VkIGluIHRvIHRo ZSBldGhkZXYgZHJpdmVyLiBJZiB3ZSBhc3N1bWUgYSBOSUMNCj4gPiB3aXRoIG5hbm9zZWNvbmQg cmVzb2x1dGlvbiwgKG9yIFRTQyB2YWx1ZSB3aXRoIHJlc29sdXRpb24gb2YgdGhhdA0KPiA+IG9y ZGVyIG9mIG1hZ25pdHVkZSksIHRoZW4gdGhlIGFwcCBjYW4gY2hvb3NlIHRvIGhhdmUgMSBucyBy ZXNvbHV0aW9uDQo+ID4gd2l0aCA0IHNlY29uZCB3cmFwYXJvdW5kLCBvciBhbHRlcm5hdGl2ZWx5 IDRucyByZXNvbHV0aW9uIHdpdGggMTYNCj4gPiBzZWNvbmQgd3JhcGFyb3VuZCwgb3IgZXZlbiBt aWNyb3NlY29uZCByZXNvbHV0aW9uIHdpdGggd3JhcCBhcm91bmQgb2YNCj4gb3ZlciBhbiBob3Vy Lg0KPiA+IFRoZSBjb3N0IGlzIG9idmlvdXNseSBqdXN0IGEgc2hpZnQgb3AgaW4gdGhlIGRyaXZl ciBjb2RlIHBlciBwYWNrZXQgLQ0KPiA+IGhvcGVmdWxseSB3aXRoIG11bHRpcGxlIHBhY2tldHMg ZG9uZSBhdCBhIHRpbWUgdXNpbmcgdmVjdG9yDQo+IG9wZXJhdGlvbnMuDQo+IA0KPiANCj4gQWJv dXQgdGhlIHRpbWVzdGFtcCwgd2UgY2FuIG1hbmFnZSB0byBmaW5kIDY0IGJpdHMgaW4gdGhlIGZp cnN0IGNhY2hlDQo+IGxpbmUsIHdpdGhvdXQgc2FjcmlmeWluZyBhbnkgZmllbGQgd2UgaGF2ZSB0 b2RheS4gVGhlIHF1ZXN0aW9uIGlzIG1vcmUNCj4gZm9yIHRoZSBmaWVsZHMgd2UgbWF5IHdhbnQg dG8gYWRkIGxhdGVyLg0KPiANCj4gVG8gYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiBvZiB0aGUgc2l6 ZSBvZiB0aGUgdGltZXN0YW1wLCB0aGUgZmlyc3QNCj4gcXVlc3Rpb24gaXMgdG8ga25vdyB3aGF0 IGlzIHRoZSBwcmVjaXNpb24gcmVxdWlyZWQgZm9yIHRoZSBhcHBsaWNhdGlvbnMNCj4gdXNpbmcg aXQ/DQoNCkluIG91ciBhcHBsaWNhdGlvbiwgbWljcm9zZWNvbmQgcmVzb2x1dGlvbiBwcm9iYWJs eSBzdWZmaWNlcywgYWx0aG91Z2ggd2UgZG8gdXNlIG5hbm9zZWNvbmRzIHRvZGF5LiBBbmQgYSB3 cmFwcGluZyBjb3VudGVyIGlzIGZpbmUgZm9yIHVzLCBzbyB3ZSBkb27igJl0IG5lZWQgdGhlIHNs b3cgbW92aW5nIGJpdHMuDQoNCkZvciBkZWRpY2F0ZWQgcGFja2V0IGNhcHR1cmUgYXBwbGljYXRp b25zLCBwbGVhc2UgcmVmZXIgdG8gZS5nLiBOYXBhdGVjaCdzIHJlYXNvbmluZzogaHR0cDovL3cz bmV3Lm5hcGF0ZWNoLmNvbS9mZWF0dXJlcy90aW1lLXByZWNpc2lvbi9oYXJkd2FyZS10aW1lLXN0 YW1wDQoNCj4gSSBkb24ndCBxdWl0ZSBsaWtlIHRoZSBpZGVhIG9mIHNwbGl0dGluZyB0aGUgdGlt ZXN0YW1wIGluIHRoZSAyIGNhY2hlDQo+IGxpbmVzLCBJIHRoaW5rIGl0IHdvdWxkIG5vdCBiZSBl YXN5IHRvIHVzZS4NCj4gDQo+IA0KPiBPbGl2aWVyDQoNCg==