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 1A19DA046B for ; Thu, 27 Jun 2019 10:26:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E9BDF1E2F; Thu, 27 Jun 2019 10:26:50 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70087.outbound.protection.outlook.com [40.107.7.87]) by dpdk.org (Postfix) with ESMTP id 700531E20 for ; Thu, 27 Jun 2019 10:26:49 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=sZ+zSqvyHcy01jtqql2Z0j0bMjJv9bfMheVzq5inFGnoZC3btJjERIByeVFJ4ZjoVWMl03cXasQlLP7ENgMdsjW/NR/kRcCmC2MP+8+dv3BiC77K1kId+JMNKs9pv0gKKiX5egxJd4WxK00cOvYOS1DvfnkKSmrSz2U8K7s/H00= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r+NPnlrj+8snLYYJQOHH4nsyDHyfGyl6u2nnFIyqoWs=; b=hG7zLQaGMW/zqr8sYkMSFDlUgwHx23n3vwktKoqWYOEL4RjNfnRvaoeKsWLlSsAJ4zx9HKea1sNW6UBjeSQfpmtlVC6vQO9cYaXIXrhecb0e2r0QROp9MOgoPnXRH//sd0Swt8872ASOGA1hG9WwbjTAQy4wYD6vUUXPAj0Onj8= ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none;dkim=none;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r+NPnlrj+8snLYYJQOHH4nsyDHyfGyl6u2nnFIyqoWs=; b=YdfvfyPuIoXlYpGzqLo5CH8/xeYQecjB0gm/6Dxb+XbkJa1Je/ZmE+zkCZrLIZKDDoUxASi+3L8RkV/R6MgjqiBBqTgIMb5xrHqu7Qrs9GFbGQ4EkRVSZ+idD2NbQR9N2tc69VY3rDe1pHtCh4VjA0ByjvxfP2aOzb85PrheXPI= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.39.139) by AM0PR0502MB3891.eurprd05.prod.outlook.com (52.133.45.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Thu, 27 Jun 2019 08:26:48 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a81f:9e35:487d:d788]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::a81f:9e35:487d:d788%7]) with mapi id 15.20.2008.014; Thu, 27 Jun 2019 08:26:48 +0000 From: Matan Azrad To: Jerin Jacob Kollanukkaran , Adrien Mazarguil , "dev@dpdk.org" Thread-Topic: [PATCH] [RFC] ethdev: support flow aging Thread-Index: AQHVE6xZdRJnMnCt1UOalpFSEqCNWKaOe3uAgAADrUCAABn+oIASay2QgAl+VOCABNk5gA== Date: Thu, 27 Jun 2019 08:26:48 +0000 Message-ID: References: <1558865893-23381-1-git-send-email-matan@mellanox.com> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.126.105.67] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92813f69-2e01-429e-3a42-08d6fad9327e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR0502MB3891; x-ms-traffictypediagnostic: AM0PR0502MB3891: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 008184426E x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(396003)(136003)(39860400002)(376002)(199004)(189003)(13464003)(53754006)(316002)(5660300002)(66476007)(3846002)(486006)(86362001)(64756008)(66556008)(7696005)(68736007)(66446008)(229853002)(99286004)(2906002)(73956011)(52536014)(66946007)(11346002)(76116006)(6116002)(446003)(476003)(186003)(110136005)(55016002)(14454004)(53546011)(6436002)(74316002)(305945005)(7736002)(26005)(9686003)(2501003)(33656002)(8676002)(71200400001)(71190400001)(25786009)(478600001)(81166006)(81156014)(256004)(8936002)(14444005)(66066001)(6246003)(53936002)(76176011)(6506007)(102836004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3891; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: dW4SYmh1mxsqaJjgeUdgHUxfzLsyQTNcWbd0/ldFet3J8ZXiMKHuITDF/v7h6TxOpLFV8xpBKJvjYUQtDqiktUVmYH9B/H0fNasolqS+8Z2hcLTrX90h567FnfJjP7yLoWwE/cGtbUYRKhIH8FvjFJ0kFi0uTB727SBPASWYy/k/SeEnzQRDbWHcm+SZvYdTwQ7KjzL59oTD1yDLDSDP28Sma4Xc2Mkz1j5OPtp4OxBNLlwf/01Q4owkag/kKK90Ak3OoMdg1tr9/iHQ8LpEORJyMC9EcSiz+qcXXMXqD7wQ2mxhOssw0llwMkG4lFtuLn6xvtCeaJQ+eK7GGnVpPAO1Uv45VrwgOo9rrGu/Sg9r7XPfZ93M6Nf5giFJf0HYoNIgIZRU6px5we7pF9VkEk/75jCfw8do+PJDnGiotdA= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92813f69-2e01-429e-3a42-08d6fad9327e X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2019 08:26:48.0664 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: matan@mellanox.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3891 Subject: Re: [dpdk-dev] [PATCH] [RFC] ethdev: support flow aging 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" SGkgYWxsDQoNClRoYW5rcyBKZXJpbiBmb3IgeW91ciBjb21tZW50cy4NCkxvb2tzIGxpa2Ugd2Ug YWdyZWUgdGhhdCB0aGUgZmVhdHVyZSBpcyByZWxldmFudCBhdCBsZWFzdCBmb3IgbWx4NS4uLg0K DQpBbnlvbmUgZWxzZSBoYXMgbW9yZSBjb21tZW50cz8NCg0KDQpGcm9tOiBKZXJpbiBKYWNvYiBL b2xsYW51a2thcmFuIA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog TWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBKdW5l IDE4LCAyMDE5IDExOjI3IEFNDQo+ID4gVG86IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGpl cmluakBtYXJ2ZWxsLmNvbT47IEFkcmllbiBNYXphcmd1aWwNCj4gPiA8YWRyaWVuLm1hemFyZ3Vp bEA2d2luZC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiBTdWJqZWN0OiBbRVhUXSBSRTogW1BBVENI XSBbUkZDXSBldGhkZXY6IHN1cHBvcnQgZmxvdyBhZ2luZw0KPiA+DQo+ID4gSGkgSmVyaW4NCj4g DQo+IEhpIE1hdGFuLA0KPiANCj4gPg0KPiA+IEZyb206IEplcmluIEphY29iDQo+ID4gPiBTZW50 OiBUaHVyc2RheSwgSnVuZSA2LCAyMDE5IDM6MTYgUE0NCj4gPiA+IFRvOiBNYXRhbiBBenJhZCA8 bWF0YW5AbWVsbGFub3guY29tPjsgQWRyaWVuIE1hemFyZ3VpbA0KPiA+ID4gPGFkcmllbi5tYXph cmd1aWxANndpbmQuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENI XSBbUkZDXSBldGhkZXY6IHN1cHBvcnQgZmxvdyBhZ2luZw0KPiA+ID4NCj4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogTWF0YW4gQXpyYWQgPG1hdGFuQG1l bGxhbm94LmNvbT4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIEp1bmUgNiwgMjAxOSA0OjIyIFBN DQo+ID4gPiA+IFRvOiBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5j b20+OyBBZHJpZW4NCj4gPiA+ID4gTWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNv bT47IGRldkBkcGRrLm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBbRVhUXSBSRTogW1BBVENIXSBbUkZD XSBldGhkZXY6IHN1cHBvcnQgZmxvdyBhZ2luZw0KPiA+ID4gPg0KPiA+ID4gPiBIaSBKZXJpbg0K PiA+ID4NCj4gPiA+IEhpIE1hdGFuLA0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gRnJvbTogSmVy aW4gSmFjb2INCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ ID4gPiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgTWF0YW4g QXpyYWQNCj4gPiA+ID4gPiA+IFNlbnQ6IFN1bmRheSwgTWF5IDI2LCAyMDE5IDM6NDggUE0NCj4g PiA+ID4gPiA+IFRvOiBBZHJpZW4gTWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNv bT47DQo+ID4gPiA+ID4gPiBkZXZAZHBkay5vcmcNCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFtkcGRr LWRldl0gW1BBVENIXSBbUkZDXSBldGhkZXY6IHN1cHBvcnQgZmxvdyBhZ2luZw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IE9uZSBvZiB0aGUgcmVhc29ucyB0byBkZXN0cm95IGEgZmxvdyBpcyB0 aGUgZmFjdCB0aGF0IG5vDQo+ID4gPiA+ID4gPiBwYWNrZXQgbWF0Y2hlcyB0aGUgZmxvdyBmb3Ig InRpbWVvdXQiIHRpbWUuDQo+ID4gPiA+ID4gPiBGb3IgZXhhbXBsZSwgd2hlbiBUQ1BcVURQIHNl c3Npb25zIGFyZSBzdWRkZW5seSBjbG9zZWQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQ3Vy cmVudGx5LCB0aGVyZSBpcyBubyBhbnkgZHBkayBtZWNoYW5pc20gZm9yIGZsb3cgYWdpbmcgYW5k DQo+ID4gPiA+ID4gPiB0aGUgYXBwbGljYXRpb25zIHVzZSB0aGVyZSBvd24gd2F5cyB0byBkZXRl Y3QgYW5kIGRlc3Ryb3kNCj4gPiA+ID4gPiA+IGFnZWQtb3V0DQo+ID4gZmxvd3MuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gVGhpcyBSRkMgaW50cm9kdWNlcyBmbG93IGFnaW5nIEFQSXMgdG8g b2ZmbG9hZCB0aGUgZmxvdyBhZ2luZw0KPiA+ID4gPiA+ID4gdGFzayBmcm9tIHRoZSBhcHBsaWNh dGlvbiB0byB0aGUgcG9ydC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBEZXNpZ246DQo+ID4g PiA+ID4gPiAtIEEgbmV3IHJ0ZV9mbG93IGFjdGlvbjogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQUdF IHRvIHNldCB0aGUNCj4gPiA+ID4gdGltZW91dA0KPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4g PiAgIHRoZSBhcHBsaWNhdGlvbiBmbG93IGNvbnRleHQgZm9yIGVhY2ggZmxvdy4NCj4gPiA+ID4g PiA+IC0gQSBuZXcgZXRoZGV2IGV2ZW50OiBSVEVfRVRIX0VWRU5UX0ZMT1dfQUdFRCBmb3IgdGhl IGRyaXZlcg0KPiA+IHRvDQo+ID4gPiA+ID4gcmVwb3J0DQo+ID4gPiA+ID4gPiAgIHRoYXQgdGhl cmUgYXJlIG5ldyBhZ2VkLW91dCBmbG93cy4NCj4gPiA+ID4gPiA+IC0gQSBuZXcgcnRlX2Zsb3cg QVBJOiBydGVfZmxvd19nZXRfYWdlZF9mbG93cyB0byBnZXQgdGhlDQo+ID4gPiA+ID4gPiBhZ2Vk LW91dA0KPiA+ID4gPiBmbG93cw0KPiA+ID4gPiA+ID4gICBjb250ZXh0cyBmcm9tIHRoZSBwb3J0 Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEJ5IHRoaXMgZGVzaWduIGVhY2ggUE1EIGNhbiB1 c2UgaXRzIGJlc3Qgd2F5IHRvIGRvIHRoZSBhZ2luZw0KPiA+ID4gPiA+ID4gd2l0aCB0aGUgZGV2 aWNlIG9mZmxvYWRzIHN1cHBvcnRlZCBieSBpdHMgSFcuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT4NCj4gPiA+ ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaCB8 ICAxICsNCj4gPiA+ID4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oICAgfCA1Ng0K PiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ ID4gPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYu aA0KPiA+ID4gPiA+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmggaW5kZXggMWYz NWUxZC4uNmZjMTUzMSAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2 L3J0ZV9ldGhkZXYuaA0KPiA+ID4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0 aGRldi5oDQo+ID4gPiA+ID4gPiBAQCAtMjc3MSw2ICsyNzcxLDcgQEAgZW51bSBydGVfZXRoX2V2 ZW50X3R5cGUgew0KPiA+ID4gPiA+ID4gIAlSVEVfRVRIX0VWRU5UX05FVywgICAgICAvKio8IHBv cnQgaXMgcHJvYmVkICovDQo+ID4gPiA+ID4gPiAgCVJURV9FVEhfRVZFTlRfREVTVFJPWSwgIC8q KjwgcG9ydCBpcyByZWxlYXNlZCAqLw0KPiA+ID4gPiA+ID4gIAlSVEVfRVRIX0VWRU5UX0lQU0VD LCAgICAvKio8IElQc2VjIG9mZmxvYWQgcmVsYXRlZCBldmVudCAqLw0KPiA+ID4gPiA+ID4gKwlS VEVfRVRIX0VWRU5UX0ZMT1dfQUdFRCwvKio8IE5ldyBhZ2VkLW91dCBmbG93cw0KPiA+IGRldGVj dGVkIGluDQo+ID4gPiA+ID4gPiB0aGUgcG9ydA0KPiA+ID4gPiA+IERvZXMgdGhpcyBldmVudCBz dXBwb3J0ZWQgaW4gSFc/DQo+ID4gPiA+IEl0IGRlcGVuZHMgaW4gdGhlIFBNRCBpbXBsZW1lbnRh dGlvbiBhbmQgSFcgY2FwYWJpbGl0eS4NCj4gPiA+ID4NCj4gPiA+ID4gPiBPciBBcmUgcGxhbm5p bmcgdG8gaW1wbGVtZW50IHdpdGggYWxhcm0gb3IgdGltZXIuDQo+ID4gPiA+IEFnYWluLCBkZXBl bmRzIGluIHRoZSBQTUQgaW1wbGVtZW50YXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4gSnVzdCBh c2tpbmcgYmVjYXVzZSwgaWYgbm9uZSBvZiB0aGUgSFcgc3VwcG9ydHMgdGhlIGludGVycnVwdA0K PiA+ID4gPiA+IHRoZW4gb25seSBydGVfZmxvd19nZXRfYWdlZF9mbG93cyBzeW5jIEFQSSBiZSBl bm91Z2goKQ0KPiA+ID4gPiBXaHk/DQo+ID4gPg0KPiA+ID4gSWYgbm9uZSBvZiB0aGUgSFcgc3Vw cG9ydHMgaXQgdGhlbiBhcHBsaWNhdGlvbi9jb21tb24gY29kZSBjYW4NCj4gPiA+IHBlcmlvZGlj YWxseSBwb2xscyBpdC4NCj4gPiA+IElmIG1seDUgaHcgc3VwcG9ydHMgaXQgdGhlbiBpdCBmaW5l IHRvIGhhdmUgaW50ZXJydXB0Lg0KPiA+DQo+ID4gQWN0dWFsbHkgTUxYNSBkb2Vzbid0IHN1cHBv cnQgYWdpbmcgZnVsbHkgYnkgSFcgYnV0IHRoZSBIVyBjYW4gaGVscCB0bw0KPiA+IGRvIGl0IGJl dHRlci4NCj4gPiBMb29rLCB0aGUgUE1EIGlzIHRoZSBiZXN0IG9uZSB0byBrbm93IHdoYXQgaXMg dGhlIGJlc3Qgd2F5IHRvIGRvIGFnaW5nDQo+ID4gYnkgaXRzIEhXIGV2ZW4gaWYgYWdpbmcgaXMg bm90IGZ1bGx5IHN1cHBvcnRlZCBieSBpdC4NCj4gPiBBbmQgaXQgbWF5IGFkZCBhIG1lYW5pbmdm dWwgZWZmaWNpZW5jeSB0byB0aGUgYXBwbGljYXRpb24uDQo+ID4NCj4gPiA+IEJ1dCBJIHRoaW5r LCB3ZSBuZWVkIHRvIGhhdmUgbWVhbnMgdG8gZXhwcmVzcyBhIEhXL0ltcGxlbWVudGF0aW9uDQo+ ID4gPiBkb2VzIG5vdCBzdXBwb3J0IGl0cyBBcyB0aGVyZSBtYXkgZm9sbG93aW5nIHJlYXNvbnMg d2h5IGRyaXZlcnMNCj4gPiA+IGNob29zZSB0byBub3QgdGFrZSB0aW1lci9hbGFybSBwYXRoDQo+ ID4gPiAxKSBTb21lIEVBTCBwb3J0IGRvZXMgbm90IHN1cHBvcnQgdGltZXIvYWxhcm0gZXhhbXBs ZTogRnJlZUJTRCBEUERLDQo+ID4gPiBwb3J0DQo+ID4gCU9LLCBidXQgd2h5IG5vdCB0byBzdXBw b3J0IGl0IGZvciBvdGhlciBjYXNlcyAobm8gRnJlZUJTRCBwb3J0KT8NCj4gPg0KPiA+ID4gMikg SWYgd2UgbmVlZCB0byBzdXBwb3J0IGEgZmV3IGtpbGxvIHJ1bGVzIHRoZW4gdGltZXIvYWxhcm0N Cj4gPiA+IGltcGxlbWVudGF0aW9uIHdpbGwgYmUgaGVhdnkNCj4gPg0KPiA+IE5vdCBzdXJlLCBE ZXBlbmQgaW4gdGhlIEhXIGFiaWxpdHkuDQo+IA0KPiBZZXMgd2hlbiBIVyBkb2VzIG5vdCBzdXBw b3J0IGF0IGFsbC4NCj4gDQo+ID4NCj4gPiA+IFNvIGFuIG9wdGlvbiB0byBleHByZXNzIHVuIHN1 cHBvcnRlZCBldmVudCB3b3VsZCBiZSBmaW5lLg0KPiA+DQo+ID4gQ2FuIHlvdSBleHBsYWluIG1v cmUgd2hhdCBpcyB5b3VyIGludGVuc2lvbiBoZXJlICgyKT8NCj4gDQo+IFRvIGFkZHJlc3MgdGhl IGNhc2Ugd2hlcmUgSFcgYW5kL29yIE9TKExpa2UgRnJlZUJTRCkgZG9lcyBub3Qgc3VwcG9ydCBh dA0KPiBhbGwgLiBJbiBzdWNoIGNhc2UsIEV4cHJlc3NpbmcgdGhlIHVuc3VwcG9ydGVkIHdvdWxk IGhlbHAgYXBwbGljYXRpb24gdG8NCj4gaGFuZGxlIGluIHN5bmNocm9ub3VzIG1hbm5lci4NCj4g DQo+ID4NCj4gPiA+ID4gQWNjb3JkaW5nIHRvIHRoZSBhYm92ZSBkZXNpZ24gdGhpcyBpcyB0aGUg d2F5IGZvciB0aGUgUE1EIHRvDQo+ID4gPiA+IG5vdGlmeSB0aGUgYXBwbGljYXRpb24gd2hlbiBp dCBoYXMgc29tZSBhZ2VkIGZsb3dzIEFTQVAuDQo+ID4gPiA+IFNvLCBpZiB0aGUgUE1EIHVzZXMg YW4gYWxhcm1cdGltZXIgb3IgYW55IG90aGVyIHdheSB0byBzdXBwb3J0DQo+ID4gPiA+IGFnaW5n IGFjdGlvbiBpdCBpcyBiZXR0ZXIgaW4gcGFydCBvZiB0aGUgY2FzZXMgdG8gbm90aWZ5IHRoZSB1 c2VyDQo+ID4gPiA+IGFzeW5jaHJvbmljYWxseSBpbnN0ZWFkIG9mIGRvaW5nIHBvbGxpbmcgYnkg dGhlIGFwcGxpY2F0aW9uLg0KPiA+ID4gPiBUaGUgaWRlYSBpcyB0byBsZXQgdGhlIGFwcGxpY2F0 aW9uIHRvIGRlY2lkZSB3aGF0IGlzIGJldHRlciBmb3IgaXRzIHVzYWdlLg0KPiA+ID4gPg0KPiA+ ID4gPiBGb3IgbWx4NSBjYXNlLA0KPiA+ID4gPiBUaGUgcGxhbiBpcyB0byByYWlzZSB0aGlzIGV2 ZW50IGZyb20gYW4gSFcgaW50ZXJydXB0IGhhbmRsaW5nKHNhbWUNCj4gPiA+ID4gYXMgbGluayBl dmVudCkuDQo+ID4gPg0KPiA+ID4gR29vZCB0byBrbm93Lg0KPiA+DQo+ID4gVGhlIE1MWDUgcGxh biBpcyBzdGlsbCB0byB1c2UgdGltZXIvYWxhcm0gYW5kIGludGVycnVwdCBtZWNoYW5pc20gdG8N Cj4gPiBzdXBwb3J0DQo+ID4gYWdpbmc6DQo+ID4gIFRoZSBIVyBoZWxwIGhlcmUgaXMgdGhlIGFi aWxpdHkgdG8gcXVlcnkgYmF0Y2ggb2YgZmxvd3MgY291bnRlcnMNCj4gPiBhc3luY2hyb25pY2Fs bHksIHNvIGdldHRpbmcgdGhlIHJlc3BvbnNlIG9mIHRoZSBuZXcgY291bnRlcnMgdmFsdWVzIGJ5 DQo+ID4gYW4gaW50ZXJydXB0Lg0KPiA+DQo+ID4gVGhlIHRpbWVyXGFsYXJtIHdpbGwgY2FsbCB0 byBkZXZYIG9wZXJhdGlvbiB0byByZWFkIGJhdGNoIG9mIGNvdW50ZXJzDQo+ID4gYXN5bmNocm9u aWNhbGx5IC0gZmFzdCBjb21tYW5kLg0KPiA+IFRoZSBpbnRlcnJ1cHQgaGFuZGxlciB0byBjYXRj aCB0aGUgcmVzcG9uc2UgYW5kIHRvIGNoZWNrIHRpbWVvdXQgZm9yDQo+ID4gZWFjaCBmbG93IChu byBuZWVkIHRvIGNvcHkgdGhlIGNvdW50ZXJzIGZyb20gdGhlIEhXIG1lbW9yeSAtIHRoZQ0KPiA+ IHZhbHVlcyBhcmUgaW4gdGhlIFBNRCBtZW1vcnkpIC0gaWYgdGhlcmUgaXMgYSBuZXcgYWdlZCBm bG93IC0gcmFpc2UgdGhlDQo+IGV2ZW50Lg0KPiA+DQo+ID4NCg0K