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 X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F152C31E40 for ; Thu, 15 Aug 2019 09:43:24 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 66654206C1 for ; Thu, 15 Aug 2019 09:43:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66654206C1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hyCHY-0005Oe-9f; Thu, 15 Aug 2019 09:42:56 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hyCHX-0005OZ-Kb for xen-devel@lists.xenproject.org; Thu, 15 Aug 2019 09:42:55 +0000 X-Inumbo-ID: 0dc5b40a-bf41-11e9-8524-bc764e2007e4 Received: from mx1.redhat.com (unknown [209.132.183.28]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0dc5b40a-bf41-11e9-8524-bc764e2007e4; Thu, 15 Aug 2019 09:42:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5E390C057EC6; Thu, 15 Aug 2019 09:42:53 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-117-57.ams2.redhat.com [10.36.117.57]) by smtp.corp.redhat.com (Postfix) with ESMTP id BCEF083877; Thu, 15 Aug 2019 09:42:51 +0000 (UTC) To: devel@edk2.groups.io, anthony.perard@citrix.com References: <20190813113119.14804-1-anthony.perard@citrix.com> <20190813113119.14804-34-anthony.perard@citrix.com> From: Laszlo Ersek Message-ID: <0a0f7fa0-9d85-53b1-435f-a1c55037c8a1@redhat.com> Date: Thu, 15 Aug 2019 11:42:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190813113119.14804-34-anthony.perard@citrix.com> Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Thu, 15 Aug 2019 09:42:53 +0000 (UTC) Subject: Re: [Xen-devel] [edk2-devel] [PATCH v5 33/35] OvmfPkg: Introduce XenIoPvhDxe to initialize Grant Tables X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Jordan Justen , Julien Grall , Ard Biesheuvel , xen-devel@lists.xenproject.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Archived-At: List-Archive: T24gMDgvMTMvMTkgMTM6MzEsIEFudGhvbnkgUEVSQVJEIHdyb3RlOgo+IFhlbklvUHZoRHhlIHVz ZSBYZW5Jb01taW9MaWIgdG8gcmVzZXJ2ZSBzb21lIHNwYWNlIHRvIGJlIHVzZSBieSB0aGUKPiBH cmFudCBUYWJsZXMuCj4gCj4gVGhlIGNhbGwgaXMgb25seSBkb25lIGlmIGl0IGlzIG5lY2Vzc2Fy eSwgd2Ugc2ltcGx5IGRldGVjdCBpZiB0aGUKPiBndWVzdCBpcyBQVkgsIGFzIGluIHRoaXMgY2Fz ZSB0aGVyZSBpcyBjdXJyZW50bHkgbm8gUENJIGJ1cywgYW5kIG5vCj4gUENJIFhlbiBwbGF0Zm9y bSBkZXZpY2Ugd2hpY2ggd291bGQgc3RhcnQgdGhlIFhlbklvUGNpRHhlIGFuZCBhbGxvY2F0ZQo+ IHRoZSBzcGFjZSBmb3IgdGhlIEdyYW50IFRhYmxlcy4KPiAKPiBSZWY6IGh0dHBzOi8vYnVnemls bGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4OQo+IFNpZ25lZC1vZmYtYnk6IEFu dGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEBjaXRyaXguY29tPgo+IFJldmlld2VkLWJ5OiBM YXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPgo+IC0tLQo+IAo+IE5vdGVzOgo+ICAgICB2 NToKPiAgICAgLSBhZGQgbWlzc2luZyBQY2RMaWIgYXMgI2luY2x1ZGUgYW5kIGluIFtMaWJyYXJ5 Q2xhc3Nlc10KCmh0dHA6Ly9taWQubWFpbC1hcmNoaXZlLmNvbS84YTVkOWU2My0xMmYxLTJmZjgt N2M0MC03NzNkMTViYWYzMzNAcmVkaGF0LmNvbQpodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2 ZWwvbWVzc2FnZS80NDYyMgoKVGhlIHVwZGF0ZSBsb29rcyBnb29kLCB0aGFua3MhCkxhc3psbwoK PiAgICAgdjQ6Cj4gICAgIC0gUmVtb3ZlZCBYZW5Jb1B2aER4ZU5vdGlmeUV4aXRCb290KCkgd2hp Y2ggd2FzIGRvaW5nIGFjdGlvbiB0aGF0IHNob3VsZAo+ICAgICAgIG5vdCBiZSBkb25lIGluIGFu IEV4aXRCb290U2VydmljZXMgbm90aWZpY2F0aW9uLgo+ICAgICAgIChJbml0aWFsaXplWGVuSW9Q dmhEeGUoKSBoYXMgYmVlbiBjbGVhbmVkIHVwIGZvbGxvd2luZyB0aGlzLikKPiAgICAgLSBVc2Ug bmV3IFBjZFhlbkdyYW50RnJhbWVzLgo+ICAgICAtIFNvbWUgY29kaW5nIHN0eWxlIGZpeAo+ICAg ICAtIFVwZGF0ZSBNYWludGFpbmVycy50eHQKPiAgICAgCj4gICAgIHYzOgo+ICAgICAtIGRvd25n cmFkZSB0eXBlIHRvIERYRV9EUklWRVIKPiAgICAgLSB1c2UgU1BEWAo+ICAgICAtIHJld29yayBJ bml0aWFsaXplWGVuSW9QdmhEeGUsIGFuZCBoYW5kbGUgZXJyb3JzIHByb3Blcmx5Lgo+ICAgICAt IEZyZWUgdGhlIHJlc2VydmVkIGFsbG9jYXRpb24gaW4gRXhpdEJvb3RTZXJ2aWNlcyBldmVuIGlm IHRoZSBYZW5Jbwo+ICAgICAgIHByb3RvY29sIGNvdWxkIHN1Y2Nlc3NmdWxseSBiZWVuIHVuaW5z dGFsbGVkLgo+ICAgICAKPiAgICAgdjI6Cj4gICAgIC0gZG8gYWxsb2NhdGlvbiBpbiBFbnRyeVBv aW50IGxpa2UgdGhlIG90aGVyIHVzZXIgb2YgWGVuSW9NbWlvTGliLgo+ICAgICAtIGFsbG9jYXRl IG1lbW9yeSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCBhZGRyLgo+ICAgICAtIGNsZWFudXAsIGFkZCBj b3B5cmlnaHQKPiAgICAgLSBkZXRlY3QgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gUFZIIG1vZGUKPiAK PiAgT3ZtZlBrZy9Pdm1mWGVuLmRzYyAgICAgICAgICAgICAgICAgfCAgMiArKwo+ICBPdm1mUGtn L092bWZYZW4uZmRmICAgICAgICAgICAgICAgICB8ICAxICsKPiAgT3ZtZlBrZy9YZW5Jb1B2aER4 ZS9YZW5Jb1B2aER4ZS5pbmYgfCAzNiArKysrKysrKysrKysrKysrKysrCj4gIE92bWZQa2cvWGVu SW9QdmhEeGUvWGVuSW9QdmhEeGUuYyAgIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiAgTWFpbnRhaW5lcnMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgMSArCj4gIDUgZmls ZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgT3ZtZlBr Zy9YZW5Jb1B2aER4ZS9YZW5Jb1B2aER4ZS5pbmYKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92bWZQ a2cvWGVuSW9QdmhEeGUvWGVuSW9QdmhEeGUuYwo+IAo+IGRpZmYgLS1naXQgYS9Pdm1mUGtnL092 bWZYZW4uZHNjIGIvT3ZtZlBrZy9Pdm1mWGVuLmRzYwo+IGluZGV4IGU3MTlhMTY4ZjguLjVlMDdi MzcyNzkgMTAwNjQ0Cj4gLS0tIGEvT3ZtZlBrZy9Pdm1mWGVuLmRzYwo+ICsrKyBiL092bWZQa2cv T3ZtZlhlbi5kc2MKPiBAQCAtMTk1LDYgKzE5NSw3IEBAIFtMaWJyYXJ5Q2xhc3Nlc10KPiAgICBP cmRlcmVkQ29sbGVjdGlvbkxpYnxNZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxlY3Rpb25S ZWRCbGFja1RyZWVMaWIvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGliLmluZgo+ ICAgIFhlbkh5cGVyY2FsbExpYnxPdm1mUGtnL0xpYnJhcnkvWGVuSHlwZXJjYWxsTGliL1hlbkh5 cGVyY2FsbExpYi5pbmYKPiAgICBYZW5QbGF0Zm9ybUxpYnxPdm1mUGtnL0xpYnJhcnkvWGVuUGxh dGZvcm1MaWIvWGVuUGxhdGZvcm1MaWIuaW5mCj4gKyAgWGVuSW9NbWlvTGlifE92bWZQa2cvTGli cmFyeS9YZW5Jb01taW9MaWIvWGVuSW9NbWlvTGliLmluZgo+ICAKPiAgICBUY2cyUGh5c2ljYWxQ cmVzZW5jZUxpYnxPdm1mUGtnL0xpYnJhcnkvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJOdWxsL0R4 ZVRjZzJQaHlzaWNhbFByZXNlbmNlTGliLmluZgo+ICAgIFRwbU1lYXN1cmVtZW50TGlifE1kZU1v ZHVsZVBrZy9MaWJyYXJ5L1RwbU1lYXN1cmVtZW50TGliTnVsbC9UcG1NZWFzdXJlbWVudExpYk51 bGwuaW5mCj4gQEAgLTU4Myw2ICs1ODQsNyBAQCBbQ29tcG9uZW50c10KPiAgICAgICAgTlVMTHxP dm1mUGtnL0NzbS9MZWdhY3lCb290TWFpbnRVaUxpYi9MZWdhY3lCb290TWFpbnRVaUxpYi5pbmYK PiAgIWVuZGlmCj4gICAgfQo+ICsgIE92bWZQa2cvWGVuSW9QdmhEeGUvWGVuSW9QdmhEeGUuaW5m Cj4gICAgT3ZtZlBrZy9YZW5Jb1BjaUR4ZS9YZW5Jb1BjaUR4ZS5pbmYKPiAgICBPdm1mUGtnL1hl bkJ1c0R4ZS9YZW5CdXNEeGUuaW5mCj4gICAgT3ZtZlBrZy9YZW5QdkJsa0R4ZS9YZW5QdkJsa0R4 ZS5pbmYKPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9Pdm1mWGVuLmZkZiBiL092bWZQa2cvT3ZtZlhl bi5mZGYKPiBpbmRleCA1YzFhOTI1ZDZhLi41MTdhNDkyZjE0IDEwMDY0NAo+IC0tLSBhL092bWZQ a2cvT3ZtZlhlbi5mZGYKPiArKysgYi9Pdm1mUGtnL092bWZYZW4uZmRmCj4gQEAgLTMwOSw2ICsz MDksNyBAQCBbRlYuRFhFRlZdCj4gIElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9NZXRyb25v bWUvTWV0cm9ub21lLmluZgo+ICBJTkYgIFBjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2Nr UnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUuaW5mCj4gIAo+ICtJTkYgIE92 bWZQa2cvWGVuSW9QdmhEeGUvWGVuSW9QdmhEeGUuaW5mCj4gIElORiAgT3ZtZlBrZy9YZW5Jb1Bj aUR4ZS9YZW5Jb1BjaUR4ZS5pbmYKPiAgSU5GICBPdm1mUGtnL1hlbkJ1c0R4ZS9YZW5CdXNEeGUu aW5mCj4gIElORiAgT3ZtZlBrZy9YZW5QdkJsa0R4ZS9YZW5QdkJsa0R4ZS5pbmYKPiBkaWZmIC0t Z2l0IGEvT3ZtZlBrZy9YZW5Jb1B2aER4ZS9YZW5Jb1B2aER4ZS5pbmYgYi9Pdm1mUGtnL1hlbklv UHZoRHhlL1hlbklvUHZoRHhlLmluZgo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwMC4uMWMyN2Y4YWFlMAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL1hlbklv UHZoRHhlL1hlbklvUHZoRHhlLmluZgo+IEBAIC0wLDAgKzEsMzYgQEAKPiArIyMgQGZpbGUKPiAr IyAgRHJpdmVyIGZvciB0aGUgWGVuSW8gcHJvdG9jb2wKPiArIwo+ICsjICBDb3B5cmlnaHQgKGMp IDIwMTksIENpdHJpeCBTeXN0ZW1zLCBJbmMuCj4gKyMKPiArIyAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKPiArIwo+ICsjIwo+ICsKPiArW0RlZmluZXNdCj4g KyAgSU5GX1ZFUlNJT04gICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUKPiArICBCQVNFX05BTUUg ICAgICAgICAgICAgICAgID0gWGVuSW9QdmhEeGUKPiArICBGSUxFX0dVSUQgICAgICAgICAgICAg ICAgID0gN2E1NjdjYzQtMGU3NS00ZDdhLWEzMDUtYzNkYjEwOWI1M2FkCj4gKyAgTU9EVUxFX1RZ UEUgICAgICAgICAgICAgICA9IERYRV9EUklWRVIKPiArICBWRVJTSU9OX1NUUklORyAgICAgICAg ICAgID0gMS4wCj4gKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICA9IEluaXRpYWxpemVYZW5J b1B2aER4ZQo+ICsKPiArW1BhY2thZ2VzXQo+ICsgIE1kZVBrZy9NZGVQa2cuZGVjCj4gKyAgT3Zt ZlBrZy9Pdm1mUGtnLmRlYwo+ICsKPiArW1NvdXJjZXNdCj4gKyAgWGVuSW9QdmhEeGUuYwo+ICsK PiArW0xpYnJhcnlDbGFzc2VzXQo+ICsgIE1lbW9yeUFsbG9jYXRpb25MaWIKPiArICBQY2RMaWIK PiArICBVZWZpRHJpdmVyRW50cnlQb2ludAo+ICsgIFhlbklvTW1pb0xpYgo+ICsgIFhlblBsYXRm b3JtTGliCj4gKwo+ICtbRml4ZWRQY2RdCj4gKyAgZ1VlZmlPdm1mUGtnVG9rZW5TcGFjZUd1aWQu UGNkWGVuR3JhbnRGcmFtZXMKPiArCj4gK1tEZXBleF0KPiArICBUUlVFCj4gZGlmZiAtLWdpdCBh L092bWZQa2cvWGVuSW9QdmhEeGUvWGVuSW9QdmhEeGUuYyBiL092bWZQa2cvWGVuSW9QdmhEeGUv WGVuSW9QdmhEeGUuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4u OTI2NGE4NWRmMQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9Pdm1mUGtnL1hlbklvUHZoRHhlL1hl bklvUHZoRHhlLmMKPiBAQCAtMCwwICsxLDU0IEBACj4gKy8qKiBAZmlsZQo+ICsKPiArICBEcml2 ZXIgZm9yIHRoZSBYZW5JbyBwcm90b2NvbAo+ICsKPiArICBUaGlzIGRyaXZlciBzaW1wbHkgYWxs b2NhdGUgc3BhY2UgZm9yIHRoZSBncmFudCB0YWJsZXMuCj4gKwo+ICsgIENvcHlyaWdodCAoYykg MjAxOSwgQ2l0cml4IFN5c3RlbXMsIEluYy4KPiArCj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKPiArCj4gKyoqLwo+ICsKPiArI2luY2x1ZGUgPExpYnJh cnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPgo+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4K PiArI2luY2x1ZGUgPExpYnJhcnkvWGVuSW9NbWlvTGliLmg+Cj4gKyNpbmNsdWRlIDxMaWJyYXJ5 L1hlblBsYXRmb3JtTGliLmg+Cj4gKwo+ICtFRklfU1RBVFVTCj4gK0VGSUFQSQo+ICtJbml0aWFs aXplWGVuSW9QdmhEeGUgKAo+ICsgIElOIEVGSV9IQU5ETEUgICAgICAgSW1hZ2VIYW5kbGUsCj4g KyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUKPiArICApCj4gK3sKPiArICBWT0lE ICAgICAgICAgICpBbGxvY2F0aW9uOwo+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOwo+ICsgIEVG SV9IQU5ETEUgICAgWGVuSW9IYW5kbGU7Cj4gKwo+ICsgIEFsbG9jYXRpb24gPSBOVUxMOwo+ICsg IFhlbklvSGFuZGxlID0gTlVMTDsKPiArCj4gKyAgaWYgKCFYZW5QdmhEZXRlY3RlZCAoKSkgewo+ ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsKPiArICB9Cj4gKwo+ICsgIEFsbG9jYXRpb24g PSBBbGxvY2F0ZVJlc2VydmVkUGFnZXMgKEZpeGVkUGNkR2V0MzIgKFBjZFhlbkdyYW50RnJhbWVz KSk7Cj4gKyAgaWYgKEFsbG9jYXRpb24gPT0gTlVMTCkgewo+ICsgICAgU3RhdHVzID0gRUZJX09V VF9PRl9SRVNPVVJDRVM7Cj4gKyAgICBnb3RvIEVycm9yOwo+ICsgIH0KPiArCj4gKyAgU3RhdHVz ID0gWGVuSW9NbWlvSW5zdGFsbCAoJlhlbklvSGFuZGxlLCAoVUlOVE4pIEFsbG9jYXRpb24pOwo+ ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsKPiArICAgIGdvdG8gRXJyb3I7Cj4gKyAgfQo+ ICsKPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7Cj4gKwo+ICtFcnJvcjoKPiArICBpZiAoQWxsb2Nh dGlvbiAhPSBOVUxMKSB7Cj4gKyAgICBGcmVlUGFnZXMgKEFsbG9jYXRpb24sIEZpeGVkUGNkR2V0 MzIgKFBjZFhlbkdyYW50RnJhbWVzKSk7Cj4gKyAgfQo+ICsgIHJldHVybiBTdGF0dXM7Cj4gK30K PiBkaWZmIC0tZ2l0IGEvTWFpbnRhaW5lcnMudHh0IGIvTWFpbnRhaW5lcnMudHh0Cj4gaW5kZXgg NzhlOWY4ODlhYi4uNzlkZWZkMTNiZiAxMDA2NDQKPiAtLS0gYS9NYWludGFpbmVycy50eHQKPiAr KysgYi9NYWludGFpbmVycy50eHQKPiBAQCAtMzgyLDYgKzM4Miw3IEBAIEY6IE92bWZQa2cvUGxh dGZvcm1QZWkvWGVuLioKPiAgRjogT3ZtZlBrZy9TbWJpb3NQbGF0Zm9ybUR4ZS8qWGVuLmMKPiAg RjogT3ZtZlBrZy9YZW5CdXNEeGUvCj4gIEY6IE92bWZQa2cvWGVuSW9QY2lEeGUvCj4gK0Y6IE92 bWZQa2cvWGVuSW9QdmhEeGUvCj4gIEY6IE92bWZQa2cvWGVuUGxhdGZvcm1QZWkvCj4gIEY6IE92 bWZQa2cvWGVuUHZCbGtEeGUvCj4gIEY6IE92bWZQa2cvWGVuUmVzZXRWZWN0b3IvCj4gCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==