From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [RFC v4]Proposal to allow setting up shared memory areas between VMs from xl config file Date: Mon, 31 Jul 2017 23:55:18 +0200 Message-ID: <20170731215518.GD12347@toto> References: <20170731211538.GC12347@toto> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dcIf3-0007ci-2e for xen-devel@lists.xenproject.org; Mon, 31 Jul 2017 21:55:37 +0000 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: Wei Liu , Zhongze Liu , Ian Jackson , Julien Grall , edgari@xilinx.com, xen-devel@lists.xenproject.org, Jarvis Roach List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBKdWwgMzEsIDIwMTcgYXQgMDI6MzA6NDdQTSAtMDcwMCwgU3RlZmFubyBTdGFiZWxs aW5pIHdyb3RlOgo+IE9uIE1vbiwgMzEgSnVsIDIwMTcsIEVkZ2FyIEUuIElnbGVzaWFzIHdyb3Rl Ogo+ID4gT24gRnJpLCBKdWwgMjgsIDIwMTcgYXQgMDk6MDM6MTVQTSArMDgwMCwgWmhvbmd6ZSBM aXUgd3JvdGU6Cj4gPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KPiA+ID4gMS4gTW90aXZhdGlvbiBhbmQgRGVzY3JpcHRpb24KPiA+IAo+ID4g SGksCj4gPiAKPiA+IEkgdGhpbmsgdGhpcyBsb29rcyBxdWl0ZSB1c2VmdWwuIEkgaGF2ZSBhIGZl dyBjb21tZW50cyBpbmxpbmUuCj4gCj4gSGkgRWRnYXIsIHRoYW5rcyBmb3IgZ2l2aW5nIGl0IGEg bG9vayEKPiAKPiAKPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQo+ID4gPiBWaXJ0dWFsIG1hY2hpbmVzIHVzZSBncmFudCB0YWJsZSBoeXBl cmNhbGxzIHRvIHNldHVwIGEgc2hhcmUgcGFnZSBmb3IKPiA+ID4gaW50ZXItVk1zIGNvbW11bmlj YXRpb25zLiBUaGVzZSBoeXBlcmNhbGxzIGFyZSB1c2VkIGJ5IGFsbCBQVgo+ID4gPiBwcm90b2Nv bHMgdG9kYXkuIEhvd2V2ZXIsIHZlcnkgc2ltcGxlIGd1ZXN0cywgc3VjaCBhcyBiYXJlbWV0YWwK PiA+ID4gYXBwbGljYXRpb25zLCBtaWdodCBub3QgaGF2ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgdG8g aGFuZGxlIHRoZSBncmFudCB0YWJsZS4KPiA+ID4gVGhpcyBwcm9qZWN0IGlzIGFib3V0IHNldHRp bmcgdXAgc2V2ZXJhbCBzaGFyZWQgbWVtb3J5IGFyZWFzIGZvciBpbnRlci1WTXMKPiA+ID4gY29t bXVuaWNhdGlvbnMgZGlyZWN0bHkgZnJvbSB0aGUgVk0gY29uZmlnIGZpbGUuCj4gPiA+IFNvIHRo YXQgdGhlIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGhhdmUgdG8gaGF2ZSBncmFudCB0YWJsZSBzdXBw b3J0IChpbiB0aGUKPiA+ID4gZW1iZWRkZWQgc3BhY2UsIHRoaXMgaXMgbm90IHVudXN1YWwpIHRv IGJlIGFibGUgdG8gY29tbXVuaWNhdGUgd2l0aAo+ID4gPiBvdGhlciBndWVzdHMuCj4gPiA+IAo+ ID4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gPiA+IDIuIEltcGxlbWVudGF0aW9uIFBsYW46Cj4gPiA+ID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gCj4gPiA+ID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiA+IDIuMSBJbnRyb2R1Y2UgYSBuZXcgVk0g Y29uZmlnIG9wdGlvbiBpbiB4bDoKPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KPiA+ID4gCj4gPiA+IDIuMS4xIERlc2lnbiBHb2Fscwo+ID4gPiB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KPiA+ID4gCj4gPiA+IFRoZSBzaGFyZWQgYXJlYXMgc2hvdWxkIGJl IHNoYXJlYWJsZSBhbW9uZyBzZXZlcmFsICg+PTIpIFZNcywgc28gZXZlcnkgc2hhcmVkCj4gPiA+ IHBoeXNpY2FsIG1lbW9yeSBhcmVhIGlzIGFzc2lnbmVkIHRvIGEgc2V0IG9mIFZNcy4gVGhlcmVm b3JlLCBhIOKAnHRva2Vu4oCdIG9yCj4gPiA+IOKAnGlkZW50aWZpZXLigJ0gc2hvdWxkIGJlIHVz ZWQgaGVyZSB0byB1bmlxdWVseSBpZGVudGlmeSBhIGJhY2tpbmcgbWVtb3J5IGFyZWEuCj4gPiA+ IEEgc3RyaW5nIG5vIGxvbmdlciB0aGFuIDEyOCBieXRlcyBpcyB1c2VkIGhlcmUgdG8gc2VydmUg dGhlIHB1cnBvc2UuCj4gPiA+IAo+ID4gPiBUaGUgYmFja2luZyBhcmVhIHdvdWxkIGJlIHRha2Vu IGZyb20gb25lIGRvbWFpbiwgd2hpY2ggd2Ugd2lsbCByZWdhcmQKPiA+ID4gYXMgdGhlICJtYXN0 ZXIgZG9tYWluIiwgYW5kIHRoaXMgZG9tYWluIHNob3VsZCBiZSBjcmVhdGVkIHByaW9yIHRvIGFu eQo+ID4gPiBvdGhlciAic2xhdmUgZG9tYWluInMuIEFnYWluLCB3ZSBoYXZlIHRvIHVzZSBzb21l IGtpbmQgb2YgdGFnIHRvIHRlbGwgd2hvCj4gPiA+IGlzIHRoZSAibWFzdGVyIGRvbWFpbiIuCj4g PiA+IAo+ID4gPiBBbmQgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB0aGUgcGVybWlzc2lvbnMgYW5k IGNhY2hlYWJpbGl0eSAoYW5kIHNoYXJlYWJpbGl0eQo+ID4gPiBmb3IgQVJNIGd1ZXN0J3MpIG9m IHRoZSBwYWdlcyB0byBiZSBzaGFyZWQgc2hvdWxkIGFsc28gYmUgZ2l2ZW4gdG8gdGhlIHVzZXIu Cj4gPiA+IAo+ID4gPiAyLjIuMiBTeW50YXggYW5kIEJlaGF2aW9yCj4gPiA+IH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+Cj4gPiA+IFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpbGx1c3RyYXRl cyB0aGUgc3ludGF4IG9mIHRoZSBwcm9wb3NlZCBjb25maWcgZW50cnkKPiA+ID4gKHN1cHBvc2Ug dGhhdCB3ZSdyZSBvbiB4ODYpOgo+ID4gPiAKPiA+ID4gSW4geGwgY29uZmlnIGZpbGUgb2Ygdm0x Ogo+ID4gPiAgIHN0YXRpY19zaG0gPSBbICdpZD1JRDEsIGJlZ2luPTB4MTAwMDAwLCBlbmQ9MHgy MDAwMDAsIHJvbGU9bWFzdGVyLAo+ID4gPiAgICAgICAgICAgICAgICAgICBjYWNoZV9wb2xpY3k9 eDg2X25vcm1hbCwgcHJvdD1yMicsCj4gPiA+IAo+ID4gPiAgICAgICAgICAgICAgICAgICdpZD1J RDIsIGJlZ2luPTB4MzAwMDAwLCBlbmQ9MHg0MDAwMDAsIHJvbGU9bWFzdGVyJyBdCj4gPiA+IAo+ ID4gPiBJbiB4bCBjb25maWcgZmlsZSBvZiB2bTI6Cj4gPiA+ICAgc3RhdGljX3NobSA9IFsgJ2lk PUlEMSwgb2Zmc2V0ID0gMCwgYmVnaW49MHg1MDAwMDAsIGVuZD0weDYwMDAwMCwKPiA+ID4gcm9s ZT1zbGF2ZSwgcHJvdD1ybycgXQo+ID4gPiAKPiA+ID4gSW4geGwgY29uZmlnIGZpbGUgb2Ygdm0z Ogo+ID4gPiAgIHN0YXRpY19zaG0gPSBbICdpZD1JRDIsIG9mZnNldCA9IDEwMDAwLCBiZWdpbj0w eDY5MDAwMCwKPiA+ID4gZW5kPTB4ODAwMDAwLCByb2xlPXNsYXZlLCBwcm90PXJvJyBdCj4gPiA+ IAo+ID4gPiB3aGVyZToKPiA+ID4gICBAaWQgICAgICAgICAgICAgICAgICAgVGhlIGlkZW50aWZp ZXIgb2YgdGhlIGJhY2tpbmcgbWVtb3J5IGFyZWEuCj4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgIENhbiBiZSBhbnkgc3RyaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcmVnZXhwICJbXiBcdFxuLF0r Igo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbm8gbG9uZ2VyIHRoYW4gMTI4IGNo YXJhY3RlcnMKPiA+ID4gCj4gPiA+ICAgQG9mZnNldCAgICAgICAgICAgICAgIENhbiBvbmx5IGFw cGVhciB3aGVuIEByb2xlID0gc2xhdmUuIFRoZSBzaGFyaW5nIHdpbGwKPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGJhY2tpbmcgbWVtb3J5 IGFyZWEgcGx1cwo+ID4gPiB0aGlzIG9mZnNldC4gSWYgbm90IHNldCwgaXQgZGVmYXVsdHMgdG8g emVyby4KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgQ2FuIGJlIGRlY2ltYWxzIG9yIGhl eGFkZWNpbWFscyBvZiB0aGUgZm9ybSAiMHgyMDAwMCIsCj4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIGFuZCBzaG91bGQgYmUgdGhlIG11bHRpcGxlIG9mIHRoZSBoeXBlcnZpc29yIHBhZ2UK PiA+ID4gZ3JhbnVsYXJpdHkgKGN1cnJlbnRseSA0SyBvbiBib3RoIEFSTSBhbmQgeDg2KS4KPiA+ ID4gCj4gPiA+ICAgQGJlZ2luL2VuZCAgICAgICAgICAgIFRoZSBib3VuZGFyaWVzIG9mIHRoZSBz aGFyZWQgbWVtb3J5IGFyZWEuIFRoZSBmb3JtYXQKPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgcmVxdWlyZW1lbnRzIGFyZSB0aGUgc2FtZSB3aXRoIEBvZmZzZXQuCj4gPiAKPiA+IEknbSBh c3N1bWluZyB0aGlzIGlzIGFsbCBzcGVjaWZpZWQgaW4gR0ZOIGFuZCBhbHNvIG5vdCBNRk4gY29u dGlnb3VzPwo+ID4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gYWxsb3cgdGhlIHNwZWNpZmljYXRp b24gb2YgTUZOIG1hcHBpbmdzCj4gPiB0aGF0IGFyZSBjb250aWdvdXM/Cj4gCj4gVGhhdCBjb3Vs ZCBiZSBkb25lIHdpdGggdGhlIGlvbWVtPSBwYXJhbWV0ZXI/CgpUaGUgbWlzc2luZyBwYXJ0IGZy b20gdGhlIGlvbWVtIHBhcmFtYXRlciBpcyB0aGUgYXR0cmlidXRlcywgY2FjaGVhYmlsaXR5LCBz aGFyZWQgZXRjLgpCdXQgd2UgY291bGQgcGVyaGFwcyBhZGQgdGhhdCB0byBpb21lbSBzb21laG93 LgoKCj4gCj4gCj4gPiBUaGlzIHdvdWxkIGJlIHVzZWZ1bCB0byBtYXAgc3BlY2lmaWMga2luZHMg b2YgbWVtb3J5IChlLmcgT24gQ2hpcCBSQU1zKS4KPiA+IAo+ID4gT3RoZXIgdXNlLWNhc2VzIGFy ZSB3aGVuIHRoZXJlIGFyZSBub3Qgb25seSBndWVzdHMgc2hhcmluZwo+ID4gdGhlIHBhZ2VzIGJ1 dCBhbHNvIGRldmljZXMuIEluIHNvbWUgY2FzZXMgdGhlc2UgZGV2cyBtYXkgYmUgbG9ja2VkIGlu Cj4gPiB3aXRoIGxvdy1sYXRlbmN5IGFjY2VzcyB0byBzcGVjaWZpYyBtZW1vcnkgcmVnaW9ucy4K PiA+IAo+ID4gUGVyaGFwcyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nPwo+ID4gYWRkcj1n Zm5APG1mbj4KPiA+IHNpemU9MHgxMDAwCj4gPiAKPiA+IHdpdGggbWZuIGJlaW5nIG9wdGlvbmFs Pwo+IAo+IEkgY2FuIHNlZSB0aGF0IGl0IG1pZ2h0IGJlIHVzZWZ1bCwgYnV0IHdlIGFyZSB0cnlp bmcgdG8ga2VlcCB0aGUgc2NvcGUKPiBzbWFsbCB0byBiZSBhYmxlIHRvIGNvbXBsZXRlIHRoZSBw cm9qZWN0IHdpdGhpbiB0aGUgbGltaXRlZCB0aW1lZnJhbWUKPiBhbGxvd2VkIGJ5IEdTb0MuIFdl IG9ubHkgaGF2ZSBvbmUgbW9udGggbGVmdCEgV2UgcmlzayBub3QgZ2V0dGluZyB0aGUKPiBmZWF0 dXJlIGNvbXBsZXRlZC4gIE9uY2UgdGhpcyBzZXQgb2YgZmVhdHVyZXMgaXMgZG9uZSBhbmQgY29t bWl0dGVkLCB3ZQo+IGNhbiBleHBhbmQgb24gaXQuCj4gCj4gRm9yIHRoZSBzYWtlIG9mIHRoaXMg ZG9jdW1lbnQsIHdlIHNob3VsZCBtYWtlIGNsZWFyIHRoYXQgYWRkcmVzc2VzIGFyZSBpbgo+IHRo ZSBnZm4gc3BhY2UgYW5kIG1lbW9yeSBpcyBhbGxvY2F0ZWQgdG8gdGhlIG1hc3RlciBkb21haW4u CgpPSywgSSB1bmRlcnN0YW5kLiA6LSkKWWVzLCBkb2N1bWVudGluZyBpdCB3b3VsZCBiZSBnb29k LgoKCj4gCj4gCj4gPiA+ICAgQHJvbGUgICAgICAgICAgICAgICAgIENhbiBvbmx5IGJlICdtYXN0 ZXInIG9yICdzbGF2ZScsIGl0IGRlZmF1bHRzIHRvICdzbGF2ZScuCj4gPiA+IAo+ID4gPiAgIEBw cm90ICAgICAgICAgICAgICAgICBXaGVuIEByb2xlID0gbWFzdGVyLCB0aGlzIG1lYW5zIHRoZSBs YXJnZXN0IHNldCBvZgo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFnZS0yIHBlcm1p c3Npb24gZmxhZ3MgdGhhdCBjYW4gYmUgZ3JhbnRlZCB0byB0aGUKPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgc2xhdmUgZG9tYWlucy4KPiA+ID4gV2hlbiBAcm9sZSA9IHNsYXZlLCB0aGlz IG1lYW5zIHRoZSBzdGFnZS0yIHBlcm1pc3Npb24KPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgZmxhZ3Mgb2YgdGhlIHNoYXJlZCBtZW1vcnkgYXJlYS4KPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgQ3VycmVudGx5IG9ubHkgJ3J3JyBpcyBzdXBwb3J0ZWQuIElmIG5vdCBzZXQuIGl0 Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvICdydycuCj4gPiA+IAo+ ID4gPiAgIEBjYWNoZV9wb2xpY3kgICAgICAgICBUaGUgc3RhZ2UtMiBjYWNoZWFiaWxpdHkvc2hh cmVhYmlsaXR5IGF0dHJpYnV0ZXMgb2YgdGhlCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IHNoYXJlZCBtZW1vcnkgYXJlYS4gQ3VycmVudGx5LCBvbmx5IHR3byBwb2xpY2llcyBhcmUKPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkOgo+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICogQVJNX25vcm1hbDogT25seSBhcHBsaWNhYmxlIHRvIEFSTSBndWVzdHMu IFRoaXMKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvdWxk IG1lYW4gSW5uZXIgYW5kIE91dGVyIFdyaXRlLUJhY2sKPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENhY2hlYWJsZSwgYW5kIElubmVyIFNoYXJlYWJsZS4KPiA+ IAo+ID4gCj4gPiBJcyB0aGVyZSBhIHJlYXNvbiBub3QgdG8gc2V0IHRoaXMgdG8gT3V0ZXIgU2hh cmVhYmxlPwo+ID4gQWdhaW4sIG1haW5seSB1c2VmdWwgd2hlbiB0aGVzZSBwYWdlcyBnZXQgc2hh cmVkIHdpdGggZGV2cyBhcyB3ZWxsLgo+ID4gCj4gPiBUaGUgZ3Vlc3QgY2FuIGFsd2F5cyBsb3dl ciBpdCB0byBJbm5lciBTaGFyZWFibGUgdmlhIFMxIHRhYmxlcyBpZiBuZWVkZWQuCj4gCj4gSSBk b24ndCB0aGluayB3ZSBjYW4gc3VwcG9ydCBtZW1vcnkgc2hhcmluZyB3aXRoIGRldmljZXMgaW4g dGhpcyB2ZXJzaW9uCj4gb2YgdGhlIGRvY3VtZW50IChzZWUgYWJvdmUgYWJvdXQgR1NvQyB0aW1l bGluZXMpLiBOb3JtYWwgbWVtb3J5IGlzIGlubmVyCj4gc2hhcmVhYmxlIGluIFhlbiB0b2RheSwg aXQgbWFrZXMgc2Vuc2UgdG8gZGVmYXVsdCB0byB0aGF0LgoKSSB0aG91Z2h0IHdlIG1hcHBlZCBS QU0gYXMgT3V0ZXIgc2hhcmVhYmxlIHRvIGd1ZXN0cyBidXQgeW91IHNlZW0gdG8gYmUgcmlnaHQu CkkgdGhpbmsgd2Ugc2hvdWxkIGJlIG1hcHBpbmcgYWxsIFJBTSBhcyBPdXRlciBTaGFyZWFibGUg YW5kIHRoZW4gbGV0IHRoZQpndWVzdCBkZWNpZGUgd2hhdCBpcyBJbm5lciBhbmQgd2hhdCBpcyBP dXRlciB2aWEgaXQncyBTMSB0YWJsZXMuClJpZ2h0IG5vdyBpdCB3b3VsZCBiZSBpbXBvc3NpYmxl IHRvIGJlIENvaGVyZW50IHdpdGggYSBETUEgZGV2aWNlIG91dHNpZGUKb2YgdGhlIElubmVyIGRv bWFpbi4uLgoKUGVyaGFwcyB3ZSBzaG91bGQgZml4IHRoYXQgYW5kIHRoZW4gQVJNX25vcm1hbCB3 b3VsZCBieSBpdHNlbGYgYmVjb21lIE91dGVyLgpJZiB0aGVyZSdzIGFncmVlbWVudCBJIGNhbiB0 ZXN0IGl0IGFuZCBzZW5kIGEgcGF0Y2guCgpCZXN0IHJlZ2FyZHMsCkVkZ2FyCgoKCj4gIAo+ICAK PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAqIHg4Nl9ub3JtYWw6IE9ubHkgYXBwbGlj YWJsZSB0byB4ODYgSFZNIGd1ZXN0cy4gVGhpcwo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd291bGQgbWVhbiBXcml0ZS1CYWNrIENhY2hlYWJsZS4KPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgSWYgbm90IHNldCwgaXQgZGVmYXVsdHMgdG8gdGhlICpf bm9ybWFsIHBvbGljeSBmb3IgdGhlCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvcnJl c3BvbmRpbmcgcGxhdGZvcm0uCj4gPiA+IAo+ID4gPiBOb3RlOgo+ID4gPiAgIFRoZSBzaXplcyBv ZiB0aGUgYXJlYXMgc3BlY2lmaWVkIGJ5IEBiZWdpbiBhbmQgQGVuZCBpbiB0aGUgc2xhdmUKPiA+ ID4gICBkb21haW4ncyBjb25maWcgZmlsZSBzaG91bGQgYmUgc21hbGxlciB0aGFuIHRoZSBjb3Jy ZXNwb25kaW5nIHNpemVzIHNwZWNpZmllZAo+ID4gPiAgIGluIGl0cyBtYXN0ZXIncyBkb21haW4u IEFuZCBAb2Zmc2V0IHNob3VsZCBhbHdheXMgYmUgd2l0aGluIHRoZSBiYWNraW5nCj4gPiA+ICAg bWVtb3J5IHJlZ2lvbi4gT3ZlcmxhcHBpbmcgYmFja2luZyBtZW1vcnkgYXJlYXMgYXJlIGFsbG93 ZWQsIGJ1dCB0aGUgc2xhdmUncwo+ID4gPiAgIGNhbid0IG1hcCB0d28gZGlmZmVyZW50IGJhY2tp bmcgbWVtb3J5IHJlZ2lvbidzIGludG8gYW4gb3ZlcmxhcHBpbmcgbWVtb3J5Cj4gPiA+ICAgc3Bh Y2UuCj4gPiA+ICAgVGhlICJtYXN0ZXIiIHJvbGUgaW4gdm0xIGZvciBib3RoIElEMSBhbmQgSUQy IGluZGljYXRlcyB0aGF0IHZtMSBzaG91bGQgYmUKPiA+ID4gICBjcmVhdGVkIHByaW9yIHRvIGJv dGggdm0yIGFuZCB2bTMsIGZvciB0aGV5IGJvdGggcmVseSBvbiB0aGUgcGFnZXMgYmFja2VkIGJ5 Cj4gPiA+ICAgdm0xLiBJZiBvbmUgdHJpZXMgdG8gY3JlYXRlIHZtMiBvciB2bTMgcHJpb3IgdG8g dm0xLCBzaGUgd2lsbCBnZXQgYW4gZXJyb3IuCj4gPiA+IAo+ID4gPiBJbiB0aGUgZXhhbXBsZSBh Ym92ZS4gQSBtZW1vcnkgYXJlYSBJRDEgd2lsbCBiZSBzaGFyZWQgYmV0d2VlbiB2bTEgYW5kIHZt Mi4KPiA+ID4gVGhpcyBhcmVhIHdpbGwgYmUgdGFrZW4gZnJvbSB2bTEgYW5kIGFkZGVkIHRvIHZt MidzIHN0YWdlLTIgcGFnZSB0YWJsZS4KPiA+ID4gVGhlIHBhcmFtZXRlciAicHJvdD1ydyIgbWVh bnMgdGhhdCB0aGlzIG1lbW9yeSBhcmVhIGlzIG9mZmVyZWQgd2l0aCByZWFkLXdyaXRlCj4gPiA+ IHBlcm1pc3Npb24uIHZtMSBjYW4gYWNjZXNzIHRoaXMgYXJlYSB1c2luZyAweDEwMDAwMH4weDIw MDAwMCwgYW5kIHZtMiB1c2luZwo+ID4gPiAweDUwMDAwMH4weDYwMDAwMC4gVGhlIHN0YWdlLTIg Y2FjaGUgcG9saWN5IG9mIHRoaXMgYmFja2luZyBtZW1vcnkgYXJlYSBpcwo+ID4gPiB4ODZfbm9y bWFsLgo+ID4gPiAKPiA+ID4gTGlrZXdpc2UsIGEgbWVtb3J5IGFyZWEgSUQyIHdpbGwgYmUgc2hh cmVkIGJldHdlZW4gdm0xIGFuZCB2bTMgd2l0aCByZWFkLXdyaXRlCj4gPiA+IHBlcm1pc3Npb25z LiB2bTEgaXMgdGhlIG1hc3RlciBhbmQgdm0yIHRoZSBzbGF2ZS4gTm90ZSB0aGUgQG9mZnNldCA9 IDB4MTAwMDAKPiA+ID4gaW4gdm0yJyBjb25maWcsIHRoZSBhY3R1YWwgc2hhcmluZyByZWxhdGlv bnNoaXAgd291bGQgYmU6Cj4gPiA+ICAgICh2bTEgOiAweDMxMDAwMH4weDQwMDAwMCkgPD09PT09 PiAodm0yIDogMHg2OTAwMDB+MHg4MDAwMDApCj4gPiA+IFRoZSBzdGFnZS0yIGNhY2hlIHBvbGlj eSBvZiB0aGlzIGJhY2tpbmcgbWVtb3J5IGFyZWEgaXMgeDg2X25vcm1hbC4KPiA+ID4gCj4gPiA+ ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiA+IDIuMiBTdG9yZSB0 aGUgbWVtLXNoYXJpbmcgaW5mb3JtYXRpb24gaW4geGVuc3RvcmUKPiA+ID4gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gRm9yIHdlIGRvbid0IGhhdmUgc29tZSBw ZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIHhsIHRvIHN0b3JlIHRoZSBpbmZvcm1hdGlvbgo+ID4gPiBv ZiB0aGUgc2hhcmVkIG1lbW9yeSBhcmVhcywgd2UgaGF2ZSB0byBmaW5kIHNvbWUgd2F5IHRvIGtl ZXAgaXQgYmV0d2VlbiB4bAo+ID4gPiBsYXVuY2hlcy4gQW5kIHhlbnN0b3JlIGlzIGEgZ29vZCBw bGFjZSB0byBkbyB0aGlzLiBUaGUgaW5mb3JtYXRpb24gZm9yIG9uZQo+ID4gPiBzaGFyZWQgYXJl YSBzaG91bGQgaW5jbHVkZSB0aGUgSUQsIG1hc3RlcidzIGRvbWlkLCBhZGRyZXNzIHJhbmdlLAo+ ID4gPiBtZW1vcnkgYXR0cmlidXRlcyBhbmQgaW5mb3JtYXRpb24gb2YgdGhlIHNsYXZlcyBldGMu Cj4gPiA+IEEgY3VycmVudCBwbGFuIGlzIHRvIHBsYWNlIHRoZSBpbmZvcm1hdGlvbiB1bmRlciAv bG9jYWwvc2hhcmVkX21lbS9JRC4KPiA+ID4gU3RpbGwgdGFrZSB0aGUgYWJvdmUgY29uZmlnIGZp bGVzIGFzIGFuIGV4YW1wbGU6Cj4gPiA+IAo+ID4gPiBJZiB3ZSBpbnN0YW50aWF0ZSB2bTEsIHZt MiBhbmQgdm0zLCBvbmUgYWZ0ZXIgYW5vdGhlciwg4oCceGVuc3RvcmUgbHMgLWbigJ0gc2hvdWxk Cj4gPiA+IG91dHB1dCBzb21ldGhpbmcgbGlrZSB0aGlzOgo+ID4gPiAKPiA+ID4gQWZ0ZXIgVk0x IHdhcyBpbnN0YW50aWF0ZWQsIHRoZSBvdXRwdXQgb2Yg4oCceGVuc3RvcmUgbHMgLWYKPiA+ID4g d2lsbCBiZSBzb21ldGhpbmcgbGlrZSB0aGlzOgo+ID4gPiAKPiA+ID4gICAgIC9sb2NhbC9zaGFy ZWRfbWVtL0lEMS9tYXN0ZXIgPSBkb21pZF9vZl92bTEKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRf bWVtL0lEMS9iZWdpbiA9IDB4MTAwMDAwCj4gPiA+ICAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDEv ZW5kID0gMHgyMDAwMDAKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9wcm90ID0gInJ3 Igo+ID4gPiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL2NhY2hlX3BvbGljeSA9ICJ4ODZfbm9y bWFsIgo+ID4gPiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL3NsYXZlcyA9ICIiCj4gPiA+IAo+ ID4gPiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL21hc3RlciA9IGRvbWlkX29mX3ZtMQo+ID4g PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL2JlZ2luID0gMHgzMDAwMDAKPiA+ID4gICAgIC9s b2NhbC9zaGFyZWRfbWVtL0lEMi9lbmQgPSAweDQwMDAwMAo+ID4gPiAgICAgL2xvY2FsL3NoYXJl ZF9tZW0vSUQyL3Blcm1pc3Npb25zID0gInJ3Igo+ID4gPiAgICAgL2xvY2FsL3NoYXJlZF9tZW0v SUQxL3g4Nl9jYWNoZWF0dHIgPSAieDg2X25vcm1hbCIKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRf bWVtL0lEMi9zbGF2ZXMgPSAiIgo+ID4gPiAKPiA+ID4gQWZ0ZXIgVk0yIHdhcyBpbnN0YW50aWF0 ZWQsIHRoZSBmb2xsb3dpbmcgbmV3IGxpbmVzIHdpbGwgYXBwZWFyOgo+ID4gPiAKPiA+ID4gICAg IC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2ZXMvZG9taWRfb2Zfdm0yL2JlZ2luID0gMHg1MDAw MDAKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2ZXMvZG9taWRfb2Zfdm0yL2Vu ZCA9IDB4NjAwMDAwCj4gPiA+ICAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDEvc2xhdmVzL2RvbWlk X29mX3ZtMi9wZXJtaXNzaW9ucyA9ICJydyIKPiA+ID4gCj4gPiA+IEFmdGVyIFZNMiB3YXMgaW5z dGFudGlhdGVkLCB0aGUgZm9sbG93aW5nIG5ldyBsaW5lcyB3aWxsIGFwcGVhcjoKPiA+ID4gCj4g PiA+ICAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvc2xhdmVzL2RvbWlkX29mX3ZtMy9nbWZuX2Jl Z2luID0gMHg2OTAwMDAKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMi9zbGF2ZXMvZG9t aWRfb2Zfdm0zL2dtZm5fZW5kID0gMHg4MDAwMDAKPiA+ID4gICAgIC9sb2NhbC9zaGFyZWRfbWVt L0lEMi9zbGF2ZXMvZG9taWRfb2Zfdm0zL3Blcm1pc3Npb25zID0gInJ3Igo+ID4gPiAKPiA+ID4g Cj4gPiA+IFdoZW4gd2UgZW5jb3VudGVyIGFuIHN0YXRpY19zaG0gZW50cnkgd2l0aCBpZCA9IElE eCBkdXJpbmcgInhsIGNyZWF0ZSI6Cj4gPiA+IAo+ID4gPiAgICsgSWYgdGhlcmUncyBOTyBjb3Jy ZXNwb25kaW5nIGVudHJ5IGluIHhlbnN0b3JlOgo+ID4gPiAgICAgKyBJZiBAcm9sZT1tYXN0ZXIs IGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGZvciBJRHggaW4geGVuc3RvcmUKPiA+ ID4gICAgICsgSWYgQHJvbGU9cm9sZSwgc2F5IGVycm9yLgo+ID4gPiAKPiA+ID4gICArIElmIHRo ZSBjb3JyZXNwb25kaW5nIGVudHJ5IGV4aXN0cyBpbiB4ZW5zdG9yZToKPiA+ID4gICAgICsgSWYg QHJvbGU9bWFzdGVyLCBzYXkgZXJyb3IKPiA+ID4gICAgICsgSWYgQHJvbGU9c2xhdmUsIG1hcCB0 aGUgcGFnZXMgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgZG9tYWluLCBhbmQgYWRkIHRoZQo+ID4gPiAg ICAgICBuZWNjZXNhc3J5IGluZm9ybWF0aW9ucyB1bmRlciAvbG9jYWwvc2hhcmVkX21lbS9JRHgv c2xhdmVzLgo+ID4gPiAKPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPiA+ID4gMi4zIG1hcHBpbmcgdGhlIG1lbW9yeSBhcmVhcwo+ID4gPiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiBIYW5kbGUgdGhlIG5ld2x5IGFkZGVkIGNv bmZpZyBvcHRpb24gaW4gdG9vbHMve3hsLCBsaWJ4bH0gYW5kIHV0aWxpemUKPiA+ID4gdG9vcy9s aWJ4YyB0byBkbyB0aGUgYWN0dWFsIG1lbW9yeSBtYXBwaW5nLiBTcGVjaWZpY2FsbHksIHdlIHdp bGwgdXNlCj4gPiA+IHhjX2RvbWFpbl9hZGRfdG9fcGh5c21hcF9iYXRjaCB3aXRoIFhFTk1BUFNQ QUNFX2dtZm5fZm9yZWlnbiB0bwo+ID4gPiBkbyB0aGUgYWN0dWFsIG1hcHBpbmcuCj4gPiA+IAo+ ID4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiAyLjQgZXJy b3IgaGFuZGxpbmcKPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K PiA+ID4gQWRkIGNvZGUgdG8gaGFuZGxlIHZhcmlvdXMgZXJyb3JzOiBJbnZhbGlkIGFkZHJlc3Ms IGludmFsaWQgcGVybWlzc2lvbnMsIHdyb25nCj4gPiA+IG9yZGVyIG9mIHZtIGNyZWF0aW9uLCB3 cm9uZyBsZW5ndGggb2YgbWVtb3J5IGFyZWEgZXRjLgo+ID4gPiAKPiA+ID4gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiAzLiBFeHBlY3Rl ZCBPdXRjb21lcy9Hb2FsczoKPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQo+ID4gPiBBIG5ldyBWTSBjb25maWcgb3B0aW9uIGluIHhsIHdp bGwgYmUgaW50cm9kdWNlZCwgYWxsb3dpbmcgdXNlcnMgdG8gc2V0dXAKPiA+ID4gc2V2ZXJhbCBz aGFyZWQgbWVtb3J5IGFyZWFzIGZvciBpbnRlci1WTXMgY29tbXVuaWNhdGlvbnMuCj4gPiA+IFRo aXMgc2hvdWxkIHdvcmsgb24gYm90aCB4ODYgYW5kIEFSTS4KPiA+ID4gCj4gPiA+ID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gMy4gRnV0 dXJlIERpcmVjdGlvbnM6Cj4gPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KPiA+ID4gSW1wbGVtZW50IHRoZSBtaXNzaW5nIEBwcm90IGZsYWdz IGFuZCBAY2FjaGVfcG9saWN5IG9wdGlvbnMuCj4gPiA+IAo+ID4gPiBTZXQgdXAgYSBub3RpZmlj YXRpb24gY2hhbm5lbCBiZXR3ZWVuIGRvbWFpbnMgd2hvIGFyZSBjb21tdW5pY2F0aW5nIHRocm91 Z2gKPiA+ID4gc2hhcmVkIG1lbW9yeSByZWdpb25zLCB0aGlzIGFsbG93cyBvbmUgdm0gdG8gc2ln bmFsIGhlciBmcmllbmRzIHdoZW4gZGF0YSBpcwo+ID4gPiBhdmFpbGFibGUgaW4gdGhlIHNoYXJl ZCBtZW1vcnkgb3Igd2hlbiB0aGUgZGF0YSBpbiB0aGUgc2hhcmVkIG1lbW9yeSBpcwo+ID4gPiBj b25zdW1lZC4gVGhlIGNoYW5uZWwgY291bGQgYmUgYnVpbHQgdXBvbiBQUEkgb3IgU0dJLgo+ID4g PiAKPiA+ID4gCj4gPiA+IFtTZWUgYWxzbzoKPiA+ID4gaHR0cHM6Ly93aWtpLnhlbnByb2plY3Qu b3JnL3dpa2kvT3V0cmVhY2hfUHJvZ3JhbV9Qcm9qZWN0cyNTaGFyZV9hX3BhZ2VfaW5fbWVtb3J5 X2Zyb21fdGhlX1ZNX2NvbmZpZ19maWxlXQo+ID4gPiAKPiA+ID4gQ2hlZXJzLAo+ID4gPiAKPiA+ ID4gWmhvbmd6ZSBMaXUKPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiA+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IFhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCj4gPiBodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCj4gPiAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK