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 651D6C433F5 for ; Sun, 24 Apr 2022 16:55:04 +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:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=VZ9KV2wgjcYjso/GzSGQlUXw5T2wZD6dHBauf7U8spI=; b=Ohp4Y8Nq5CMwRYeaa4YqJU2vbl VYrbwgZaS9wKi9a/QoOL++lNf2DTP9ormlVWab9Iwqx92mLkrBuAbKYWjgstjxlgGjX+JD2ZL4JFf U2HUn7VwPK5MdOKX0IN8Esn+viFsYpZUdO113GNnmk59E79OJ5Fk07QyHnl4V4WqXiYnqO8NtmjCB 0QxntUwTZwcg0cCekackv08YTYyRhCFACJ/IlaPQsGP/3aGa8cvcFAYkmwpakR24LIeYKYofYc052 RR6S5g6fGk2BEUxuxwCuyZLQI9he2N0rD78XApyafjPnjegat4/HG/F5GTNwlIjRWVFdJ9SfuamrK D46f2zLA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nifUQ-0072N8-IZ; Sun, 24 Apr 2022 16:53:38 +0000 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nifUN-0072L9-DO for linux-arm-kernel@lists.infradead.org; Sun, 24 Apr 2022 16:53:37 +0000 Received: by mail-lf1-x132.google.com with SMTP id t25so22422047lfg.7 for ; Sun, 24 Apr 2022 09:53:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=jglWAKRkI0cPF7sxIMVbMR7zt7h0C3kJ96kO8VwqGDI=; b=GYowuHqr7FB76QyplNtwwt3lky81k7Ou35ecYplCgAko4aBaXhy/MXAyl2x4Cu/MW6 A4pRF0w0ewJckI7S8ELGwOHTFDh7jbReEQ26VnrDMV4qu3juRSwbpBdXChSHPNYzJmNd EHpOi7Mjq2QTjAF+XObk/nyy30OuCFJhSKdBQ+Y8I1flgab/G8K3uMsZzQcobPMA9HKV 1kEJq9DMHRJL81nG7xqc1Ivq+c1M0Okte8Uf5RWCZA2JcJ3d4RyX0YkMLopKdkYqryTY TAmhz+4UYcJcT+l9p8zKrD1SrCQXsuNIOFI0RDhK9P6wTsNSdnQFTWRDH+NAyQ9FHB/3 E/1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=jglWAKRkI0cPF7sxIMVbMR7zt7h0C3kJ96kO8VwqGDI=; b=rY/iIheovDPI0TD/j7XIpoZLTm+fBRphqOI4uERkXlygD38KjTx228imD7ygTS02oi ADy0g6rIVqeZPf8RHIxdFT+vYU64L0lmwz1yOu+B6skMlTBm1YO5jesInDoTtcO/1759 JIOIpLxQFbY9Bl5amP+wVvQLs43cTRqmt8SsPbPREe6rAnRlI9aOpSzPKbDVI0BlM3Il 3MO/FjHIug+XlAPNksDgO6O7AJ9+cHZ1EArUGLoZ6051NtVjSbZt9OOtyd9cELFl0DMm BbjCUaE5CyH38DgYZKegfCvPVOh/jmSMtoxWuaAaQpWGW3jMpGPHZp5vdBwBsZnt0mrb anmw== X-Gm-Message-State: AOAM531ZVsLiqP4uG+JPXjYPjAAx/vM/EMm5HLNrbXAg1YVYmffDKoEm mPLR2VEjLh935zUGBGgTYjA= X-Google-Smtp-Source: ABdhPJwFreSpU5cEMVZzTUFm4eZzNyKMvOqf9D+S7BUgoISlXctBt6KVfUUcLTPNUQsOQOiq0aeg4w== X-Received: by 2002:a05:6512:ac9:b0:470:e6d0:1bd8 with SMTP id n9-20020a0565120ac900b00470e6d01bd8mr10000761lfu.614.1650819212650; Sun, 24 Apr 2022 09:53:32 -0700 (PDT) Received: from [192.168.1.7] ([212.22.223.21]) by smtp.gmail.com with ESMTPSA id f18-20020a193812000000b00471f8573c96sm649350lfa.241.2022.04.24.09.53.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 24 Apr 2022 09:53:32 -0700 (PDT) Subject: Re: [PATCH V1 3/6] xen/virtio: Add option to restrict memory access under Xen To: Christoph Hellwig Cc: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Juergen Gross , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Boris Ostrovsky , Stefano Stabellini , Julien Grall , Oleksandr Tyshchenko , "Michael S. Tsirkin" References: <1650646263-22047-1-git-send-email-olekstysh@gmail.com> <1650646263-22047-4-git-send-email-olekstysh@gmail.com> From: Oleksandr Message-ID: <6c5042fe-dafc-eb4f-c1fa-03b0faf252de@gmail.com> Date: Sun, 24 Apr 2022 19:53:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220424_095335_496093_A28619D1 X-CRM114-Status: GOOD ( 35.69 ) 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 Ck9uIDIzLjA0LjIyIDE5OjQwLCBDaHJpc3RvcGggSGVsbHdpZyB3cm90ZToKCgpIZWxsbyBDaHJp c3RvcGgKCj4gUGxlYXNlIHNwbGl0IHRoaXMgaW50byBvbmUgcGF0Y2ggdGhhdCBjcmVhdGVzIGdy YW50LWRtYS1vcHMsIGFuZCBhbm90aGVyCj4gdGhhdCBzZXRzIHVwIHRoZSB2aXJ0aW8gcmVzdHJp Y3RlZCBhY2Nlc3MgaGVscGVycy4KCgpTb3VuZHMgcmVhc29uYWJsZSwgd2lsbCBkbzoKCjEuIGdy YW50LWRtYS1vcHMuYyB3aXRoIGNvbmZpZyBYRU5fR1JBTlRfRE1BX09QUwoKMi4gYXJjaF9oYXNf cmVzdHJpY3RlZF92aXJ0aW9fbWVtb3J5X2FjY2VzcygpIHdpdGggY29uZmlnIFhFTl9WSVJUSU8K Cgo+Cj4+ICsKPj4gKyNpZmRlZiBDT05GSUdfQVJDSF9IQVNfUkVTVFJJQ1RFRF9WSVJUSU9fTUVN T1JZX0FDQ0VTUwo+PiAraW50IGFyY2hfaGFzX3Jlc3RyaWN0ZWRfdmlydGlvX21lbW9yeV9hY2Nl c3Modm9pZCkKPj4gK3sKPj4gKwlyZXR1cm4gKHhlbl9oYXNfcmVzdHJpY3RlZF92aXJ0aW9fbWVt b3J5X2FjY2VzcygpIHx8Cj4+ICsJCQljY19wbGF0Zm9ybV9oYXMoQ0NfQVRUUl9HVUVTVF9NRU1f RU5DUllQVCkpOwo+PiArfQo+IFNvIGluc3RlYWQgb2YgaGFyZGNvZGluZyBYZW4gaGVyZSwgdGhp cyBzZWVtcyBsaWtlIGEgY2FuZGlkYXRlIGZvcgo+IGFub3RoZXIgY2NfcGxhdGZvcm1faGFzIGZs YWcuCgoKSSBoYXZlIGEgbGltaXRlZCBrbm93bGVkZ2Ugb2YgeDg2IGFuZCBYZW4gb24geDg2LgoK V291bGQgdGhlIFhlbiBzcGVjaWZpYyBiaXRzIGZpdCBpbnRvIENvbmZpZGVudGlhbCBDb21wdXRp bmcgUGxhdGZvcm0gCmNoZWNrcz8gSSB3aWxsIGxldCBKdWVyZ2VuL0JvcmlzIGNvbW1lbnQgb24g dGhpcy4KCgo+Cj4+ICtjb25maWcgWEVOX1ZJUlRJTwo+PiArCWJvb2wgIlhlbiB2aXJ0aW8gc3Vw cG9ydCIKPj4gKwlkZWZhdWx0IG4KPiBuIGlzIHRoZSBkZWZhdWx0IGRlZmF1bHQsIHNvIG5vIG5l ZWQgdG8gc3BlY2lmeSBpdC4KCm9rLCB3aWxsIGRyb3AKCgo+Cj4+ICsvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMC1vbmx5Cj4+ICsvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4gVGhl IGFsbCAqIGxpbmUgaXMgbm90IHRoZSB1c3VhbCBrZXJuZWwgc3R5bGUsIEknZCBzdWdnZXN0IHRv IGRyb3AgaXQuCgpvaywgd2lsbCBkcm9wCgoKPgo+PiArc3RhdGljIHN0cnVjdCBwYWdlICp4ZW5f Z3JhbnRfZG1hX2FsbG9jX3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCj4+ ICsJCQkJCSAgICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsCj4+ICsJCQkJCSAgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKPj4gKwkJCQkJICAgICAgZ2ZwX3QgZ2ZwKQo+PiArewo+ PiArCVdBUk5fT05DRSgxLCAieGVuX2dyYW50X2RtYV9hbGxvY19wYWdlcyBzaXplICV6dVxuIiwg c2l6ZSk7Cj4+ICsJcmV0dXJuIE5VTEw7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIHhlbl9n cmFudF9kbWFfZnJlZV9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAo+PiAr CQkJCSAgICAgc3RydWN0IHBhZ2UgKnZhZGRyLCBkbWFfYWRkcl90IGRtYV9oYW5kbGUsCj4+ICsJ CQkJICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCj4+ICt7Cj4+ICsJV0FSTl9PTkNF KDEsICJ4ZW5fZ3JhbnRfZG1hX2ZyZWVfcGFnZXMgc2l6ZSAlenVcbiIsIHNpemUpOwo+PiArfQo+ IFBsZWFzZSBqdXN0IHdpcmUgdGhpcyB1cCB0byB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbiBhcyAu YWxsb2MgYW5kIC5mcmVlLgoKSSBnb3QgaXQsIHdpbGwgaW1wbGVtZW50CgoKPgo+PiArCXNwaW5f bG9jaygmeGVuX2dyYW50X2RtYV9sb2NrKTsKPj4gKwlsaXN0X2FkZCgmZGF0YS0+bGlzdCwgJnhl bl9ncmFudF9kbWFfZGV2aWNlcyk7Cj4+ICsJc3Bpbl91bmxvY2soJnhlbl9ncmFudF9kbWFfbG9j ayk7Cj4gSG1tLCBoYXZpbmcgdG8gZG8gdGhpcyBkZXZpY2UgbG9va3VwIGZvciBldmVyeSBETUEg b3BlcmF0aW9uIGlzIGdvaW5nCj4gdG8gc3Vjay4gSXQgbWlnaHQgbWFrZSBzZW5zZSB0byBhZGQg YSBwcml2YXRlIGZpZWxkIChlLmcuIGFzIGEgdW5pb24KPiB3aXRoIHRoZSBpb21tdSBmaWVsZCkg aW4gc3RydWN0IGRldmljZSBpbnN0ZWFkLgoKCkkgd2FzIHRoaW5raW5nIGFib3V0IGl0LCBidXQg ZGVjaWRlZCB0byBub3QgYWx0ZXIgY29tbW9uIHN0cnVjdCBkZXZpY2UgCmZvciBhZGRpbmcgWGVu IHNwZWNpZmljIGZpZWxkLCBidXQgaGF2ZW4ndCBtYW5hZ2VkIHRvIHRoaW5rIG9mIGEgYmV0dGVy IAppZGVhIHRoYW4ganVzdCB1c2luZyB0aGF0IGJydXRlIGxvb2t1cCAuLi4KCgo+Cj4gQnV0IGlm IG5vdCB5b3UgcHJvYmFibHkgd2FudCB0byBzd2l0Y2ggdG8gYSBtb3JlIGVmZmljaWVudCBkYXRh Cj4gc3RydWN0dXJlIGxpa2UgdGhlIHhhcnJheSBhdCBsZWFzdC4KCi4uLiBJIHRoaW5rLCB0aGlz IGlzIGdvb2QgcG9pbnQsIHRoYW5rIHlvdS4gSSBoYXZlIG5vIGlkZWEgaG93IGZhc3RlciBpdCAK aXMgZ29pbmcgdG8gYmUsIGJ1dCB0aGUgcmVzdWx0aW5nIGNvZGUgbG9va3Mgc2ltcGxlIChpZiBv ZiBjb3Vyc2UgSSAKY29ycmVjdGx5IHVuZGVyc3Rvb2QgdGhlIHVzYWdlIG9mIHhhcnJheSkKCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZ3JhbnQtZG1hLW9wcy5jIGIvZHJpdmVycy94ZW4vZ3Jh bnQtZG1hLW9wcy5jCmluZGV4IGE1MTJjMGEuLjdlY2MwYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv eGVuL2dyYW50LWRtYS1vcHMuYworKysgYi9kcml2ZXJzL3hlbi9ncmFudC1kbWEtb3BzLmMKQEAg LTExLDYgKzExLDcgQEAKIMKgI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXAtb3BzLmg+CiDCoCNpbmNs dWRlIDxsaW51eC9vZi5oPgogwqAjaW5jbHVkZSA8bGludXgvcGZuLmg+CisjaW5jbHVkZSA8bGlu dXgveGFycmF5Lmg+CiDCoCNpbmNsdWRlIDx4ZW4veGVuLmg+CiDCoCNpbmNsdWRlIDx4ZW4vZ3Jh bnRfdGFibGUuaD4KCkBAIC0xOSwxMiArMjAsOSBAQCBzdHJ1Y3QgeGVuX2dyYW50X2RtYV9kYXRh IHsKIMKgwqDCoMKgwqDCoMKgIGRvbWlkX3QgZGV2X2RvbWlkOwogwqDCoMKgwqDCoMKgwqAgLyog SXMgZGV2aWNlIGJlaGF2aW5nIHNhbmU/ICovCiDCoMKgwqDCoMKgwqDCoCBib29sIGJyb2tlbjsK LcKgwqDCoMKgwqDCoCBzdHJ1Y3QgZGV2aWNlICpkZXY7Ci3CoMKgwqDCoMKgwqAgc3RydWN0IGxp c3RfaGVhZCBsaXN0OwogwqB9OwoKLXN0YXRpYyBMSVNUX0hFQUQoeGVuX2dyYW50X2RtYV9kZXZp Y2VzKTsKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soeGVuX2dyYW50X2RtYV9sb2NrKTsKK3N0YXRp YyBERUZJTkVfWEFSUkFZKHhlbl9ncmFudF9kbWFfZGV2aWNlcyk7CgogwqAjZGVmaW5lIFhFTl9H UkFOVF9ETUFfQUREUl9PRkYgKDFVTEwgPDwgNjMpCgpAQCAtNDAsMjEgKzM4LDEzIEBAIHN0YXRp YyBpbmxpbmUgZ3JhbnRfcmVmX3QgZG1hX3RvX2dyYW50KGRtYV9hZGRyX3QgZG1hKQoKIMKgc3Rh dGljIHN0cnVjdCB4ZW5fZ3JhbnRfZG1hX2RhdGEgKmZpbmRfeGVuX2dyYW50X2RtYV9kYXRhKHN0 cnVjdCAKZGV2aWNlICpkZXYpCiDCoHsKLcKgwqDCoMKgwqDCoCBzdHJ1Y3QgeGVuX2dyYW50X2Rt YV9kYXRhICpkYXRhID0gTlVMTDsKLcKgwqDCoMKgwqDCoCBib29sIGZvdW5kID0gZmFsc2U7Ci0K LcKgwqDCoMKgwqDCoCBzcGluX2xvY2soJnhlbl9ncmFudF9kbWFfbG9jayk7Ci0KLcKgwqDCoMKg wqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KGRhdGEsICZ4ZW5fZ3JhbnRfZG1hX2RldmljZXMsIGxp c3QpIHsKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGRhdGEtPmRldiA9PSBkZXYp IHsKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvdW5kID0g dHJ1ZTsKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFr OwotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Ci3CoMKgwqDCoMKgwqAgfQorwqDCoMKg wqDCoMKgIHN0cnVjdCB4ZW5fZ3JhbnRfZG1hX2RhdGEgKmRhdGE7CgotwqDCoMKgwqDCoMKgIHNw aW5fdW5sb2NrKCZ4ZW5fZ3JhbnRfZG1hX2xvY2spOworwqDCoMKgwqDCoMKgIHhhX2xvY2soJnhl bl9ncmFudF9kbWFfZGV2aWNlcyk7CivCoMKgwqDCoMKgwqAgZGF0YSA9IHhhX2xvYWQoJnhlbl9n cmFudF9kbWFfZGV2aWNlcywgKHVuc2lnbmVkIGxvbmcpZGV2KTsKK8KgwqDCoMKgwqDCoCB4YV91 bmxvY2soJnhlbl9ncmFudF9kbWFfZGV2aWNlcyk7CgotwqDCoMKgwqDCoMKgIHJldHVybiBmb3Vu ZCA/IGRhdGEgOiBOVUxMOworwqDCoMKgwqDCoMKgIHJldHVybiBkYXRhOwogwqB9CgogwqAvKgpA QCAtMzEwLDExICszMDAsMTIgQEAgdm9pZCB4ZW5fZ3JhbnRfc2V0dXBfZG1hX29wcyhzdHJ1Y3Qg ZGV2aWNlICpkZXYpCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnI7Cgog wqDCoMKgwqDCoMKgwqAgZGF0YS0+ZGV2X2RvbWlkID0gZGV2X2RvbWlkOwotwqDCoMKgwqDCoMKg IGRhdGEtPmRldiA9IGRldjsKCi3CoMKgwqDCoMKgwqAgc3Bpbl9sb2NrKCZ4ZW5fZ3JhbnRfZG1h X2xvY2spOwotwqDCoMKgwqDCoMKgIGxpc3RfYWRkKCZkYXRhLT5saXN0LCAmeGVuX2dyYW50X2Rt YV9kZXZpY2VzKTsKLcKgwqDCoMKgwqDCoCBzcGluX3VubG9jaygmeGVuX2dyYW50X2RtYV9sb2Nr KTsKK8KgwqDCoMKgwqDCoCBpZiAoeGFfZXJyKHhhX3N0b3JlKCZ4ZW5fZ3JhbnRfZG1hX2Rldmlj ZXMsICh1bnNpZ25lZCBsb25nKWRldiwgCmRhdGEsCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBHRlBfS0VSTkVMKSkpIHsKK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZGV2X2VycihkZXYsICJDYW5ub3Qgc3RvcmUgWGVuIGdyYW50IERNQSBkYXRhXG4i KTsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnI7CivCoMKgwqDCoMKgwqAg fQoKIMKgwqDCoMKgwqDCoMKgIGRldi0+ZG1hX29wcyA9ICZ4ZW5fZ3JhbnRfZG1hX29wczsKCgo+ Cj4+ICtFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fZ3JhbnRfc2V0dXBfZG1hX29wcyk7Cj4gSSBkb24n dCB0aGluayB0aGlzIGhhcyBhbnkgbW9kdWxhciB1c2Vycywgb3IgZGlkIEkgbWlzcyBzb21ldGhp bmc/CgpObywgeW91IGRpZG4ndC4gV2lsbCBkcm9wIGhlcmUgYW5kIGluIHRoZSBuZXh0IHBhdGNo IGZvciAKeGVuX2lzX2dyYW50X2RtYV9kZXZpY2UoKSBhcyB3ZWxsLgoKCi0tIApSZWdhcmRzLAoK T2xla3NhbmRyIFR5c2hjaGVua28KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2Vy bmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==