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 A7AA9C197A0 for ; Thu, 16 Nov 2023 17:04:19 +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=X1zjbJ9tbSAKl9g770t7YyTKOeXvkNoCUgp/P6Xk6oI=; b=kZUMIHalXZvBDs mblrrOeBK3M+Om/ZoRhqS7PorJAlXeS45yKDBpkgDE1OJbJKW/SgBr2fG44nVZwA5moTAmkJADzft N/OyyymdwoQ5YrjbclTntZDxTWcW18Ho3pQypoZF5wQIG9C+9BNwEAR63nvcXt4VgFbB6Mnosr9iL 0NWkm4he5Rm2qPUmf6pKLXhp5ngyzw1Fczy/E4Ovgah3a0VRnFBv8TD6sAmpKoKubRvUZ9fO8hW71 4g4W+QQhRALiPHYoPf3o/bvk/o6ztyAb2jEZD9tccd4yRmwfS5+pB+EkXROSu2AwEXwC55GI6XkRz EgCjR79evUwQCGoXg+eQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3fmM-0043qt-0K; Thu, 16 Nov 2023 17:03:46 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3fmI-0043q7-20 for linux-arm-kernel@lists.infradead.org; Thu, 16 Nov 2023 17:03:44 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1245E1595; Thu, 16 Nov 2023 09:04:28 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.119.36.141]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C8ED33F6C4; Thu, 16 Nov 2023 09:03:40 -0800 (PST) Date: Thu, 16 Nov 2023 12:03:35 -0500 From: Mark Rutland To: Puranjay Mohan Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Zi Shen Lim , Catalin Marinas , Will Deacon , bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Kumar Kartikeya Dwivedi Subject: Re: [PATCH bpf-next v2 1/1] bpf, arm64: support exceptions Message-ID: References: <20230917000045.56377-1-puranjay12@gmail.com> <20230917000045.56377-2-puranjay12@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231116_090342_756476_DD64406B X-CRM114-Status: GOOD ( 53.19 ) 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 T24gTW9uLCBOb3YgMTMsIDIwMjMgYXQgMTE6NTM6NTJQTSArMDEwMCwgUHVyYW5qYXkgTW9oYW4g d3JvdGU6Cj4gSGkgTWFyaywKPiAKPiBPbiBXZWQsIE5vdiA4LCAyMDIzIGF0IDExOjMy4oCvQU0g TWFyayBSdXRsYW5kIDxtYXJrLnJ1dGxhbmRAYXJtLmNvbT4gd3JvdGU6Cj4gPgo+ID4gT24gTW9u LCBOb3YgMDYsIDIwMjMgYXQgMTA6MDQ6MDlBTSArMDEwMCwgUHVyYW5qYXkgTW9oYW4gd3JvdGU6 Cj4gPiA+IEhpIE1hcmssCj4gPiA+Cj4gPiA+IE9uIFRodSwgTm92IDIsIDIwMjMgYXQgNTo1OeKA r1BNIE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5jb20+IHdyb3RlOgo+ID4gPiA+Cj4g PiA+ID4gT24gU3VuLCBTZXAgMTcsIDIwMjMgYXQgMTI6MDA6NDVBTSArMDAwMCwgUHVyYW5qYXkg TW9oYW4gd3JvdGU6Cj4gPiA+ID4gPiBJbXBsZW1lbnQgYXJjaF9icGZfc3RhY2tfd2FsaygpIGZv ciB0aGUgQVJNNjQgSklULiBUaGlzIHdpbGwgYmUgdXNlZAo+ID4gPiA+ID4gYnkgYnBmX3Rocm93 KCkgdG8gdW53aW5kIHRpbGwgdGhlIHByb2dyYW0gbWFya2VkIGFzIGV4Y2VwdGlvbiBib3VuZGFy eSBhbmQKPiA+ID4gPiA+IHJ1biB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgc3RhY2sgb2YgdGhlIG1h aW4gcHJvZ3JhbS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGUgcHJvbG9ndWUgZ2VuZXJhdGlvbiBj b2RlIGhhcyBiZWVuIG1vZGlmaWVkIHRvIG1ha2UgdGhlIGNhbGxiYWNrCj4gPiA+ID4gPiBwcm9n cmFtIHVzZSB0aGUgc3RhY2sgb2YgdGhlIHByb2dyYW0gbWFya2VkIGFzIGV4Y2VwdGlvbiBib3Vu ZGFyeSB3aGVyZQo+ID4gPiA+ID4gY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBhcmUgYWxyZWFkeSBw dXNoZWQuCj4gPiA+ID4gPgo+ID4gPiA+ID4gQXMgdGhlIGJwZl90aHJvdyBmdW5jdGlvbiBuZXZl ciByZXR1cm5zLCBpZiBpdCBjbG9iYmVycyBhbnkgY2FsbGVlLXNhdmVkCj4gPiA+ID4gPiByZWdp c3RlcnMsIHRoZXkgd291bGQgcmVtYWluIGNsb2JiZXJlZC4gU28sIHRoZSBwcm9sb2d1ZSBvZiB0 aGUKPiA+ID4gPiA+IGV4Y2VwdGlvbi1ib3VuZGFyeSBwcm9ncmFtIGlzIG1vZGlmaWVkIHRvIHB1 c2ggUjIzIGFuZCBSMjQgYXMgd2VsbCwKPiA+ID4gPiA+IHdoaWNoIHRoZSBjYWxsYmFjayB3aWxs IHRoZW4gcmVjb3ZlciBpbiBpdHMgZXBpbG9ndWUuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhlIFBy b2NlZHVyZSBDYWxsIFN0YW5kYXJkIGZvciB0aGUgQXJtIDY0LWJpdCBBcmNoaXRlY3R1cmVbMV0g c3RhdGVzCj4gPiA+ID4gPiB0aGF0IHJlZ2lzdGVycyByMTkgdG8gcjI4IHNob3VsZCBiZSBzYXZl ZCBieSB0aGUgY2FsbGVlLiBCUEYgcHJvZ3JhbXMgb24KPiA+ID4gPiA+IEFSTTY0IGFscmVhZHkg c2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBleGNlcHQgcjIzIGFuZCByMjQuIFRoaXMK PiA+ID4gPiA+IHBhdGNoIGFkZHMgYW4gaW5zdHJ1Y3Rpb24gaW4gcHJvbG9ndWUgb2YgdGhlICBw cm9ncmFtIHRvIHNhdmUgdGhlc2UKPiA+ID4gPiA+IHR3byByZWdpc3RlcnMgYW5kIGFub3RoZXIg aW5zdHJ1Y3Rpb24gaW4gdGhlIGVwaWxvZ3VlIHRvIHJlY292ZXIgdGhlbS4KPiA+ID4gPiA+Cj4g PiA+ID4gPiBUaGVzZSBleHRyYSBpbnN0cnVjdGlvbnMgYXJlIG9ubHkgYWRkZWQgaWYgYnBmX3Ro cm93KCkgdXNlZC4gT3RoZXJ3aXNlCj4gPiA+ID4gPiB0aGUgZW1pdHRlZCBwcm9sb2d1ZS9lcGls b2d1ZSByZW1haW5zIHVuY2hhbmdlZC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9n aXRodWIuY29tL0FSTS1zb2Z0d2FyZS9hYmktYWEvYmxvYi9tYWluL2FhcGNzNjQvYWFwY3M2NC5y c3QKPiA+ID4gPiA+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQdXJhbmpheSBNb2hhbiA8cHVy YW5qYXkxMkBnbWFpbC5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPgo+ID4gPiA+IFsuLi5dCj4g PiA+ID4KPiA+ID4gPiA+ICt2b2lkIGFyY2hfYnBmX3N0YWNrX3dhbGsoYm9vbCAoKmNvbnN1bWVf Zm4pKHZvaWQgKmNvb2tpZSwgdTY0IGlwLCB1NjQgc3AsIHU2NCBicCksIHZvaWQgKmNvb2tpZSkK PiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArICAgICBzdHJ1Y3Qgc3RhY2tfaW5mbyBzdGFja3NbXSA9 IHsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgc3RhY2tpbmZvX2dldF90YXNrKGN1cnJlbnQpLAo+ ID4gPiA+ID4gKyAgICAgfTsKPiA+ID4gPgo+ID4gPiA+IENhbiBicGZfdGhyb3coKSBvbmx5IGJl IHVzZWQgYnkgQlBGIHByb2dyYW1zIHRoYXQgcnVuIGluIHRhc2sgY29udGV4dCwgb3IgaXMgaXQK PiA+ID4gPiBwb3NzaWJsZSBlLmcuIGZvciB0aG9zZSB0byBydW4gd2l0aGluIGFuIElSUSBoYW5k bGVyIChvciBvdGhlcndpc2Ugb24gdGhlIElSUQo+ID4gPiA+IHN0YWNrKT8KPiA+ID4KPiA+ID4g SSB3aWxsIGdldCBiYWNrIG9uIHRoaXMgd2l0aCBtb3JlIGluZm9ybWF0aW9uLgo+ID4gPgo+ID4g PiA+Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgdW53aW5kX3N0YXRlIHN0YXRl ID0gewo+ID4gPiA+ID4gKyAgICAgICAgICAgICAuc3RhY2tzID0gc3RhY2tzLAo+ID4gPiA+ID4g KyAgICAgICAgICAgICAubnJfc3RhY2tzID0gQVJSQVlfU0laRShzdGFja3MpLAo+ID4gPiA+ID4g KyAgICAgfTsKPiA+ID4gPiA+ICsgICAgIHVud2luZF9pbml0X2NvbW1vbigmc3RhdGUsIGN1cnJl bnQpOwo+ID4gPiA+ID4gKyAgICAgc3RhdGUuZnAgPSAodW5zaWduZWQgbG9uZylfX2J1aWx0aW5f ZnJhbWVfYWRkcmVzcygxKTsKPiA+ID4gPiA+ICsgICAgIHN0YXRlLnBjID0gKHVuc2lnbmVkIGxv bmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAg ICAgaWYgKHVud2luZF9uZXh0X2ZyYW1lX3JlY29yZCgmc3RhdGUpKQo+ID4gPiA+ID4gKyAgICAg ICAgICAgICByZXR1cm47Cj4gPiA+ID4gPiArICAgICB3aGlsZSAoMSkgewo+ID4gPiA+ID4gKyAg ICAgICAgICAgICAvKiBXZSBvbmx5IHVzZSB0aGUgZnAgaW4gdGhlIGV4Y2VwdGlvbiBjYWxsYmFj ay4gUGFzcyAwIGZvciBzcCBhcyBpdCdzIHVuYXZhaWxhYmxlKi8KPiA+ID4gPiA+ICsgICAgICAg ICAgICAgaWYgKCFjb25zdW1lX2ZuKGNvb2tpZSwgKHU2NClzdGF0ZS5wYywgMCwgKHU2NClzdGF0 ZS5mcCkpCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gPiAr ICAgICAgICAgICAgIGlmICh1bndpbmRfbmV4dF9mcmFtZV9yZWNvcmQoJnN0YXRlKSkKPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiA+ICsgICAgIH0KPiA+ID4g PiA+ICt9Cj4gPiA+ID4KPiA+ID4gPiBJSVVDIHlvdSdyZSBub3QgdXNpbmcgYXJjaF9zdGFja193 YWxrKCkgYmVjYXVzZSB5b3UgbmVlZCB0aGUgRlAgaW4gYWRkaXRpb24gdG8KPiA+ID4gPiB0aGUg UEMuCj4gPiA+Cj4gPiA+IFllcywKPiA+ID4KPiA+ID4gPiBJcyB0aGVyZSBhbnkgb3RoZXIgcmVh c29uIHlvdSBuZWVkIHRvIG9wZW4tY29kZSB0aGlzPwo+ID4gPgo+ID4gPiBObywKPiA+ID4KPiA+ ID4gPgo+ID4gPiA+IElmIG5vdCwgSSdkIHJhdGhlciByZXdvcmsgdGhlIGNvbW1vbiB1bndpbmRl ciBzbyB0aGF0IGl0J3MgcG9zc2libGUgdG8gZ2V0IGF0Cj4gPiA+ID4gdGhlIEZQLiBJIGhhZCBw YXRjaGVzIGZvciB0aGF0IGEgd2hpbGUgYmFjazoKPiA+ID4gPgo+ID4gPiA+ICAgaHR0cHM6Ly9n aXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbWFyay9saW51eC5naXQvbG9n Lz9oPWFybTY0L3N0YWNrdHJhY2UvbWV0YWRhdGEKPiA+ID4gPgo+ID4gPiA+IC4uLiBhbmQgSSdt IGhhcHB5IHRvIHJlYmFzZSB0aGF0IGFuZCBwdWxsIG91dCB0aGUgbWluaW11bSBuZWNlc3Nhcnkg dG8gbWFrZQo+ID4gPiA+IHRoYXQgcG9zc2libGUuCj4gPiA+Cj4gPiA+IEl0IHdvdWxkIGJlIGdy ZWF0IGlmIHlvdSBjYW4gcmViYXNlIGFuZCBwdXNoIHRoZSBjb2RlLCBJIGNhbiByZWJhc2UgdGhp cyBvbgo+ID4gPiB5b3VyIHdvcmsgYW5kIG5vdCBvcGVuIGNvZGUgdGhpcyBpbXBsZW1lbnRhdGlv bi4KPiA+Cj4gPiBJJ3ZlIHJlYmFzZWQgdGhlIGNvcmUgb2YgdGhhdCBhdG9wIHY2LjYsIGFuZCBw dXNoZWQgdGhhdCBvdXQgdG8gbXkKPiA+IGFybTY0L3N0YWNrdHJhY2Uva3Vud2luZCBicmFuY2g6 Cj4gPgo+ID4gICBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dp dC9tYXJrL2xpbnV4LmdpdC9sb2cvP2g9YXJtNjQvc3RhY2t0cmFjZS9rdW53aW5kCj4gPgo+ID4g T25jZSB2Ni43LXJjMSBpcyBvdXQsIEknbGwgcmViYXNlIHRoYXQgYW5kIHBvc3QgaXQgb3V0IChw b3NzaWJseSB3aXRoIHNvbWUgb2YKPiA+IHRoZSBvdGhlciBwYXRjaGVzIGF0b3ApLgo+ID4KPiA+ IFdpdGggdGhhdCBJIHRoaW5rIHlvdSBjYW4gaW1wbGVtZW50IGFyY2hfYnBmX3N0YWNrX3dhbGso KSBpbiBzdGFja3RyYWNlLmMgdXNpbmcKPiA+IGt1bndpbmRfc3RhY2tfd2FsaygpIGluIGEgc2lt aWxhciB3YXkgdG8gaG93IGFyY2hfc3RhY2tfd2FsaygpIGlzIGltcGxlbWVudGVkCj4gPiBpbiB0 aGF0IGJyYW5jaC4KPiA+Cj4gPiBJZiBCUEYgb25seSBuZWVkcyBhIHNpbmdsZSBjb25zdW1lX2Zu LCB0aGF0IGNhbiBwcm9iYWJseSBiZSBldmVuIHNpbXBsZXIgYXMgeW91Cj4gPiB3b24ndCBuZWVk IGEgc3RydWN0IHRvIGhvbGQgdGhlIGNvbnN1bWVfZm4gYW5kIGNvb2tpZSB2YWx1ZS4KPiAKPiBU aGFua3MgZm9yIHRoZSBoZWxwLgo+IEkgYW0gcGxhbm5pbmcgdG8gZG8gc29tZXRoaW5nIGxpa2Ug dGhlIGZvbGxvd2luZzoKPiBsZXQgbWUga25vdyBpZiB0aGlzIGNhbiBiZSBkb25lIGluIGEgYmV0 dGVyIHdheToKPiAKPiArc3RydWN0IGJwZl91bndpbmRfY29uc3VtZV9lbnRyeV9kYXRhIHsKPiAr ICAgICAgIGJvb2wgKCpjb25zdW1lX2VudHJ5KSh2b2lkICpjb29raWUsIHU2NCBpcCwgdTY0IHNw LCB1NjQgZnApOwo+ICsgICAgICAgdm9pZCAqY29va2llOwo+ICt9Owo+ICsKPiArc3RhdGljIGJv b2wKPiArYXJjaF9icGZfdW53aW5kX2NvbnN1bWVfZW50cnkgKGNvbnN0IHN0cnVjdCBrdW53aW5k X3N0YXRlICpzdGF0ZSwgdm9pZCAqY29va2llKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgYnBmX3Vu d2luZF9jb25zdW1lX2VudHJ5X2RhdGEgKmRhdGEgPSBjb29raWU7Cj4gKyAgICAgICByZXR1cm4g ZGF0YS0+Y29uc3VtZV9lbnRyeShkYXRhLT5jb29raWUsIHN0YXRlLT5jb21tb24ucGMsIDAsCj4g c3RhdGUtPmNvbW1vbi5mcCk7Cj4gK30KPiArCj4gK25vaW5saW5lIG5vaW5zdHIgdm9pZCBhcmNo X2JwZl9zdGFja193YWxrKGJvb2wgKCpjb25zdW1lX2VudHJ5KSh2b2lkCj4gKmNvb2tpZSwgdTY0 IGlwLCB1NjQgc3AsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTY0IGZwKSwgdm9pZCAqY29va2llKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgYnBmX3Vud2luZF9j b25zdW1lX2VudHJ5X2RhdGEgZGF0YSA9IHsKPiArICAgICAgICAgICAgICAgLmNvbnN1bWVfZW50 cnkgPSBjb25zdW1lX2VudHJ5LAo+ICsgICAgICAgICAgICAgICAuY29va2llID0gY29va2llLAo+ ICsgICAgICAgfTsKPiArCj4gKyAgICAgICBrdW53aW5kX3N0YWNrX3dhbGsoYXJjaF9icGZfdW53 aW5kX2NvbnN1bWVfZW50cnksICZkYXRhLCB0YXNrLCByZWdzKTsKPiArfQoKVGhhdCdzIHJvdWdo bHkgd2hhdCBJIGhhZCBleHBlY3RlZCwgc28gdGhhdCBsb29rcyBnb29kIHRvIG1lLgoKPiBJIG5l ZWQgdG8gZ2V0IHRoZSB0YXNrIGFuZCByZWdzIGhlcmUgc28gaXQgY2FuIHdvcmsgZnJvbSBhbGwg Y29udGV4dHMuCj4gSG93IGNhbiBJIGRvIGl0PwoKQXJlIHlvdSBhc2tpbmcgYmVjYXVzZSB0aGF0 J3Mgd2hhdCB0aGUga3Vud2luZF9zdGFja193YWxrKCkgcHJvdG90eXBlIHRha2VzPwoKSWYgc28s IEkgYmVsaWV2ZSB5b3UganVzdCBuZWVkOgoKCWt1bndpbmRfc3RhY2tfd2FsayhhcmNoX2JwZl91 bndpbmRfY29uc3VtZV9lbnRyeSwgJmRhdGEsIGN1cnJlbnQsIE5VTEwpOwoKTm90ZSB0aGF0IHdl IGN1cnJlbnRseSAqY2Fubm90KiByZWxpYWJseSB1bndpbmQgYWNyb3NzIGFuIGV4Y2VwdGlvbiBi b3VuZGFyeSwKc28gaWYgeW91IGhhdmUgbm9uLU5VTEwgcmVncyB0aGUgdW53aW5kIHdpbGwgYmUg dW5zYWZlLiBJSVVDIHRoZSBCUEYgZXhjZXB0aW9ucwp5b3UncmUgYWRkaW5nIHN1cHBvcnQgZm9y IGFyZSBoYW5kbGVkIHZpYSBhIGJyYW5jaCByYXRoZXIgdGhhbiB2aWEgYW4KYXJjaGl0ZWN0dXJh bCBleGNlcHRpb24sIHNvIHRoZXJlIGFyZSBubyByZWdzIHRvIHBhc3MgKGFuZCBzbyBOVUxMIGlz IGNvcnJlY3QpLgoKVGhhbmtzLApNYXJrLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=