From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: Re: [RFC v4]Proposal to allow setting up shared memory areas between VMs from xl config file Date: Tue, 1 Aug 2017 23:58:48 +0800 Message-ID: References: <20170731211538.GC12347@toto> <20170731215518.GD12347@toto> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dcZZL-0007ku-Bw for xen-devel@lists.xenproject.org; Tue, 01 Aug 2017 15:58:51 +0000 Received: by mail-lf0-f68.google.com with SMTP id o85so1868180lff.1 for ; Tue, 01 Aug 2017 08:58:49 -0700 (PDT) In-Reply-To: <20170731215518.GD12347@toto> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Edgar E. Iglesias" Cc: Stefano Stabellini , Wei Liu , Ian Jackson , Julien Grall , edgari@xilinx.com, xen-devel@lists.xenproject.org, Jarvis Roach List-Id: xen-devel@lists.xenproject.org SGkgRWRnYXIsCgpUaGFuayB5b3UgZm9yIGJlaW5nIGludGVyZXN0ZWQgaW4gdGhpcyBwcm9qZWN0 LgoKMjAxNy0wOC0wMSA1OjU1IEdNVCswODowMCBFZGdhciBFLiBJZ2xlc2lhcyA8ZWRnYXIuaWds ZXNpYXNAeGlsaW54LmNvbT46Cj4gT24gTW9uLCBKdWwgMzEsIDIwMTcgYXQgMDI6MzA6NDdQTSAt MDcwMCwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+PiBPbiBNb24sIDMxIEp1bCAyMDE3LCBF ZGdhciBFLiBJZ2xlc2lhcyB3cm90ZToKPj4gPiBPbiBGcmksIEp1bCAyOCwgMjAxNyBhdCAwOTow MzoxNVBNICswODAwLCBaaG9uZ3plIExpdSB3cm90ZToKPj4gPiA+ID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4gPiA+IDEuIE1vdGl2YXRpb24g YW5kIERlc2NyaXB0aW9uCj4+ID4KPj4gPiBIaSwKPj4gPgo+PiA+IEkgdGhpbmsgdGhpcyBsb29r cyBxdWl0ZSB1c2VmdWwuIEkgaGF2ZSBhIGZldyBjb21tZW50cyBpbmxpbmUuCj4+Cj4+IEhpIEVk Z2FyLCB0aGFua3MgZm9yIGdpdmluZyBpdCBhIGxvb2shCj4+Cj4+Cj4+ID4gPiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+ID4gPiBWaXJ0dWFs IG1hY2hpbmVzIHVzZSBncmFudCB0YWJsZSBoeXBlcmNhbGxzIHRvIHNldHVwIGEgc2hhcmUgcGFn ZSBmb3IKPj4gPiA+IGludGVyLVZNcyBjb21tdW5pY2F0aW9ucy4gVGhlc2UgaHlwZXJjYWxscyBh cmUgdXNlZCBieSBhbGwgUFYKPj4gPiA+IHByb3RvY29scyB0b2RheS4gSG93ZXZlciwgdmVyeSBz aW1wbGUgZ3Vlc3RzLCBzdWNoIGFzIGJhcmVtZXRhbAo+PiA+ID4gYXBwbGljYXRpb25zLCBtaWdo dCBub3QgaGF2ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgdG8gaGFuZGxlIHRoZSBncmFudCB0YWJsZS4K Pj4gPiA+IFRoaXMgcHJvamVjdCBpcyBhYm91dCBzZXR0aW5nIHVwIHNldmVyYWwgc2hhcmVkIG1l bW9yeSBhcmVhcyBmb3IgaW50ZXItVk1zCj4+ID4gPiBjb21tdW5pY2F0aW9ucyBkaXJlY3RseSBm cm9tIHRoZSBWTSBjb25maWcgZmlsZS4KPj4gPiA+IFNvIHRoYXQgdGhlIGd1ZXN0IGtlcm5lbCBk b2Vzbid0IGhhdmUgdG8gaGF2ZSBncmFudCB0YWJsZSBzdXBwb3J0IChpbiB0aGUKPj4gPiA+IGVt YmVkZGVkIHNwYWNlLCB0aGlzIGlzIG5vdCB1bnVzdWFsKSB0byBiZSBhYmxlIHRvIGNvbW11bmlj YXRlIHdpdGgKPj4gPiA+IG90aGVyIGd1ZXN0cy4KPj4gPiA+Cj4+ID4gPiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+ID4gPiAyLiBJbXBsZW1l bnRhdGlvbiBQbGFuOgo+PiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQo+PiA+ID4KPj4gPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Cj4+ID4gPiAyLjEgSW50cm9kdWNlIGEgbmV3IFZNIGNvbmZpZyBvcHRpb24g aW4geGw6Cj4+ID4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiA+ ID4KPj4gPiA+IDIuMS4xIERlc2lnbiBHb2Fscwo+PiA+ID4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Cj4+ID4gPgo+PiA+ID4gVGhlIHNoYXJlZCBhcmVhcyBzaG91bGQgYmUgc2hhcmVhYmxl IGFtb25nIHNldmVyYWwgKD49MikgVk1zLCBzbyBldmVyeSBzaGFyZWQKPj4gPiA+IHBoeXNpY2Fs IG1lbW9yeSBhcmVhIGlzIGFzc2lnbmVkIHRvIGEgc2V0IG9mIFZNcy4gVGhlcmVmb3JlLCBhIOKA nHRva2Vu4oCdIG9yCj4+ID4gPiDigJxpZGVudGlmaWVy4oCdIHNob3VsZCBiZSB1c2VkIGhlcmUg dG8gdW5pcXVlbHkgaWRlbnRpZnkgYSBiYWNraW5nIG1lbW9yeSBhcmVhLgo+PiA+ID4gQSBzdHJp bmcgbm8gbG9uZ2VyIHRoYW4gMTI4IGJ5dGVzIGlzIHVzZWQgaGVyZSB0byBzZXJ2ZSB0aGUgcHVy cG9zZS4KPj4gPiA+Cj4+ID4gPiBUaGUgYmFja2luZyBhcmVhIHdvdWxkIGJlIHRha2VuIGZyb20g b25lIGRvbWFpbiwgd2hpY2ggd2Ugd2lsbCByZWdhcmQKPj4gPiA+IGFzIHRoZSAibWFzdGVyIGRv bWFpbiIsIGFuZCB0aGlzIGRvbWFpbiBzaG91bGQgYmUgY3JlYXRlZCBwcmlvciB0byBhbnkKPj4g PiA+IG90aGVyICJzbGF2ZSBkb21haW4icy4gQWdhaW4sIHdlIGhhdmUgdG8gdXNlIHNvbWUga2lu ZCBvZiB0YWcgdG8gdGVsbCB3aG8KPj4gPiA+IGlzIHRoZSAibWFzdGVyIGRvbWFpbiIuCj4+ID4g Pgo+PiA+ID4gQW5kIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgdGhlIHBlcm1pc3Npb25zIGFuZCBj YWNoZWFiaWxpdHkgKGFuZCBzaGFyZWFiaWxpdHkKPj4gPiA+IGZvciBBUk0gZ3Vlc3Qncykgb2Yg dGhlIHBhZ2VzIHRvIGJlIHNoYXJlZCBzaG91bGQgYWxzbyBiZSBnaXZlbiB0byB0aGUgdXNlci4K Pj4gPiA+Cj4+ID4gPiAyLjIuMiBTeW50YXggYW5kIEJlaGF2aW9yCj4+ID4gPiB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgo+PiA+ID4gVGhlIGZvbGxvd2luZyBleGFtcGxlIGlsbHVzdHJh dGVzIHRoZSBzeW50YXggb2YgdGhlIHByb3Bvc2VkIGNvbmZpZyBlbnRyeQo+PiA+ID4gKHN1cHBv c2UgdGhhdCB3ZSdyZSBvbiB4ODYpOgo+PiA+ID4KPj4gPiA+IEluIHhsIGNvbmZpZyBmaWxlIG9m IHZtMToKPj4gPiA+ICAgc3RhdGljX3NobSA9IFsgJ2lkPUlEMSwgYmVnaW49MHgxMDAwMDAsIGVu ZD0weDIwMDAwMCwgcm9sZT1tYXN0ZXIsCj4+ID4gPiAgICAgICAgICAgICAgICAgICBjYWNoZV9w b2xpY3k9eDg2X25vcm1hbCwgcHJvdD1yMicsCj4+ID4gPgo+PiA+ID4gICAgICAgICAgICAgICAg ICAnaWQ9SUQyLCBiZWdpbj0weDMwMDAwMCwgZW5kPTB4NDAwMDAwLCByb2xlPW1hc3RlcicgXQo+ PiA+ID4KPj4gPiA+IEluIHhsIGNvbmZpZyBmaWxlIG9mIHZtMjoKPj4gPiA+ICAgc3RhdGljX3No bSA9IFsgJ2lkPUlEMSwgb2Zmc2V0ID0gMCwgYmVnaW49MHg1MDAwMDAsIGVuZD0weDYwMDAwMCwK Pj4gPiA+IHJvbGU9c2xhdmUsIHByb3Q9cm8nIF0KPj4gPiA+Cj4+ID4gPiBJbiB4bCBjb25maWcg ZmlsZSBvZiB2bTM6Cj4+ID4gPiAgIHN0YXRpY19zaG0gPSBbICdpZD1JRDIsIG9mZnNldCA9IDEw MDAwLCBiZWdpbj0weDY5MDAwMCwKPj4gPiA+IGVuZD0weDgwMDAwMCwgcm9sZT1zbGF2ZSwgcHJv dD1ybycgXQo+PiA+ID4KPj4gPiA+IHdoZXJlOgo+PiA+ID4gICBAaWQgICAgICAgICAgICAgICAg ICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGJhY2tpbmcgbWVtb3J5IGFyZWEuCj4+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICBDYW4gYmUgYW55IHN0cmluZyB0aGF0IG1hdGNoZXMgdGhlIHJl Z2V4cCAiW14gXHRcbixdKyIKPj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBubyBs b25nZXIgdGhhbiAxMjggY2hhcmFjdGVycwo+PiA+ID4KPj4gPiA+ICAgQG9mZnNldCAgICAgICAg ICAgICAgIENhbiBvbmx5IGFwcGVhciB3aGVuIEByb2xlID0gc2xhdmUuIFRoZSBzaGFyaW5nIHdp bGwKPj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmlu ZyBvZiBiYWNraW5nIG1lbW9yeSBhcmVhIHBsdXMKPj4gPiA+IHRoaXMgb2Zmc2V0LiBJZiBub3Qg c2V0LCBpdCBkZWZhdWx0cyB0byB6ZXJvLgo+PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg Q2FuIGJlIGRlY2ltYWxzIG9yIGhleGFkZWNpbWFscyBvZiB0aGUgZm9ybSAiMHgyMDAwMCIsCj4+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2hvdWxkIGJlIHRoZSBtdWx0aXBsZSBv ZiB0aGUgaHlwZXJ2aXNvciBwYWdlCj4+ID4gPiBncmFudWxhcml0eSAoY3VycmVudGx5IDRLIG9u IGJvdGggQVJNIGFuZCB4ODYpLgo+PiA+ID4KPj4gPiA+ICAgQGJlZ2luL2VuZCAgICAgICAgICAg IFRoZSBib3VuZGFyaWVzIG9mIHRoZSBzaGFyZWQgbWVtb3J5IGFyZWEuIFRoZSBmb3JtYXQKPj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVtZW50cyBhcmUgdGhlIHNhbWUgd2l0 aCBAb2Zmc2V0Lgo+PiA+Cj4+ID4gSSdtIGFzc3VtaW5nIHRoaXMgaXMgYWxsIHNwZWNpZmllZCBp biBHRk4gYW5kIGFsc28gbm90IE1GTiBjb250aWdvdXM/Cj4+ID4gV291bGQgaXQgYmUgcG9zc2li bGUgdG8gYWxsb3cgdGhlIHNwZWNpZmljYXRpb24gb2YgTUZOIG1hcHBpbmdzCj4+ID4gdGhhdCBh cmUgY29udGlnb3VzPwo+Pgo+PiBUaGF0IGNvdWxkIGJlIGRvbmUgd2l0aCB0aGUgaW9tZW09IHBh cmFtZXRlcj8KPgo+IFRoZSBtaXNzaW5nIHBhcnQgZnJvbSB0aGUgaW9tZW0gcGFyYW1hdGVyIGlz IHRoZSBhdHRyaWJ1dGVzLCBjYWNoZWFiaWxpdHksIHNoYXJlZCBldGMuCj4gQnV0IHdlIGNvdWxk IHBlcmhhcHMgYWRkIHRoYXQgdG8gaW9tZW0gc29tZWhvdy4KPgo+Cj4+Cj4+Cj4+ID4gVGhpcyB3 b3VsZCBiZSB1c2VmdWwgdG8gbWFwIHNwZWNpZmljIGtpbmRzIG9mIG1lbW9yeSAoZS5nIE9uIENo aXAgUkFNcykuCj4+ID4KPj4gPiBPdGhlciB1c2UtY2FzZXMgYXJlIHdoZW4gdGhlcmUgYXJlIG5v dCBvbmx5IGd1ZXN0cyBzaGFyaW5nCj4+ID4gdGhlIHBhZ2VzIGJ1dCBhbHNvIGRldmljZXMuIElu IHNvbWUgY2FzZXMgdGhlc2UgZGV2cyBtYXkgYmUgbG9ja2VkIGluCj4+ID4gd2l0aCBsb3ctbGF0 ZW5jeSBhY2Nlc3MgdG8gc3BlY2lmaWMgbWVtb3J5IHJlZ2lvbnMuCj4+ID4KPj4gPiBQZXJoYXBz IHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmc/Cj4+ID4gYWRkcj1nZm5APG1mbj4KPj4gPiBz aXplPTB4MTAwMAo+PiA+Cj4+ID4gd2l0aCBtZm4gYmVpbmcgb3B0aW9uYWw/Cj4+Cj4+IEkgY2Fu IHNlZSB0aGF0IGl0IG1pZ2h0IGJlIHVzZWZ1bCwgYnV0IHdlIGFyZSB0cnlpbmcgdG8ga2VlcCB0 aGUgc2NvcGUKPj4gc21hbGwgdG8gYmUgYWJsZSB0byBjb21wbGV0ZSB0aGUgcHJvamVjdCB3aXRo aW4gdGhlIGxpbWl0ZWQgdGltZWZyYW1lCj4+IGFsbG93ZWQgYnkgR1NvQy4gV2Ugb25seSBoYXZl IG9uZSBtb250aCBsZWZ0ISBXZSByaXNrIG5vdCBnZXR0aW5nIHRoZQo+PiBmZWF0dXJlIGNvbXBs ZXRlZC4gIE9uY2UgdGhpcyBzZXQgb2YgZmVhdHVyZXMgaXMgZG9uZSBhbmQgY29tbWl0dGVkLCB3 ZQo+PiBjYW4gZXhwYW5kIG9uIGl0LgoKWWVzLCB0aGlzIGlzIGp1c3QgZ29pbmcgdG8gYmUgdGhl IHZlcnkgaW5pdGlhbCB3b3JraW5nIHZlcnNpb24uIEFuZApJJ20gd2lsbGluZyB0bwpoZWxwIHRv IGltcGxlbWVudCB0aGUgbWlzc2luZyBmZWF0dXJlcyBhbmQgbWFpbnRhaW4gaXQgaW4gdGhlIGxv bmcgcnVuCmFmdGVyIEdTb0MuCgo+Pgo+PiBGb3IgdGhlIHNha2Ugb2YgdGhpcyBkb2N1bWVudCwg d2Ugc2hvdWxkIG1ha2UgY2xlYXIgdGhhdCBhZGRyZXNzZXMgYXJlIGluCj4+IHRoZSBnZm4gc3Bh Y2UgYW5kIG1lbW9yeSBpcyBhbGxvY2F0ZWQgdG8gdGhlIG1hc3RlciBkb21haW4uCj4KPiBPSywg SSB1bmRlcnN0YW5kLiA6LSkKPiBZZXMsIGRvY3VtZW50aW5nIGl0IHdvdWxkIGJlIGdvb2QuCgpX aWxsIGFkZCB0aGlzIGludG8gdGhlIG5leHQgdmVyc2lvbiBvZiB0aGlzIHByb3Bvc2FsLgoKPgo+ Cj4+Cj4+Cj4+ID4gPiAgIEByb2xlICAgICAgICAgICAgICAgICBDYW4gb25seSBiZSAnbWFzdGVy JyBvciAnc2xhdmUnLCBpdCBkZWZhdWx0cyB0byAnc2xhdmUnLgo+PiA+ID4KPj4gPiA+ICAgQHBy b3QgICAgICAgICAgICAgICAgIFdoZW4gQHJvbGUgPSBtYXN0ZXIsIHRoaXMgbWVhbnMgdGhlIGxh cmdlc3Qgc2V0IG9mCj4+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZS0yIHBlcm1p c3Npb24gZmxhZ3MgdGhhdCBjYW4gYmUgZ3JhbnRlZCB0byB0aGUKPj4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIHNsYXZlIGRvbWFpbnMuCj4+ID4gPiBXaGVuIEByb2xlID0gc2xhdmUsIHRo aXMgbWVhbnMgdGhlIHN0YWdlLTIgcGVybWlzc2lvbgo+PiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgZmxhZ3Mgb2YgdGhlIHNoYXJlZCBtZW1vcnkgYXJlYS4KPj4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIEN1cnJlbnRseSBvbmx5ICdydycgaXMgc3VwcG9ydGVkLiBJZiBub3Qgc2V0 LiBpdAo+PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gJ3J3Jy4KPj4g PiA+Cj4+ID4gPiAgIEBjYWNoZV9wb2xpY3kgICAgICAgICBUaGUgc3RhZ2UtMiBjYWNoZWFiaWxp dHkvc2hhcmVhYmlsaXR5IGF0dHJpYnV0ZXMgb2YgdGhlCj4+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBzaGFyZWQgbWVtb3J5IGFyZWEuIEN1cnJlbnRseSwgb25seSB0d28gcG9saWNpZXMg YXJlCj4+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQ6Cj4+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICogQVJNX25vcm1hbDogT25seSBhcHBsaWNhYmxlIHRvIEFS TSBndWVzdHMuIFRoaXMKPj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3b3VsZCBtZWFuIElubmVyIGFuZCBPdXRlciBXcml0ZS1CYWNrCj4+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FjaGVhYmxlLCBhbmQgSW5uZXIgU2hh cmVhYmxlLgo+PiA+Cj4+ID4KPj4gPiBJcyB0aGVyZSBhIHJlYXNvbiBub3QgdG8gc2V0IHRoaXMg dG8gT3V0ZXIgU2hhcmVhYmxlPwo+PiA+IEFnYWluLCBtYWlubHkgdXNlZnVsIHdoZW4gdGhlc2Ug cGFnZXMgZ2V0IHNoYXJlZCB3aXRoIGRldnMgYXMgd2VsbC4KPj4gPgo+PiA+IFRoZSBndWVzdCBj YW4gYWx3YXlzIGxvd2VyIGl0IHRvIElubmVyIFNoYXJlYWJsZSB2aWEgUzEgdGFibGVzIGlmIG5l ZWRlZC4KPj4KPj4gSSBkb24ndCB0aGluayB3ZSBjYW4gc3VwcG9ydCBtZW1vcnkgc2hhcmluZyB3 aXRoIGRldmljZXMgaW4gdGhpcyB2ZXJzaW9uCj4+IG9mIHRoZSBkb2N1bWVudCAoc2VlIGFib3Zl IGFib3V0IEdTb0MgdGltZWxpbmVzKS4gTm9ybWFsIG1lbW9yeSBpcyBpbm5lcgo+PiBzaGFyZWFi bGUgaW4gWGVuIHRvZGF5LCBpdCBtYWtlcyBzZW5zZSB0byBkZWZhdWx0IHRvIHRoYXQuCj4KPiBJ IHRob3VnaHQgd2UgbWFwcGVkIFJBTSBhcyBPdXRlciBzaGFyZWFibGUgdG8gZ3Vlc3RzIGJ1dCB5 b3Ugc2VlbSB0byBiZSByaWdodC4KPiBJIHRoaW5rIHdlIHNob3VsZCBiZSBtYXBwaW5nIGFsbCBS QU0gYXMgT3V0ZXIgU2hhcmVhYmxlIGFuZCB0aGVuIGxldCB0aGUKPiBndWVzdCBkZWNpZGUgd2hh dCBpcyBJbm5lciBhbmQgd2hhdCBpcyBPdXRlciB2aWEgaXQncyBTMSB0YWJsZXMuCj4gUmlnaHQg bm93IGl0IHdvdWxkIGJlIGltcG9zc2libGUgdG8gYmUgQ29oZXJlbnQgd2l0aCBhIERNQSBkZXZp Y2Ugb3V0c2lkZQo+IG9mIHRoZSBJbm5lciBkb21haW4uLi4KPgo+IFBlcmhhcHMgd2Ugc2hvdWxk IGZpeCB0aGF0IGFuZCB0aGVuIEFSTV9ub3JtYWwgd291bGQgYnkgaXRzZWxmIGJlY29tZSBPdXRl ci4KPiBJZiB0aGVyZSdzIGFncmVlbWVudCBJIGNhbiB0ZXN0IGl0IGFuZCBzZW5kIGEgcGF0Y2gu CgpUaGlzIHNvdW5kcyByZWFzb25hYmxlLiBJZiB5b3Ugc2VuZCB0aGUgcGF0Y2gsIGNvdWxkIHlv dSBwbGVhc2UgYWRkIG1lCnRvIHRoZSBDYyBsaXN0PwpzbyB0aGF0IEkgY2FuIHNlZSB3aGF0J3Mg Z29pbmcgb24gYW5kIGNoYW5nZSB0aGUgZG9jdW1lbnQgYWNjb3JkaW5nbHkuCgpDaGVlcnMsCgpa aG9uZ3plIExpdQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==