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 134E942A63; Thu, 4 May 2023 18:58:54 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 933E841144; Thu, 4 May 2023 18:58:53 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 3CC28410DC for ; Thu, 4 May 2023 18:58:52 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 2F8A82032C; Thu, 4 May 2023 18:58:51 +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 PATCH] ring: adding TPAUSE instruction to ring dequeue X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Thu, 4 May 2023 18:58:48 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D878E5@smartserver.smartshare.dk> In-Reply-To: <20230504092329.457d4f8c@hermes.local> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [RFC PATCH] ring: adding TPAUSE instruction to ring dequeue Thread-Index: Adl+pMYGC4FRkvyWRZ23wZHpF3HpbwAApjtQ References: <20230503113840.11010-1-david.coyle@intel.com><98CBD80474FA8B44BF855DF32C47DC35D878DD@smartserver.smartshare.dk><98CBD80474FA8B44BF855DF32C47DC35D878E1@smartserver.smartshare.dk> <20230504092329.457d4f8c@hermes.local> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Stephen Hemminger" , "Coyle, David" Cc: , , , "Sexton, Rory" 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBb bWFpbHRvOnN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnXQ0KPiANCj4gT24gVGh1LCA0IE1heSAy MDIzIDE2OjExOjMxICswMDAwDQo+ICJDb3lsZSwgRGF2aWQiIDxkYXZpZC5jb3lsZUBpbnRlbC5j b20+IHdyb3RlOg0KPiANCj4gPiBIaSBNb3J0ZW4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lz dGVtcy5jb20+DQo+ID4gPg0KPiA+DQo+ID4gPHNuaXA+DQo+ID4NCj4gPiA+IFBvd2VyIHNhdmlu ZyBpcyBpbXBvcnRhbnQgZm9yIHRoZSBlbnZpcm9ubWVudCAodG8gc2F2ZSB0aGUgcGxhbmV0IGFu ZCBhbGwNCj4gPiA+IHRoYXQpLCBzbyBldmVyeW9uZSBzaG91bGQgY29udHJpYnV0ZSwgaWYgdGhl eSBoYXZlIGEgZ29vZCBzb2x1dGlvbi4gU28NCj4gZXZlbiBpZg0KPiA+ID4gb3VyIGFsZ29yaXRo bSBoYWQgYSBzaWduaWZpY2FudCBkZWdyZWUgb2YgaW5ub3ZhdGlvbiwgd2Ugd291bGQgcHJvYmFi bHkNCj4gPiA+IGNob29zZSB0byBtYWtlIGl0IHB1YmxpYyBhbnl3YXkuIE9wZW4gc291cmNpbmcg aXQgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZQ0KPiBmb3INCj4gPiA+IGNoaXAgdmVuZG9ycyBsaWtl IEludGVsIHRvIGZpbmUgdHVuZSBpdCBtb3JlIHRoYW4gd2UgY2FuIG91cnNlbHZlcywgd2hpY2gN Cj4gYWxzbw0KPiA+ID4gY29tZXMgYmFjayB0byBiZW5lZml0IHVzLiBBbGwgcHJvZHVjdHMgbmVl ZCBzb21lIHNvcnQgb2YgcG93ZXIgc2F2aW5nIGluDQo+IHRvDQo+ID4gPiBzdGF5IGNvbXBldGl0 aXZlLCBidXQgcG93ZXIgc2F2aW5nIGFsZ29yaXRobXMgaXMgbm90IGFuIGFyZWEgd2Ugd2FudCB0 bw0KPiA+ID4gcHVyc3VlIGZvciBjb21wZXRpdGl2ZSBwdXJwb3NlcyBpbiBvdXIgcHJvZHVjdHMu DQo+ID4gPg0KPiA+ID4gT3VyIGFsZ29yaXRobSBpcyB0b28gc2ltcGxlIHRvIG1ha2UgYSBsaWJy YXJ5IGF0IHRoaXMgcG9pbnQsIGJ1dCBJIGhhdmUNCj4gYmVlbg0KPiA+ID4gdGhpbmtpbmcgYWJv dXQgaG93IHdlIGNhbiBtYWtlIGl0IGEgZ2VuZXJpYyBsaWJyYXJ5IHdoZW4gaXQgaGFzIG1hdHVy ZWQNCj4gPiA+IHNvbWUgbW9yZS4gSSB3aWxsIHRha2UgeW91ciBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgbWFueSBjdXN0b21lcnMnIG5lZWQgdG8NCj4gPiA+IGhhdmUgaXQgaW52aXNpYmx5IGluamVj dGVkIGludG8gY29uc2lkZXJhdGlvbiBpbiB0aGlzIHJlZ2FyZC4NCj4gPiA+DQo+ID4gPiBPdXIg Y3VycmVudCBhbGdvcml0aG0gd29ya3MgbGlrZSB0aGlzOg0KPiA+ID4NCj4gPiA+IHdoaWxlIChy dW5uaW5nKSB7DQo+ID4gPiBpbnQgbW9yZSA9IDA7DQo+ID4gPiBtb3JlICs9IHN0YWdlMSgpOw0K PiA+ID4gbW9yZSArPSBzdGFnZTIoKTsNCj4gPiA+IG1vcmUgKz0gc3RhZ2UzKCk7DQo+ID4gPiBp ZiAoIW1vcmUpIHNsZWVwKCk7DQo+ID4gPiB9DQo+ID4gPg0KPiA+ID4gRWFjaCBwaXBlbGluZSBz dGFnZSBvbmx5IHJldHVybnMgMSBpZiBpdCBwcm9jZXNzZWQgYSBmdWxsIGJ1cnN0Lg0KPiBGdXJ0 aGVybW9yZSwgaWYgYQ0KPiA+ID4gcGlwZWxpbmUgc3RhZ2UgcHJvY2Vzc2VkIGEgZnVsbCBidXJz dCwgYnV0IGhhcHBlbnMgdG8ga25vdyB0aGF0IG5vIG1vcmUNCj4gZGF0YQ0KPiA+ID4gaXMgcmVh ZGlseSBhdmFpbGFibGUgZm9yIGl0LCBpdCByZXR1cm5zIDAgaW5zdGVhZC4NCj4gPiA+DQo+ID4g PiBPYnZpb3VzbHksIHRoZSBzbGVlcCgpIGR1cmF0aW9uIG11c3QgYmUgc2hvcnQgZW5vdWdoIHRv IGF2b2lkIHRoYXQgdGhlIE5JQw0KPiA+ID4gUlggZGVzY3JpcHRvciByaW5ncyBvdmVyZmxvdyBi ZWZvcmUgdGhlIGluZ3Jlc3MgcGlwZWxpbmUgc3RhZ2UgaXMgc2VydmljZWQNCj4gPiA+IGFnYWlu Lg0KPiA+ID4NCj4gPiA+IENoYW5naW5nIHRoZSBhbGdvcml0aG0gdG8gIm1vcmUiICgxID0gbW9y ZSB3b3JrIGV4cGVjdGVkIGJ5IHRoZSBwaXBlbGluZQ0KPiA+ID4gc3RhZ2UpIGZyb20gImJ1c3ki ICgxID0gc29tZSB3b3JrIGRvbmUgYnkgdGhlIHBpcGVsaW5lIHN0YWdlKSBoYXMgdGhlDQo+ID4g PiBjb25zZXF1ZW5jZSB0aGF0IHNsZWVwKCkgaXMgY2FsbGVkIG1vcmUgb2Z0ZW4sIHdoaWNoIGhh cyB0aGUgZm9sbG93LW9uDQo+ID4gPiBjb25zZXF1ZW5jZSB0aGF0IHRoZSBpbmdyZXNzIHN0YWdl IGlzIGNhbGxlZCBsZXNzIG9mdGVuLCBhbmQgdGh1cyBtb3JlDQo+IG9mdGVuDQo+ID4gPiBoYXMg YSBmdWxsIGJ1cnN0IHRvIHByb2Nlc3MuDQo+ID4gPg0KPiA+ID4gV2Uga25vdyBmcm9tIG91ciBp bi1ob3VzZSBwcm9maWxlciB0aGF0IHByb2Nlc3NpbmcgYSBmdWxsIGJ1cnN0IHByb3ZpZGVzDQo+ ID4gPiAqbXVjaCogaGlnaGVyIGV4ZWN1dGlvbiBlZmZpY2llbmN5IChjeWNsZXMvcGFja2V0KSB0 aGFuIHByb2Nlc3NpbmcgYSBmZXcNCj4gPiA+IHBhY2tldHMuIFRoaXMgaXMgcHVibGljIGtub3ds ZWRnZSAtIGFmdGVyIGFsbCwgdGhpcyBpcyB0aGUgd2hvbGUgcG9pbnQgb2YNCj4gRFBESydzDQo+ ID4gPiB2ZWN0b3IgcGFja2V0IHByb2Nlc3NpbmcgZGVzaWduISBOb25ldGhlbGVzcywgaXQgbWln aHQgc3VycHJpc2Ugc29tZQ0KPiBwZW9wbGUNCj4gPiA+IGhvdyBtdWNoIHRoZSBlZmZpY2llbmN5 IChjeWNsZXMvcGFja2V0KSBpbmNyZWFzZXMgd2hlbiBwcm9jZXNzaW5nIGEgZnVsbA0KPiA+ID4g YnVyc3QgY29tcGFyZWQgdG8gcHJvY2Vzc2luZyBqdXN0IGEgZmV3IHBhY2tldHMuIEkgd2lsbCBs ZWF2ZSBpdCB1cCB0byB0aGUNCj4gPiA+IHJlYWRlcnMgdG8gbWFrZSB0aGVpciBvd24gZXhwZXJp bWVudHMuIDotKQ0KPiA+ID4NCj4gPiA+IE91ciBpbml0aWFsICJidXN5IiBhbGdvcml0aG0gYmVo YXZlZCBsaWtlIHRoaXM6DQo+ID4gPiBQcm9jZXNzIGEgZmV3IHBhY2tldHMgKGF0IGxvdyBlZmZp Y2llbmN5KSwgZG9uJ3Qgc2xlZXAsIFByb2Nlc3MgYSBmZXcNCj4gcGFja2V0cw0KPiA+ID4gKGF0 IGxvdyBlZmZpY2llbmN5KSwgZG9uJ3Qgc2xlZXAsIFByb2Nlc3MgYSBmZXcgcGFja2V0cyAoYXQg bG93DQo+IGVmZmljaWVuY3kpLA0KPiA+ID4gZG9uJ3Qgc2xlZXAsIFByb2Nlc3MgYSBmZXcgcGFj a2V0cyAoYXQgbG93IGVmZmljaWVuY3kpLCBkb24ndCBzbGVlcCwNCj4gUHJvY2VzcyBhDQo+ID4g PiBmZXcgcGFja2V0cyAoYXQgbG93IGVmZmljaWVuY3kpLCBkb24ndCBzbGVlcCwgUHJvY2VzcyBh IGZldyBwYWNrZXRzIChhdA0KPiBsb3cNCj4gPiA+IGVmZmljaWVuY3kpLCBkb24ndCBzbGVlcCwg UHJvY2VzcyBhIGZldyBwYWNrZXRzIChhdCBsb3cgZWZmaWNpZW5jeSksIGRvbid0DQo+ID4gPiBz bGVlcCwgUHJvY2VzcyBhIGZldyBwYWNrZXRzIChhdCBsb3cgZWZmaWNpZW5jeSksIGRvbid0IHNs ZWVwLCBObyBwYWNrZXRzDQo+IHRvDQo+ID4gPiBwcm9jZXNzICh3ZSBhcmUgbHVja3kgdGhpcyB0 aW1lISksIHNsZWVwIGJyaWVmbHksIFJlcGVhdC4NCj4gPiA+DQo+ID4gPiBTbyB3ZSBzd2l0Y2hl ZCB0byBvdXIgIm1vcmUiIGFsZ29yaXRobSwgd2hpY2ggYmVoYXZlcyBsaWtlIHRoaXM6DQo+ID4g PiBQcm9jZXNzIGEgZmV3IHBhY2tldHMgKGF0IGxvdyBlZmZpY2llbmN5KSwgc2xlZXAgYnJpZWZs eSwgUHJvY2VzcyBhIGZ1bGwNCj4gYnVyc3Qgb2YNCj4gPiA+IHBhY2tldHMgKGF0IGhpZ2ggZWZm aWNpZW5jeSksIGRvbid0IHNsZWVwLCBSZXBlYXQuDQo+ID4gPg0KPiA+ID4gSW5zdGVhZCBvZiBw cm9jZXNzaW5nIGUuZy4gOCBzbWFsbCBidXJzdHMgcGVyIHNsZWVwLCB3ZSBub3cgcHJvY2VzcyBv bmx5IDINCj4gPiA+IGJ1cnN0cyBwZXIgc2xlZXAuIEFuZCB0aGUgYmlnIG9mIHRoZSB0d28gYnVy c3RzIGlzIHByb2Nlc3NlZCBhdCBoaWdoZXINCj4gPiA+IGVmZmljaWVuY3kuDQo+ID4gPg0KPiA+ ID4gV2UgY2FuIGltcHJvdmUgdGhpcyBhbGdvcml0aG0gaW4gc29tZSBhcmVhcy4uLg0KPiA+ID4N Cj4gPiA+IEUuZy4gc29tZSBvZiBvdXIgcGlwZWxpbmUgc3RhZ2VzIGFsc28ga25vdyB0aGF0IHRo ZXkgYXJlIG5vdCBnb2luZyB0byBkbw0KPiA+ID4gYW55bW9yZSB3b3JrIGZvciB0aGUgbmV4dCBY IGFtb3VudCBvZiBuYW5vc2Vjb25kczsgYnV0IHdlIGRvbid0IHVzZSB0aGF0DQo+ID4gPiBpbmZv cm1hdGlvbiBpbiBvdXIgcG93ZXIgbWFuYWdlbWVudCBhbGdvcml0aG0geWV0LiBUaGUgc2xlZXAg ZHVyYXRpb24NCj4gPiA+IGNvdWxkIGRlcGVuZCBvbiB0aGlzLg0KPiA+ID4NCj4gPiA+IEFsc28s IHdlIGRvbid0IHVzZSB0aGUgQ1BVIHBvd2VyIG1hbmFnZW1lbnQgc3RhdGVzIHlldC4gSSBhc3N1 bWUgdGhhdA0KPiA+ID4gZG9pbmcgc29tZSB3b3JrIGZvciAyMCB1cyBhdCBoYWxmIGNsb2NrIHNw ZWVkIGlzIG1vcmUgcG93ZXIgY29uc2VydmluZw0KPiB0aGFuDQo+ID4gPiBkb2luZyB0aGUgc2Ft ZSB3b3JrIGF0IGZ1bGwgc3BlZWQgZm9yIDEwIHVzIGFuZCB0aGVuIHNsZWVwaW5nIGZvciAxMCB1 cy4NCj4gPiA+IFRoYXQncyBhbm90aGVyIHBvdGVudGlhbCBpbXByb3ZlbWVudC4NCj4gPiA+DQo+ ID4gPg0KPiA+ID4gV2hhdCB3ZSBuZWVkIGluIGdlbmVyaWMgYSBwb3dlciBtYW5hZ2VtZW50IGhl bHBlciBsaWJyYXJ5IGFyZSBmdW5jdGlvbnMNCj4gPiA+IHRvIGZlZWQgaXQgd2l0aCB0aGUgYXBw bGljYXRpb24ncyBwZXJjZXB0aW9uIG9mIGhvdyBtdWNoIHdvcmsgaXMgYmVpbmcNCj4gZG9uZSwN Cj4gPiA+IGFuZCBmdW5jdGlvbnMgdG8gdGVsbCBpZiB3ZSBjYW4gc2xlZXAgYW5kL29yIGlmIHdl IHNob3VsZCBjaGFuZ2UgdGhlIHBvd2VyDQo+ID4gPiBtYW5hZ2VtZW50IHN0YXRlcyBvZiB0aGUg aW5kaXZpZHVhbCBDUFUgY29yZXMuDQo+ID4gPg0KPiA+ID4gU3VjaCBhIHVuaWZpZWQgcG93ZXIg bWFuYWdlbWVudCBoZWxwZXIgKG9yICJidXN5bmVzcyIpIGxpYnJhcnkgY291bGQNCj4gPiA+IHBl cmhhcHMgYWxzbyBiZSBmZWQgd2l0aCBkYXRhIGRpcmVjdGx5IGZyb20gdGhlIGRyaXZlcnMgYW5k IGxpYnJhcmllcyB0bw0KPiA+ID4gc3VwcG9ydCB0aGUgY3VzdG9tZXIgdXNlIGNhc2VzIHlvdSBk ZXNjcmliZWQuDQo+ID4NCj4gPiBbRENdIFRoYW5rIHlvdSBmb3IgdGhhdCBkZXRhaWxlZCBkZXNj cmlwdGlvbiwgdmVyeSBpbnRlcmVzdGluZy4gVGhlcmUgbWF5DQo+ID4gd2VsbCBiZSBtZXJpdCBp biB1cHN0cmVhbWluZyBzdWNoIGFuIGFsZ29yaXRobSBhcyBhIGxpYnJhcnkgb25jZSBpdCBoYXMN Cj4gPiBtYXR1cmVkIGFzIHlvdSBzYWlkLg0KPiA+DQo+ID4gQ29uZmlndXJhdGlvbiBjb3VsZCBp bmNsdWRlIHNwZWNpZnlpbmcgd2hhdCBhICJmdWxsIGJ1cnN0Ig0KPiA+IGFjdHVhbGx5IGlzLiBE aWZmZXJlbnQgc3RhZ2VzIG9mIGEgcGlwZWxpbmUgbWF5IGFsc28gaGF2ZSBkaWZmZXJlbnQNCj4g ZGVmaW5pdGlvbnMNCj4gPiBvZiBidXN5bmVzcywgc28gdGhhdCBtYXkgYWxzbyBuZWVkIHRvIGNv bnNpZGVyZWQ6DQo+ID4gLSBTb21lIHN0YWdlcyBtYXkgcGVyZm9ybSBhbiBvcGVyYXRpb24gKGUu Zy4gcnVubmluZyBhbiBhY2wgcnVsZSBjaGVjaykgb24gYQ0KPiA+IGJ1cnN0IG9mIHBhY2tldHMg YW5kIHRoZW4gaXQgaXMgY29tcGxldGUNCg0KV2UgZG9uJ3QgaGF2ZSBzdWNoIGEgY29uZmlndXJh dGlvbi4gSW4gb3VyIGFwcGxpY2F0aW9uIGZyYW1ld29yaywgZWFjaCBwaXBlbGluZSBzdGFnZSBy ZXBvcnRzIGJhY2sgdG8gdGhlIG1haW4gbG9vcCBpZiBpdCBleHBlY3RzIHRvIGhhdmUgbW9yZSB3 b3JrIHJlYWRpbHkgYXZhaWxhYmxlIG9yIG5vdC4gU28gaXQgaXMgdXAgdG8gdGhlIHBpcGVsaW5l IHN0YWdlIHRvIGRldGVybWluZSB3aGF0IGl0IGNvbnNpZGVycyBhICJmdWxsIGJ1cnN0IiBvciAi MTAwICUgYnVzeSIuDQoNCk9ubHkgdGhlIFJYIGFuZCBUWCBzdGFnZXMgYWN0dWFsbHkgY29tcGFy ZSB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlZCBwYWNrZXRzIHdpdGggdGhlaXIgTUFYX1BLVF9CVVJT VCBlcXVpdmFsZW50LiBJbiBhZGRpdGlvbiB0byB0aGlzLCB3ZSBhbHNvIGNvbnNpZGVyIHRoZSBy ZXR1cm4gdmFsdWVzIGZyb20gcnRlX2V0aF9yeF9xdWV1ZV9jb3VudCgpIGFuZC9vciB0aGUgImF2 YWlsYWJsZSIgb3V0cHV0IHBhcmFtZXRlciBmcm9tIHJ0ZV9yaW5nX2RlcXVldWVfYnVyc3QoKSB0 byBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIHJlYWRpbHkgYXZhaWxhYmxlLCBvciBpZiB0aGUg cGlwZWxpbmUgc3RhZ2Ugc2hvdWxkIHJldHVybiAwICgibm8gbW9yZSB3b3JrIikgZXZlbiB0aG91 Z2ggaXQgcHJvY2Vzc2VkIGEgZnVsbCBidXJzdCBvZiBwYWNrZXRzLg0KDQo+ID4gLSBPdGhlciBz dGFnZXMgbWF5IGJlIG1vcmUgYXN5bmNocm9ub3VzIGluIG5hdHVyZSBlLmcuIGVucXVldWluZyBh bmQNCj4gPiBkZXF1ZXVpbmcgdG8vZnJvbSBhIGNyeXB0byBkZXZpY2Ugb3IgYSBRb1Mgc2NoZWR1 bGVyLiBUaGUgZGVxdWV1ZSBtaWdodA0KPiA+IG5vdCBkZXF1ZXVlIGFueSBwYWNrZXRzIG9uIGEg cGFydGljdWxhciBjYWxsIG9mIHRoZSBkZXF1ZXVlIEFQSSwgYnV0IHRoZXJlDQo+ID4gbWF5IHN0 aWxsIGJlIHBhY2tldHMgd2FpdGluZyBpbnNpZGUgdGhlIGNyeXB0byBkZXZpY2Ugb3Igc2NoZWR1 bGVyLiBUaG9zZQ0KPiB3YWl0aW5nDQo+ID4gcGFja2V0cyB3b3VsZCBhbHNvIG5lZWQgdG8gYmUg dGFrZW4gaW50byBhY2NvdW50IHNvIGFzIG5vdCB0byBzbGVlcCBmb3IgdG9vDQo+IGxvbmcuDQoN Ckdvb2QgcG9pbnQhDQoNClRoaXMgbmVlZHMgZnVydGhlciBjb25zaWRlcmF0aW9uLg0KDQo+ID4N Cj4gPiBVc2luZyBzdWNoIGFuIEFQSSB3b3VsZCByZXF1aXJlIGEgd29ya2xvYWQgZGV2ZWxvcGVy IHRvIHVwZGF0ZSB0aGVpcg0KPiBkYXRhcGF0aA0KPiA+IHRvIHJlcG9ydCB0aGUgcGlwZWxpbmUg c3RhZ2UgYnVzeW5lc3MgdG8gdGhlIGFsZ29yaXRobSwgYnV0IGlmIHRob3NlIGNhbGxzDQo+IGFy ZQ0KPiA+IGtlcHQgdG8gYSBtaW5pbXVtLCB0aGVuIHRoYXQgc2hvdWxkbid0IGJlIHRvbyBtdWNo IG9mIGEgcHJvYmxlbQ0KDQpZZXMsIHRoYXQgaXMgd2hhdCBJIGFtIGFpbWluZyBhdC4NCg0KPiA+ DQo+ID4gVGhhbmtzLA0KPiA+IERhdmlkDQo+IA0KPiBJIHNlZSB0d28gb3ZlcmxhcHBpbmcgZGlz Y3Vzc2lvbnMgaGVyZToNCj4gDQo+IFRoZSBmaXJzdCwgaXMgdXNpbmcgc29tZSBmb3JtIG9mIG1l bW9yeSB3YWl0IHdoZW4gb3IgdGltZWQgcGF1c2UgZm9yIHRoZSBjYXNlcw0KPiB3aGVyZSBpdCBp cyBzcGlubmluZyBvbiBjb250ZW5kZWQgcmVnaW9uIGxpa2UgbG9jayBvciByaW5nIGNvbmN1cnJl bmN5Lg0KPiBUaGVyZSBhbHJlYWR5IGlzIHNvbWUgb2YgdGhpcyBhdmFpbGFibGUgb24gQXJtNjQg YW5kIGhhdmluZyBUUEFVU0UgdXNlZCBvbg0KPiBpbnRlbA0KPiBtYWtlcyBzZW5zZS4gIFVzaW5n IFRQQVVTRSBpbiBydGVfdXNsZWVwIGlzIG9idmlvdXMgZ29vZCBpZGVhLg0KDQpJIGhhdmVuJ3Qg bG9va2VkIGRlZXBseSBpbnRvIHRoaXMuIEhpamFja2VkIHRoZSB0aHJlYWQgaW5zdGVhZC4gOi0p DQoNCj4gDQo+IFRoZSBvdGhlciBpcyBoYXZpbmcgc29tZSBvdmVyYWxsIGluZGljYXRpb24gb2Yg YnVzeW5lc3MuIFRoaXMgd291bGQgYmUgaG93DQo+IG9mdGVuIHRoaW5ncyBsaWtlIHJ4X2J1cnN0 IGFuZCByaW5nX2RlcXVldWUgZ2V0IGRhdGEgdG8gd29yayBvbi4gQSBtZWNoYW5pc20NCj4gZm9y IHRoaXMgbXVzdCBiZSBsaWdodHdlaWdodCAoaWUgcGVyLWNvcmUgYW5kIG1pbmltdW0gZGF0YSBj b2xsZWN0aW9uKSwNCj4gYW5kIHBsdW1iZWQgaW50byB0aGUgdGVsZW1ldHJ5IHN5c3RlbS4NCg0K QWdyZWUuDQoNCj4gSXQgbWFrZXMgc2Vuc2UgdGhhdCB0aGlzIHdvdWxkDQo+IGJlIGEgbmV3IERQ REsgRUFMIGNhbGwgdGhhdCB3b3VsZCBiZSB1c2VkIGluIHBsYWNlIG9mIHRoZSBzbGVlcCBkb25l DQo+IGJ5IG1vc3QgYXBwbGljYXRpb25zIGluIHRoZSBtYWluIGxvb3Agd2hlbiBub3QgYnVzeS4N Cg0KVGhpcyB3b3VsZCBtYWtlIGl0IGVhc3kgdG8gcGx1ZyBpbi4gR29vZCBwb2ludCENCg0KKEFs dGhvdWdoIEVBTCBpcyBibG9hdGVkIGVub3VnaCBhbHJlYWR5LCBzbyBJIG1pZ2h0IHByZWZlciBo YXZpbmcgaXQgZWxzZXdoZXJlLikNCg0KPiBBbnkgc29sdXRpb24gc2hvdWxkIGJlIGFyY2hpdGVj dHVyZSBpbmRlcGVuZGVudA0KDQpBZ3JlZSENCg0KPiANCj4gTm9uZSBvZiB0aGUgZGVzaWducyBw cmVzZW50ZWQgc28gZmFyIHNlZW0gY29tcGxldGUgYW5kIHNpbXBsZSBlbm91Z2gNCj4gdG8gYmUg cGFydCBvZiB0aGUgbWFpbiBEUERLIGRpc3RyaWJ1dGlvbi4gS2VlcCB3b3JraW5nIGFuZCBleHBl cmltZW50aW5nLg0KDQpJdCBzZWVtcyB0aGF0IHdlIGFyZSBxdWl0ZSBhIGZldyBvcmdhbml6YXRp b25zIGV4cGVyaW1lbnRpbmcgd2l0aCB0aGlzIGluZGl2aWR1YWxseS4gQW5kIFJGQ3MgcG9wIHVw IG9uIHRoZSBsaXN0IG9uY2UgaW4gYSB3aGlsZTsgYnV0IG5vbmUgb2YgdXMgaGF2ZSBmb3VuZCB0 aGUgcmlnaHQgc29sdXRpb24geWV0Lg0KDQpUaGF0J3Mgd2h5IEkgYXBwcmVjaWF0ZSBvcGVuIGRp c2N1c3Npb25zIGxpa2UgdGhlc2UsIHNoYXJpbmcgZXhwZXJpZW5jZSBhbmQgcG9pbnRpbmcgb3V0 IHRoZSBwaXRmYWxscy4NCg0KV2UganVzdCBrZWVwIHdvcmtpbmcsIGV4cGVyaW1lbnRpbmcsIGFu ZCBkaXNjdXNzaW5nLiBJdCB3aWxsIHBheSBvZmYgb25lIGRheS4NCg0K