From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0058.outbound.protection.outlook.com [104.47.1.58]) by dpdk.org (Postfix) with ESMTP id 5745B3772 for ; Wed, 29 Aug 2018 09:34:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vqPah0tob8ziKBoFBpW2b02GeQfz2dlBLu5RXP6XcAI=; b=UXDnmYISRyG9lsGL+2pOfN0zX4/g1f42wG1SUjP/5NfVe4eA2jfe7jnC1nCrWpWpAhGr1xgeekmKZpQ9oO8CR5Inp/7k6xhdlbrrxJSTEOLJk/WrKAlCc4vaZXJAfgwkoSy3OBEb18ILhPsdb5+IZS8GRAAUeXBH+5lNjWeTcKw= Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com (10.168.86.140) by DB6PR0801MB1895.eurprd08.prod.outlook.com (10.168.85.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.15; Wed, 29 Aug 2018 07:34:34 +0000 Received: from DB6PR0801MB2071.eurprd08.prod.outlook.com ([fe80::65cf:334a:cbd4:c7e2]) by DB6PR0801MB2071.eurprd08.prod.outlook.com ([fe80::65cf:334a:cbd4:c7e2%5]) with mapi id 15.20.1080.015; Wed, 29 Aug 2018 07:34:34 +0000 From: Ola Liljedahl To: "Kokkilagadda, Kiran" , Honnappa Nagarahalli , Gavin Hu , Ferruh Yigit , "Jacob, Jerin" CC: "dev@dpdk.org" , nd , Steve Capper Thread-Topic: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization Thread-Index: AQHUNUdKSc1c/oZwbU+GnieJTul+F6TTtAyAgAAZ24CAAT+YgIAAkzgAgACezwCAAA4jAIAAPsUA Date: Wed, 29 Aug 2018 07:34:34 +0000 Message-ID: <7C80C637-DF76-423E-92AA-868EA06EF2C3@arm.com> References: <1533810233-7706-1-git-send-email-kkokkilagadda@caviumnetworks.com> <1534413317-644-1-git-send-email-kkokkilagadda@caviumnetworks.com> <649064d2-430c-d761-44ce-453e1a14031a@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [158.174.8.16] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB6PR0801MB1895; 6:ZxLUpae4YAF1USB5MdwEg64BmEAZgv8yU4k5iZSOwszC3qMKe9i9YRB8spu1exCXBaxQin5KAfkiP8UVVJoLQnOFeUYGMPTBXjcMILXE7NMoQIa/IBucRSzE3MUNxo4LpeyMvbo+6W+qTAsQ2zPfcMs+F7KM0MwtAWHU2N5iDbgEN+Vsm/P9mLYVzlbeWydsA1MCNnqv+dw7dd7FOV47ap2ZZO8fnvrXA3BMZNHMcNPIgT8kxzuENs7BqstShNaq/6FFrnyen5GLOYJAvS1qsnwmiHzm+RPg0IWigyAA1jX4LtGuRbUsgKVjLtjNk5f9vbsojs5HjjX3FRtTFVXeuafOROGlA5y8SvriuPggVSnLGPi/DMrhmfskPzii2JIaVeJp+xFA/3X8eTtk+9x8rHmWGDh0dO/EOH4/TboMKenA1th83A9o2k/lgA/JdrTB6WJ2D6D/QbrIw58EwDFh+w==; 5:m/oQc/CNSKzHokqBx0EriNNLI9cdjZN7p+swuZb5XoSTQZv0rBph3rV2hHe6L3GEfUfnpq5FI2cUcNNKB4iGjVizPIk+thSSDbu+WoNiSj1qvWrVYJkTMB+/FncLqyJ7nh0jd7AIeRZbkQMC4MrRQgXmTz8Ed/7SAi+tj74Rnck=; 7:u1CfTXq1DCeqeQiPVrRoReuGXemyLLe6EvVCUtSMCDwo5mneU+QoSYSqVB6L/XU+9kHz/uHoG1tvuSD9rwgevHYIITNfNXjKEnyWtDQ2znO1aa0EgdZuPq3Ih4pFhC4ql2M6zCdwGGN6ocfJDSX5SsujFkMt2j57kuBlX0UsaR4EomsO776U+p1QLbTUIfYoB/VoMl2GhpP/W0Qddvm12kkKvazPz/qtNEpRf0+GdF84JZEbGxjh+RLJAy7aBtxZ x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 32f513ba-8b34-4289-cd9e-08d60d81de26 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0801MB1895; x-ms-traffictypediagnostic: DB6PR0801MB1895: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(180628864354917)(21748063052155)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(10201501046)(3002001)(3231311)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699016); SRVR:DB6PR0801MB1895; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0801MB1895; x-forefront-prvs: 077929D941 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(136003)(346002)(396003)(366004)(189003)(199004)(13464003)(40434004)(5250100002)(26005)(236005)(53546011)(6506007)(6246003)(86362001)(33656002)(83716003)(14454004)(53936002)(25786009)(6512007)(102836004)(8676002)(478600001)(4326008)(6116002)(72206003)(790700001)(7736002)(186003)(93886005)(3846002)(110136005)(68736007)(8936002)(256004)(97736004)(6306002)(446003)(81166006)(54896002)(5024004)(81156014)(14444005)(54906003)(58126008)(66066001)(99286004)(6486002)(2906002)(36756003)(76176011)(229853002)(5660300001)(82746002)(2616005)(11346002)(6436002)(2900100001)(476003)(486006)(106356001)(105586002)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0801MB1895; H:DB6PR0801MB2071.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 32oUB5yWRUszdwvQ64UrdhTTY5E1oVIon//KHIiJwJn1Unpf6VSaBQR93koZ14/5mB2Q332eTqE2Fqle03a1+HtAVKRUHsOs4Et8fTrwosFu5V3YpTMT5NiSo/UyHGtPPLqgf38WQGkR4i4XIECrLwqbVnL6mzN30ZFFWU397Zp5azpBSC0pFQrXREHlZaEWtbJ2DqosQ0XjotvtXO1iI5ujoDM7MQxl+qyTJnkZLspW93XUwda47Xk41Yf6hrkK947G4bd+KezDfn2GuuAK22o74V1HVDZDQ3y2SuTAJaquRYt1WR+3/AJIs25uwgtjhSBuTzDPtVjlsf4TLXqatNX7oiayTlVZUNOSH5p0Rl8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32f513ba-8b34-4289-cd9e-08d60d81de26 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2018 07:34:34.7437 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1895 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization 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: , X-List-Received-Date: Wed, 29 Aug 2018 07:34:39 -0000 SXMgdGhlIHJ0ZV9rbmkga2VybmVsL3VzZXIgYmluYXJ5IGludGVyZmFjZSBzdWJqZWN0IHRvIGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlcXVpcmVtZW50cz8gT3IgY2FuIHdlIGNoYW5nZSBpdCBm b3IgYSBuZXcgRFBESyByZWxlYXNlPw0KDQotLSBPbGENCg0KRnJvbTogIktva2tpbGFnYWRkYSwg S2lyYW4iIDxLaXJhbi5Lb2traWxhZ2FkZGFAY2F2aXVtLmNvbT4NCkRhdGU6IFdlZG5lc2RheSwg MjkgQXVndXN0IDIwMTggYXQgMDc6NTANClRvOiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFw cGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4sIEdhdmluIEh1IDxHYXZpbi5IdUBhcm0uY29tPiwgRmVy cnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPiwgIkphY29iLCBKZXJpbiIgPEplcmlu LkphY29iS29sbGFudWtrYXJhbkBjYXZpdW0uY29tPg0KQ2M6ICJkZXZAZHBkay5vcmciIDxkZXZA ZHBkay5vcmc+LCBuZCA8bmRAYXJtLmNvbT4sIE9sYSBMaWxqZWRhaGwgPE9sYS5MaWxqZWRhaGxA YXJtLmNvbT4sIFN0ZXZlIENhcHBlciA8U3RldmUuQ2FwcGVyQGFybS5jb20+DQpTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyIHN5 bmNocm9uaXphdGlvbg0KDQoNCkFncmVlZC4gUGxlYXNlIGdvIGEgaGVhZCBhbmQgbWFrZSB0aGUg Y2hhbmdlcy4gWW91IG5lZWQgdG8gbWFrZSBzYW1lIGNoYW5nZSBpbiBrZXJuZWwgc2lkZSBhbHNv LiBBbmQgcGxlYXNlIHVzZSBjMTEgcmluZyAoc2VlIHJ0ZV9yaW5nKSBtZWNoYW5pc20gc28gdGhh dCBpdCB3b24ndCBpbXBhY3Qgb3RoZXIgcGxhdGZvcm1zIGxpa2UgaW50ZWwuIFdlIG5lZWQgdGhp cyBjaGFuZ2UganVzdCBmb3IgYXJtIGFuZCBwcGMuDQoNCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpGcm9tOiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFs bGlAYXJtLmNvbT4NClNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDI5LCAyMDE4IDEwOjI5IEFNDQpU bzogR2F2aW4gSHU7IEtva2tpbGFnYWRkYSwgS2lyYW47IEZlcnJ1aCBZaWdpdDsgSmFjb2IsIEpl cmluDQpDYzogZGV2QGRwZGsub3JnOyBuZDsgT2xhIExpbGplZGFobDsgU3RldmUgQ2FwcGVyDQpT dWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHBy b2R1Y2VyIHN5bmNocm9uaXphdGlvbg0KDQoNCkV4dGVybmFsIEVtYWlsDQoNCkkgYWdyZWUgd2l0 aCBHYXZpbiBoZXJlLiBTdG9yZSB0byBmaWZvLT53cml0ZSBhbmQgZmlmby0+cmVhZCBjYW4gZ2V0 IGhvaXN0ZWQgcmVzdWx0aW5nIGluIGFjY2Vzc2luZyBpbnZhbGlkIGJ1ZmZlciBhcnJheSBlbnRy aWVzIG9yIG92ZXIgd3JpdGluZyBvZiB0aGUgYnVmZmVyIGFycmF5IGVudHJpZXMuDQoNCklNTywg d2Ugc2hvdWxkIHNvbHZlIHRoaXMgdXNpbmcgYzExIGF0b21pY3MuIFRoaXMgd2lsbCBhbHNvIGhl bHAgcmVtb3ZlIHRoZSB1c2Ugb2Yg4oCYdm9sYXRpbGXigJkgZnJvbSDigJhydGVfa25pX2ZpZm/i gJkgc3RydWN0dXJlLg0KDQoNCg0KSWYgeW91IHdhbnQgdXMgdG8gcHV0IHRvZ2V0aGVyIGEgcGF0 Y2ggd2l0aCB0aGlzIGlkZWEsIHBsZWFzZSBsZXQgdXMga25vdy4NCg0KDQoNClRoYW5rIHlvdSwN Cg0KSG9ubmFwcGENCg0KDQoNCkZyb206IEdhdmluIEh1DQpTZW50OiBUdWVzZGF5LCBBdWd1c3Qg MjgsIDIwMTggMjozMSBQTQ0KVG86IEtva2tpbGFnYWRkYSwgS2lyYW4gPEtpcmFuLktva2tpbGFn YWRkYUBjYXZpdW0uY29tPjsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsg SmFjb2IsIEplcmluIDxKZXJpbi5KYWNvYktvbGxhbnVra2FyYW5AY2F2aXVtLmNvbT4NCkNjOiBk ZXZAZHBkay5vcmc7IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBPbGEgTGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFy bS5jb20+OyBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPg0KU3ViamVjdDogUkU6 IFtkcGRrLWRldl0gW1BBVENIIHYyXSBrbmk6IGZpeCBrbmkgUnggZmlmbyBwcm9kdWNlciBzeW5j aHJvbml6YXRpb24NCg0KDQoNCkFzc3VtaW5nIHJlYWRlciBhbmQgd3JpdGVyIG1heSBleGVjdXRl IG9uIGRpZmZlcmVudCBDUFUncywgdGhpcyBiZWNvbWUgc3RhbmRhcmQgbXVsdGl0aHJlYWRlZCBw cm9ncmFtbWluZy4NCg0KV2UgYXJlIGNvbmNlcm5lZCBhYm91dCB0aGF0IHVwZGF0ZSB0aGUgcmVh ZGVyIHBvaW50ZXIgdG9vIGVhcmx5KHdlYWsgb3JkZXJpbmcgbWF5IHJlb3JkZXIgaXQgYmVmb3Jl IHJlYWRpbmcgZnJvbSB0aGUgc2xvdHMpLCB0aGF0IG1lYW5zIHRoZSBzbG90cyBhcmUgcmVsZWFz ZWQgYW5kIG1heSBpbW1lZGlhdGVseSBvdmVyd3JpdHRlbiBieSB0aGUgd3JpdGVyIHRoZW4geW91 IGdldCDigJx0b28gbmV34oCdIGRhdGEgYW5kIGdldCBsb3N0IG9mIHRoZSBvbGQgZGF0YS4NCg0K DQoNCkZyb206IEtva2tpbGFnYWRkYSwgS2lyYW4gPEtpcmFuLktva2tpbGFnYWRkYUBjYXZpdW0u Y29tPG1haWx0bzpLaXJhbi5Lb2traWxhZ2FkZGFAY2F2aXVtLmNvbT4+DQpTZW50OiBUdWVzZGF5 LCBBdWd1c3QgMjgsIDIwMTggNjo0NCBQTQ0KVG86IEdhdmluIEh1IDxHYXZpbi5IdUBhcm0uY29t PG1haWx0bzpHYXZpbi5IdUBhcm0uY29tPj47IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGlu dGVsLmNvbTxtYWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4+OyBKYWNvYiwgSmVyaW4gPEpl cmluLkphY29iS29sbGFudWtrYXJhbkBjYXZpdW0uY29tPG1haWx0bzpKZXJpbi5KYWNvYktvbGxh bnVra2FyYW5AY2F2aXVtLmNvbT4+DQpDYzogZGV2QGRwZGsub3JnPG1haWx0bzpkZXZAZHBkay5v cmc+OyBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbTxt YWlsdG86SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4+DQpTdWJqZWN0OiBSZTogW2RwZGst ZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyIHN5bmNocm9uaXph dGlvbg0KDQoNCg0KSW4gdGhpcyBpbnN0YW5jZSB0aGVyZSB3b24ndCBiZSBhbnkgcHJvYmxlbSwg YXMgdW50aWwgdGhlIHZhbHVlIG9mIGZpZm8tPndyaXRlIGNoYW5nZXMsIHRoaXMgbG9vcCB3b24n dCBnZXQgZXhlY3V0ZWQuIEFzIG9mIG5vdyB3ZSBkaWRuJ3Qgc2VlIGFueSBpc3N1ZSB3aXRoIGl0 IGFuZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIHJlYWQg YmFycmllci4NCg0KDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQpG cm9tOiBHYXZpbiBIdSA8R2F2aW4uSHVAYXJtLmNvbTxtYWlsdG86R2F2aW4uSHVAYXJtLmNvbT4+ DQpTZW50OiBNb25kYXksIEF1Z3VzdCAyNywgMjAxOCA5OjEwIFBNDQpUbzogRmVycnVoIFlpZ2l0 OyBLb2traWxhZ2FkZGEsIEtpcmFuOyBKYWNvYiwgSmVyaW4NCkNjOiBkZXZAZHBkay5vcmc8bWFp bHRvOmRldkBkcGRrLm9yZz47IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQpTdWJqZWN0OiBSRTogW2Rw ZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyIHN5bmNocm9u aXphdGlvbg0KDQoNCg0KRXh0ZXJuYWwgRW1haWwNCg0KVGhpcyBmaXggaXMgbm90IGNvbXBsZXRl LCBrbmlfZmlmb19nZXQgcmVxdWlyZXMgYSByZWFkIGZlbmNlIGFsc28sIG90aGVyd2lzZSBpdCBw cm9iYWJseSBnZXRzIHN0YWxlIGRhdGEgb24gYSB3ZWFrIG9yZGVyaW5nIHBsYXRmb3JtLg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBk ay5vcmc8bWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnPj4gT24gQmVoYWxmIE9mIEZlcnJ1aCBZ aWdpdA0KPiBTZW50OiBNb25kYXksIEF1Z3VzdCAyNywgMjAxOCAxMDowOCBQTQ0KPiBUbzogS2ly YW4gS3VtYXIgPGtrb2traWxhZ2FkZGFAY2F2aXVtbmV0d29ya3MuY29tPG1haWx0bzpra29ra2ls YWdhZGRhQGNhdml1bW5ldHdvcmtzLmNvbT4+Ow0KPiBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jr cy5jb208bWFpbHRvOmplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4NCj4gQ2M6IGRldkBk cGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsub3JnPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBb UEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyDQo+IHN5bmNocm9uaXphdGlv bg0KPg0KPiBPbiA4LzE2LzIwMTggMTA6NTUgQU0sIEtpcmFuIEt1bWFyIHdyb3RlOg0KPiA+IFdp dGggZXhpc3RpbmcgY29kZSBpbiBrbmlfZmlmb19wdXQsIHJ4X3EgdmFsdWVzIGFyZSBub3QgYmVp bmcgdXBkYXRlZA0KPiA+IGJlZm9yZSB1cGRhdGluZyBmaWZvX3dyaXRlLiBXaGlsZSByZWFkaW5n IHJ4X3EgaW4ga25pX25ldF9yeF9ub3JtYWwsDQo+ID4gVGhpcyBpcyBjYXVzaW5nIHRoZSBzeW5j IGlzc3VlIG9uIG90aGVyIGNvcmUuIFNvIGFkZGluZyBhIHdyaXRlDQo+ID4gYmFycmllciB0byBt YWtlIHN1cmUgdGhlIHZhbHVlcyBiZWluZyBzeW5jZWQgYmVmb3JlIHVwZGF0aW5nIGZpZm9fd3Jp dGUuDQo+ID4NCj4gPiBGaXhlczogM2ZjNWNhMmY2MzUyICgia25pOiBpbml0aWFsIGltcG9ydCIp DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLaXJhbiBLdW1hciA8a2tva2tpbGFnYWRkYUBjYXZp dW1uZXR3b3Jrcy5jb208bWFpbHRvOmtrb2traWxhZ2FkZGFAY2F2aXVtbmV0d29ya3MuY29tPj4N Cj4gPiBBY2tlZC1ieTogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNv bTxtYWlsdG86amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPj4NCj4NCj4gQWNrZWQtYnk6 IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbTxtYWlsdG86ZmVycnVoLnlpZ2l0 QGludGVsLmNvbT4+DQpJTVBPUlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMgb2YgdGhpcyBlbWFp bCBhbmQgYW55IGF0dGFjaG1lbnRzIGFyZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHBy aXZpbGVnZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBu b3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250 ZW50cyB0byBhbnkgb3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9y ZSBvciBjb3B5IHRoZSBpbmZvcm1hdGlvbiBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuDQo=