From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by dpdk.org (Postfix) with ESMTP id C47CA7D56 for ; Fri, 25 Aug 2017 11:31:07 +0200 (CEST) Received: by mail-wm0-f66.google.com with SMTP id e67so2005616wmd.0 for ; Fri, 25 Aug 2017 02:31:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:date:in-reply-to:references :content-transfer-encoding:mime-version; bh=u0JzwN3frrD0gpm4J06BXBsTCkBbrD7TywzF5TJzZFc=; b=fVit9FduonVfx/CmTA7pl4fDhVSlUeESM1HYKJcQrRl1SrCpdEZa8egvsBANLPymyJ 3BLLyYy3HdMyje8z4cCWigq5TAqk3xJ1oGRzsLo+uLM7fbbt9vgvDXJl4RNTDhqA8/yR 7KUplGfKB4LrB9RN0HWCguP1D+K7AZApyUVLJILAyEWbZ5CV2M8d4rBVA6ueVmiv2yS/ NUrX/c9G8xC025u8z3u5mQZ50FycRzTQRjTZyWIxqAPyx0x48P5YBGMYmLeop6U4K0hi mQR3/BfXoyCC1lF9rDODPi9gqJ6B2s/+IAtEPPGKpjljMKoZRvT3REfSEB1Co8iFOasa j/aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:content-transfer-encoding:mime-version; bh=u0JzwN3frrD0gpm4J06BXBsTCkBbrD7TywzF5TJzZFc=; b=XkgK7aVHLlhgCkjQcOlmrJSGgjQqa7/F/oyZpP8k9N9/yMximhVsY3kU5Y0cTwm5nt fKfePcH4/Uekfce5tObMMLQqG+xT6OJT75w+rX1npzCYROcSJ/B9DSTavtscmOUfpIvC oijJVbqtCCvlKJv8B7SSnlfDqDyyI9ajuJZ95czIE2CJ2DqJOIAgqNBUtMn2k15uFKW2 DaCYdVI8z8k2hTD1PH0FmMXCE7mZqhJdq9QZbPAe73P+KmGwyOjNY9CgHSVZhw0b555t 5EW7HbRWm9EM2hBw98R8gpxlcP0G5D+ANDsa54ydwIOUOt9MCnAQswS/OqB3ODtv0mUR H2RA== X-Gm-Message-State: AHYfb5hBjcWNeLo4RlYpzIdwZH4K+38uB71E5iLI79MI86CbeNZmdj3u n5oi42neTsUCtkD5HSs= X-Received: by 10.28.230.151 with SMTP id e23mr933333wmi.138.1503653467173; Fri, 25 Aug 2017 02:31:07 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id h66sm959399wmd.38.2017.08.25.02.31.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 25 Aug 2017 02:31:06 -0700 (PDT) Message-ID: <1503653465.31398.2.camel@gmail.com> From: Luca Boccassi To: Gaetan Rivet , dev@dpdk.org Date: Fri, 25 Aug 2017 10:31:05 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Mailer: Evolution 3.22.6-1 Mime-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 05/13] pci: introduce PCI lib and bus 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: Fri, 25 Aug 2017 09:31:08 -0000 T24gRnJpLCAyMDE3LTA4LTI1IGF0IDExOjA0ICswMjAwLCBHYWV0YW4gUml2ZXQgd3JvdGU6Cj4g VGhlIFBDSSBsaWIgZGVmaW5lcyB0aGUgdHlwZXMgYW5kIG1ldGhvZHMgYWxsb3dpbmcgdG8gdXNl IFBDSQo+IGVsZW1lbnRzLgo+IAo+IFRoZSBQQ0kgYnVzIGltcGxlbWVudHMgYSBidXMgZHJpdmVy IGZvciBQQ0kgZGV2aWNlcyBieSBjb25zdHJ1Y3RpbmcKPiBydGVfYnVzIGVsZW1lbnRzIHVzaW5n IHRoZSBQQ0kgbGliLgo+IAo+IE1vdmUgdGhlIHJlbGV2YW50IGNvZGUgb3V0IG9mIHRoZSBFQUwg dG8gdGhlaXIgZXhwZWN0ZWQgcGxhY2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogR2FldGFuIFJpdmV0 IDxnYWV0YW4ucml2ZXRANndpbmQuY29tPgo+IC0tLQo+IMKgY29uZmlnL2NvbW1vbl9iYXNlwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzC oMKgMTUgKwo+IMKgZHJpdmVycy9idXMvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMiArCj4gwqBkcml2ZXJzL2J1cy9w Y2kvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fMKgwqA2MCArKwo+IMKgZHJpdmVycy9idXMvcGNpL2JzZC9NYWtlZmlsZcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAzMiArKwo+IMKgZHJpdmVycy9idXMvcGNpL2Jz ZC9ydGVfcGNpLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDY3MAo+ICsr KysrKysrKysrKysrKysrKysrKysrCj4gwqBkcml2ZXJzL2J1cy9wY2kvaW5jbHVkZS9ydGVfYnVz X3BjaS5owqDCoMKgwqDCoMKgwqDCoMKgwqB8IDM4NyArKysrKysrKysrKysrCj4gwqBkcml2ZXJz L2J1cy9wY2kvbGludXgvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fMKgwqAzNyArKwo+IMKgZHJpdmVycy9idXMvcGNpL2xpbnV4L3J0ZV9wY2kuY8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfCA3MjMKPiArKysrKysrKysrKysrKysrKysrKysrKysrCj4g wqBkcml2ZXJzL2J1cy9wY2kvbGludXgvcnRlX3BjaV9pbml0LmjCoMKgwqDCoMKgwqDCoMKgwqDC oMKgfMKgwqA5NyArKysrCj4gwqBkcml2ZXJzL2J1cy9wY2kvbGludXgvcnRlX3BjaV91aW8uY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgNTY3Cj4gKysrKysrKysrKysrKysrKysrKwo+IMKgZHJp dmVycy9idXMvcGNpL2xpbnV4L3J0ZV9wY2lfdmZpby5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwg Njc0Cj4gKysrKysrKysrKysrKysrKysrKysrKysKPiDCoGRyaXZlcnMvYnVzL3BjaS9saW51eC9y dGVfdmZpb19tcF9zeW5jLmPCoMKgwqDCoMKgwqDCoHwgNDI0ICsrKysrKysrKysrKysrKwo+IMKg ZHJpdmVycy9idXMvcGNpL3ByaXZhdGUuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfCAxNzMgKysrKysrCj4gwqBkcml2ZXJzL2J1cy9wY2kvcnRlX2J1c19wY2lf dmVyc2lvbi5tYXDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyMSArCj4gwqBkcml2ZXJzL2J1cy9wY2kv cnRlX3BjaV9jb21tb24uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgNTQyCj4gKysr KysrKysrKysrKysrKysrCj4gwqBkcml2ZXJzL2J1cy9wY2kvcnRlX3BjaV9jb21tb25fdWlvLmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAyMzQgKysrKysrKysKPiDCoGxpYi9NYWtlZmlsZcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB8wqDCoMKgMiArCj4gwqBsaWIvbGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxl wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgMyAtCj4gwqBsaWIvbGlicnRlX2VhbC9i c2RhcHAvZWFsL2VhbF9wY2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgNjcwIC0tLS0tLS0t LS0tLS0KPiAtLS0tLS0tLS0tCj4gwqBsaWIvbGlicnRlX2VhbC9jb21tb24vTWFrZWZpbGXCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDIgKy0KPiDCoGxpYi9saWJydGVf ZWFsL2NvbW1vbi9lYWxfY29tbW9uX3BjaS5jwqDCoMKgwqDCoMKgwqDCoMKgfCA1ODAgLS0tLS0t LS0tLS0tLQo+IC0tLS0tLS0KPiDCoGxpYi9saWJydGVfZWFsL2NvbW1vbi9lYWxfY29tbW9uX3Bj aV91aW8uY8KgwqDCoMKgwqB8IDIzMyAtLS0tLS0tLQo+IMKgbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvcnRlX3BjaS5owqDCoMKgwqDCoMKgwqDCoHwgNTk4IC0tLS0tLS0tLS0tLS0KPiAt LS0tLS0tCj4gwqBsaWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvTWFrZWZpbGXCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfMKgwqAxMCAtCj4gwqBsaWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFs X3BjaS5jwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDcyMyAtLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0t LS0tCj4gwqBsaWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFsX3BjaV9pbml0LmjCoMKgwqDC oMKgfMKgwqA5NyAtLS0tCj4gwqBsaWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFsX3BjaV91 aW8uY8KgwqDCoMKgwqDCoHwgNTY3IC0tLS0tLS0tLS0tLS0KPiAtLS0tLS0KPiDCoGxpYi9saWJy dGVfZWFsL2xpbnV4YXBwL2VhbC9lYWxfcGNpX3ZmaW8uY8KgwqDCoMKgwqB8IDY3NCAtLS0tLS0t LS0tLS0tCj4gLS0tLS0tLS0tLQo+IMKgbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL2VhbF92 ZmlvX21wX3N5bmMuYyB8IDQyNCAtLS0tLS0tLS0tLS0tLS0KPiDCoGxpYi9saWJydGVfZXRoZXIv cnRlX2V0aGRldi5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDIg LQo+IMKgbGliL2xpYnJ0ZV9wY2kvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQ5ICsrCj4gwqBsaWIvbGlicnRlX3BjaS9pbmNsdWRl L3J0ZV9wY2kuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMjc5ICsrKysrKysrKysK PiDCoGxpYi9saWJydGVfcGNpL3J0ZV9wY2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB8wqDCoDkyICsrKysKPiDCoGxpYi9saWJydGVfcGNpL3J0ZV9wY2lf dmVyc2lvbi5tYXDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgwqA4ICsKPiDCoG1rL3J0 ZS5hcHAubWvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgwqAzICsKPiDCoDM1IGZpbGVzIGNoYW5nZWQsIDUwOTIg aW5zZXJ0aW9ucygrKSwgNDU4MiBkZWxldGlvbnMoLSkKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2J1cy9wY2kvTWFrZWZpbGUKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2J1 cy9wY2kvYnNkL01ha2VmaWxlCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMvcGNp L2JzZC9ydGVfcGNpLmMKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2J1cy9wY2kvaW5j bHVkZS9ydGVfYnVzX3BjaS5oCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMvcGNp L2xpbnV4L01ha2VmaWxlCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMvcGNpL2xp bnV4L3J0ZV9wY2kuYwo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYnVzL3BjaS9saW51 eC9ydGVfcGNpX2luaXQuaAo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYnVzL3BjaS9s aW51eC9ydGVfcGNpX3Vpby5jCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMvcGNp L2xpbnV4L3J0ZV9wY2lfdmZpby5jCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9idXMv cGNpL2xpbnV4L3J0ZV92ZmlvX21wX3N5bmMuYwo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvYnVzL3BjaS9wcml2YXRlLmgKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2J1cy9w Y2kvcnRlX2J1c19wY2lfdmVyc2lvbi5tYXAKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2J1cy9wY2kvcnRlX3BjaV9jb21tb24uYwo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv YnVzL3BjaS9ydGVfcGNpX2NvbW1vbl91aW8uYwo+IMKgZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYi9s aWJydGVfZWFsL2JzZGFwcC9lYWwvZWFsX3BjaS5jCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgbGli L2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fcGNpLmMKPiDCoGRlbGV0ZSBtb2RlIDEwMDY0 NCBsaWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9wY2lfdWlvLmMKPiDCoGRlbGV0ZSBt b2RlIDEwMDY0NCBsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9ydGVfcGNpLmgKPiDCoGRl bGV0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2VhbC9saW51eGFwcC9lYWwvZWFsX3BjaS5jCj4g wqBkZWxldGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL2VhbF9wY2lf aW5pdC5oCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFs L2VhbF9wY2lfdWlvLmMKPiDCoGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2VhbC9saW51 eGFwcC9lYWwvZWFsX3BjaV92ZmlvLmMKPiDCoGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRl X2VhbC9saW51eGFwcC9lYWwvZWFsX3ZmaW9fbXBfc3luYy5jCj4gwqBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliL2xpYnJ0ZV9wY2kvTWFrZWZpbGUKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGli cnRlX3BjaS9pbmNsdWRlL3J0ZV9wY2kuaAo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJy dGVfcGNpL3J0ZV9wY2kuYwo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfcGNpL3J0 ZV9wY2lfdmVyc2lvbi5tYXAKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9wY2kvTWFrZWZp bGUgYi9saWIvbGlicnRlX3BjaS9NYWtlZmlsZQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMC4uZTNjNmNhNQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvbGlicnRlX3Bj aS9NYWtlZmlsZQo+IEBAIC0wLDAgKzEsNDkgQEAKPiArI8KgwqDCoEJTRCBMSUNFTlNFCj4gKyMK PiArI8KgwqDCoENvcHlyaWdodChjKSAyMDE3IDZXSU5EIFMuQS4KPiArI8KgwqDCoEFsbCByaWdo dHMgcmVzZXJ2ZWQuCj4gKyMKPiArI8KgwqDCoFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKPiB3aXRob3V0Cj4gKyPCoMKgwqBtb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCj4gY29uZGl0 aW9ucwo+ICsjwqDCoMKgYXJlIG1ldDoKPiArIwo+ICsjwqDCoMKgwqDCoCogUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQo+IGNvcHlyaWdodAo+ICsj wqDCoMKgwqDCoMKgwqBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nCj4gZGlzY2xhaW1lci4KPiArI8KgwqDCoMKgwqAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKPiBjb3B5cmlnaHQKPiArI8KgwqDC oMKgwqDCoMKgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyCj4gaW4KPiArI8KgwqDCoMKgwqDCoMKgdGhlIGRvY3VtZW50YXRpb24gYW5k L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQo+ICsjwqDCoMKgwqDCoMKgwqBk aXN0cmlidXRpb24uCj4gKyPCoMKgwqDCoMKgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIDZXSU5EIG5v ciB0aGUgbmFtZXMgb2YgaXRzCj4gKyPCoMKgwqDCoMKgwqDCoGNvbnRyaWJ1dG9ycyBtYXkgYmUg dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKPiBkZXJpdmVkCj4gKyPCoMKgwqDC oMKgwqDCoGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4K PiBwZXJtaXNzaW9uLgo+ICsjCj4gKyPCoMKgwqBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQKPiBDT05UUklCVVRPUlMKPiArI8KgwqDCoCJBUyBJ UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQK PiBOT1QKPiArI8KgwqDCoExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZIEFORAo+IEZJVE5FU1MgRk9SCj4gKyPCoMKgwqBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gQ09QWVJJR0hUCj4g KyPCoMKgwqBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ TkRJUkVDVCwKPiBJTkNJREVOVEFMLAo+ICsjwqDCoMKgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAo+ICsjwqDCoMKgTElNSVRF RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP Rgo+IFVTRSwKPiArI8KgwqDCoERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECj4gT04gQU5ZCj4gKyPCoMKgwqBUSEVPUlkgT0YgTElB QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgo+IFRPUlQK PiArI8KgwqDCoChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g QU5ZIFdBWSBPVVQgT0YKPiBUSEUgVVNFCj4gKyPCoMKgwqBPRiBUSElTIFNPRlRXQVJFLCBFVkVO IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKPiBEQU1BR0UuCj4gKwo+ICtp bmNsdWRlICQoUlRFX1NESykvbWsvcnRlLnZhcnMubWsKPiArCj4gKyMgbGlicmFyeSBuYW1lCj4g K0xJQiA9IGxpYnJ0ZV9wY2kuYQo+ICsKPiArQ0ZMQUdTICs9IC1PMwo+ICtDRkxBR1MgKz0gJChX RVJST1JfRkxBR1MpCj4gK0NGTEFHUyArPSAtSSQoU1JDRElSKSAtSSQoU1JDRElSKS9pbmNsdWRl CgpUaGlzIGJyZWFrcyBidWlsZCByZXByb2R1Y2liaWxpdHksIHBsZWFzZSB1c2Ugc29tZXRoaW5n IGxpa2U6CgpDRkxBR1MgOj3CoC1JJChTUkNESVIpL2luY2x1ZGUgLUkkKFNSQ0RJUikgJChDRkxB R1MpCkNGTEFHUyArPSAkKFdFUlJPUl9GTEFHUykgLU8zCgpTZWUgaHR0cDovL2RwZGsub3JnL2Rl di9wYXRjaHdvcmsvcGF0Y2gvMjc2MzkvCgotLSAKS2luZCByZWdhcmRzLApMdWNhIEJvY2Nhc3Np