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 817344227D; Fri, 1 Sep 2023 20:52:15 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6CBF840285; Fri, 1 Sep 2023 20:52:13 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 4A30C4014F for ; Fri, 1 Sep 2023 20:52:12 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id F313020BF5; Fri, 1 Sep 2023 20:52:11 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [RFC] cache guard Date: Fri, 1 Sep 2023 20:52:06 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87B69@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC] cache guard Thread-Index: Adnc9W6o+p+Y+jgqS1+I+wBZar8tLQACq8bw References: <98CBD80474FA8B44BF855DF32C47DC35D87B39@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87B47@smartserver.smartshare.dk> <2507011.Sgy9Pd6rRy@thomas> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Thomas Monjalon" Cc: "Bruce Richardson" , , , , , , 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 PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9yLmxpdS5zZV0N Cj4gU2VudDogRnJpZGF5LCAxIFNlcHRlbWJlciAyMDIzIDE4LjU4DQo+IA0KPiBPbiAyMDIzLTA5 LTAxIDE0OjI2LCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ID4gMjcvMDgvMjAyMyAxMDozNCwg TW9ydGVuIEJyw7hydXA6DQo+ID4+ICtDQyBIb25uYXBwYSBhbmQgS29uc3RhbnRpbiwgUmluZyBs aWIgbWFpbnRhaW5lcnMNCj4gPj4gK0NDIE1hdHRpYXMsIFBSTkcgbGliIG1haW50YWluZXINCj4g Pj4NCj4gPj4+IEZyb206IEJydWNlIFJpY2hhcmRzb24gW21haWx0bzpicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbV0NCj4gPj4+IFNlbnQ6IEZyaWRheSwgMjUgQXVndXN0IDIwMjMgMTEuMjQNCj4g Pj4+DQo+ID4+PiBPbiBGcmksIEF1ZyAyNSwgMjAyMyBhdCAxMTowNjowMUFNICswMjAwLCBNb3J0 ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPj4+PiArQ0MgbWVtcG9vbCBtYWludGFpbmVycw0KPiA+Pj4+ DQo+ID4+Pj4+IEZyb206IEJydWNlIFJpY2hhcmRzb24gW21haWx0bzpicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbV0NCj4gPj4+Pj4gU2VudDogRnJpZGF5LCAyNSBBdWd1c3QgMjAyMyAxMC4yMw0K PiA+Pj4+Pg0KPiA+Pj4+PiBPbiBGcmksIEF1ZyAyNSwgMjAyMyBhdCAwODo0NToxMkFNICswMjAw LCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPj4+Pj4+IEJydWNlLA0KPiA+Pj4+Pj4NCj4gPj4+ Pj4+IFdpdGggdGhpcyBwYXRjaCBbMV0sIGl0IGlzIG5vdGVkIHRoYXQgdGhlIHJpbmcgcHJvZHVj ZXIgYW5kDQo+ID4+PiBjb25zdW1lciBkYXRhDQo+ID4+Pj4+IHNob3VsZCBub3QgYmUgb24gYWRq YWNlbnQgY2FjaGUgbGluZXMsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLg0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+IFsxXToNCj4gPj4+Pj4NCj4gPj4+DQo+IGh0dHBzOi8vZ2l0LmRwZGsub3JnL2RwZGsv Y29tbWl0L2xpYi9saWJydGVfcmluZy9ydGVfcmluZy5oP2lkPWQ5ZjBkM2ExZg0KPiA+Pj4gZmQ0 YjY2DQo+ID4+Pj4+IGU3NTQ4NWNjOGI2M2I5YWVkZmJkZmU4YjANCj4gPj4+Pj4+DQo+ID4+Pj4+ PiAoSXQncyBvYnZpb3VzIHRoYXQgdGhleSBjYW5ub3Qgc2hhcmUgdGhlIHNhbWUgY2FjaGUgbGlu ZSwgYmVjYXVzZQ0KPiA+Pj4gdGhleSBhcmUNCj4gPj4+Pj4gYWNjZXNzZWQgYnkgdHdvIGRpZmZl cmVudCB0aHJlYWRzLikNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJbnR1aXRpdmVseSwgSSB3b3VsZCB0 aGluayB0aGF0IGhhdmluZyB0aGVtIG9uIGRpZmZlcmVudCBjYWNoZQ0KPiA+Pj4gbGluZXMgd291 bGQNCj4gPj4+Pj4gc3VmZmljZS4gV2h5IGRvZXMgaGF2aW5nIGFuIGVtcHR5IGNhY2hlIGxpbmUg YmV0d2VlbiB0aGVtIG1ha2UgYQ0KPiA+Pj4gZGlmZmVyZW5jZT8NCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBBbmQgZG9lcyBpdCBuZWVkIHRvIGJlIGFuIGVtcHR5IGNhY2hlIGxpbmU/IE9yIGRvZXMgaXQg c3VmZmljZQ0KPiA+Pj4gaGF2aW5nIHRoZQ0KPiA+Pj4+PiBzZWNvbmQgc3RydWN0dXJlIHN0YXJ0 IGF0IHR3byBjYWNoZSBsaW5lcyBhZnRlciB0aGUgc3RhcnQgb2YgdGhlDQo+ID4+PiBmaXJzdA0K PiA+Pj4+PiBzdHJ1Y3R1cmUgKGUuZy4gaWYgdGhlIHNpemUgb2YgdGhlIGZpcnN0IHN0cnVjdHVy ZSBpcyB0d28gY2FjaGUNCj4gPj4+IGxpbmVzKT8NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJJ20gYXNr aW5nIGJlY2F1c2UgdGhlIHNhbWUgcHJpbmNpcGxlIG1pZ2h0IGFwcGx5IHRvIG90aGVyIGNvZGUN Cj4gPj4+IHRvby4NCj4gPj4+Pj4+DQo+ID4+Pj4+IEhpIE1vcnRlbiwNCj4gPj4+Pj4NCj4gPj4+ Pj4gdGhpcyB3YXMgc29tZXRoaW5nIHdlIGRpc2NvdmVyZWQgd2hlbiB3b3JraW5nIG9uIHRoZSBk aXN0cmlidXRvcg0KPiA+Pj4gbGlicmFyeS4NCj4gPj4+Pj4gSWYgd2UgaGF2ZSBjYWNoZWxpbmVz IHBlciBjb3JlIHdoZXJlIHRoZXJlIGlzIGhlYXZ5IGFjY2VzcywgaGF2aW5nDQo+ID4+PiBzb21l DQo+ID4+Pj4+IGNhY2hlbGluZXMgYXMgYSBnYXAgYmV0d2VlbiB0aGUgY29udGVudCBjYWNoZWxp bmVzIGNhbiBoZWxwDQo+ID4+PiBwZXJmb3JtYW5jZS4gV2UNCj4gPj4+Pj4gYmVsaWV2ZSB0aGlz IGhlbHBzIGR1ZSB0byBhdm9pZGluZyBpc3N1ZXMgd2l0aCB0aGUgSFcgcHJlZmV0Y2hlcnMNCj4g Pj4+IChlLmcuDQo+ID4+Pj4+IGFkamFjZW50IGNhY2hlbGluZSBwcmVmZXRjaGVyKSBicmluZ2lu ZyBpbiB0aGUgc2Vjb25kIGNhY2hlbGluZQ0KPiA+Pj4+PiBzcGVjdWxhdGl2ZWx5IHdoZW4gYW4g b3BlcmF0aW9uIGlzIGRvbmUgb24gdGhlIGZpcnN0IGxpbmUuDQo+ID4+Pj4NCj4gPj4+PiBJIGd1 ZXNzZWQgdGhhdCBpdCBoYWQgc29tZXRoaW5nIHRvIGRvIHdpdGggc3BlY3VsYXRpdmUgcHJlZmV0 Y2hpbmcsDQo+ID4+PiBidXQgd2Fzbid0IHN1cmUuIEdvb2QgdG8gZ2V0IGNvbmZpcm1hdGlvbiwg YW5kIHRoYXQgaXQgaGFzIGENCj4gbWVhc3VyZWFibGUNCj4gPj4+IGVmZmVjdCBzb21ld2hlcmUu IFZlcnkgaW50ZXJlc3RpbmchDQo+ID4+Pj4NCj4gPj4+PiBOQjogTW9yZSBjb21tZW50cyBpbiB0 aGUgcmluZyBsaWIgYWJvdXQgc3R1ZmYgbGlrZSB0aGlzIHdvdWxkIGJlDQo+IG5pY2UuDQo+ID4+ Pj4NCj4gPj4+PiBTbywgZm9yIHRoZSBtZW1wb29sIGxpYiwgd2hhdCBkbyB5b3UgdGhpbmsgYWJv dXQgYXBwbHlpbmcgdGhlIHNhbWUNCj4gPj4+IHRlY2huaXF1ZSB0byB0aGUgcnRlX21lbXBvb2xf ZGVidWdfc3RhdHMgc3RydWN0dXJlICh3aGljaCBpcyBhbg0KPiBhcnJheQ0KPiA+Pj4gaW5kZXhl ZCBwZXIgbGNvcmUpLi4uIFR3byBhZGphY2VudCBsY29yZXMgaGVhdmlseSBhY2Nlc3NpbmcgdGhl aXINCj4gbG9jYWwNCj4gPj4+IG1lbXBvb2wgY2FjaGVzIHNlZW1zIGxpa2VseSB0byBtZS4gQnV0 IGhvdyBoZWF2eSBkb2VzIHRoZSBhY2Nlc3MNCj4gbmVlZCB0bw0KPiA+Pj4gYmUgZm9yIHRoaXMg dGVjaG5pcXVlIHRvIGJlIHJlbGV2YW50Pw0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gTm8gaWRlYSBo b3cgaGVhdnkgdGhlIGFjY2Vzc2VzIG5lZWQgdG8gYmUgZm9yIHRoaXMgdG8gaGF2ZSBhDQo+IG5v dGljYWJsZQ0KPiA+Pj4gZWZmZWN0LiBGb3IgdGhpbmdzIGxpa2UgZGVidWcgc3RhdHMsIEkgd29u ZGVyIGhvdyB3b3J0aHdoaWxlIG1ha2luZw0KPiBzdWNoDQo+ID4+PiBhDQo+ID4+PiBjaGFuZ2Ug d291bGQgYmUsIGJ1dCB0aGVuIGFnYWluLCBhbnkgY2hhbmdlIHdvdWxkIGhhdmUgdmVyeSBsb3cN Cj4gaW1wYWN0DQo+ID4+PiB0b28NCj4gPj4+IGluIHRoYXQgY2FzZS4NCj4gPj4NCj4gPj4gSSBq dXN0IHRyaWVkIGFkZGluZyBwYWRkaW5nIHRvIHNvbWUgb2YgdGhlIGhvdCBzdHJ1Y3R1cmVzIGlu IG91ciBvd24NCj4gYXBwbGljYXRpb24sIGFuZCBvYnNlcnZlZCBhIHNpZ25pZmljYW50IHBlcmZv cm1hbmNlIGltcHJvdmVtZW50IGZvcg0KPiB0aG9zZS4NCj4gPj4NCj4gPj4gU28gSSB0aGluayB0 aGlzIHRlY2huaXF1ZSBzaG91bGQgaGF2ZSBoaWdoZXIgdmlzaWJpbGl0eSBpbiBEUERLIGJ5DQo+ IGFkZGluZyBhIG5ldyBjYWNoZSBtYWNybyB0byBydGVfY29tbW9uLmg6DQo+ID4NCj4gPiArMSB0 byBtYWtlIG1vcmUgdmlzaWJpbGl0eSBpbiBkb2MgYW5kIGFkZGluZyBhIG1hY3JvLCBnb29kIGlk ZWEhDQo+ID4NCj4gPg0KPiA+DQo+IA0KPiBBIHdvcnJ5IEkgaGF2ZSBpcyB0aGF0IGZvciBDUFVz IHdpdGggbGFyZ2UgKGluIHRoaXMgY29udGV4dCkgTiwgeW91IHdpbGwNCj4gZW5kIHVwIHdpdGgg YSBsb3Qgb2YgcGFkZGluZyB0byBhdm9pZCBuZXh0LU4tbGluZXMgZmFsc2Ugc2hhcmluZy4gVGhh dA0KPiB3b3VsZCBiZSBwYWRkaW5nIGFmdGVyLCBhbmQgaW4gdGhlIGdlbmVyYWwgKG5vbi1hcnJh eSkgY2FzZSBhbHNvIGJlZm9yZSwNCj4gdGhlIGFjdHVhbCBwZXItbGNvcmUgZGF0YS4gQSBzbGln aHQgbnVpc2FuY2UgaXMgYWxzbyB0aGF0IHRob3NlDQo+IHByZWZldGNoZWQgbGluZXMgb2YgcGFk ZGluZywgd2lsbCBuZXZlciBjb250YWluIGFueXRoaW5nIHVzZWZ1bCwgYW5kDQo+IHRodXMgZmV0 Y2hpbmcgdGhlbSB3aWxsIGFsd2F5cyBiZSBhIHdhc3RlLg0KDQpPdXQgb2YgY3VyaW9zaXR5LCB3 aGF0IGlzIHRoZSBsYXJnZXN0IE4gYW55b25lIGhlcmUgb24gdGhlIGxpc3QgaXMgYXdhcmUgb2Y/ DQoNCj4gDQo+IFBhZGRpbmcvYWxpZ25tZW50IG1heSBub3QgYmUgdGhlIG9ubHkgd2F5IHRvIGF2 b2lkIEhXLXByZWZldGNoZXItaW5kdWNlZA0KPiBmYWxzZSBzaGFyaW5nIGZvciBwZXItbGNvcmUg ZGF0YSBzdHJ1Y3R1cmVzLg0KPiANCj4gV2hhdCB3ZSBhcmUgZGlzY3Vzc2luZyBoZXJlIGlzIG9y Z2FuaXppbmcgdGhlIHN0YXRpY2FsbHkgYWxsb2NhdGVkDQo+IHBlci1sY29yZSBzdHJ1Y3RzIG9m IGEgcGFydGljdWxhciBtb2R1bGUgaW4gYW4gYXJyYXkgd2l0aCB0aGUNCj4gYXBwcm9wcmlhdGUg cGFkZGluZy9hbGlnbm1lbnQuIEluIHRoaXMgbW9kZWwsIGFsbCBkYXRhIHJlbGF0ZWQgdG8gYQ0K PiBwYXJ0aWN1bGFyIG1vZHVsZSBpcyBjbG9zZSAobWVtb3J5IGFkZHJlc3MvcGFnZS13aXNlKSwg YnV0IG5vdCBzbyBjbG9zZQ0KPiB0byBjYXVzZSBmYWxzZSBzaGFyaW5nLg0KPiANCj4gLyogcnRl X2EuYyAqLw0KPiANCj4gc3RydWN0IHJ0ZV9hX3N0YXRlDQo+IHsNCj4gCWludCB4Ow0KPiAgICAg ICAgICBSVEVfQ0FDSEVfR1VBUkQ7DQo+IH0gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gDQo+IHN0 YXRpYyBzdHJ1Y3QgcnRlX2Ffc3RhdGUgYV9zdGF0ZXNbUlRFX01BWF9MQ09SRV07DQo+IA0KPiAv KiBydGVfYi5jICovDQo+IA0KPiBzdHJ1Y3QgcnRlX2Jfc3RhdGUNCj4gew0KPiAJY2hhciB5Ow0K PiAgICAgICAgICBjaGFyIHo7DQo+ICAgICAgICAgIFJURV9DQUNIRV9HVUFSRDsNCj4gfSBfX3J0 ZV9jYWNoZV9hbGlnbmVkOw0KPiANCj4gDQo+IHN0YXRpYyBzdHJ1Y3QgcnRlX2Jfc3RhdGUgYl9z dGF0ZXNbUlRFX01BWF9MQ09SRV07DQo+IA0KPiBXaGF0IHlvdSB3b3VsZCBlbmQgdXAgd2l0aCBp biBydW50aW1lIHdoZW4gdGhlIGxpbmtlciBoYXMgZG9uZSBpdHMgam9iDQo+IGlzIHNvbWV0aGlu ZyB0aGF0IGVzc2VudGlhbGx5IGxvb2tzIGxpa2UgdGhpcyAoaW4gbWVtb3J5KToNCj4gDQo+IHN0 cnVjdCB7DQo+IAlzdHJ1Y3QgcnRlX2Ffc3RhdGUgYV9zdGF0ZXNbUlRFX01BWF9MQ09SRV07DQo+ IAlzdHJ1Y3QgcnRlX2Jfc3RhdGUgYl9zdGF0ZXNbUlRFX01BWF9MQ09SRV07DQo+IH07DQo+IA0K PiBZb3UgY291bGQgY29uc2lkZXIgdHVybmluZyBpdCBhcm91bmQsIGFuZCBrZWVwaW5nIGRhdGEg KGkuZS4sIG1vZHVsZQ0KPiBzdHJ1Y3RzKSByZWxhdGVkIHRvIGEgcGFydGljdWxhciBsY29yZSwg Zm9yIGFsbCBtb2R1bGVzLCBjbG9zZS4gSW4gb3RoZXINCj4gd29yZHMsIGtlZXBpbmcgYSBwZXIt bGNvcmUgYXJyYXlzIG9mIHZhcmlhYmxlLXNpemVkIGVsZW1lbnRzLg0KPiANCj4gU28sIHNvbWV0 aGluZyB0aGF0IHdpbGwgZW5kIHVwIGxvb2tpbmcgbGlrZSB0aGlzIChpbiBtZW1vcnksIG5vdCBp biB0aGUNCj4gc291cmNlIGNvZGUpOg0KPiANCj4gc3RydWN0IHJ0ZV9sY29yZV9zdGF0ZQ0KPiB7 DQo+IAlzdHJ1Y3QgcnRlX2Ffc3RhdGUgYV9zdGF0ZTsNCj4gCXN0cnVjdCBydGVfYl9zdGF0ZSBi X3N0YXRlOw0KPiAgICAgICAgICBSVEVfQ0FDSEVfR1VBUkQ7DQo+IH07DQo+IA0KPiBzdHJ1Y3Qg cnRlX2xjb3JlX3N0YXRlIGxjb3JlX3N0YXRlc1tSVEVfTENPUkVfTUFYXTsNCj4gDQo+IEluIHN1 Y2ggYSBzY2VuYXJpbywgdGhlIHBlci1sY29yZSBzdHJ1Y3QgdHlwZSBmb3IgYSBtb2R1bGUgbmVl ZCBub3QgKGFuZA0KPiBzaG91bGQgbm90KSBiZSBjYWNoZS1saW5lLWFsaWduZWQgKGJ1dCBtYXkg c3RpbGwgaGF2ZSBzb21lIGFsaWdubWVudA0KPiByZXF1aXJlbWVudHMpLiBEYXRhIHdpbGwgYmUg bW9yZSB0aWdodGx5IHBhY2tlZCwgYW5kIHRoZSAibmV4dCBsaW5lcyINCj4gcHJlZmV0Y2hlZCBt YXkgYWN0dWFsbHkgYmUgdXNlZnVsIChhbHRob3VnaCBJJ20gZ3Vlc3NpbmcgaW4gcHJhY3RpY2UN Cj4gdGhleSB3aWxsIHVzdWFsbHkgbm90KS4NCj4gDQo+IFRoZXJlIG1heSBiZSBzZXZlcmFsIHdh eXMgdG8gaW1wbGVtZW50IHRoYXQgc2NoZW1lLiBUaGUgYWJvdmUgaXMgdG8NCj4gaWxsdXN0cmF0 ZSBob3cgdGhpbmcgd291bGQgbG9vayBpbiBtZW1vcnksIG5vdCBuZWNlc3NhcmlseSBvbiB0aGUg bGV2ZWwNCj4gb2YgdGhlIHNvdXJjZSBjb2RlLg0KPiANCj4gT25lIHdheSBjb3VsZCBiZSB0byBm aXQgdGhlIHBlci1tb2R1bGUtcGVyLWxjb3JlIHN0cnVjdCBpbiBhIGNodW5rIG9mDQo+IG1lbW9y eSBhbGxvY2F0ZWQgaW4gYSBwZXItbGNvcmUgaGVhcC4gSW4gc3VjaCBhIGNhc2UsIHRoZSBEUERL IGhlYXANCj4gd291bGQgbmVlZCBleHRlbnNpb24sIG1heWJlIHdpdGggc2VtYW50aWNzIHNpbWls YXIgdG8gdGhhdCBvZiBOVU1BLW5vZGUNCj4gc3BlY2lmaWMgYWxsb2NhdGlvbnMuDQo+IA0KPiBB bm90aGVyIHdheSB3b3VsZCBiZSB0byB1c2UgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgKFRMUywgX190 aHJlYWQpLA0KPiBhbHRob3VnaCBpdCdzIHVuY2xlYXIgdG8gbWUgaG93IHdlbGwgVExTIHdvcmtz IHdpdGggbGFyZ2VyIGRhdGENCj4gc3RydWN0dXJlcy4NCj4gDQo+IEEgdGhpcmQgd2F5IG1heSBi ZSB0byBzb21laG93IGFjaGlldmUgc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSB0aGUNCj4gYWJv dmUgZXhhbXBsZSwgdXNpbmcgbWFjcm9zLCB3aXRob3V0IGJyZWFraW5nIG1vZHVsZSBlbmNhcHN1 bGF0aW9uIG9yDQo+IGdlbmVyYWxseSBiZSB0b28gaW50cnVzaXZlIG9yIG90aGVyd2lzZSBjdW1i ZXJzb21lLg0KPiANCj4gTm90IHN1cmUgdGhpcyBpcyB3b3J0aCB0aGUgdHJvdWJsZSAoY29tcGFy ZWQgdG8ganVzdCBtb3JlIHBhZGRpbmcpLCBidXQNCj4gSSB0aG91Z2h0IGl0IHdhcyBhbiBpZGVh IHdvcnRoIHNoYXJpbmcuDQoNCkkgdGhpbmsgd2hhdCBNYXR0aWFzIHN1Z2dlc3RzIGlzIHJlbGV2 YW50LCBhbmQgaXQgd291bGQgYmUgZ3JlYXQgaWYgYSBnZW5lcmljIHNvbHV0aW9uIGNvdWxkIGJl IGZvdW5kIGZvciBEUERLLg0KDQpGb3IgcmVmZXJlbmNlLCB3ZSBpbml0aWFsbHkgdXNlZCBSVEVf UEVSX0xDT1JFKG1vZHVsZV92YXJpYWJsZSksIGkuZS4gdGhyZWFkIGxvY2FsIHN0b3JhZ2UsIGV4 dGVuc2l2ZWx5IGluIG91ciBhcHBsaWNhdGlvbiBtb2R1bGVzLiBCdXQgaXQgaGFzIHR3byBkaXNh ZHZhbnRhZ2VzOg0KMS4gVExTIGRvZXMgbm90IHVzZSBodWdlcGFnZXMuIChUaGUgc2FtZSBhcHBs aWVzIHRvIGdsb2JhbCBhbmQgbG9jYWwgdmFyaWFibGVzLCBCVFcuKQ0KMi4gV2UgbmVlZCB0byBz ZXQgdXAgZ2xvYmFsIHBvaW50ZXJzIHRvIHRoZXNlIFRMUyB2YXJpYWJsZXMsIHNvIHRoZXkgY2Fu IGJlIGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gbGNvcmUgKGUuZy4gZm9yIHN0YXRpc3RpY3MpLiBU aGlzIG1lYW5zIHRoYXQgZXZlcnkgbW9kdWxlIG5lZWRzIHNvbWUgc29ydCBvZiBtb2R1bGVfcGVy X2xjb3JlX2luaXQsIGNhbGxlZCBieSB0aGUgdGhyZWFkIGFmdGVyIGl0cyBjcmVhdGlvbiwgdG8g c2V0IHRoZSBtb2R1bGVfZ2xvYmFsX3B0cltydGVfbGNvcmVfaWQoKV0gPSAmUlRFX1BFUl9MQ09S RShtb2R1bGVfdmFyaWFibGUpLg0KDQpFdmVudHVhbGx5LCB3ZSBnYXZlIHVwIGFuZCBtaWdyYXRl ZCB0byB0aGUgRFBESyBzdGFuZGFyZCBkZXNpZ24gcGF0dGVybiBvZiBpbnN0YW50aWF0aW5nIGEg Z2xvYmFsIG1vZHVsZV92YXJpYWJsZVtSVEVfTUFYX0xDT1JFXSwgYW5kIGxldHRpbmcgZWFjaCB0 aHJlYWQgdXNlIGl0cyBvd24gZW50cnkgaW4gdGhhdCBhcnJheS4NCg0KQW5kIGFzIE1hdHRpYXMg c3VnZ2VzdHMsIHRoaXMgYWRkcyBhIGxvdCBvZiB1c2VsZXNzIHBhZGRpbmcsIGJlY2F1c2UgZWFj aCBtb2R1bGVzJyB2YXJpYWJsZXMgbm93IG5lZWQgdG8gc3RhcnQgb24gaXRzIG93biBjYWNoZSBs aW5lLg0KDQpTbyBhIGdlbmVyaWMgc29sdXRpb24gd2l0aCBwYWNrZWQgcGVyLXRocmVhZCBkYXRh IHdvdWxkIGJlIGEgZ3JlYXQgbG9uZyB0ZXJtIHNvbHV0aW9uLg0KDQpTaG9ydCB0ZXJtLCBJIGNh biBsaXZlIHdpdGggdGhlIHNpbXBsZSBjYWNoZSBndWFyZC4gSXQgaXMgdmVyeSBlYXN5IHRvIGlt cGxlbWVudCBhbmQgdXNlLg0KDQo=