From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5FBDAC433FE for ; Tue, 4 Oct 2022 08:03:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zZyK8EzoO9FiE6O5BMPiuQVx+c4csxplnocCR903J94=; b=vxs5fXLcDTNcud 6G2am3U1sSp7ZvBlTlV0GR4TF1HGQHR6QyyVaDDE7HERMHca6Rxsm9w7yTzTuIOHYfK2W0NmXpHXY DgaQ7UQB4v2Zf3SPezNY/7/uEFz7H3cDJMnz34xXORfoJm/1u67nkgJ8ZDYzWB3KsUS0Q/ufQwqat 3YmlaJCOCxtqxikbaqu5GaNyXuu7oessMDH+O+FfyTn+GejOxgKksaqxnL2wE5DJgaPV6VPjP1QU/ YiTPXxvo0A6R5wWuCOlRNa27QGXGu5DoyP/ehzj1+fkHUrdNvBz5IQ290HdWXKA+S+2r4o9P5aBmO oTbHHAoZicB4AEW7BVHw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ofct6-008rXQ-Rh; Tue, 04 Oct 2022 08:02:48 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ofct2-008rVm-44 for linux-arm-kernel@lists.infradead.org; Tue, 04 Oct 2022 08:02:46 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 0F54ECE0E89; Tue, 4 Oct 2022 08:02:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF63FC433C1; Tue, 4 Oct 2022 08:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664870557; bh=6mIdb2+BUczkQiv16c5W7RNZxBZEME+cnBtGIvVW2Oo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=B/MLTIFTMZ971pcCrLg3+GYFvT/Y2mMpYTk5kYq2Td9MPdRQan+8My2/x3JiQCSYN lOX1ZHOZhmywQwZoidC43/BgRhVgrdBQhJ3EgWJ//XRowNHRCWKbVC4Eq0pLhCnzWS l6LP+29pw6il99qr9/NRUtTw/BtmqtzAb02JNwBfYSdU4z8E4t8CzhwciFw2mr/w7d xDxOe2dDCA/dGboOrygqRW+wpzaaK3bi80NatSwFE4dJJutzhTmTlWar/w/c0keUBD P7spLzwwyFxe8eFEhWdvbDrjbpbrNyTzanC+0vLJ53SsIckrXX2R+uCQ5HHLZJ405y uAt6Ws3C/P7nw== Date: Tue, 4 Oct 2022 10:02:32 +0200 From: Lorenzo Pieralisi To: Pali =?iso-8859-1?Q?Roh=E1r?= Cc: Bjorn Helgaas , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [EXT] Re: [PATCH v2] PCI: aardvark: Implement workaround for PCIe Completion Timeout Message-ID: References: <20220802123816.21817-1-pali@kernel.org> <20220926123434.2tqx4t6u3cnlrcx3@pali> <20221003211412.5pqfjvcxyszd4ai6@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221003211412.5pqfjvcxyszd4ai6@pali> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221004_010244_625121_CBFD66DF X-CRM114-Status: GOOD ( 43.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCBPY3QgMDMsIDIwMjIgYXQgMTE6MTQ6MTJQTSArMDIwMCwgUGFsaSBSb2jDoXIgd3Jv dGU6Cj4gTG9yZW56bywgaXMgc29tZXRoaW5nIG1vcmUgbmVlZGVkIGZvciB0aGlzIHBhdGNoPyBB cyBpdCB3b3JrYXJvdW5kcwo+IGNyYXNoaW5nIGl0IGlzIHJlYWxseSBuZWVkZWQgdG8gaGF2ZSBp dCBpbiBtYWlubGluZSBhbmQgYmFja3BvcnRzLgoKWWVzLCBhIGNsZWFyIGV4cGxhbmF0aW9uIGZy b20gTWFydmVsbCBhYm91dCB3aGF0IHRoaXMgaXMgYWN0dWFsbHkKZml4aW5nIC0gaXQgdG9vayBt ZSBhIHdoaWxlIHRvIGdvIHRocm91Z2ggdGhlIHdob2xlIHRocmVhZCBidXQKSSBzdGlsbCBkb24n dCB1bmRlcnN0YW5kIHdoYXQgdGhpcyBwYXRjaCBhY3R1YWxseSBkb2VzIGFuZCB3aHkuCgpBbiBF cnJhdHVtIHdvcmthcm91bmQgKGlmIHRoZXJlIGlzIGFueSkgc2hvdWxkIGRlZmluZSBhbmQgZXhw bGFpbgphIFNXIHdvcmthcm91bmQuCgooMSkgQmpvcm4ncyBjb25jZXJucyBpbiByZWxhdGlvbiB0 byBQQ0kgbWVtb3J5IG1vZGVsIHdlcmVuJ3QgYWRkcmVzc2VkCigyKSBXZSBkb24ndCBhZGQgdW5k b2N1bWVudGVkIG1lbW9yeSBiYXJyaWVycyB0byB0aGUga2VybmVsIHRvICJtaW5pbWl6ZQogICAg cmlza3MiLiBFaXRoZXIgd2UgZml4IGEgYnVnIG9yIHdlIGRvbid0LiBJZiB3ZSBkbywgd3JpdGUg dGhhdCBkb3duCiAgICBhbmQgZG9jdW1lbnQgd2h5IHRoZSBiYXJyaWVyIGlzIHRoZXJlIGFuZCB0 aGUgaXNzdWUgaXQgc29sdmVzLgoKSSB1bmRlcnN0YW5kIHRoYXQgYmFzaWNhbGx5IHlvdSBhcmUg cmV2ZXJzZSBlbmdpbmVlcmluZyBhIEhXIGJ1ZyBidXQKSSBhbSBhZnJhaWQgd2UgY2FuJ3QgZml4 IHRoZSBrZXJuZWwgdGhpcyB3YXkgLSBtb3JlIHNvIHdpdGggcGF0Y2hlcwpnb2luZyB0byBiZSBi YWNrcG9ydGVkIHRvIHN0YWJsZSBrZXJuZWxzLgoKTG9yZW56bwoKPiBPbiBXZWRuZXNkYXkgMjgg U2VwdGVtYmVyIDIwMjIgMTQ6MDU6MTAgRWxhZCBOYWNobWFuIHdyb3RlOgo+ID4gUmV2aWV3ZWQt Ynk6IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVsbC5jb20+Cj4gPiAKPiA+IFRoYW5rcywK PiA+IAo+ID4gRWxhZC4KPiA+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZy b206IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+IAo+ID4gU2VudDogTW9uZGF5LCBTZXB0 ZW1iZXIgMjYsIDIwMjIgMzozNSBQTQo+ID4gVG86IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFy dmVsbC5jb20+Cj4gPiBDYzogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBib290 bGluLmNvbT47IExvcmVuem8gUGllcmFsaXNpIDxscGllcmFsaXNpQGtlcm5lbC5vcmc+OyBCam9y biBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsgS3J6eXN6dG9mIFdpbGN6ecWEc2tpIDxr d0BsaW51eC5jb20+OyBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPjsgbGludXgtcGNpQHZn ZXIua2VybmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51 eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBHcmVnb3J5IENsZW1lbnQgPGdyZWdvcnkuY2xlbWVu dEBib290bGluLmNvbT47IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz47IFJlbWkgUG9t bWFyZWwgPHJlcGtAdHJpcGxlZmF1Lmx0PjsgWG9naXVtIDxjb250YWN0QHhvZ2l1bS5tZT47IFRv bWFzeiBNYWNpZWogTm93YWsgPHRtbjUwNUBnbWFpbC5jb20+Cj4gPiBTdWJqZWN0OiBbRVhUXSBS ZTogW1BBVENIIHYyXSBQQ0k6IGFhcmR2YXJrOiBJbXBsZW1lbnQgd29ya2Fyb3VuZCBmb3IgUENJ ZSBDb21wbGV0aW9uIFRpbWVvdXQKPiA+IAo+ID4gRXh0ZXJuYWwgRW1haWwKPiA+IAo+ID4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gSGVsbG8gRWxhZCwgY291bGQgeW91IHBsZWFzZSByZXZpZXcgdGhpcyBw YXRjaD8gSSBoYXZlIGltcGxlbWVudGVkIGl0IGFjY29yZGluZyB5b3VyIGluc3RydWN0aW9ucywg aW5jbHVkaW5nIHRoYXQgZnVsbCBtZW1vcnkgYmFycmllciBhcyB5b3UgZGVzY3JpYmVkLgo+ID4g Cj4gPiBPbiBUdWVzZGF5IDAyIEF1Z3VzdCAyMDIyIDE0OjM4OjE2IFBhbGkgUm9ow6FyIHdyb3Rl Ogo+ID4gPiBNYXJ2ZWxsIEFybWFkYSAzNzAwIEZ1bmN0aW9uYWwgRXJyYXRhLCBHdWlkZWxpbmVz LCBhbmQgUmVzdHJpY3Rpb25zIAo+ID4gPiBkb2N1bWVudCBkZXNjcmliZXMgaW4gZXJyYXR1bSAz LjEyIFBDSWUgQ29tcGxldGlvbiBUaW1lb3V0IChSZWYgIzogCj4gPiA+IDI1MSksIHRoYXQgUENJ ZSBJUCBkb2VzIG5vdCBzdXBwb3J0IGEgc3Ryb25nLW9yZGVyZWQgbW9kZWwgZm9yIGluYm91bmQg cG9zdGVkIHZzLgo+ID4gPiBvdXRib3VuZCBjb21wbGV0aW9uLgo+ID4gPiAKPiA+ID4gQXMgYSB3 b3JrYXJvdW5kIGZvciB0aGlzIGVycmF0dW0sIERJU19PUkRfQ0hLIGZsYWcgaW4gRGVidWcgTXV4 IAo+ID4gPiBDb250cm9sIHJlZ2lzdGVyIG11c3QgYmUgc2V0LiBJdCBkaXNhYmxlcyB0aGUgb3Jk ZXJpbmcgY2hlY2sgaW4gdGhlIAo+ID4gPiBjb3JlIGJldHdlZW4gQ29tcGxldGlvbnMgYW5kIFBv c3RlZCByZXF1ZXN0cyByZWNlaXZlZCBmcm9tIHRoZSBsaW5rLgo+ID4gPiAKPiA+ID4gTWFydmVs bCBhbHNvIHN1Z2dlc3RzIHRvIGRvIGZ1bGwgbWVtb3J5IGJhcnJpZXIgYXQgdGhlIGJlZ2lubmlu ZyBvZiAKPiA+ID4gYWFyZHZhcmsgc3VtbWFyeSBpbnRlcnJ1cHQgaGFuZGxlciBiZWZvcmUgY2Fs bGluZyBpbnRlcnJ1cHQgaGFuZGxlcnMgCj4gPiA+IG9mIGVuZHBvaW50IGRyaXZlcnMgaW4gb3Jk ZXIgdG8gbWluaW1pemUgdGhlIHJpc2sgZm9yIHRoZSByYWNlIAo+ID4gPiBjb25kaXRpb24gZG9j dW1lbnRlZCBpbiB0aGUgRXJyYXR1bSBiZXR3ZWVuIHRoZSBETUEgZG9uZSBzdGF0dXMgCj4gPiA+ IHJlYWRpbmcgYW5kIHRoZSBjb21wbGV0aW9uIG9mIHdyaXRpbmcgdG8gdGhlIGhvc3QgbWVtb3J5 Lgo+ID4gPiAKPiA+ID4gTW9yZSBkZXRhaWxzIGFib3V0IHRoaXMgaXNzdWUgYW5kIHN1Z2dlc3Rl ZCB3b3JrYXJvdW5kcyBhcmUgaW4gZGlzY3Vzc2lvbjoKPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNl LnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19sb3JlLmtlcm5lbC5vcmdfbAo+ID4g PiBpbnV4LTJEcGNpX0JOOVBSMThNQjQyNTE1NEZFNTAxOURDQUYyMDI4QTFENURCOEQ5LTQwQk45 UFIxOE1CNDI1MS5uYW1wCj4gPiA+IHJkMTgucHJvZC5vdXRsb29rLmNvbV90Xy0yM3UmZD1Ed0lE YVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9ZVRlTlQKPiA+ID4gTEVLNS1UeFhjempPY0tQ aEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT1iamdraGdQZ09qcUNFc2JIWUhPTkNaTWlGRFg3Mgo+ ID4gPiBNenRXYUUwQXZXQmt0UVZuM3pLRUR0VWRuMDJLeF9LSjE0QiZzPVNUb0dzREdFT2J3YlpH aWxWdFZaUHlNRThqTmlSZ3JxCj4gPiA+IDRTRFl2cXFUMFRBJmU9Cj4gPiA+IAo+ID4gPiBJdCB3 YXMgcmVwb3J0ZWQgdGhhdCBlbmFibGluZyB0aGlzIHdvcmthcm91bmQgZml4ZXMgaW5zdGFiaWxp dHkgaXNzdWVzIAo+ID4gPiBhbmQgIlVuaGFuZGxlZCBmYXVsdCIgZXJyb3JzIHdoZW4gdXNpbmcg NjAgR0h6IFdpRmkgODAyLjExYWQgY2FyZCB3aXRoIAo+ID4gPiBRdWFsY29tbQo+ID4gPiBRQ0E2 MzM1IGNoaXAgdW5kZXIgc2lnbmlmaWNhbnQgbG9hZCB3aGljaCB3ZXJlIGNhdXNlZCBieSBpbnRl cnJ1cHQgCj4gPiA+IHN0YXR1cyBzdHVjayBpbiB0aGUgb3V0Ym91bmQgQ01QTFQgcXVldWUgdHJh Y2VkIGJhY2sgdG8gdGhpcyBlcnJhdHVtLgo+ID4gPiAKPiA+ID4gVGhpcyB3b3JrYXJvdW5kIGZp eGVzIGFsc28ga2VybmVsIHBhbmljIHRyaWdnZXJlZCBhZnRlciBzb21lIG1pbnV0ZXMgCj4gPiA+ IG9mIHVzYWdlIDUgR0h6IFdpRmkgODAyLjExYXggY2FyZCB3aXRoIE1lZGlhdGVrIE1UNzkxNSBj aGlwOgo+ID4gPiAKPiA+ID4gICAgIEludGVybmFsIGVycm9yOiBzeW5jaHJvbm91cyBleHRlcm5h bCBhYm9ydDogOTYwMDAyMTAgWyMxXSBTTVAKPiA+ID4gICAgIEtlcm5lbCBwYW5pYyAtIG5vdCBz eW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0Cj4gPiA+IAo+ID4gPiBTaWduZWQt b2ZmLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPgo+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gPiBG aXhlczogOGMzOWQ3MTAzNjNjICgiUENJOiBhYXJkdmFyazogQWRkIEFhcmR2YXJrIFBDSSBob3N0 IGNvbnRyb2xsZXIgCj4gPiA+IGRyaXZlciIpCj4gPiA+IENjOiBzdGFibGVAdmdlci5rZXJuZWwu b3JnCj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsu YyB8IDEwICsrKysrKysrKysKPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp Cj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFy ZHZhcmsuYyAKPiA+ID4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCj4g PiA+IGluZGV4IDA2MDkzNmVmMDFmZS4uM2FlOGE4NWVjNzJlIDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCj4gPiA+ICsrKyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKPiA+ID4gQEAgLTIxMCw2ICsyMTAsOCBAQCBl bnVtIHsKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gICNkZWZpbmUgVkVORE9SX0lEX1JFRwkJCQko TE1JX0JBU0VfQUREUiArIDB4NDQpCj4gPiA+ICsjZGVmaW5lIERFQlVHX01VWF9DVFJMX1JFRwkJ CShMTUlfQkFTRV9BRERSICsgMHgyMDgpCj4gPiA+ICsjZGVmaW5lICAgICBESVNfT1JEX0NISwkJ CQlCSVQoMzApCj4gPiA+ICAKPiA+ID4gIC8qIFBDSWUgY29yZSBjb250cm9sbGVyIHJlZ2lzdGVy cyAqLwo+ID4gPiAgI2RlZmluZSBDVFJMX0NPUkVfQkFTRV9BRERSCQkJMHgxODAwMAo+ID4gPiBA QCAtNTU4LDYgKzU2MCwxMSBAQCBzdGF0aWMgdm9pZCBhZHZrX3BjaWVfc2V0dXBfaHcoc3RydWN0 IGFkdmtfcGNpZSAqcGNpZSkKPiA+ID4gIAkJUENJRV9DT1JFX0NUUkwyX1REX0VOQUJMRTsKPiA+ ID4gIAlhZHZrX3dyaXRlbChwY2llLCByZWcsIFBDSUVfQ09SRV9DVFJMMl9SRUcpOwo+ID4gPiAg Cj4gPiA+ICsJLyogRGlzYWJsZSBvcmRlcmluZyBjaGVja3MsIHdvcmthcm91bmQgZm9yIGVycmF0 dW0gMy4xMiAiUENJZSBjb21wbGV0aW9uIHRpbWVvdXQiICovCj4gPiA+ICsJcmVnID0gYWR2a19y ZWFkbChwY2llLCBERUJVR19NVVhfQ1RSTF9SRUcpOwo+ID4gPiArCXJlZyB8PSBESVNfT1JEX0NI SzsKPiA+ID4gKwlhZHZrX3dyaXRlbChwY2llLCByZWcsIERFQlVHX01VWF9DVFJMX1JFRyk7Cj4g PiA+ICsKPiA+ID4gIAkvKiBTZXQgbGFuZSBYMSAqLwo+ID4gPiAgCXJlZyA9IGFkdmtfcmVhZGwo cGNpZSwgUENJRV9DT1JFX0NUUkwwX1JFRyk7Cj4gPiA+ICAJcmVnICY9IH5MQU5FX0NOVF9NU0s7 Cj4gPiA+IEBAIC0xNTgxLDYgKzE1ODgsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYWR2a19wY2ll X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKPiA+ID4gIAlzdHJ1Y3QgYWR2a19wY2ll ICpwY2llID0gYXJnOwo+ID4gPiAgCXUzMiBzdGF0dXM7Cj4gPiA+ICAKPiA+ID4gKwkvKiBGdWxs IG1lbW9yeSBiYXJyaWVyIChBUk0gZHNiIHN5KSwgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSAzLjEy ICJQQ0llIGNvbXBsZXRpb24gdGltZW91dCIgKi8KPiA+ID4gKwltYigpOwo+ID4gPiArCj4gPiA+ ICAJc3RhdHVzID0gYWR2a19yZWFkbChwY2llLCBIT1NUX0NUUkxfSU5UX1NUQVRVU19SRUcpOwo+ ID4gPiAgCWlmICghKHN0YXR1cyAmIFBDSUVfSVJRX0NPUkVfSU5UKSkKPiA+ID4gIAkJcmV0dXJu IElSUV9OT05FOwo+ID4gPiAtLQo+ID4gPiAyLjIwLjEKPiA+ID4gCj4gCj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdAo+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=