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 D219BA04B5; Fri, 6 Nov 2020 13:23:47 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 997D76966; Fri, 6 Nov 2020 13:23:45 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id A80F666DA for ; Fri, 6 Nov 2020 13:23:44 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 6 Nov 2020 13:23:42 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C61400@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free Thread-Index: AQHWssw9/Ru+bbJv2UmxCtlz1ORQn6m4ql1ggAB/kQCAAAtLgIAADCkAgAAdJVCAABslAIAACA7wgAAGsgCAAAdYsIAAKuEwgAB7cwCAAIC40IAADxOAgAAIWICAABSkgIAAAN2AgAAaqlCAAAjKkA== References: <20201105123150.GP1898@platinum> <20201105132438.GS1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613F7@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C613F8@smartserver.smartshare.dk> <20201106082053.GZ1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613FA@smartserver.smartshare.dk> <20201106100437.GA1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613FF@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Ananyev, Konstantin" , "Olivier Matz" Cc: "Andrew Rybchenko" , Subject: Re: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free 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" PiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGluIFttYWlsdG86a29uc3RhbnRpbi5hbmFueWV2QGlu dGVsLmNvbV0NCj4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciA2LCAyMDIwIDEyOjU0IFBNDQo+IA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gSGkgT2xpdmllciwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g bS0+bmJfc2VnIG11c3QgYmUgcmVzZXQgb24gbWJ1ZiBmcmVlDQo+ID4gPiB3aGF0ZXZlcg0KPiA+ ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiB2YWx1ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gb2YgbS0+ bmV4dCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBiZWNhdXNlIGl0IGNhbiBo YXBwZW4gdGhhdCBtLT5uYl9zZWcgaXMNCj4gIT0NCj4gPiA+IDEuDQo+ID4gPiA+ID4gRm9yDQo+ ID4gPiA+ID4gPiA+ID4gPiBpbnN0YW5jZSBpbiB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gY2FzZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgbTEgPSBydGVfcGt0bWJ1Zl9hbGxvYyht cCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBydGVfcGt0bWJ1Zl9hcHBl bmQobTEsIDUwMCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBtMiA9IHJ0 ZV9wa3RtYnVmX2FsbG9jKG1wKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAg IHJ0ZV9wa3RtYnVmX2FwcGVuZChtMiwgNTAwKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+PiAgIHJ0ZV9wa3RtYnVmX2NoYWluKG0xLCBtMik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gICBtMCA9IHJ0ZV9wa3RtYnVmX2FsbG9jKG1wKTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgIHJ0ZV9wa3RtYnVmX2FwcGVuZChtMCwgNTAwKTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgIHJ0ZV9wa3RtYnVmX2NoYWluKG0wLCBt MSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4+PiBBcyBydGVfcGt0bWJ1Zl9jaGFpbigpIGRvZXMgbm90IHJlc2V0DQo+ ID4gPiBuYl9zZWcgaW4NCj4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IGluaXRpYWwg bTENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBzZWdtZW50ICh0aGlzIGlzIG5v dCByZXF1aXJlZCksIGFmdGVyDQo+IHRoaXMNCj4gPiA+IGNvZGUNCj4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gPiA+IG1idWYgY2hhaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+PiBoYXZlIDMgc2VnbWVudHM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g ICAtIG0wOiBuZXh0PW0xLCBuYl9zZWc9Mw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g Pj4+ICAgLSBtMTogbmV4dD1tMiwgbmJfc2VnPTINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+PiAgIC0gbTI6IG5leHQ9TlVMTCwgbmJfc2VnPTENCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IEZyZWVpbmcg dGhpcyBtYnVmIGNoYWluIHdpbGwgbm90DQo+IHJlc3RvcmUNCj4gPiA+ID4gPiBuYl9zZWc9MQ0K PiA+ID4gPiA+ID4gPiBpbg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHNlY29uZA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IHNlZ21lbnQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gSG1tLCBub3Qgc3Vy ZSB3aHkgaXMgdGhhdD8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IFlvdSBhcmUg dGFsa2luZyBhYm91dCBmcmVlaW5nIG0xLCByaWdodD8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4+IHJ0ZV9wa3RtYnVmX3ByZWZyZWVfc2VnKHN0cnVjdCBydGVfbWJ1Zg0KPiAqbSkN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+IAkuLi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IAlpZiAo bS0+bmV4dCAhPSBOVUxMKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiAgICAg ICAgICAgICAgICAgICAgICAgICBtLT5uZXh0ID0gTlVMTDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIG0tPm5iX3NlZ3MgPSAxOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgICAgICAgICAgICAgIH0NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ PiBtMS0+bmV4dCAhPSBOVUxMLCBzbyBpdCB3aWxsIGVudGVyIHRoZQ0KPiBpZigpDQo+ID4gPiA+ ID4gYmxvY2ssDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBhbmQgd2lsbCByZXNl dCBib3RoIG5leHQgYW5kIG5iX3NlZ3MuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ PiBXaGF0IEkgYW0gbWlzc2luZyBoZXJlPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g Pj4gVGhpbmtpbmcgaW4gbW9yZSBnZW5lcmljIHdheSwgdGhhdA0KPiBjaGFuZ2U6DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiAgLQkJaWYgKG0tPm5leHQgIT0gTlVMTCkgew0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gIC0JCQltLT5uZXh0ID0gTlVMTDsNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ICAtCQkJbS0+bmJfc2VncyA9IDE7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiAgLQkJfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPj4gICsJCW0tPm5leHQgPSBOVUxMOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPj4gICsJCW0tPm5iX3NlZ3MgPSAxOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBaCwgc29ycnkuIEkgb3ZlcnNpbXBs aWZpZWQgdGhlIGV4YW1wbGUNCj4gYW5kDQo+ID4gPiBub3cNCj4gPiA+ID4gPiBpdA0KPiA+ID4g PiA+ID4gPiBkb2VzDQo+ID4gPiA+ID4gPiA+ID4gPiBub3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gc2hvdyB0aGUgaXNzdWUuLi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGZ1bGwgZXhhbXBsZSBh bHNvIGFkZHMgYSBzcGxpdCgpIHRvDQo+IGJyZWFrDQo+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4g bWJ1Zg0KPiA+ID4gPiA+ID4gPiA+ID4gY2hhaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gYmV0d2VlbiBtMSBhbmQgbTIuIFRoZSBraW5kIG9mIHRoaW5nIHRoYXQNCj4gPiA+IHdv dWxkDQo+ID4gPiA+ID4gYmUNCj4gPiA+ID4gPiA+ID4gZG9uZQ0KPiA+ID4gPiA+ID4gPiA+ID4g Zm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNvZnR3YXJlIFRDUCBzZWdtZW50 YXRpb24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSWYgc28sIG1heSBi ZSB0aGUgcmlnaHQgc29sdXRpb24gaXMgdG8gY2FyZQ0KPiA+ID4gYWJvdXQNCj4gPiA+ID4gPiA+ ID4gbmJfc2Vncw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2hlbiBuZXh0IGlzIHNl dCB0byBOVUxMIG9uIHNwbGl0PyBBbnkNCj4gcGxhY2UNCj4gPiA+IHdoZW4NCj4gPiA+ID4gPiBu ZXh0DQo+ID4gPiA+ID4gPiA+IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiBzZXQNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IHRvIE5VTEwuIEp1c3QgdG8ga2VlcCB0aGUgb3B0aW1pemF0aW9u IGluIGENCj4gPiA+IG1vcmUNCj4gPiA+ID4gPiA+ID4gZ2VuZXJpYw0KPiA+ID4gPiA+ID4gPiA+ ID4gcGxhY2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHByb2JsZW0gd2l0aCB0aGF0 IGFwcHJvYWNoIGlzIHRoYXQgdGhlcmUNCj4gYXJlDQo+ID4gPiA+ID4gYWxyZWFkeQ0KPiA+ID4g PiA+ID4gPiA+ID4gc2V2ZXJhbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGV4aXN0aW5n IHNwbGl0KCkgb3IgdHJpbSgpIGltcGxlbWVudGF0aW9ucyBpbg0KPiA+ID4gPiA+IGRpZmZlcmVu dA0KPiA+ID4gPiA+ID4gPiBEUERLLQ0KPiA+ID4gPiA+ID4gPiA+ID4gYmFzZWQNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhdGlvbnMuIEZvciBpbnN0YW5jZSwgd2UgaGF2ZSBz b21lIGluDQo+ID4gPiA+ID4gNldJTkRHYXRlLiBJZg0KPiA+ID4gPiA+ID4gPiB3ZQ0KPiA+ID4g PiA+ID4gPiA+ID4gZm9yY2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhdGlv bnMgdG8gc2V0IG5iX3NlZyB0byAxIHdoZW4NCj4gcmVzZXR0aW5nDQo+ID4gPiBuZXh0LA0KPiA+ ID4gPiA+IGl0DQo+ID4gPiA+ID4gPiA+IGhhcw0KPiA+ID4gPiA+ID4gPiA+ID4gdG8gYmUNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkb2N1bWVudGVkIGJlY2F1c2UgaXQgaXMgbm90IHN0 cmFpZ2h0Zm9yd2FyZC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gSSB0aGluayBpdCBpcyBiZXR0ZXIgdG8gZ28gdGhhdCB3YXkuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IEZyb20gbXkgcGVyc3BlY3RpdmUgaXQgc2VlbXMgbmF0dXJhbCB0 byByZXNldA0KPiA+ID4gbmJfc2VnIGF0DQo+ID4gPiA+ID4gPiA+IHNhbWUNCj4gPiA+ID4gPiA+ ID4gPiA+IHRpbWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2UgcmVzZXQgbmV4dCwgb3Ro ZXJ3aXNlIGluY29uc2lzdGVuY3kgd2lsbA0KPiBvY2N1ci4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBXaGlsZSBpdCBpcyBub3QgZXhwbGljaXRseSBz dGF0ZWQgZm9yIG5iX3NlZ3MsIHRvDQo+IG1lDQo+ID4gPiBpdA0KPiA+ID4gPiA+IHdhcw0KPiA+ ID4gPiA+ID4gPiBjbGVhcg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhhdA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gbmJfc2VncyBpcyBvbmx5IHZhbGlkIGluIHRoZSBmaXJzdCBzZWdtZW50LCBsaWtl DQo+IGZvcg0KPiA+ID4gbWFueQ0KPiA+ID4gPiA+ID4gPiBmaWVsZHMNCj4gPiA+ID4gPiA+ID4g PiA+IChwb3J0LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb2xfZmxhZ3MsIHZsYW4sIHJzcywg Li4uKS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJ ZiB3ZSBzYXkgdGhhdCBuYl9zZWdzIGhhcyB0byBiZSB2YWxpZCBpbiBhbnkNCj4gPiA+IHNlZ21l bnRzLA0KPiA+ID4gPiA+IGl0DQo+ID4gPiA+ID4gPiA+IG1lYW5zDQo+ID4gPiA+ID4gPiA+ID4g PiB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjaGFpbigpIG9yIHNwbGl0KCkgd2lsbCBo YXZlIHRvIHVwZGF0ZSBpdCBpbiBhbGwNCj4gPiA+ID4gPiBzZWdtZW50cywNCj4gPiA+ID4gPiA+ ID4gd2hpY2gNCj4gPiA+ID4gPiA+ID4gPiA+IGlzIG5vdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gZWZmaWNpZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gV2h5IGluIGFsbD8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBXZSBjYW4gc3RhdGUgdGhhdCBu Yl9zZWdzIG9uIG5vbi1maXJzdCBzZWdtZW50DQo+IHNob3VsZA0KPiA+ID4gPiA+IGFsd2F5cw0K PiA+ID4gPiA+ID4gPiBlcXVhbA0KPiA+ID4gPiA+ID4gPiA+ID4gMS4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBBcyBJIHVuZGVyc3RhbmQgaW4gdGhhdCBjYXNlLCBib3RoIHNwbGl0KCkgYW5kDQo+ IGNoYWluKCkNCj4gPiA+IGhhdmUNCj4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gdXBk YXRlIG5iX3NlZ3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvbmx5IGZvciBoZWFkIG1idWZzLCBy ZXN0IG9uZXMgd2lsbCByZW1haW4NCj4gdW50b3VjaGVkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiBXZWxsLCBhbnl3YXksIEkgdGhpbmsgaXQncyBzdHJhbmdlIHRv IGhhdmUgYQ0KPiBjb25zdHJhaW50DQo+ID4gPiBvbiBtLQ0KPiA+ID4gPiA+ID4gPiA+bmJfc2Vn cw0KPiA+ID4gPiA+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG5vbi1maXJzdCBz ZWdtZW50LiBXZSBkb24ndCBoYXZlIHRoYXQga2luZCBvZg0KPiBjb25zdHJhaW50cw0KPiA+ID4g Zm9yDQo+ID4gPiA+ID4gPiA+IG90aGVyDQo+ID4gPiA+ID4gPiA+ID4gPiBmaWVsZHMuDQo+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVHJ1ZSwgd2UgZG9uJ3QuIEJ1dCB0aGlz IGlzIG9uZSBvZiB0aGUgZmllbGRzIHdlDQo+IGNvbnNpZGVyDQo+ID4gPiA+ID4gY3JpdGljYWwN Cj4gPiA+ID4gPiA+ID4gPiA+IGZvciBwcm9wZXIgd29yayBvZiBtYnVmIGFsbG9jL2ZyZWUgbWVj aGFuaXNtLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+IEkgYW0gbm90IHN1cmUgdGhhdCByZXF1aXJpbmcgbS0+bmJfc2VncyA9PSAxIG9uIG5vbi1m aXJzdA0KPiA+ID4gPiA+IHNlZ21lbnRzDQo+ID4gPiA+ID4gPiA+IHdpbGwgcHJvdmlkZSBhbnkg YmVuZWZpdHMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEl0IHdvdWxkIG1ha2UgdGhp cyBwYXRjaCB1bm5lZWRlZC4NCj4gPiA+ID4gPiA+ID4gU28sIGZvciBkaXJlY3QsIG5vbi1zZWdt ZW50ZWQgbWJ1ZnMgIHBrdG1idWZfZnJlZSgpIHdpbGwNCj4gcmVtYWluDQo+ID4gPiA+ID4gd3Jp dGUtDQo+ID4gPiA+ID4gPiA+IGZyZWUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSSBzZWUu IFRoZW4gSSBhZ3JlZSB3aXRoIEtvbnN0YW50aW4gdGhhdCBhbHRlcm5hdGl2ZQ0KPiBzb2x1dGlv bnMNCj4gPiA+IHNob3VsZA0KPiA+ID4gPiA+IGJlIGNvbnNpZGVyZWQuDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGhlIGJlbmVmaXQgcmVnYXJkaW5nIGZyZWUoKSdpbmcgbm9uLXNlZ21lbnRl ZCBtYnVmcyAtIHdoaWNoDQo+IGlzIGENCj4gPiA+ID4gPiB2ZXJ5IGNvbW1vbiBvcGVyYXRpb24g LSBjZXJ0YWlubHkgb3V0d2VpZ2hzIHRoZSBjb3N0IG9mDQo+IHJlcXVpcmluZw0KPiA+ID4gPiA+ IHNwbGl0KCkvY2hhaW4oKSBvcGVyYXRpb25zIHRvIHNldCB0aGUgbmV3IGhlYWQgbWJ1ZidzIG5i X3NlZ3MgPQ0KPiAxLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE5vbmV0aGVsZXNzLCB0aGUg YnVnIG5lZWRzIHRvIGJlIGZpeGVkIHNvbWVob3cuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g SWYgd2UgY2FuJ3QgY29tZSB1cCB3aXRoIGEgYmV0dGVyIHNvbHV0aW9uIHRoYXQgZG9lc24ndCBi cmVhaw0KPiB0aGUNCj4gPiA+ID4gPiBBQkksIHdlIGFyZSBmb3JjZWQgdG8gYWNjZXB0IHRoZSBw YXRjaC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBVbmxlc3MgdGhlIHRlY2hib2FyZCBhY2Nl cHRzIHRvIGJyZWFrIHRoZSBBQkkgaW4gb3JkZXIgdG8NCj4gYXZvaWQNCj4gPiA+IHRoZQ0KPiA+ ID4gPiA+IHBlcmZvcm1hbmNlIGNvc3Qgb2YgdGhpcyBwYXRjaC4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IERpZCBzb21lb25lIG5vdGljZSBhIHBlcmZvcm1hbmNlIGRyb3Agd2l0aCB0aGlzIHBhdGNo Pw0KPiA+ID4gPiA+IE9uIG15IHNpZGUsIEkgZG9uJ3Qgc2VlIGFueSByZWdyZXNzaW9uIG9uIGEg TDMgdXNlIGNhc2UuDQo+ID4gPiA+DQo+ID4gPiA+IEkgYW0gYWZyYWlkIHRoYXQgdGhlIERQREsg cGVyZm9ybWFuY2UgcmVncmVzc2lvbiB0ZXN0cyBhcmUgYmFzZWQNCj4gb24NCj4gPiA+IFRYIGlt bWVkaWF0ZWx5IGZvbGxvd2luZyBSWCwgc28gY2FjaGUgbWlzc2VzIGluIFRYIG1heSBnbyBieQ0K PiB1bm5vdGljZWQNCj4gPiA+IGJlY2F1c2UgUlggd2FybWVkIHVwIHRoZSBjYWNoZSBmb3IgVFgg YWxyZWFkeS4gQW5kIHNpbWlsYXJseSBmb3IgUlgNCj4gPiA+IHJldXNpbmcgbWJ1ZnMgdGhhdCBo YXZlIGJlZW4gd2FybWVkIHVwIGJ5IHRoZSBwcmVjZWRpbmcgZnJlZSgpIGF0DQo+IFRYLg0KPiA+ ID4gPg0KPiA+ID4gPiBQbGVhc2UgY29uc2lkZXIgdGVzdGluZyB0aGUgcGVyZm9ybWFuY2UgZGlm ZmVyZW5jZSB3aXRoIHRoZSBtYnVmDQo+ID4gPiBiZWluZyBjb21wbGV0ZWx5IGNvbGQgYXQgVFgs IGFuZCBnb2luZyBjb21wbGV0ZWx5IGNvbGQgYWdhaW4gYmVmb3JlDQo+ID4gPiBiZWluZyByZXVz ZWQgZm9yIFJYLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTGV0J3Mgc3VtYXJpemU6 IHNwbGl0dGluZyBhIG1idWYgY2hhaW4gYW5kIGZyZWVpbmcgaXQgY2F1c2VzDQo+ID4gPiBzdWJz ZXF1ZW50DQo+ID4gPiA+ID4gbWJ1Zg0KPiA+ID4gPiA+IGFsbG9jYXRpb24gdG8gcmV0dXJuIGEg bWJ1ZiB3aGljaCBpcyBub3QgY29ycmVjdGx5IGluaXRpYWxpemVkLg0KPiA+ID4gVGhlcmUNCj4g PiA+ID4gPiBhcmUgMg0KPiA+ID4gPiA+IG9wdGlvbnMgdG8gZml4IGl0Og0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gMS8gY2hhbmdlIHRoZSBtYnVmIGZyZWUgZnVuY3Rpb24gKHRoaXMgcGF0Y2gpDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAtIG0tPm5iX3NlZ3Mgd291bGQgYmVoYXZlIGxpa2UgbWFu eSBvdGhlciBmaWVsZDogdmFsaWQgaW4NCj4gdGhlDQo+ID4gPiBmaXJzdA0KPiA+ID4gPiA+ICAg ICAgc2VnbWVudCwgaWdub3JlZCBpbiBvdGhlciBzZWdtZW50cw0KPiA+ID4gPiA+ICAgIC0gbWF5 IGltcGFjdCBwZXJmb3JtYW5jZSAoc3VzcGVjdGVkKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMi8g Y2hhbmdlIGFsbCBwbGFjZXMgd2hlcmUgYSBtYnVmIGNoYWluIGlzIHNwbGl0LCBvciB0cmltbWVk DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAtIG0tPm5iX3NlZ3Mgd291bGQgaGF2ZSBhIHNwZWNp ZmljIGJlaGF2aW9yOiBjb3VudCB0aGUNCj4gbnVtYmVyIG9mDQo+ID4gPiA+ID4gICAgICBzZWdt ZW50cyBpbiB0aGUgZmlyc3QgbWJ1Ziwgc2hvdWxkIGJlIDEgaW4gdGhlIGxhc3QNCj4gc2VnbWVu dCwNCj4gPiA+ID4gPiAgICAgIGlnbm9yZWQgaW4gb3RoZXIgb25lcy4NCj4gPiA+ID4gPiAgICAt IG5vIGNvZGUgY2hhbmdlIGluIG1idWYgbGlicmFyeSwgc28gbm8gcGVyZm9ybWFuY2UgaW1wYWN0 DQo+ID4gPiA+ID4gICAgLSBuZWVkIHRvIHBhdGNoIGFsbCBwbGFjZXMgd2hlcmUgd2UgZG8gYSBt YnVmIHNwbGl0IG9yIHRyaW0uDQo+ID4gPiBGcm9tDQo+ID4gPiA+ID4gYWZhciwNCj4gPiA+ID4g PiAgICAgIEkgc2VlIGF0IGxlYXN0IG1idWZfY3V0X3NlZ19vZnMoKSBpbiBEUERLLiBTb21lIGV4 dGVybmFsDQo+ID4gPiA+ID4gYXBwbGljYXRpb25zDQo+ID4gPiA+ID4gICAgICBtYXkgaGF2ZSB0 byBiZSBwYXRjaGVkIChmb3IgaW5zdGFuY2UsIEkgYWxyZWFkeSBmb3VuZCAzDQo+IHBsYWNlcw0K PiA+ID4gaW4NCj4gPiA+ID4gPiAgICAgIDZXSU5EIGNvZGUgYmFzZSB3aXRob3V0IGEgZGVlcCBz ZWFyY2gpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSW4gbXkgb3BpbmlvbiwgMS8gaXMgYmV0dGVy LCBleGNlcHQgd2Ugbm90aWNlIGEgc2lnbmlmaWNhbnQNCj4gPiA+ID4gPiBwZXJmb3JtYW5jZSwN Cj4gPiA+ID4gPiBiZWNhdXNlIHRoZSAoaW1wbGljaXQpIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdoYXRldmVyIHRoZSBzb2x1dGlvbiwgc29tZSBkb2N1bWVu dGF0aW9uIGhhcyB0byBiZSBhZGRlZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9saXZpZXINCj4g PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBVbmZvcnR1bmF0ZWx5LCBJIGRvbid0IHRoaW5rIHRo YXQgYW55dGhpbmcgYnV0IHRoZSBmaXJzdCBvcHRpb24NCj4gd2lsbA0KPiA+ID4gZ28gaW50byAy MC4xMSBhbmQgc3RhYmxlIHJlbGVhc2VzIG9mIG9sZGVyIHZlcnNpb25zLCBzbyBJIHN0YW5kIGJ5 DQo+IG15DQo+ID4gPiBhY2tub3dsZWRnbWVudCBvZiB0aGUgcGF0Y2guDQo+ID4gPg0KPiA+ID4g SWYgd2UgYXJlIGFmZnJhaWQgYWJvdXQgMjAuMTEgcGVyZm9ybWFuY2UgKGl0IGlzIGxlZ2l0aW1h dGUsIGZldw0KPiBkYXlzDQo+ID4gPiBiZWZvcmUgdGhlIHJlbGVhc2UpLCB3ZSBjYW4gdGFyZ2V0 IDIxLjAyLiBBZnRlciBhbGwsIGV2ZXJ5Ym9keQ0KPiBsaXZlcw0KPiA+ID4gd2l0aCB0aGlzIGJ1 ZyBzaW5jZSAyMDE3LCBzbyB0aGVyZSBpcyBubyB1cmdlbmN5LiBJZiBhY2NlcHRlZCBhbmQNCj4g d2VsbA0KPiA+ID4gdGVzdGVkLCBpdCBjYW4gYmUgYmFja3BvcnRlZCBpbiBzdGFibGUgYnJhbmNo ZXMuDQo+ID4NCj4gPiArMQ0KPiA+DQo+ID4gR29vZCB0aGlua2luZywgT2xpdmllciENCj4gDQo+ IExvb2tpbmcgYXQgdGhlIGNoYW5nZXMgb25jZSBhZ2FpbiwgaXQgcHJvYmFibHkgY2FuIGJlIHJl d29ya2VkIGEgYml0Og0KPiANCj4gLQlpZiAobS0+bmV4dCAhPSBOVUxMKSB7DQo+IC0JCW0tPm5l eHQgPSBOVUxMOw0KPiAtCQltLT5uYl9zZWdzID0gMTsNCj4gLQl9DQo+IA0KPiArCWlmIChtLT5u ZXh0ICE9IE5VTEwpDQo+ICsJCW0tPm5leHQgPSBOVUxMOw0KPiArCWlmIChtLT5uYl9zZWdzICE9 IDEpDQo+ICsJCW0tPm5iX3NlZ3MgPSAxOw0KPiANCj4gVGhhdCB3YXkgd2UgYWRkIG9uZSBtb3Jl IGNvbmRpdGlvbiBjaGVja2luZywgYnV0IEkgc3VwcG9zZSBpdA0KPiBzaG91bGRuJ3QgYmUgdGhh dCBwZXJmIGNyaXRpY2FsLg0KPiBUaGF0IHdheSBmb3IgZGlyZWN0LG5vbi1zZWdtZW50ZWQgbWJ1 ZiBpdCBzdGlsbCBzaG91bGQgYmUgd3JpdGUtZnJlZS4NCj4gRXhjZXB0IGNhc2VzIGFzIHlvdSBk ZXNjcmliZWQgYWJvdmU6IGNoYWluKCksIHRoZW4gc3BsaXQoKS4NCj4gDQo+IE9mLWNvdXJzZSB3 ZSBzdGlsbCBuZWVkIHRvIGRvIHBlcmYgdGVzdGluZyBmb3IgdGhhdCBhcHByb2FjaCB0b28uDQo+ IFNvIGlmIHlvdXIgcHJlZmVyZW5jZSBpdCB0byBwb3N0cG9uZSBpdCB0aWxsIDIxLjAyIC0gdGhh dCdzIG9rIGZvciBtZS4NCj4gS29uc3RhbnRpbg0KDQpXaXRoIHRoaXMgc3VnZ2VzdGlvbiwgSSBj YW5ub3QgaW1hZ2luZSBhbnkgcGVyZm9ybWFuY2UgZHJvcCBmb3IgZGlyZWN0LCBub24tc2VnbWVu dGVkIG1idWZzOiBJdCBub3cgcmVhZHMgbS0+bmJfc2VncywgcmVzaWRpbmcgaW4gdGhlIG1idWYn cyBmaXJzdCBjYWNoZSBsaW5lLCBidXQgdGhlIGZ1bmN0aW9uIGFscmVhZHkgcmVhZHMgbS0+cmVm Y250IGluIHRoZSBmaXJzdCBjYWNoZSBsaW5lOyBzbyBubyBjYWNoZSBtaXNzZXMgYXJlIGludHJv ZHVjZWQuDQoNCg0K