From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dekel Peled Subject: Re: [PATCH v4 1/3] ethdev: support metadata as flow rule criteria Date: Wed, 17 Oct 2018 05:27:06 +0000 Message-ID: References: <1538056677-33846-1-git-send-email-dekelp@mellanox.com> <1539254998-8555-2-git-send-email-dekelp@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Shahaf Shuler , "dev@dpdk.org" , Ori Kam , Nikhil Rao To: Andrew Rybchenko , "wenzhuo.lu@intel.com" , "jingjing.wu@intel.com" , "bernard.iremonger@intel.com" , "olivier.matz@6wind.com" , Adrien Mazarguil , Thomas Monjalon , "ferruh.yigit@intel.com" Return-path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30071.outbound.protection.outlook.com [40.107.3.71]) by dpdk.org (Postfix) with ESMTP id A92005B34 for ; Wed, 17 Oct 2018 07:27:09 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" VGhhbmtzLCBQU0IuDQoNCkZyb206IEFuZHJldyBSeWJjaGVua28gPGFyeWJjaGVua29Ac29sYXJm bGFyZS5jb20+DQpTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDE2LCAyMDE4IDU6MTIgUE0NClRvOiBE ZWtlbCBQZWxlZCA8ZGVrZWxwQG1lbGxhbm94LmNvbT47IHdlbnpodW8ubHVAaW50ZWwuY29tOyBq aW5namluZy53dUBpbnRlbC5jb207IGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbTsgb2xpdmll ci5tYXR6QDZ3aW5kLmNvbTsgQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3VpbEA2d2lu ZC5jb20+OyBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBmZXJydWgueWln aXRAaW50ZWwuY29tDQpDYzogU2hhaGFmIFNodWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBk ZXZAZHBkay5vcmc7IE9yaSBLYW0gPG9yaWthQG1lbGxhbm94LmNvbT47IE5pa2hpbCBSYW8gPG5p a2hpbC5yYW9AaW50ZWwuY29tPg0KU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY0IDEv M10gZXRoZGV2OiBzdXBwb3J0IG1ldGFkYXRhIGFzIGZsb3cgcnVsZSBjcml0ZXJpYQ0KDQpPbiAx MC8xMS8xOCAxOjQ5IFBNLCBEZWtlbCBQZWxlZCB3cm90ZToNCg0KQXMgZGVzY3JpYmVkIGluIFsx XSwgYSBuZXcgcnRlX2Zsb3cgaXRlbSBpcyBhZGRlZCB0byBzdXBwb3J0IG1ldGFkYXRhDQoNCnRv IHVzZSBhcyBmbG93IHJ1bGUgbWF0Y2ggcGF0dGVybi4NCg0KVGhlIG1ldGFkYXRhIGlzIGFuIG9w YXF1ZSBpdGVtLCBmdWxseSBjb250cm9sbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4NCg0KDQoNClRo ZSB1c2Ugb2YgbWV0YWRhdGEgaXMgcmVsZXZhbnQgZm9yIGVncmVzcyBydWxlcyBvbmx5Lg0KDQpJ dCBjYW4gYmUgc2V0IGluIHRoZSBmbG93IHJ1bGUgdXNpbmcgdGhlIFJURV9GTE9XX0lURU1fTUVU QS4NCg0KDQoNCkFuIGFkZGl0aW9uYWwgaXRlbSAndHhfbWV0YWRhdGEnIGlzIGFkZGVkIGluIHVu aW9uIHdpdGggZXhpc3RpbmcgbWVtYmVyDQoNCidoYXNoJyBvZiBzdHJ1Y3QgJ3J0ZV9tYnVmJy4N Cg0KSXQgaXMgdXNlZCB0byBjYXJyeSB0aGUgbWV0YWRhdGEgaXRlbS4NCg0KQ3VycmVudGx5IHRo aXMgdW5pb24gaXMgdXNlZCBvbmx5IGZvciBpbmdyZXNzIHBhY2tldHMsIHNvIHVzaW5nIGl0IGZv cg0KDQplZ3Jlc3MgbWV0YWRhdGEgd2lsbCBub3QgY2F1c2UgY29uZmxpY3RzLg0KDQoNCg0KQXBw bGljYXRpb24gc2hvdWxkIHNldCB0aGUgcGFja2V0IG1ldGFkYXRhIGluIHRoZSBtYnVmIGRlZGlj YXRlZCBmaWVsZCwNCg0KYW5kIHNldCB0aGUgUEtUX1RYX01FVEFEQVRBIGZsYWcgaW4gdGhlIG1i dWYtPm9sX2ZsYWdzLg0KDQpUaGUgTklDIHdpbGwgdXNlIHRoZSBwYWNrZXQgbWV0YWRhdGEgYXMg bWF0Y2ggY3JpdGVyaWEgZm9yIHJlbGV2YW50DQoNCmZsb3cgcnVsZXMuDQoNCg0KDQpUaGlzIHBh dGNoIGludHJvZHVjZXMgbWV0YWRhdGEgaXRlbSB0eXBlIGZvciBydGVfZmxvdyBSVEVfRkxPV19J VEVNX01FVEEsDQoNCmFsb25nIHdpdGggY29ycmVzcG9uZGluZyBzdHJ1Y3QgcnRlX2Zsb3dfaXRl bV9tZXRhIGFuZCBvbF9mbGFnDQoNClBLVF9UWF9NRVRBREFUQS4NCg0KDQoNClsxXSAiW1JGQyx2 Ml0gZXRoZGV2OiBzdXBwb3J0IG1ldGFkYXRhIGFzIGZsb3cgcnVsZSBjcml0ZXJpYSINCg0KDQoN ClNpZ25lZC1vZmYtYnk6IERla2VsIFBlbGVkIDxkZWtlbHBAbWVsbGFub3guY29tPjxtYWlsdG86 ZGVrZWxwQG1lbGxhbm94LmNvbT4NCg0KWy4uLl0NCg0KDQoNCmRpZmYgLS1naXQgYS9kb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9m bG93LnJzdA0KDQppbmRleCBiNjAwYjJkLi44NjQzNzIyIDEwMDY0NA0KDQotLS0gYS9kb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0DQoNCisrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3QNCg0KQEAgLTExOTEsNiArMTE5MSwyNyBAQCBOb3JtYWxseSBwcmVjZWRl ZCBieSBhbnkgb2Y6DQoNCiAtIGBJdGVtOiBJQ01QNl9ORF9OU2BfDQoNCiAtIGBJdGVtOiBJQ01Q Nl9ORF9PUFRgXw0KDQoNCg0KK0l0ZW06IGBgTUVUQWBgDQoNCiteXl5eXl5eXl5eXl5eXg0KDQor DQoNCitNYXRjaGVzIGFuIGFwcGxpY2F0aW9uIHNwZWNpZmljIDMyIGJpdCBtZXRhZGF0YSBpdGVt Lg0KDQorDQoNCistIERlZmF1bHQgYGBtYXNrYGAgbWF0Y2hlcyBhbnkgMzIgYml0IHZhbHVlLg0K DQorDQoNCisuLiBfdGFibGVfcnRlX2Zsb3dfaXRlbV9tZXRhOg0KDQorDQoNCisuLiB0YWJsZTo6 IE1FVEENCg0KKw0KDQorICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQoNCisgICB8IEZpZWxkICAgIHwgU3ViZmllbGQgfCBWYWx1ZSAgICAgICAg ICAgICAgICAgICAgIHwNCg0KKyAgICs9PT09PT09PT09Kz09PT09PT09PT0rPT09PT09PT09PT09 PT09PT09PT09PT09PT09Kw0KDQorICAgfCBgYHNwZWNgYCB8IGBgZGF0YWBgIHwgMzIgYml0IG1l dGFkYXRhIHZhbHVlICAgICB8DQoNCisgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCg0KKyAgIHwgYGBsYXN0YGAgfCBgYGRhdGFgYCB8IHVwcGVy IHJhbmdlIHZhbHVlICAgICAgICAgfA0KDQorICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQoNCisgICB8IGBgbWFza2BgIHwgYGBkYXRhYGAgfCB6 ZXJvZWQgdG8gbWF0Y2ggYW55IHZhbHVlIHwNCg0KKyAgICstLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KDQorDQoNCklzIHRoZXJlIGEgZGlmZmVyZW5j ZSBiZXR3ZWVuIGFueSBtZXRhZGF0YSB2YWx1ZSBhbmQNCm5vIG1ldGFkYXRhIHZhbHVlIGF0IGFs bD8NCg0KDQo8RFA+IFZhbHVlIFplcm8gaXMgY29uc2lkZXJlZCBhcyBubyBtZXRhZGF0YSB2YWx1 ZS4NCg0KDQpkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oIGIvbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldi5oDQoNCmluZGV4IDAxMjU3N2IuLjkzM2YwZTAgMTAw NjQ0DQoNCi0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaA0KDQorKysgYi9saWIv bGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmgNCg0KQEAgLTk0Miw2ICs5NDIsMTEgQEAgc3RydWN0 IHJ0ZV9ldGhfY29uZiB7DQoNCiAgKiBmb3IgdHVubmVsIFRTTy4NCg0KICAqLw0KDQogI2RlZmlu ZSBERVZfVFhfT0ZGTE9BRF9JUF9UTkxfVFNPICAgICAgIDB4MDAwODAwMDANCg0KKy8qKg0KDQor ICogRGV2aWNlIHN1cHBvcnRzIG1hdGNoIG9uIG1ldGFkYXRhIFR4IG9mZmxvYWQuLg0KDQorICog QXBwbGljYXRpb24gbXVzdCBzZXQgUEtUX1RYX01FVEFEQVRBIGFuZCBtYnVmIG1ldGFkYXRhIGZp ZWxkLg0KDQorICovDQoNCisjZGVmaW5lIERFVl9UWF9PRkZMT0FEX01BVENIX01FVEFEQVRBICAg MHgwMDEwMDAwMA0KDQoNCg0KICNkZWZpbmUgUlRFX0VUSF9ERVZfQ0FQQV9SVU5USU1FX1JYX1FV RVVFX1NFVFVQIDB4MDAwMDAwMDENCg0KIC8qKjwgRGV2aWNlIHN1cHBvcnRzIFJ4IHF1ZXVlIHNl dHVwIGFmdGVyIGRldmljZSBzdGFydGVkKi8NCg0KDQoNCmRpZmYgLS1naXQgYS9saWIvbGlicnRl X21idWYvcnRlX21idWYuaCBiL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5oDQoNCmluZGV4IGE1 MGIwNWMuLjFmYTM4ZGIgMTAwNjQ0DQoNCi0tLSBhL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5o DQoNCisrKyBiL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5oDQoNCkBAIC0xODIsNiArMTgyLDEx IEBADQoNCiAvKiBhZGQgbmV3IFRYIGZsYWdzIGhlcmUgKi8NCg0KDQoNCiAvKioNCg0KKyAqIElu ZGljYXRlIHRoYXQgdGhlIG1ldGFkYXRhIGZpZWxkIGluIHRoZSBtYnVmIGlzIGluIHVzZS4NCg0K KyAqLw0KDQorI2RlZmluZSBQS1RfVFhfTUVUQURBVEEgICAgICAgKDFVTEwgPDwgNDEpDQoNCisN Cg0KKy8qKg0KDQogICogVURQIEZyYWdtZW50YXRpb24gT2ZmbG9hZCBmbGFnLiBUaGlzIGZsYWcg aXMgdXNlZCBmb3IgZW5hYmxpbmcgVURQDQoNCiAgKiBmcmFnbWVudGF0aW9uIGluIFNXIG9yIGlu IEhXLiBXaGVuIHVzZSBVRk8sIG1idWYtPnRzb19zZWdzeiBpcyB1c2VkDQoNCiAgKiB0byBzdG9y ZSB0aGUgTVNTIG9mIFVEUCBmcmFnbWVudHMuDQoNCkBAIC0zNDIsOCArMzQ3LDkgQEANCg0KICAg ICAgICAgICAgICAgIFBLVF9UWF9RSU5RX1BLVCB8ICAgICAgICBcDQoNCiAgICAgICAgICAgICAg ICBQS1RfVFhfVkxBTl9QS1QgfCAgICAgICAgXA0KDQogICAgICAgICAgICAgICAgUEtUX1RYX1RV Tk5FTF9NQVNLIHwgICAgXA0KDQotICAgICAgICAgICAgICAgUEtUX1RYX01BQ1NFQyB8ICAgICAg ICAgXA0KDQotICAgICAgICAgICAgICAgUEtUX1RYX1NFQ19PRkZMT0FEKQ0KDQorICAgICAgICAg ICAgICAgUEtUX1RYX01BQ1NFQyB8ICAgICAgICAgIFwNCg0KKyAgICAgICAgICAgICAgIFBLVF9U WF9TRUNfT0ZGTE9BRCB8ICAgIFwNCg0KKyAgICAgICAgICAgICAgIFBLVF9UWF9NRVRBREFUQSkN Cg0KDQoNCiAvKioNCg0KICAqIE1idWYgaGF2aW5nIGFuIGV4dGVybmFsIGJ1ZmZlciBhdHRhY2hl ZC4gc2hpbmZvIGluIG1idWYgbXVzdCBiZSBmaWxsZWQuDQoNCkBAIC01MTEsMjggKzUxNyw0MSBA QCBzdHJ1Y3QgcnRlX21idWYgew0KDQogICAgICAgIC8qKiBWTEFOIFRDSSAoQ1BVIG9yZGVyKSwg dmFsaWQgaWYgUEtUX1JYX1ZMQU4gaXMgc2V0LiAqLw0KDQogICAgICAgIHVpbnQxNl90IHZsYW5f dGNpOw0KDQoNCg0KKyAgICAgICBSVEVfU1REX0MxMQ0KDQogICAgICAgIHVuaW9uIHsNCg0KLSAg ICAgICAgICAgICAgIHVpbnQzMl90IHJzczsgICAgIC8qKjwgUlNTIGhhc2ggcmVzdWx0IGlmIFJT UyBlbmFibGVkICovDQoNCi0gICAgICAgICAgICAgICBzdHJ1Y3Qgew0KDQotICAgICAgICAgICAg ICAgICAgICAgICBSVEVfU1REX0MxMQ0KDQotICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiB7 DQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgew0KDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBoYXNoOw0KDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBpZDsNCg0KKyAgICAgICAgICAg ICAgIHVuaW9uIHsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcnNzOyAgICAg LyoqPCBSU1MgaGFzaCByZXN1bHQgaWYgUlNTIGVuYWJsZWQgKi8NCg0KKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9u IHsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHsNCg0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBo YXNoOw0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3QgaWQ7DQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQoN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxvOw0KDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKio8IFNlY29uZCA0IGZsZXhp YmxlIGJ5dGVzICovDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaGk7DQoNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKio8IEZpcnN0IDQgZmxleGlibGUgYnl0ZXMgb3IgRkQgSUQsIGRl cGVuZGVudA0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogb24gUEtUX1JYX0ZE SVJfKiBmbGFnIGluIG9sX2ZsYWdzLg0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovDQoNCisgICAgICAgICAgICAgICAgICAgICAgIH0gZmRpcjsgLyoqPCBGaWx0ZXIgaWRlbnRp ZmllciBpZiBGRElSIGVuYWJsZWQgKi8NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxvOw0KDQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBTZWNvbmQgNCBmbGV4aWJsZSBieXRlcyAq Lw0KDQotICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQotICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBoaTsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBGaXJzdCA0IGZs ZXhpYmxlIGJ5dGVzIG9yIEZEIElELCBkZXBlbmRlbnQgb24NCg0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQS1RfUlhfRkRJUl8qIGZsYWcgaW4gb2xfZmxhZ3MuICovDQoNCi0gICAgICAg ICAgICAgICB9IGZkaXI7ICAgICAgICAgICAvKio8IEZpbHRlciBpZGVudGlmaWVyIGlmIEZESVIg ZW5hYmxlZCAqLw0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaGk7 DQoNCisgICAgICAgICAgICAgICAgICAgICAgIH0gc2NoZWQ7ICAgICAgICAgIC8qKjwgSGllcmFy Y2hpY2FsIHNjaGVkdWxlciAqLw0KDQorICAgICAgICAgICAgICAgICAgICAgICAvKio8IFVzZXIg ZGVmaW5lZCB0YWdzLiBTZWUgcnRlX2Rpc3RyaWJ1dG9yX3Byb2Nlc3MoKSAqLw0KDQorICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCB1c3I7DQoNCisgICAgICAgICAgICAgICB9IGhhc2g7 ICAgICAgICAgICAgICAgICAgIC8qKjwgaGFzaCBpbmZvcm1hdGlvbiAqLw0KDQogICAgICAgICAg ICAgICAgc3RydWN0IHsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbG87DQoN CisgICAgICAgICAgICAgICAgICAgICAgIC8qKg0KDQorICAgICAgICAgICAgICAgICAgICAgICAg KiBBcHBsaWNhdGlvbiBzcGVjaWZpYyBtZXRhZGF0YSB2YWx1ZQ0KDQorICAgICAgICAgICAgICAg ICAgICAgICAgKiBmb3IgZWdyZXNzIGZsb3cgcnVsZSBtYXRjaC4NCg0KKyAgICAgICAgICAgICAg ICAgICAgICAgICogVmFsaWQgaWYgUEtUX1RYX01FVEFEQVRBIGlzIHNldC4NCg0KKyAgICAgICAg ICAgICAgICAgICAgICAgICovDQoNCkRvIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhhdCBpdCBp cyBpbiBDUFUgYnl0ZSBvcmRlcj8NCg0KPERQPiBZZXMuIFRoZSBtZXRhZGF0YSB2YWx1ZSBpcyBu b3Qgc2VudCBvdXQgdG8gbmV0d29yay4NCg0KDQorICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCB0eF9tZXRhZGF0YTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaGk7 DQoNCkkgZG9uJ3Qga25vdyBpZiB3ZSBuZWVkICdoaScgaGVyZS4gUmlnaHQgbm93IG9ubHkgb25l IHRoaW5nIGlzDQppbXBvcnRhbnQgLSBtYWtlIGl0IGNsZWFyIHRoYXQgaXQgaXMgbm90IHVzZWQu IE1heSBiZSBuYW1lIGl0ICdyZXNlcnZlZCcNCmluc3RlYWQgb2YgJ2hpJy4NCg0KPERQPiBBY2Nl cHRlZCwgSSB3aWxsIHJlbmFtZSBpdC4NCg0KSXQgaXMgaW50ZXJlc3RpbmcgdGhhdCBoYXNoOjpz Y2hlZDo6aGkgaXMgdXNlZCBmb3IgVHhRIGlkZW50aWZpY2F0aW9uDQppbiBydGVfZXZlbnRfZXRo X3R4LiBUaGUgcGF0Y2ggdXNlcyBsb3cgYnl0ZXMuIFNvLCBzZWVtIHRvIGJlIGZpbmUuDQpIb3dl dmVyLCBpZiB0aGUgc2VwYXJhdGUgc3RydWN0dXJlIGlzIGFkZGVkIGluIHVuaW9uIGZvciBUeCBm aWVsZHMsDQppdCBsb29rcyBzdHJhbmdlIHRha2luZyAgcnRlX2V2ZW50X2V0aF90eCBpbnRvIGFj Y291bnQuDQpTbywgSSB0aGluayBpdCB3b3VsZCBiZSBnb29kIGRvY3VtZW50IChjb21tZW50cykg dGhlIHB1cnBvc2UNCm9mIHNlcGFyYXRlIGJ1dCB1bm5hbWVkIHN0cnVjdHVyZSBpbiB0aGUgdW5p b24uDQoNCjxEUD4gQWNjZXB0ZWQsIEkgd2lsbCBhZGQgY29tbWVudC4NCg0KQW5kcmV3Lg0K