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 26496A04B8; Tue, 5 May 2020 11:47:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8ABF21C235; Tue, 5 May 2020 11:47:55 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50047.outbound.protection.outlook.com [40.107.5.47]) by dpdk.org (Postfix) with ESMTP id 3B9B71C1A7; Tue, 5 May 2020 11:47:54 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XZpijJ3Rz9Bqguom/06La4+1xIdFcWrO6UnGqgiOu2/lg/nX3S+5rbyblwWmWZb7wzR6treMRiAPf2NOoF2o+ZDFPZ74S5vSdGSdXxjNunc9Po2VgJv8c3ay/gM0sWnSwoXnosSNq5VlMTyp40ext+fOjSUNfG1O1wWMTvvzzwAS4krSIW9VqFn3o6wXRt+uSzee9OQqk1X9SBOv1igT0OezaAU/yPg/27e9HTZzj3FnCJyoSkrqk9aXGLh1MS5N0IwDK27ZrlxuiNU47pCUa+V3yDgn95dy3wMFN0dbgnacnQDGENPayuLd0z/kMeehe1T53e6r0iN1Smz7mWG8KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=37IpK9xXEDVu2gooQNpsIW1DX0V22FH95UmBzkxgJmg=; b=V1PfGGBqRiOBO2L4xVNb3LGNCyi1+B6Ecd3mTkKBCi5J7eInPRxWOr36CO4gZ5uFhIKgPs4sfYPPIUnrlTt5sIiQfk+Oq0tnuCKwGI1QAB8XZpvbcj/7kd4mmDyQ0wseXEqHOZSK3KMalshk0OFuC+Q0cYT6PJTw2J3PFE9Up8c8OQXroJeFGxvORDR+GDTtdRYKajYK4mWiJJANiSC6l+m5RWrvCbzrBk3GWOqJQJo/brE9AiY0TI2iy5nflF9ZxgLaTJhtO1lT8oXPRZ6GmZU+r8e9QPOWl1ZLi/GaGqmrLps0peU1nRL8zHMPk8xKGZnCPh4p8TzctxeewdWhTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=37IpK9xXEDVu2gooQNpsIW1DX0V22FH95UmBzkxgJmg=; b=BqcjhrRYaKeAVr3eerY8jvpnE+vjGkUGjRP2YL1Z82q7m1rQHnYJsIl8efQ6WqhqMVwvPHg7mDgVRaKrGxD/c0P7ZE7GcWCf4xI+/jxCXTtRyOASIak5u8US6Z9qrxvgO0rsCsq0IiuQehC30YiXJF5DZVmgoegDWqroOzakjG8= Received: from AM0PR05MB4401.eurprd05.prod.outlook.com (2603:10a6:208:62::20) by AM0PR05MB6738.eurprd05.prod.outlook.com (2603:10a6:20b:144::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19; Tue, 5 May 2020 09:47:52 +0000 Received: from AM0PR05MB4401.eurprd05.prod.outlook.com ([fe80::7913:410a:98a6:bec5]) by AM0PR05MB4401.eurprd05.prod.outlook.com ([fe80::7913:410a:98a6:bec5%4]) with mapi id 15.20.2979.025; Tue, 5 May 2020 09:47:52 +0000 From: Ali Alnubani To: Stephen Hemminger CC: Ferruh Yigit , wangyunjian , "dev@dpdk.org" , "jerry.lilijun@huawei.com" , "xudingke@huawei.com" , "stable@dpdk.org" , Raslan Darawsheh , =?utf-8?B?R2HDq3RhbiBSaXZldA==?= Thread-Topic: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak Thread-Index: AQHWHLS+GZ7br3z3TUSuNQl1RwARsKiWNezAgAHxEACAAAHDgIABGQEQ Date: Tue, 5 May 2020 09:47:52 +0000 Message-ID: References: <1587984259-18296-1-git-send-email-wangyunjian@huawei.com> <20200427111210.7pm3rkifd2zcrxjo@u256.net> <2c742d0c-1478-5fc8-cf7a-ffaa81b592f6@intel.com> <20200504162002.2das2dx4tad5krqn@u256.net> <20200504092845.2329fb44@hermes.lan> In-Reply-To: <20200504092845.2329fb44@hermes.lan> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: networkplumber.org; dkim=none (message not signed) header.d=none;networkplumber.org; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [37.76.221.121] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 0b348052-e050-45cc-f7e0-08d7f0d9615e x-ms-traffictypediagnostic: AM0PR05MB6738:|AM0PR05MB6738: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:364; x-forefront-prvs: 0394259C80 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hX/YyhCEIlGRkiTx58HSgDmrAstj5W9EL4IveHiSDt2LvHHLfKEnMtqozLW45YtRvRVnvlrSXYJMRH8aLqoftwtV1s8pi2qIcE6exL8NIC0aHJR4w2DApEs35FP3cxRnt/jSUtMTU3h1RMvIWZ6X/CzCYwjRa91/cgbGT1tbqgUKTFNgOH+MbFC05JDMJpRpkU0GnfMnlFZFeuRcf+UlkHHo9BiWOtciw7x34d2KkILri4jYakwaRA/vfr53MPMH1Dyt+o85MpS9WZzgOa6CxprrB31ivd8BWWDX8YR6gePGQShSvUx2APfKUIZTX9ETfflKjv71f0oGoSLQ4/XdfDSyq52KEZwC2vykpjCHzqt8DSKf/XK7oyrZzMJUch5G2/7xAulifqvf1G65Xdg2slmGWmxxQwWwsobS4vtkkob7s8w/vNyowSWoSIYAF3SyVMqsUs55PYCTjGlmj/Wf+1ZzUnnRslt0GZa366Lkf4aYZQ71/lqPCYhlDXw/igp1L+2sDYRpEvp+0eGRiZ7/VA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB4401.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(376002)(396003)(346002)(33430700001)(86362001)(54906003)(8936002)(4326008)(316002)(8676002)(9686003)(55016002)(53546011)(7696005)(186003)(33440700001)(478600001)(71200400001)(26005)(6506007)(76116006)(5660300002)(66446008)(66556008)(66476007)(66946007)(6916009)(64756008)(52536014)(33656002)(66574012)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: SsUSIGseGAuG7dkrGPm/5l8tdbKMAE16C/cQi9ox31osfd4x8MzD4+0VCrhP68qlqS4D/WBofxatDhPxOOrCnmvize7KCl97/oyja0ZDPnRJp6YeUU7D7/OH4MCwpY1XOh90O0u8Xvut4iVnNMh9zjdNsVV/sw83bOoEvKfbML67ovPNsTY1Ink03Y67FTI34eIhvtIOeVj4EiyU2Kd+GMtQC3I6wJPhp/uGFG/jl7kBiJZ484N/1STlg7LkW9CNG/cpy3eu7NaTbQybyBzIDQmX+zy+gyVPKA+IZ3VJ//ELpYydkfTfVCBsy8jmJpXxmlA8MY8uMZnVYkB655rUUGAUN4I6eO87JzUd2VBfQJvQG/WKaCXyh2ETHGBiL4wSMIkPmLijUW8Qcc+QY4KVwancoYxsDCDovtgdqfyQEH6l5Pcpbg6+RVkhM3Q9zeesd8mzzK1a8zvNE/WDiaBCFP7M2wZIRo/CP6/J3FcQbcqPhsJKX3n0izV+QlEfj/ern8DJkHojMgPObftmuAEdgr7nIWg0X4MG3Axzv7GNMFsKyqLzElu4bLe/UzNpLBv/hu5+FcrjkvWRi3KVLFubGiU7ZJPWVwyj5Rlb/ksVIIdXyMafcxRwOjYJyBUMGYRRE/qRb7rUKb3offap9wZ11mkoZ0Xz3PRm/DiTGPZWNNJ/c0Z7+B2TyNso4vQaHIixTgIy+Kx4ml+psmN9KxaGfJVAniFZfNwLALLbBXSM4CiL32MaQ/Aa3JW69GH1PR5tCemDrrZ5papUgkESXenaCDkS34WykNOZ6MijK+4EYyE= 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: 0b348052-e050-45cc-f7e0-08d7f0d9615e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2020 09:47:52.7358 (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: /FPwTw9CgNYiB7g5UYIbTtHW1/02m8XvzEUsPuZNJgo/fywqd5imy5orL2kTwoyanG+pWKOuAc/zCfnkvBwzYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB6738 Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: fix fd leak 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" SGkgU3RlcGhlbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdGVw aGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+DQo+IFNlbnQ6IE1vbmRh eSwgTWF5IDQsIDIwMjAgNzoyOSBQTQ0KPiBUbzogR2HDq3RhbiBSaXZldCA8Z3JpdmVAdTI1Ni5u ZXQ+DQo+IENjOiBBbGkgQWxudWJhbmkgPGFsaWFsbnVAbWVsbGFub3guY29tPjsgRmVycnVoIFlp Z2l0DQo+IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgd2FuZ3l1bmppYW4gPHdhbmd5dW5qaWFu QGh1YXdlaS5jb20+Ow0KPiBkZXZAZHBkay5vcmc7IGplcnJ5LmxpbGlqdW5AaHVhd2VpLmNvbTsg eHVkaW5na2VAaHVhd2VpLmNvbTsNCj4gc3RhYmxlQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVo IDxyYXNsYW5kQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW2RwZGst c3RhYmxlXSBbUEFUQ0hdIG5ldC9mYWlsc2FmZTogZml4IGZkIGxlYWsNCj4gDQo+IE9uIE1vbiwg NCBNYXkgMjAyMCAxODoyMjoyNiArMDIwMA0KPiBHYcOrdGFuIFJpdmV0IDxncml2ZUB1MjU2Lm5l dD4gd3JvdGU6DQo+IA0KPiA+IE9uIDAzLzA1LzIwIDExOjMzICswMDAwLCBBbGkgQWxudWJhbmkg d3JvdGU6DQo+ID4gPiBIaSwNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiA+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBP ZiBGZXJydWggWWlnaXQNCj4gPiA+ID4gU2VudDogTW9uZGF5LCBBcHJpbCAyNywgMjAyMCA3OjU2 IFBNDQo+ID4gPiA+IFRvOiBHYcOrdGFuIFJpdmV0IDxncml2ZUB1MjU2Lm5ldD47IHdhbmd5dW5q aWFuDQo+ID4gPiA+IDx3YW5neXVuamlhbkBodWF3ZWkuY29tPg0KPiA+ID4gPiBDYzogZGV2QGRw ZGsub3JnOyBqZXJyeS5saWxpanVuQGh1YXdlaS5jb207IHh1ZGluZ2tlQGh1YXdlaS5jb207DQo+ ID4gPiA+IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb ZHBkay1zdGFibGVdIFtQQVRDSF0gbmV0L2ZhaWxzYWZlOiBmaXggZmQNCj4gPiA+ID4gbGVhaw0K PiA+ID4gPg0KPiA+ID4gPiBPbiA0LzI3LzIwMjAgMTI6MTIgUE0sIEdhw6t0YW4gUml2ZXQgd3Jv dGU6DQo+ID4gPiA+ID4gT24gMjcvMDQvMjAgMTg6NDQgKzA4MDAsIHdhbmd5dW5qaWFuIHdyb3Rl Og0KPiA+ID4gPiA+PiBGcm9tOiBZdW5qaWFuIFdhbmcgPHdhbmd5dW5qaWFuQGh1YXdlaS5jb20+ DQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IFplcm8gaXMgYSB2YWxpZCBmZC4gVGhlIGZkIHdvbid0 IGJlIGNsb3NlZCB0aHVzIGxlYWRpbmcgZmQNCj4gPiA+ID4gPj4gbGVhaywgd2hlbiBpdCBpcyB6 ZXJvLg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBGaXhlczogZjIzNGU1YmQ5OTZkICgibmV0L2Zh aWxzYWZlOiByZWdpc3RlciBzbGF2ZXMgUngNCj4gPiA+ID4gPj4gaW50ZXJydXB0cyIpDQo+ID4g PiA+ID4+IEZpeGVzOiA5ZTAzNjBhZWJmMjMgKCJuZXQvZmFpbHNhZmU6IHJlZ2lzdGVyIGFzIFJ4 IGludGVycnVwdA0KPiA+ID4gPiA+PiBtb2RlIikNCj4gPiA+ID4gPj4gQ2M6IHN0YWJsZUBkcGRr Lm9yZw0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSGVsbG8gWXVuamlhbiwNCj4g PiA+ID4gPg0KPiA+ID4gPiA+IE5vdGhpbmcgcHJldmVudHMgYSBEUERLIGFwcCBmcm9tIGNsb3Np bmcgMCBhbmQgZ2V0dGluZyBpdCBmcm9tDQo+ID4gPiA+ID4gYW5vdGhlciBjYWxsLCBnb29kIGNh dGNoLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+IFNpZ25lZC1vZmYtYnk6IFl1bmppYW4gV2FuZyA8 d2FuZ3l1bmppYW5AaHVhd2VpLmNvbT4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFja2VkLWJ5OiBH YWV0YW4gUml2ZXQgPGdyaXZlQHUyNTYubmV0Pg0KPiA+ID4gPg0KPiA+ID4gPiBBcHBsaWVkIHRv IGRwZGstbmV4dC1uZXQvbWFzdGVyLCB0aGFua3MuDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRjaCBp cyBjYXVzaW5nIFRlc3RwbWQgdG8gcXVpdCB3aGVuIEkgaXNzdWUgYSAicG9ydCBzdG9wIiBjb21t YW5kLg0KPiBUZXN0cG1kIGxvZzoNCj4gPiA+DQo+ID4gPiAiIiINCj4gPiA+IHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjL2J1aWxkL2FwcC90ZXN0LXBtZC90ZXN0cG1kIC1uIDQgLS0gLWkNCj4g PiA+IC0tZm9yd2FyZC1tb2RlPW1hYw0KPiA+ID4gRUFMOiBEZXRlY3RlZCA4IGxjb3JlKHMpDQo+ ID4gPiBFQUw6IERldGVjdGVkIDEgTlVNQSBub2Rlcw0KPiA+ID4gRUFMOiBNdWx0aS1wcm9jZXNz IHNvY2tldCAvdmFyL3J1bi9kcGRrL3J0ZS9tcF9zb2NrZXQNCj4gPiA+IEVBTDogU2VsZWN0ZWQg SU9WQSBtb2RlICdQQScNCj4gPiA+IEVBTDogTm8gYXZhaWxhYmxlIGh1Z2VwYWdlcyByZXBvcnRl ZCBpbiBodWdlcGFnZXMtMTA0ODU3NmtCDQo+ID4gPiBFQUw6IFByb2JpbmcgVkZJTyBzdXBwb3J0 Li4uDQo+ID4gPiBFQUw6IFBDSSBkZXZpY2UgMDAwMjowMDowMi4wIG9uIE5VTUEgc29ja2V0IDAN Cj4gPiA+IEVBTDogICBwcm9iZSBkcml2ZXI6IDE1YjM6MTAwNCBuZXRfbWx4NA0KPiA+ID4gSW50 ZXJhY3RpdmUtbW9kZSBzZWxlY3RlZA0KPiA+ID4gU2V0IG1hYyBwYWNrZXQgZm9yd2FyZGluZyBt b2RlDQo+ID4gPiBXYXJuaW5nOiBOVU1BIHNob3VsZCBiZSBjb25maWd1cmVkIG1hbnVhbGx5IGJ5 IHVzaW5nIC0tcG9ydC1udW1hLWNvbmZpZw0KPiBhbmQgLS1yaW5nLW51bWEtY29uZmlnIHBhcmFt ZXRlcnMgYWxvbmcgd2l0aCAtLW51bWEuDQo+ID4gPiB0ZXN0cG1kOiBjcmVhdGUgYSBuZXcgbWJ1 ZiBwb29sIDxtYnVmX3Bvb2xfc29ja2V0XzA+OiBuPTIwMzQ1NiwNCj4gPiA+IHNpemU9MjE3Niwg c29ja2V0PTANCj4gPiA+IHRlc3RwbWQ6IHByZWZlcnJlZCBtZW1wb29sIG9wcyBzZWxlY3RlZDog cmluZ19tcF9tYw0KPiA+ID4NCj4gPiA+IFdhcm5pbmchIHBvcnQtdG9wb2xvZ3k9cGFpcmVkIGFu ZCBvZGQgZm9yd2FyZCBwb3J0cyBudW1iZXIsIHRoZSBsYXN0DQo+IHBvcnQgd2lsbCBwYWlyIHdp dGggaXRzZWxmLg0KPiA+ID4NCj4gPiA+IENvbmZpZ3VyaW5nIFBvcnQgMSAoc29ja2V0IDApDQo+ ID4gPiBQb3J0IDE6IDAwOjE1OjVEOjI2OjJCOjAwDQo+ID4gPiBDaGVja2luZyBsaW5rIHN0YXR1 c2VzLi4uDQo+ID4gPiBEb25lDQo+ID4gPiB0ZXN0cG1kPiBwb3J0IHN0b3AgMQ0KPiA+ID4gU3Rv cHBpbmcgcG9ydHMuLi4NCj4gPiA+IENoZWNraW5nIGxpbmsgc3RhdHVzZXMuLi4NCj4gPiA+IERv bmUNCj4gPiA+IHRlc3RwbWQ+DQo+ID4gPiBTdG9wcGluZyBwb3J0IDEuLi4NCj4gPiA+IFN0b3Bw aW5nIHBvcnRzLi4uDQo+ID4gPiBEb25lDQo+ID4gPg0KPiA+ID4gU2h1dHRpbmcgZG93biBwb3J0 IDEuLi4NCj4gPiA+IENsb3NpbmcgcG9ydHMuLi4NCj4gPiA+IERvbmUNCj4gPiA+DQo+ID4gPiBC eWUuLi4NCj4gPiA+ICIiIg0KPiA+ID4NCj4gPiA+IE15IHRlcm1pbmFsIGdldHMgYnJva2VuIGF0 IHRoaXMgcG9pbnQsIGFuZCBJIGhhdmUgdG8gcmVpbml0aWFsaXplIGl0IHdpdGggYQ0KPiAicmVz ZXQiLg0KPiANCj4gVGhlIHByb2JsZW0gaXMgdGhhdCB5b3UgZGlkIG5vdCBibGFja2xpc3QgdGhl IFBDSSBhZGRyZXNzIG9mIHRoZSBNZWxsYW5veCBkZXZpY2UNCj4gYXNzb2NpYXRlZCB3aXRoIHlv dXIgbG9naW4gc2Vzc2lvbiAobm9ybWFsbHkgdGhpcyBpcyB0aGUgUENJIGRldmljZSBhc3NvY2lh dGVkDQo+IHdpdGggZXRoMCkuDQo+IA0KPiBCeSBkZWZhdWx0LCBEUERLIHdpbGwgdGFrZSBvdmVy IGFsbCBWRiBkZXZpY2VzIGl0IGZpbmRzIGFzIHBhcnQgb2YgdGhlIE1lbGxhbm94DQo+IGRldmlj ZSBzdGFydHVwLiBUaGlzIG1lYW5zIHRoZSB0cmFmZmljIHRoYXQgd2FzIGdvaW5nIHRvIHRoZSBW RiBhc3NvY2lhdGVkIHdpdGgNCj4gZXRoMCAoeW91ciBzc2gpIGlzIG5vdyBnb2luZyB0byBEUERL OyB3aGljaCBpcyBub3Qgd2hhdCB5b3Ugd2FudC4NCj4gDQo+IFRoZSBzb2x1dGlvbiBpcyB0byBl aXRoZXIgdXNlIGJsYWNrbGlzdCAoLWIgb3B0aW9uKSBvciB3aGl0ZWxpc3QgKC13IG9wdGlvbikg dG8gZ2V0DQo+IG9ubHkgdGhlIFBDSSBkZXZpY2VzIHlvdSB3YW50IHRvIGJlIHBhcnQgb2YgdGhl IERQREsuDQoNCkknbSBjb25mdXNlZC4NCkkgZG9uJ3QgdGhpbmsgbXkgbG9naW4gaW50ZXJmYWNl IHdhcyBiZWluZyB3aGl0ZWxpc3RlZCBpbiBEUERLIGJlY2F1c2UgbXkgaXNzdWUgaXNuJ3QgdGhh dCBJIGxvc2UgbXkgY29ubmVjdGlvbiwgaXQncyB0aGF0IHRlc3RwbWQgcXVpdHMgd2hlbiBJIHN0 b3AgYSBwb3J0Lg0KDQpSZWdhcmRzLA0KQWxpDQo=