From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: Re: [RFC v3]Proposal to allow setting up shared memory areas between VMs from xl config file Date: Thu, 20 Jul 2017 13:31:48 +0800 Message-ID: References: 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 1dY440-0002Di-QB for xen-devel@lists.xenproject.org; Thu, 20 Jul 2017 05:31:53 +0000 Received: by mail-lf0-f53.google.com with SMTP id g25so3988500lfh.1 for ; Wed, 19 Jul 2017 22:31:50 -0700 (PDT) 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: "Edgar E. Iglesias" , Wei Liu , Ian Jackson , Julien Grall , edgari@xilinx.com, xen-devel@lists.xenproject.org, Jarvis Roach List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCkkgbWlzc2VkIHNvbWUgb2YgeW91ciBjb21tZW50cyBpbiB0aGUgbGFzdCBy ZXBseS4gIGFkZGluZyByZXNwb25zZXMgdG8gdGhlbS4KCjIwMTctMDctMjAgMjo0NyBHTVQrMDg6 MDAgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjoKPiBPbiBXZWQs IDE5IEp1bCAyMDE3LCBaaG9uZ3plIExpdSB3cm90ZToKPj4gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAxLiBNb3RpdmF0aW9uIGFuZCBEZXNj cmlwdGlvbgo+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4+IFZpcnR1YWwgbWFjaGluZXMgdXNlIGdyYW50IHRhYmxlIGh5cGVyY2FsbHMgdG8g c2V0dXAgYSBzaGFyZSBwYWdlIGZvcgo+PiBpbnRlci1WTXMgY29tbXVuaWNhdGlvbnMuIFRoZXNl IGh5cGVyY2FsbHMgYXJlIHVzZWQgYnkgYWxsIFBWCj4+IHByb3RvY29scyB0b2RheS4gSG93ZXZl ciwgdmVyeSBzaW1wbGUgZ3Vlc3RzLCBzdWNoIGFzIGJhcmVtZXRhbAo+PiBhcHBsaWNhdGlvbnMs IG1pZ2h0IG5vdCBoYXZlIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBoYW5kbGUgdGhlIGdyYW50IHRh YmxlLgo+PiBUaGlzIHByb2plY3QgaXMgYWJvdXQgc2V0dGluZyB1cCBzZXZlcmFsIHNoYXJlZCBt ZW1vcnkgYXJlYXMgZm9yIGludGVyLVZNcwo+PiBjb21tdW5pY2F0aW9ucyBkaXJlY3RseSBmcm9t IHRoZSBWTSBjb25maWcgZmlsZS4KPj4gU28gdGhhdCB0aGUgZ3Vlc3Qga2VybmVsIGRvZXNuJ3Qg aGF2ZSB0byBoYXZlIGdyYW50IHRhYmxlIHN1cHBvcnQgKGluIHRoZQo+PiBlbWJlZGRlZCBzcGFj ZSwgdGhpcyBpcyBub3QgdW51c3VhbCkgdG8gYmUgYWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoCj4+ IG90aGVyIGd1ZXN0cy4KPj4KPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQo+PiAyLiBJbXBsZW1lbnRhdGlvbiBQbGFuOgo+PiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+Cj4+ID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+IDIuMSBJbnRyb2R1Y2UgYSBuZXcgVk0g Y29uZmlnIG9wdGlvbiBpbiB4bDoKPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KPj4KPj4gMi4xLjEgRGVzaWduIEdvYWxzCj4+IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgo+Pgo+PiBUaGUgc2hhcmVkIGFyZWFzIHNob3VsZCBiZSBzaGFyZWFibGUgYW1vbmcgc2V2 ZXJhbCAoPj0yKSBWTXMsIHNvIGV2ZXJ5IHNoYXJlZAo+PiBwaHlzaWNhbCBtZW1vcnkgYXJlYSBp cyBhc3NpZ25lZCB0byBhIHNldCBvZiBWTXMuIFRoZXJlZm9yZSwgYSDigJx0b2tlbuKAnSBvcgo+ PiDigJxpZGVudGlmaWVy4oCdIHNob3VsZCBiZSB1c2VkIGhlcmUgdG8gdW5pcXVlbHkgaWRlbnRp ZnkgYSBiYWNraW5nIG1lbW9yeSBhcmVhLgo+PiBBIHN0cmluZyBubyBsb25nZXIgdGhhbiAxMjgg Ynl0ZXMgaXMgdXNlZCBoZXJlIHRvIHNlcnZlIHRoZSBwdXJwb3NlLgo+Pgo+PiBUaGUgYmFja2lu ZyBhcmVhIHdvdWxkIGJlIHRha2VuIGZyb20gb25lIGRvbWFpbiwgd2hpY2ggd2Ugd2lsbCByZWdh cmQKPj4gYXMgdGhlICJtYXN0ZXIgZG9tYWluIiwgYW5kIHRoaXMgZG9tYWluIHNob3VsZCBiZSBj cmVhdGVkIHByaW9yIHRvIGFueQo+PiBvdGhlciAic2xhdmUgZG9tYWluInMuIEFnYWluLCB3ZSBo YXZlIHRvIHVzZSBzb21lIGtpbmQgb2YgdGFnIHRvIHRlbGwgd2hvCj4+IGlzIHRoZSAibWFzdGVy IGRvbWFpbiIuCj4+Cj4+IEFuZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoZSBwZXJtaXNzaW9u cyBhbmQgY2FjaGVhYmlsaXR5IChhbmQgc2hhcmVhYmlsaXR5Cj4+IGZvciBhcm0gSFZNJ3MpIG9m IHRoZSBwYWdlcyB0byBiZSBzaGFyZWQgc2hvdWxkIGJlIGFsc28gZ2l2ZW4gdG8gdGhlIHVzZXIu Cj4+Cj4+IDIuMi4yIFN5bnRheCBhbmQgQmVoYXZpb3IKPj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KPj4gVGhlIGZvbGxvd2luZyBleGFtcGxlIGlsbHVzdHJhdGVzIHRoZSBzeW50YXgg b2YgdGhlIHByb3Bvc2VkIGNvbmZpZyBlbnRyeToKPj4KPj4gSW4geGwgY29uZmlnIGZpbGUgb2Yg dm0xOgo+Pgo+PiAgICBzdGF0aWNfc2htID0gWyAnaWQ9SUQxLCBiZWdpbj0weDEwMDAwMCwgZW5k PTB4MjAwMDAwLCByb2xlPW1hc3RlciwKPj4gICAgICAgICAgICAgICAgICAgIGFybV9zaGFyZWF0 dHI9aW5uZXIsIGFybV9pbm5lcl9jYWNoZWF0dHI9d2IsCj4+ICAgICAgICAgICAgICAgICAgICBh cm1fb3V0ZXJfY2FjaGVhdHRyPXdiLCB4ODZfY2FjaGVhdHRyPXdiLCBwcm90PXJvJywKPj4KPj4g ICAgICAgICAgICAgICAgICAgICdpZD1JRDIsIGJlZ2luPTB4MzAwMDAwLCBlbmQ9MHg0MDAwMDAs IHJvbGU9bWFzdGVyLAo+PiAgICAgICAgICAgICAgICAgICAgYXJtX3NoYXJlYXR0cj1pbm5lciwg YXJtX2lubmVyX2NhY2hlYXR0cj13YiwKPj4gICAgICAgICAgICAgICAgICAgIGFybV9vdXRlcl9j YWNoZWF0dHI9d2IsIHg4Nl9jYWNoZWF0dHI9d2IsIHByb3Q9cncnIF0KPgo+IFByb2JhYmx5IG5v dCBhIGdvb2QgaWRlYSB0byBtaXggeDg2IGFuZCBhcm0gYXR0cmlidXRlcyBpbiB0aGUgZXhhbXBs ZSA6LSkKPiBKdXN0IG1ha2UgYSBjb3VwbGUgb2YgZXhhbXBsZXMgaW5zdGVhZC4KCk9LLiBJJ2xs IHNlcGFyYXRlIHRoaXMgaW50byB0d28gZXhhbXBsZXMuCgo+Cj4KPj4gSW4geGwgY29uZmlnIGZp bGUgb2Ygdm0yOgo+Pgo+PiAgICAgc3RhdGljX3NobSA9IFsgJ2lkPUlEMSwgYmVnaW49MHg1MDAw MDAsIGVuZD0weDYwMDAwMCwgcm9sZT1zbGF2ZSwgcHJvdD1ybycgXQo+Pgo+PiBJbiB4bCBjb25m aWcgZmlsZSBvZiB2bTM6Cj4+Cj4+ICAgICBzdGF0aWNfc2htID0gWyAnaWQ9SUQyLCBiZWdpbj0w eDcwMDAwMCwgZW5kPTB4ODAwMDAwLCByb2xlPXNsYXZlLCBwcm90PXJvJyBdCj4+Cj4+IHdoZXJl Ogo+PiAgIEBpZCAgICAgICAgICAgICAgICAgICBjYW4gYmUgYW55IHN0cmluZyB0aGF0IG1hdGNo ZXMgdGhlIHJlZ2V4cCAiW14gXHRcbixdKyIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgYW5k IG5vIGxvZ25lciB0aGFuIDEyOCBjaGFyYWN0ZXJzCj4+ICAgQGJlZ2luL2VuZCAgICAgICAgICAg IGNhbiBiZSBkZWNpbWFscyBvciBoZXhpZGVtaWNhbHMgb2YgdGhlIGZvcm0gIjB4MjAwMDAiLgo+ PiAgIEByb2xlICAgICAgICAgICAgICAgICBjYW4gb25seSBiZSAnbWFzdGVyJyBvciAnc2xhdmUn Cj4+ICAgQHByb3QgICAgICAgICAgICAgICAgIGNhbiBiZSAnbicsICdyJywgJ3JvJywgJ3cnLCAn d28nLCAneCcsICd4bycsICdydycsICdyeCcsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICd3 eCcgb3IgJ3J3eCcuIERlZmF1bHQgaXMgJ3J3Jy4KPj4gICBAYXJtX3NoYXJlYXR0ciAgICAgICAg Y2FuIGJlICdpbm5lcicgb3VyICdvdXR0ZXInLCB0aGlzIHdpbGwgYmUgaWdub3JlZCBhbmQKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgYSB3YXJuaW5nIHdpbGwgYmUgcHJpbnRlZCBvdXQgdG8g dGhlIHNjcmVlbiBpZiBpdAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQg aW4gYW4geDg2IEhWTSBjb25maWcgZmlsZS4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgRGVm YXVsdCBpcyAnaW5uZXInCj4+ICAgQGFybV9vdXRlcl9jYWNoZWF0dHIgIGNhbiBiZSAndWMnLCAn d3QnLCAnd2InLCAnYnVmZmVyYWJsZScgb3IgJ3dhJywgdGhpcyB3aWxsCj4+ICAgICAgICAgICAg ICAgICAgICAgICAgIGJlIGlnbm9yZWQgYW5kIGEgd2FybmluZyB3aWxsIGJlIHByaW50ZWQgb3V0 IHRvIHRoZQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4gaWYgaXQgaXMgc3BlY2lm aWVkIGluIGFuIHg4NiBIVk0gY29uZmlnIGZpbGUuCj4+ICAgICAgICAgICAgICAgICAgICAgICAg IERlZmF1bHQgaXMgJ2lubmVyJwo+PiAgIEBhcm1faW5uZXJfY2FjaGVhdHRyICBjYW4gYmUgJ3Vj JywgJ3d0JywgJ3diJywgJ2J1ZmZlcmFibGUnIG9yICd3YScuIERlZmF1bHQKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgaXMgJ3diJy4KPgo+IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCBib3RoIEBh cm1fb3V0ZXJfY2FjaGVhdHRyIGFuZAo+IEBhcm1faW5uZXJfY2FjaGVhdHRyOiBhIHNpbmdsZSBA YXJtX2NhY2hlYXR0ciBzaG91bGQgc3VmZmljZS4KPgo+IEFsc28sIHdlIG5lZWQgdG8gZXhwbGFp biB3aGF0IGVhY2ggb2YgdGhlc2UgdmFsdWVzIG1lYW4uIEluc3RlYWQsIEkKPiB3b3VsZCBvbmx5 IHNheSB0aGF0IHRvZGF5IHdlIG9ubHkgc3VwcG9ydCB3cml0ZS1iYWNrOgo+Cj4gQGFybV9jYWNo ZWF0dHIgIE9ubHkgJ3diJyAod3JpdGUtYmFjaykgaXMgc3VwcG9ydGVkIHRvZGF5Lgo+Cj4gSW4g dGhlIGNvZGUgSSB3b3VsZCBjaGVjayB0aGF0IGFybV9jYWNoZWF0dHIgaXMgZWl0aGVyIG1pc3Np bmcsIG9yIHNldAo+IHRvICd3YicuIFRocm93IGFuIGVycm9yIGluIGFsbCBvdGhlciBjYXNlcy4K CkknbSBub3Qgc3VyZSB3aGV0aGVyIEkgc2hvdWxkIGZpcnN0IGxpc3Qgb3V0IGFsbCB0aGUgZmxh Z3MgdGhhdCBhcmUgKnN1cHBvc2VkCnRvIGJlKiBhY2NlcHRlZCBhbmQgdGhlbiBtYXJrIHNvbWUg b2YgdGhlIGZsYWdzIHVuYXZhaWxhYmxlIG9yIGp1c3Qgc2ltcGx5Cmxpc3Qgb25seSB0aGUgZmxh Z3MgdGhhdCBhcmUgY3VycmVudGx5IGF2YWlsYWJsZS4KCj4KPgo+PiAgIEB4ODZfY2FjaGVhdHRy ICAgICAgICBjYW4gYmUgJ3VjJywgJ3djJywgJ3d0JywgJ3dwJywgJ3diJyBvciAnc3VjJy4gRGVm YXVsdAo+PiAgICAgICAgICAgICAgICAgICAgICAgICBpcyAnd2InLgo+Cj4gQWxzbyBoZXJlLCBJ IHdvdWxkIHdyaXRlOgo+Cj4gQHg4Nl9jYWNoZWF0dHIgIE9ubHkgJ3diJyAod3JpdGUtYmFjaykg aXMgc3VwcG9ydGVkIHRvZGF5Lgo+Cj4gTGlrZSB5b3Ugd3JvdGUgbGF0ZXIsIGJlZ2luIGFuZCBl bmQgYWRkcmVzc2VzIG5lZWQgdG8gYmUgbXVsdGlwbGUgb2YgNEsuCj4KPgo+PiBCZXNpZGVzLCB0 aGUgc2l6ZXMgb2YgdGhlIGFyZWFzIHNwZWNpZmllZCBieSBAYmVnaW4gYW5kIEBlbmQgaW4gdGhl IHNsYXZlCj4+IGRvbWFpbidzIGNvbmZpZyBmaWxlIHNob3VsZCBiZSBzbWFsbGVyIHRoYW4gdGhl IGNvcnJlc3BvbmRpbmcgc2l6ZXMgc3BlY2lmaWVkCj4+IGluIGl0cyBtYXN0ZXIncyBkb21haW4u IEFuZCBvdmVybGFwcGluZyBiYWNraW5nIG1lbW9yeSBhcmVhcyBhcmUgYWxsb3dlZC4KPj4KPj4g SW4gdGhlIGV4YW1wbGUgYWJvdmUuIEEgbWVtb3J5IGFyZWEgSUQxIHdpbGwgYmUgc2hhcmVkIGJl dHdlZW4gdm0xIGFuZCB2bTIuCj4+IFRoaXMgYXJlYSB3aWxsIGJlIHRha2VuIGZyb20gdm0xIGFu ZCBtYXBwZWQgaW50byB2bTIncyBzdGFnZS0yIHBhZ2UgdGFibGUuCj4+IFRoZSBwYXJhbWV0ZXIg InByb3Q9cm8iIG1lYW5zIHRoYXQgdGhpcyBtZW1vcnkgYXJlYSBhcmUgb2ZmZXJlZCB3aXRoIHJl YWQtb25seQo+PiBwZXJtaXNzaW9uLiB2bTEgY2FuIGFjY2VzcyB0aGlzIGFyZWEgdXNpbmcgMHgx MDAwMDB+MHgyMDAwMDAsIGFuZCB2bTIgdXNpbmcKPj4gMHg1MDAwMDB+MHg2MDAwMDAuCj4+Cj4+ IExpa2V3aXNlLCBhIG1lbW9yeSBhcmVhIElEMiB3aWxsIGJlIHNoYXJlZCBiZXR3ZWVuIHZtMSBh bmQgdm0zIHdpdGggcmVhZCBhbmQKPj4gd3JpdGUgcGVybWlzc2lvbnMuIHZtMSBpcyB0aGUgbWFz dGVyIGFuZCB2bTIgdGhlIHNsYXZlLiB2bTEgY2FuIGFjY2VzcyB0aGUKPj4gYXJlYSB1c2luZyAw eDMwMDAwMH4weDQwMDAwMCBhbmQgdm0zIHVzaW5nIDB4NzAwMDAwfjB4ODAwMDAwLgo+Pgo+PiBG b3IgdGhlIGFybV8qIGFuZCB4ODZfKiBjYWNoZSBhdHRyaWJ1dGVzIGFuZCBzaGFyZWFiaWxpdHkg YXR0cmlidXRlcywgdGhlCj4+IGJlaGF2aW9yIGlzIGJyaWVmbHkgZGVzY3JpYmVkIGJlbG93Ogo+ Pgo+PiAgICsgVGhlIHRoZSBwZXJtaXNzaW9uIGZsYWdzIChpLmUuIHJvL3dvL3J3IGV0Yy4pOgo+ PiAgICAgLSBJZiBzcGVjaWZpZWQgaW4gdGhlIG1hc3RlciBkb21haW5zJyBjb25maWcsIHRoZXkg ZGVzY3JpYmUgdGhlIGxhcmdlc3Qgc2V0Cj4+ICAgICAgIG9mIHBlcm1pc3Npb25zIHRoYXQgYXJl IGdyYW50ZWQgdG8gdGhlIHNoYXJlZCBtZW1vcnkgYXJlYSwgd2hpY2ggbWVhbnMgaWYKPj4gICAg ICAgbWFzdGVyIHNheXMgJ3J3JyBpbiBpdHMgb3duIGNvbmZpZyBmaWxlLCB0aGVuIHRoZSBzbGF2 ZXMgY2FuIG9ubHkgc2F5ICdyJwo+PiAgICAgICBvciAndycgb3IgJ3J3JywgYnV0IG5vdCAneCcu Cj4+ICAgICAtIElmIHNwZWNpZmllZCBpbiB0aGUgc2xhdmUgZG9tYWlucycgY29uZmlnLCB0aGV5 IGRlc2NyaWJlIHRoZSBzdGFnZS0yIHBhZ2UKPj4gICAgICAgcGVybWlzc2lvbnMgdGhhdCB3b3Vs ZCBiZSB1c2VkIHdoZW4gd2UgbWFwIHRoZSBzaGFyZWQgcGFnZXMgaW50byB0aGUgc2xhdmUKPj4g ICAgICAgQnV0IHRoaXMgZG9lc24ndCBtYWtlIGFueSByZXN0cmljdGlvbnMgb24gaG93IHRoZSBz bGF2ZSBkb21haW5zIGFyZSBnb2luZwo+PiAgICAgICB0byBtYW5pcHVsYXRlIHRoZSByZWxhdGVk IHN0YWdlLTEgcGFnZSB0YWJsZXMgKGFuZCB3ZSBjYW4ndCkuCj4+ICAgKyBUaGUgY2FjaGVhYmls aXR5IGZsYWdzIGFuZCBzaGFyZWFiaWxpdHkgZmxhZ3M6Cj4+ICAgICBUaGVzZSBhcmUgdmFsaWQg b25seSBpZiB0aGV5IGFyZSBzcGVjaWZpZWQgaW4gdGhlIG1hc3RlciBkb21haW4ncyBjb25maWcK Pj4gICAgIGZpbGVzLiBUaGV5IGFsc28gY29udHJvbCB0aGUgc3RhZ2UtMiBwYWdlIGF0dHJpYnV0 ZXMgb2YgdGhlIHNoYXJlZCBtZW1vcnkuCj4+Cj4+IE5vdGUgdGhhdCB0aGUgIm1hc3RlciIgcm9s ZSBpbiB2bTEgZm9yIGJvdGggSUQxIGFuZCBJRDIgaW5kaWNhdGVzIHRoYXQgdm0xCj4+IHNob3Vs ZCBiZSBjcmVhdGVkIHByaW9yIHRvIGJvdGggdm0yIGFuZCB2bTMsIGZvciB0aGV5IGJvdGggcmVs eSBvbiB0aGUgcGFnZXMKPj4gYmFja2VkIGJ5IHZtMS4gSWYgb25lIHRyaWVzIHRvIGNyZWF0ZSB2 bTIgb3Igdm0zIHByaW9yIHRvIHZtMSwgc2hlIHdpbGwgZ2V0Cj4+IGFuIGVycm9yLiBBbmQgaW4g dm0xJ3MgY29uZmlnIGZpbGUsIHRoZSAicHJvdD1ybyIgcGFyYW1ldGVyIG9mIElEMSBpbmRpY2F0 ZXMKPj4gdGhhdCBpZiBvbmUgdHJpZXMgdG8gc2hhcmUgdGhpcyBwYWdlIHdpdGggdm0xIHdpdGgs IHNheSwgInJ3IiBwZXJtaXNzaW9uLAo+PiBzaGUgd2lsbCBnZXQgYW4gZXJyb3IsIHRvby4KPj4K Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4gMi4yIFN0b3JlIHRo ZSBtZW0tc2hhcmluZyBpbmZvcm1hdGlvbiBpbiB4ZW5zdG9yZQo+PiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQo+PiBGb3Igd2UgZG9uJ3QgaGF2ZSBzb21lIHBlcnNpc3Rl bnQgc3RvcmFnZSBmb3IgeGwgdG8gc3RvcmUgdGhlIGluZm9ybWF0aW9uCj4+IG9mIHRoZSBzaGFy ZWQgbWVtb3J5IGFyZWFzLCB3ZSBoYXZlIHRvIGZpbmQgc29tZSB3YXkgdG8ga2VlcCBpdCBiZXR3 ZWVuIHhsCj4+IGxhdW5jaGVzLiBBbmQgeGVuc3RvcmUgaXMgYSBnb29kIHBsYWNlIHRvIGRvIHRo aXMuIFRoZSBpbmZvcm1hdGlvbiBmb3Igb25lCj4+IHNoYXJlZCBhcmVhIHNob3VsZCBpbmNsdWRl IHRoZSBJRCwgbWFzdGVyJ3MgZG9taWQsIGFkZHJlc3MgcmFuZ2UsCj4+IG1lbW9yeSBhdHRyaWJ1 dGVzIGFuZCBpbmZvcm1hdGlvbiBvZiB0aGUgc2xhdmVzIGV0Yy4KPj4gQSBjdXJyZW50IHBsYW4g aXMgdG8gcGxhY2UgdGhlIGluZm9ybWF0aW9uIHVuZGVyIC9sb2NhbC9zaGFyZWRfbWVtL0lELgo+ PiBTdGlsbCB0YWtlIHRoZSBhYm92ZSBjb25maWcgZmlsZXMgYXMgYW4gZXhhbXBsZToKPj4KPj4g U3VwcG9zZSB3ZSBhcmUgcnVubmluZyB1bmRlciB4ODYgKGFuZCB0aHVzIHRoZSBhcm1fKiBhdHRy aWJ1dGVzIHdpbGwgYmUgaWdub3JlZCwKPj4gaWYgd2UgaW5zdGFudGlhdGUgdm0xLCB2bTIgYW5k IHZtMywgb25lIGFmdGVyIGFub3RoZXIsIOKAnHhlbnN0b3JlIGxzIC1m4oCdIHNob3VsZAo+PiBv dXRwdXQgc29tZXRoaW5nIGxpa2UgdGhpczoKPj4KPj4gQWZ0ZXIgVk0xIHdhcyBpbnN0YW50aWF0 ZWQsIHRoZSBvdXRwdXQgb2Yg4oCceGVuc3RvcmUgbHMgLWbigJ0KPj4gd2lsbCBiZSBzb21ldGhp bmcgbGlrZSB0aGlzOgo+Pgo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL21hc3RlciA9IGRv bWlkX29mX3ZtMQo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL2JlZ2luID0gMHgxMDAKPj4g ICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9lbmQgPSAweDIwMAo+PiAgICAgL2xvY2FsL3NoYXJl ZF9tZW0vSUQxL3Blcm1pc3Npb25zID0gInIiCj4+ICAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDEv eDg2X2NhY2hlYXR0ciA9ICJ3YiIKPj4gICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2ZXMg PSAiIgo+Pgo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL21hc3RlciA9IGRvbWlkX29mX3Zt MQo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL2JlZ2luID0gMHgzMDAKPj4gICAgIC9sb2Nh bC9zaGFyZWRfbWVtL0lEMi9lbmQgPSAweDQwMAo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQy L3Blcm1pc3Npb25zID0gInJ3Igo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL3g4Nl9jYWNo ZWF0dHIgPSAid2IiCj4+ICAgICAvbG9jYWwvc2hhcmVkX21lbS9JRDIvc2xhdmVzID0gIiIKPj4K Pj4gQWZ0ZXIgVk0yIHdhcyBpbnN0YW50aWF0ZWQsIHRoZSBmb2xsb3dpbmcgbmV3IGxpbmVzIHdp bGwgYXBwZWFyOgo+Pgo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL3NsYXZlcy9kb21pZF9v Zl92bTIvYmVnaW4gPSAweDUwMAo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQxL3NsYXZlcy9k b21pZF9vZl92bTIvZW5kID0gMHg2MDAKPj4gICAgIC9sb2NhbC9zaGFyZWRfbWVtL0lEMS9zbGF2 ZXMvZG9taWRfb2Zfdm0yL3Blcm1pc3Npb25zID0gInIiCj4+Cj4+IEFmdGVyIFZNMiB3YXMgaW5z dGFudGlhdGVkLCB0aGUgZm9sbG93aW5nIG5ldyBsaW5lcyB3aWxsIGFwcGVhcjoKPj4KPj4gICAg IC9sb2NhbC9zaGFyZWRfbWVtL0lEMi9zbGF2ZXMvZG9taWRfb2Zfdm0zL2dtZm5fYmVnaW4gPSAw eDcwMAo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL3NsYXZlcy9kb21pZF9vZl92bTMvZ21m bl9lbmQgPSAweDgwMAo+PiAgICAgL2xvY2FsL3NoYXJlZF9tZW0vSUQyL3NsYXZlcy9kb21pZF9v Zl92bTMvcGVybWlzc2lvbnMgPSAicnciCj4+Cj4+Cj4+IFdoZW4gd2UgZW5jb3VudGVyIGFuIGlk IElEeCBkdXJpbmcgInhsIGNyZWF0ZSI6Cj4KPiBJIHRha2UgdGhhdCB5b3UgbWVhbiB0aGF0IGEg c3RhdGljX3NobSBvcHRpb24gd2FzIGdpdmVuIHRvIHhsIGNyZWF0ZSwKPiByaWdodD8KClllcy4g SSdsbCBtYWtlIHRoZSBleHByZXNzaW9uIG1vcmUgcHJlY2lzZS4KCj4KPgo+PiAgICsgSWYgaXTi gJlzIG5vdCB1bmRlciAvbG9jYWwvc2hhcmVkX21lbToKPj4gICAgICsgSWYgdGhlIHRoZSBjb3Jy ZXNwb25kaW5nIGVudHJ5IGhhcyAicm9sZT1tYXN0ZXIiLCBjcmVhdGUgdGhlCj4+ICAgICAgIGNv cnJlc3BvbmRpbmcgZW50cmllcyBmb3IgSUR4IGluIHhlbnN0b3JlCj4+ICAgICArIElmIHRoZXJl IGlzbid0IGEgIm1hc3RlciIgdGFnLCBzYXkgZXJyb3IuCj4+Cj4+ICAgKyBJZiBpdOKAmXMgZm91 bmQgdW5kZXIgL2xvY2FsL3NoYXJlZF9tZW06Cj4+ICAgICArIElmIHRoZSBjb3JyZXNwb25kaW5n IGVudHJ5IGhhcyBhICJtYXN0ZXIiIHRhZywgc2F5IGVycm9yCj4+ICAgICArIElmIHRoZXJlIGlz bid0IGEgIm1hc3RlciIgdGFnLCBtYXAgdGhlIHBhZ2VzIHRvIHRoZSBuZXdseQo+PiAgICAgICBj cmVhdGVkIGRvbWFpbiwgYW5kIGFkZCB0aGUgY3VycmVudCBkb21haW4gYW5kIG5lY2Vzc2FyeSBp bmZvcm1hdGlvbgo+PiAgICAgICB1bmRlciAvbG9jYWwvc2hhcmVkX21lbS9JRHgvc2xhdmVzLgo+ Pgo+PiBMb2NrcyBzaG91bGQgYmUgdXNlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY3JlYXRpb24g b2YgdGhlc2UgZW50cmllcyBhcmUKPj4gYXRvbWljLgo+Pgo+PiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQo+PiAyLjMgbWFwcGluZyB0aGUgbWVtb3J5IGFyZWFzCj4+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+IEhhbmRsZSB0aGUgbmV3bHkg YWRkZWQgY29uZmlnIG9wdGlvbiBpbiB0b29scy97eGwsIGxpYnhsfSBhbmQgdXRpbGl6ZQo+PiB0 b29zL2xpYnhjIHRvIGRvIHRoZSBhY3R1YWwgbWVtb3J5IG1hcHBpbmcuIFNwZWNpZmljYWxseSwg d2Ugd2lsbCB1c2UKPj4geGNfZG9tYWluX2FkZF90b19waHlzbWFwX2JhdGNoIHdpdGggWEVOTUFQ U1BBQ0VfZ21mbl9mb3JlaWduIHRvCj4+IGRvIHRoZSBhY3R1YWwgbWFwcGluZy4KPgo+IFdoYXQg YXJlIHdlIGdvaW5nIHRvIHVzZSB0byBzZXQgdGhlIHBlcm1pc3Npb25zIFJPIG9yIFJXPwo+Cj4K Pj4gVW5mb3J0dW5hdGVseSwgd2UgZG9uJ3QgaGF2ZSB0aGUgc3VpdGFibGUgQVBJIHRvIGNoYW5n ZSB0aGUgY2F0Y2hlYWJpbGl0eQo+PiBhbmQgc2hhcmVhYmlsaXR5IGF0dHJpYnV0ZXMgb2YgdGhl IHNoYXJlZCBtZW1vcnkgcGFnZXMgaW4gdGhlIHN0YWdlLTIKPj4gcGFnZSB0YWJsZS4gU28gdGhl c2UgYXR0cmlidXRlcyBhcmUgY3VycmVudGx5IG1hcmtlZCBhcyAibm90IGltcGxlbWVudGVkIiwK Pj4gYW5kIHhsIHNob3VsZCBwcmludCBhbiBlcnJvciBpZiBhbnkgb2YgdGhlc2UgYXR0cmlidXRl cyBhcmUgc2V0IHRvIHRoZWlyCj4+IG5vbi1kZWZhdWx0IHZhbHVlcyAoU2VlIDIuMi4yIFN5bnRh eCBhbmQgQmVoYXZpb3IpLgo+Pgo+PiBUaGV5IHdpbGwgYmUgaW1wbGVtZW50ZWQgd2hlbiBhIHN1 aXRhYmxlIEFQSSBiZWNvbWVzIGF2YWlsYWJsZS4KPj4KPj4gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KPj4gMi40IGVycm9yIGhhbmRsaW5nCj4+ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Cj4+IEFkZCBjb2RlIHRvIGhhbmRsZSB2YXJpb3VzIGVy cm9yczogSW52YWxpZCBhZGRyZXNzLCBpbnZhbGlkIHBlcm1pc3Npb25zLCB3cm9uZwo+PiBvcmRl ciBvZiB2bSBjcmVhdGlvbiwgbWlzbWF0Y2hlZCBsZW5ndGggb2YgbWVtb3J5IGFyZWEgZXRjLgo+ Pgo+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4+IDMuIEV4cGVjdGVkIE91dGNvbWVzL0dvYWxzOgo+PiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+IEEgbmV3IFZNIGNvbmZpZyBvcHRpb24g aW4geGwgd2lsbCBiZSBpbnRyb2R1Y2VkLCBhbGxvd2luZyB1c2VycyB0byBzZXR1cAo+PiBzZXZl cmFsIHNoYXJlZCBtZW1vcnkgYXJlYXMgZm9yIGludGVyLVZNcyBjb21tdW5pY2F0aW9ucy4KPj4g VGhpcyBzaG91bGQgd29yayBvbiBib3RoIHg4NiBhbmQgQVJNLgo+Pgo+PiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+IDMuIEZ1dHVyZSBEaXJl Y3Rpb25zOgo+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4+IEltcGxlbWVudCB0aGUgcHJvdCwgeDg2XyogYW5kIGFybV8qIG1lbW9yeSBhdHRy aWJ1dGUgb3B0aW9ucy4KPj4KPj4gU2V0IHVwIGEgbm90aWZpY2F0aW9uIGNoYW5uZWwgYmV0d2Vl biBkb21haW5zIHdobyBhcmUgY29tbXVuaWNhdGluZyB0aHJvdWdoCj4+IHNoYXJlZCBtZW1vcnkg cmVnaW9ucywgdGhpcyBhbGxvd3Mgb25lIHZtIHRvIHNpZ25hbCBoZXIgZnJpZW5kcyB3aGVuIGRh dGEgaXMKPj4gYXZhaWxhYmxlIGluIHRoZSBzaGFyZWQgbWVtb3J5IG9yIHdoZW4gdGhlIGRhdGEg aW4gdGhlIHNoYXJlZCBtZW1vcnkgaXMKPj4gY29uc3VtZWQuIFRoZSBjaGFubmVsIGNvdWxkIGJl IGJ1aWx0IHVwb24gUFBJIG9yIFNHSS4KPj4KPj4KPj4gW1NlZSBhbHNvOgo+PiBodHRwczovL3dp a2kueGVucHJvamVjdC5vcmcvd2lraS9PdXRyZWFjaF9Qcm9ncmFtX1Byb2plY3RzI1NoYXJlX2Ff cGFnZV9pbl9tZW1vcnlfZnJvbV90aGVfVk1fY29uZmlnX2ZpbGVdCj4+Cj4+Cj4+IENoZWVycywK Pj4KPj4gWmhvbmd6ZSBMaXUKPj4KCkNoZWVycywKClpob25nemUgTGl1CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK