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 9E652C46CD2 for ; Tue, 30 Jan 2024 10:58:00 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5wQggMdEvH4SdqqJJrnZ3pZIkhfdP9OG/mUKV7p+JEg=; b=eGdx26b74nYrLN piJMeUY83Yt6kdJzwaiq9v1RJlqeSnfrpQ8jQBSD5MBP7n6HkqkhCaIKnwoYNE2UkuZuLUBofgB0O R7QqPPjXRb4vlGUUh28iwSSZq5Q3JtnMeqUVh7LWerXeIDmE3krrSOtpvp6zA48oxU9rHjS9uyEfj AC2KlhXvZPZXA1JfeGYuPGp/FpJIK+2IiH7VxdsoovnTYauGahz939QHEq3OZnQEBsr/bmnJheqgf G/szaPkFC4X18/wZM9oMZdZ7Mer9QEBFncKkO84J7FABrV2fG7kOylrk4kap116HpwqXy64UmJbaF 3S4EEdo6xUYYugGamaAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUloI-0000000GIQy-0XYW; Tue, 30 Jan 2024 10:57:46 +0000 Received: from szxga04-in.huawei.com ([45.249.212.190]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUloE-0000000GIPM-35kj for linux-arm-kernel@lists.infradead.org; Tue, 30 Jan 2024 10:57:44 +0000 Received: from mail.maildlp.com (unknown [172.19.162.112]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4TPMXB10ljz29krw; Tue, 30 Jan 2024 18:55:38 +0800 (CST) Received: from kwepemm600017.china.huawei.com (unknown [7.193.23.234]) by mail.maildlp.com (Postfix) with ESMTPS id AB70B1404D7; Tue, 30 Jan 2024 18:57:27 +0800 (CST) Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 18:57:25 +0800 Message-ID: Date: Tue, 30 Jan 2024 18:57:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH v10 2/6] arm64: add support for machine check error safe To: Mark Rutland CC: Catalin Marinas , Will Deacon , James Morse , Robin Murphy , Andrey Ryabinin , Alexander Potapenko , Alexander Viro , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Aneesh Kumar K.V , "Naveen N. Rao" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , , , , , , , Guohanjun References: <20240129134652.4004931-1-tongtiangen@huawei.com> <20240129134652.4004931-3-tongtiangen@huawei.com> From: Tong Tiangen In-Reply-To: X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600017.china.huawei.com (7.193.23.234) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240130_025743_118146_FFA03F60 X-CRM114-Status: GOOD ( 33.16 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgrlnKggMjAyNC8xLzMwIDE6NTEsIE1hcmsgUnV0bGFuZCDlhpnpgZM6Cj4gT24gTW9uLCBKYW4g MjksIDIwMjQgYXQgMDk6NDY6NDhQTSArMDgwMCwgVG9uZyBUaWFuZ2VuIHdyb3RlOgo+PiBGb3Ig dGhlIGFybTY0IGtlcm5lbCwgd2hlbiBpdCBwcm9jZXNzZXMgaGFyZHdhcmUgbWVtb3J5IGVycm9y cyBmb3IKPj4gc3luY2hyb25pemUgbm90aWZpY2F0aW9ucyhkb19zZWEoKSksIGlmIHRoZSBlcnJv cnMgaXMgY29uc3VtZWQgd2l0aGluIHRoZQo+PiBrZXJuZWwsIHRoZSBjdXJyZW50IHByb2Nlc3Np bmcgaXMgcGFuaWMuIEhvd2V2ZXIsIGl0IGlzIG5vdCBvcHRpbWFsLgo+Pgo+PiBUYWtlIHVhY2Nl c3MgZm9yIGV4YW1wbGUsIGlmIHRoZSB1YWNjZXNzIG9wZXJhdGlvbiBmYWlscyBkdWUgdG8gbWVt b3J5Cj4+IGVycm9yLCBvbmx5IHRoZSB1c2VyIHByb2Nlc3Mgd2lsbCBiZSBhZmZlY3RlZC4gS2ls bGluZyB0aGUgdXNlciBwcm9jZXNzIGFuZAo+PiBpc29sYXRpbmcgdGhlIGNvcnJ1cHQgcGFnZSBp cyBhIGJldHRlciBjaG9pY2UuCj4+Cj4+IFRoaXMgcGF0Y2ggb25seSBlbmFibGUgbWFjaGluZSBl cnJvciBjaGVjayBmcmFtZXdvcmsgYW5kIGFkZHMgYW4gZXhjZXB0aW9uCj4+IGZpeHVwIGJlZm9y ZSB0aGUga2VybmVsIHBhbmljIGluIGRvX3NlYSgpLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBUb25n IFRpYW5nZW4gPHRvbmd0aWFuZ2VuQGh1YXdlaS5jb20+Cj4+IC0tLQo+PiAgIGFyY2gvYXJtNjQv S2NvbmZpZyAgICAgICAgICAgICAgIHwgIDEgKwo+PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20v ZXh0YWJsZS5oIHwgIDEgKwo+PiAgIGFyY2gvYXJtNjQvbW0vZXh0YWJsZS5jICAgICAgICAgIHwg MTYgKysrKysrKysrKysrKysrKwo+PiAgIGFyY2gvYXJtNjQvbW0vZmF1bHQuYyAgICAgICAgICAg IHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4gICA0IGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQvS2NvbmZpZyBiL2FyY2gvYXJtNjQvS2NvbmZpZwo+PiBpbmRleCBhYTdjMWQ0MzUxMzku LjJjYzM0YjVlN2FiYiAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm02NC9LY29uZmlnCj4+ICsrKyBi L2FyY2gvYXJtNjQvS2NvbmZpZwo+PiBAQCAtMjAsNiArMjAsNyBAQCBjb25maWcgQVJNNjQKPj4g ICAJc2VsZWN0IEFSQ0hfRU5BQkxFX1NQTElUX1BNRF9QVExPQ0sgaWYgUEdUQUJMRV9MRVZFTFMg PiAyCj4+ICAgCXNlbGVjdCBBUkNIX0VOQUJMRV9USFBfTUlHUkFUSU9OIGlmIFRSQU5TUEFSRU5U X0hVR0VQQUdFCj4+ICAgCXNlbGVjdCBBUkNIX0hBU19DQUNIRV9MSU5FX1NJWkUKPj4gKwlzZWxl Y3QgQVJDSF9IQVNfQ09QWV9NQyBpZiBBQ1BJX0FQRUlfR0hFUwo+PiAgIAlzZWxlY3QgQVJDSF9I QVNfQ1VSUkVOVF9TVEFDS19QT0lOVEVSCj4+ICAgCXNlbGVjdCBBUkNIX0hBU19ERUJVR19WSVJU VUFMCj4+ICAgCXNlbGVjdCBBUkNIX0hBU19ERUJVR19WTV9QR1RBQkxFCj4+IGRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2V4dGFibGUuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9h c20vZXh0YWJsZS5oCj4+IGluZGV4IDcyYjBlNzFjYzNkZS4uZjgwZWJkMGFkZGZkIDEwMDY0NAo+ PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2V4dGFibGUuaAo+PiArKysgYi9hcmNoL2Fy bTY0L2luY2x1ZGUvYXNtL2V4dGFibGUuaAo+PiBAQCAtNDYsNCArNDYsNSBAQCBib29sIGV4X2hh bmRsZXJfYnBmKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4LAo+PiAgICNl bmRpZiAvKiAhQ09ORklHX0JQRl9KSVQgKi8KPj4gICAKPj4gICBib29sIGZpeHVwX2V4Y2VwdGlv bihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ICtib29sIGZpeHVwX2V4Y2VwdGlvbl9tYyhzdHJ1 Y3QgcHRfcmVncyAqcmVncyk7Cj4+ICAgI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L21tL2V4dGFibGUuYyBiL2FyY2gvYXJtNjQvbW0vZXh0YWJsZS5jCj4+IGluZGV4IDIyOGQ2ODFh ODcxNS4uNDc4ZTYzOWY4NjgwIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L21tL2V4dGFibGUu Ywo+PiArKysgYi9hcmNoL2FybTY0L21tL2V4dGFibGUuYwo+PiBAQCAtNzYsMyArNzYsMTkgQEAg Ym9vbCBmaXh1cF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgCj4+ICAgCUJV RygpOwo+PiAgIH0KPj4gKwo+PiArYm9vbCBmaXh1cF9leGNlcHRpb25fbWMoc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpCj4gCj4gQ2FuIHdlIHBsZWFzZSByZXBsYWNlICdtYycgd2l0aCBzb21ldGhpbmcg bGlrZSAnbWVtb3J5X2Vycm9yJyA/Cj4gCj4gVGhlcmUncyBubyAibWFjaGluZSBjaGVjayIgb24g YXJtNjQsIGFuZCAnbWMnIGlzIG9wYXF1ZSByZWdhcmRsZXNzLgoKT0ssIEl0J3MgbW9yZSBhcHBy b3ByaWF0ZSB0byB1c2UgIm1lbW9yeV9lcnJvciIgb24gYXJtNjQuCgo+IAo+PiArewo+PiArCWNv bnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4Owo+PiArCj4+ICsJZXggPSBzZWFy Y2hfZXhjZXB0aW9uX3RhYmxlcyhpbnN0cnVjdGlvbl9wb2ludGVyKHJlZ3MpKTsKPj4gKwlpZiAo IWV4KQo+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIFRoaXMgaXMgbm90 IGNvbXBsZXRlLCBNb3JlIE1hY2hpbmUgY2hlY2sgc2FmZSBleHRhYmxlIHR5cGUgY2FuCj4+ICsJ ICogYmUgcHJvY2Vzc2VkIGhlcmUuCj4+ICsJICovCj4+ICsKPj4gKwlyZXR1cm4gZmFsc2U7Cj4+ ICt9Cj4gCj4gQXMgd2l0aCBteSBjb21tZW50IG9uIHRoZSBzdWJzZXF1ZW50eSBwYXRjaCwgSSdk IG11Y2ggcHJlZmVyIHRoYXQgd2UgaGFuZGxlCj4gRVhfVFlQRV9VQUNDRVNTX0VSUl9aRVJPIGZy b20gdGhlIG91dHNldC4KCk9LLCBJbiB0aGUgbmV4dCB2ZXJzaW9uLCB0aGUgdHdvIHBhdGNoZXMg d2lsbCBiZSBtZXJnZWQuCgo+IAo+IAo+IAo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9tbS9m YXVsdC5jIGIvYXJjaC9hcm02NC9tbS9mYXVsdC5jCj4+IGluZGV4IDU1ZjY0NTVhODI4NC4uMzEy OTMyZGMxMDBiIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L21tL2ZhdWx0LmMKPj4gKysrIGIv YXJjaC9hcm02NC9tbS9mYXVsdC5jCj4+IEBAIC03MzAsNiArNzMwLDMxIEBAIHN0YXRpYyBpbnQg ZG9fYmFkKHVuc2lnbmVkIGxvbmcgZmFyLCB1bnNpZ25lZCBsb25nIGVzciwgc3RydWN0IHB0X3Jl Z3MgKnJlZ3MpCj4+ICAgCXJldHVybiAxOyAvKiAiZmF1bHQiICovCj4+ICAgfQo+PiAgIAo+PiAr c3RhdGljIGJvb2wgYXJtNjRfZG9fa2VybmVsX3NlYSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2ln bmVkIGludCBlc3IsCj4+ICsJCQkJICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IHNpZywg aW50IGNvZGUpCj4+ICt7Cj4+ICsJaWYgKCFJU19FTkFCTEVEKENPTkZJR19BUkNIX0hBU19DT1BZ X01DKSkKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCj4+ICsJaWYgKHVzZXJfbW9kZShyZWdzKSkK Pj4gKwkJcmV0dXJuIGZhbHNlOwo+IAo+IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkICJhcm02NF9k b19rZXJuZWxfc2VhIjsgc3VyZWx5IHRoZSBjYWxsZXIgc2hvdWxkICpuZXZlcioKPiBjYWxsIHRo aXMgZm9yIGEgU0VBIHRha2VuIGZyb20gdXNlciBtb2RlPwoKSW4gZG9fc2VhKCksIHRoZSBwcm9j ZXNzaW5nIGxvZ2ljIGlzIGFzIGZvbGxvd3M6CiAgIGRvX3NlYSgpCiAgIHsKICAgICBbLi4uXQog ICAgIGlmICh1c2VyX21vZGUocmVncykgJiYgYXBlaV9jbGFpbV9zZWEocmVncykgPT0gMCkgewog ICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBbLi4uXQogICAgIC8vWzFdCiAgICAgaWYgKCFh cm02NF9kb19rZXJuZWxfc2VhKCkpIHsKICAgICAgICBhcm02NF9ub3RpZnlfZGllKCk7CiAgICAg fQogICB9CgpbMV0gdXNlcl9tb2RlKCkgaXMgc3RpbGwgcG9zc2libGUgdG8gZ28gaGVyZSxJZiB1 c2VyX21vZGUoKSBnb2VzIGhlcmUsCiAgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGltcGFjdCBjYXVz ZWQgYnkgdGhlIG1lbW9yeSBlcnJvciBjYW5ub3QgYmUKICBwcm9jZXNzZWQgY29ycmVjdGx5IGJ5 IGFwZWlfY2xhaW1fc2VhKCkuCgoKSW4gdGhpcyBjYXNlLCBvbmx5IGFybTY0X25vdGlmeV9kaWUo KSBjYW4gYmUgdXNlZCwgVGhpcyBhbHNvIG1haW50YWlucwp0aGUgb3JpZ2luYWwgbG9naWMgb2Yg dXNlcl9tb2RlKCkncyBwcm9jZXNzaW5nLgoKPiAKPj4gKwo+PiArCWlmIChhcGVpX2NsYWltX3Nl YShyZWdzKSA8IDApCj4+ICsJCXJldHVybiBmYWxzZTsKPj4gKwo+PiArCWlmICghZml4dXBfZXhj ZXB0aW9uX21jKHJlZ3MpKQo+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ICsKPj4gKwlpZiAoY3VycmVu dC0+ZmxhZ3MgJiBQRl9LVEhSRUFEKQo+PiArCQlyZXR1cm4gdHJ1ZTsKPiAKPiBJIHRoaW5rIHRo aXMgbmVlZHMgYSBjb21tZW50OyB3aHkgZG8gd2UgYWxsb3cga3RocmVhZHMgdG8gZ28gb24sIHll dCBraWxsIHVzZXIKPiB0aHJlYWRzPyBXaGF0IGFib3V0IGhlbHBlciB0aHJlYWRzIChlLmcuIGZv ciBpb191cmluZyk/CgpJZiBhIG1lbXJveSBlcnJvciBvY2N1cnMgaW4gdGhlIGtlcm5lbCB0aHJl YWQsIHRoZSBwcm9ibGVtIGlzIG1vcmUKc2VyaW91cyB0aGFuIHRoYXQgb2YgdGhlIHVzZXIgdGhy ZWFkLiBBcyBhIHJlc3VsdCwgcmVsYXRlZCBrZXJuZWwKZnVuY3Rpb25zLCBzdWNoIGFzIGtodWdl cGFnZWQsIGNhbm5vdCBydW4gcHJvcGVybHkuIGtlcm5lbCBwYW5pYyBzaG91bGQKYmUgYSBiZXR0 ZXIgY2hvaWNlIGF0IHRoaXMgdGltZS4KClRoZXJlZm9yZSwgdGhlIHByb2Nlc3Npbmcgc2NvcGUg b2YgdGhpcyBmcmFtZXdvcmsgaXMgbGltaXRlZCB0byB0aGUgdXNlciAKICB0aHJlYWQuCgo+IAo+ PiArCj4+ICsJc2V0X3RocmVhZF9lc3IoMCwgZXNyKTsKPiAKPiBXaHkgZG8gd2Ugc2V0IHRoZSBF U1IgdG8gMD8KClRoZSBwdXJwb3NlIGlzIHRvIHJldXNlIHRoZSBsb2dpYyBvZiBhcm02NF9ub3Rp ZnlfZGllKCkgYW5kIHNldCB0aGUgCmZvbGxvd2luZyBwYXJhbWV0ZXJzIGJlZm9yZSBzZW5kaW5n IHNpZ25hbHMgdG8gdXNlcnM6CiAgIGN1cnJlbnQtPnRocmVhZC5mYXVsdF9hZGRyZXNzID0gMDsK ICAgY3VycmVudC0+dGhyZWFkLmZhdWx0X2NvZGUgPSBlcnI7CgpJIGxvb2tlZCBhdCB0aGUgZ2l0 IGxvZyBhbmQgZm91bmQgdGhhdCB0aGUgbG9naWMgd2FzIGFkZGVkIGJ5IHRoaXMKY29tbWl0OgoK CjkxNDEzMDBhNTg4NCDvvIjigJxhcm02NDogUHJvdmlkZSByZWFkL3dyaXRlIGZhdWx0IGluZm9y bWF0aW9uIGluIGNvbXBhdCAKc2lnbmFsIGhhbmRsZXJz4oCd77yJCgpBY2NvcmRpbmcgdG8gdGhl IGRlc2NyaXB0aW9uIG9mIGNvbW1pdCBtZXNzYWdlLCB0aGUgcHVycG9zZSBzZWVtcyB0byBiZQpm b3IgYWFyY2gzMi4KCk1hbnkgdGhhbmtzLgpUb25nLgoKCj4gCj4gTWFyay4KPiAKPj4gKwlhcm02 NF9mb3JjZV9zaWdfZmF1bHQoc2lnLCBjb2RlLCBhZGRyLAo+PiArCQkiVW5jb3JyZWN0ZWQgbWVt b3J5IGVycm9yIG9uIGFjY2VzcyB0byB1c2VyIG1lbW9yeVxuIik7Cj4+ICsKPj4gKwlyZXR1cm4g dHJ1ZTsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBpbnQgZG9fc2VhKHVuc2lnbmVkIGxvbmcgZmFy LCB1bnNpZ25lZCBsb25nIGVzciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgewo+PiAgIAlj b25zdCBzdHJ1Y3QgZmF1bHRfaW5mbyAqaW5mOwo+PiBAQCAtNzU1LDcgKzc4MCw5IEBAIHN0YXRp YyBpbnQgZG9fc2VhKHVuc2lnbmVkIGxvbmcgZmFyLCB1bnNpZ25lZCBsb25nIGVzciwgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgCQkgKi8KPj4gICAJCXNpYWRkciAgPSB1bnRhZ2dlZF9hZGRy KGZhcik7Cj4+ICAgCX0KPj4gLQlhcm02NF9ub3RpZnlfZGllKGluZi0+bmFtZSwgcmVncywgaW5m LT5zaWcsIGluZi0+Y29kZSwgc2lhZGRyLCBlc3IpOwo+PiArCj4+ICsJaWYgKCFhcm02NF9kb19r ZXJuZWxfc2VhKHNpYWRkciwgZXNyLCByZWdzLCBpbmYtPnNpZywgaW5mLT5jb2RlKSkKPj4gKwkJ YXJtNjRfbm90aWZ5X2RpZShpbmYtPm5hbWUsIHJlZ3MsIGluZi0+c2lnLCBpbmYtPmNvZGUsIHNp YWRkciwgZXNyKTsKPj4gICAKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiAtLSAKPj4gMi4yNS4x Cj4+Cj4gLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=