From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [Announcement] 2015-Q3 release of XenGT - a Mediated Graphics Passthrough Solution from Intel Date: Tue, 27 Oct 2015 17:25:37 +0800 Message-ID: <562F4311.9@intel.com> References: <53D215D3.50608@intel.com> <547FCAAD.2060406@intel.com> <54AF967B.3060503@intel.com> <5527CEC4.9080700@intel.com> <559B3E38.1080707@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id C27BA6E0B5 for ; Tue, 27 Oct 2015 02:31:38 -0700 (PDT) In-Reply-To: <559B3E38.1080707@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: xen-devel@lists.xen.org, igvt-g@lists.01.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "White, Michael L" , "Dong, Eddie" , "Li, Susie" , "Cowperthwaite, David J" , "Zhou, Chao" , "Zhu, Libo" , "Wang, Hongbo" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50 ZWwgR1ZULWcgZm9yIFhlbi4KCkludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRp b24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRo IGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNz IHByb2Nlc3NvcnMuIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFj aCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3Rs eSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJp dmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJm b3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRs eSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpOyBh bmQgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVhc2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNv cnMuCgoKUmVwb3NpdG9yaWVzCgogICAgIEtlcm5lbDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3Jn L2lndnRnLWtlcm5lbCAoMjAxNXEzLTMuMTguMCBicmFuY2gpCiAgICAgWGVuOiBodHRwczovL2dp dGh1Yi5jb20vMDFvcmcvaWd2dGcteGVuICgyMDE1cTMtNC41IGJyYW5jaCkKICAgICBRZW11OiBo dHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoeGVuZ3RfcHVibGljMjAxNXEzIGJy YW5jaCkKCgpUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKCiAgICAgLSBYZW5HVCBpcyBub3cgbWVy Z2VkIHdpdGggS1ZNR1QgaW4gdW5pZmllZCByZXBvc2l0b3JpZXMoa2VybmVsIGFuZCBxZW11KSwg YnV0IGN1cnJlbnRseQogICAgICAgZGlmZmVyZW50IGJyYW5jaGVzIGZvciBxZW11LiAgWGVuR1Qg YW5kIEtWTUdUIHNoYXJlIHNhbWUgaUdWVC1nIGNvcmUgbG9naWMuCiAgICAgLSBmaXggc3lzZnMv ZGVidWdmcyBhY2Nlc3Mgc2VsZG9tIGNyYXNoIGlzc3VlCiAgICAgLSBmaXggYSBCVUcgaW4gWGVu R1QgSS9PIGVtdWxhdGlvbiBsb2dpYwogICAgIC0gaW1wcm92ZSAzZCB3b3JrbG9hZCBzdGFiaWxp dHkKCk5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEphbiwgMjAxNi4KCgpLbm93biBp c3N1ZXM6CgogICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRv IHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KICAgICAtIEtleW1hcCBtaWdodCBiZSBpbmNvcnJlY3Qg aW4gZ3Vlc3QuIENvbmZpZyBmaWxlIG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSAia2V5 bWFwPSdlbi11cyciLiBBbHRob3VnaCBpdCBsb29rcyBsaWtlIHRoZSBkZWZhdWx0IHZhbHVlLCBl YXJsaWVyIHdlIHNhdyB0aGUgcHJvYmxlbSBvZiB3cm9uZyBrZXltYXAgY29kZSBpZiBpdCBpcyBu b3QgZXhwbGljaXRseSBzZXQuCiAgICAgLSBXaGVuIHVzaW5nIHRocmVlIG1vbml0b3JzLCBkb2lu ZyBob3RwbHVnIGJldHdlZW4gR3Vlc3QgcGF1c2UvdW5wYXVzZSBtYXkgbm90IGJlIGFibGUgdG8g bGlnaHR1cCBhbGwgbW9uaXRvcnMgYXV0b21hdGljYWxseS4gU29tZSBzcGVjaWZpYyBtb25pdG9y IGlzc3Vlcy4KICAgICAtIENhbm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIgc21vb3RobHkgaW4gZ3Vl c3QgYnkgZGVmYXVsdCBsYXVuY2hlZCBieSBWTkMgbW9kZS4gQ29uZmlndXJhdGlvbiBmaWxlIG5l ZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxlIGEgVVNCIGJ1cywgYW5k ICJ1c2JkZXZpY2U9J3RhYmxldCciIHRvIGFkZCBwb2ludGVyIGRldmljZSB1c2luZyBhYnNvbHV0 ZSBjb29yZGluYXRlcy4KICAgICAtIFJlc3VtZSBkb20wIGZyb20gUzMgbWF5IGNhdXNlIHNvbWUg ZXJyb3IgbWVzc2FnZS4KICAgICAtIGk5MTUgdW5sb2FkL3JlbG9hZCBjYW5ub3Qgd29ya3Mgd2Vs bCB3aXRoIGxlc3MgdGhhbiAzIHZjcHUgd2hlbiB1cG93ZXJkIHNlcnZpY2Ugd2FzIHJ1bm5pbmcK ICAgICAtIFVuaWdlbiBUcm9waWNzIHJ1bm5pbmcgaW4gbXVsdGlwbGUgZ3Vlc3RzIHdpbGwgY2F1 c2UgZG9tMCBhbmQgZ3Vlc3RzIHRkci4KCgpQbGVhc2Ugc3Vic2NyaWJlIHRoZSBtYWlsaW5nIGxp c3QgdG8gcmVwb3J0IEJVR3MsIGRpc2N1c3MsIGFuZC9vciBjb250cmlidXRlOgoKICAgICBodHRw czovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwoKCk1vcmUgaW5mb3JtYXRp b24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJl IGZvdW5kIGF0KG1heSBub3QgYmUgdXAtdG8tZGF0ZSk6CgogICAgIGh0dHBzOi8vMDEub3JnL2ln dnQtZwogICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90ZWNobmlj YWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91 bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQt djdfMC5wZGYKICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZl bnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtUkVXUklURSUyMDNSRCUyMHY0LnBk ZgogICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZp cnR1YWxpemF0aW9uLXhlbmd0CgoKTm90ZToKCiAgICBUaGUgWGVuR1QgcHJvamVjdCBzaG91bGQg YmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2ggaXQgaXMgbm90IGEgY29t cGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQgb25lLiBFeHRyYSBjYXJl IHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRv IHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KCgotLQpUaGFua3MsCkppa2UKCk9uIDA3LzA3LzIwMTUg MTA6NDkgQU0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4KPiBXZSdyZSBwbGVhc2VkIHRv IGFubm91bmNlIGEgcHVibGljIHVwZGF0ZSB0byBJbnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlv biBUZWNobm9sb2d5KEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuCj4KPiBJ bnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVk aWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENv cmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1 YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBw ZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBh YmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0 aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRo cywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFu ZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9uIEludGVs IFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKTsgYW5kIHRoZSBjb3JlIGxvZ2ljIGNh biBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVydmlzb3JzLCBmb3IgZXhhbXBsZSwgdGhl IGV4cGVyaW1lbnRhbCBjb2RlIGhhcyBiZWVuIHJlbGVhc2VkIHRvIHN1cHBvcnQgR1ZULWcgcnVu bmluZyBvbiBhIEtWTSBoeXBlcnZpc29yIChhLmsuYSBLVk1HVCkuCj4KPiBUaXAgb2YgcmVwb3Np dG9yaWVzCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gICAgICAgS2VybmVsOiA1Yjcz NjUzZDVjYSwgQnJhbmNoOiBtYXN0ZXItMjAxNVEyLTMuMTguMAo+ICAgICAgIFFlbXU6IDJhNzVi YmZmNjJjMSwgQnJhbmNoOiBtYXN0ZXIKPiAgICAgICBYZW46IDM4YzM2ZjBmNTExYjEsIEJyYW5j aDogbWFzdGVyLTIwMTVRMi00LjUKPgo+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+ICAgICAg IC0gQ2hhbmdlIHRpbWUgYmFzZWQgc2NoZWR1bGVyIHRpbWVyIHRvIGJlIGNvbmZpZ3VyYWJsZSB0 byBlbmhhbmNlIHN0YWJpbGl0eQo+ICAgICAgIC0gRml4IHN0YWJpbGl0eSBpc3N1ZXMgdGhhdCBW TS9Eb20wIGdvdCB0ZHIgd2hlbiBoYW5nIHVwIGF0IHNvbWUgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24g b24gQkRXCj4gICAgICAgLSBPcHRpbWl6ZSB0aGUgZW11bGF0aW9uIG9mIGVsX3N0YXR1cyByZWdp c3RlciB0byBlbmhhbmNlIHN0YWJpbGl0eQo+ICAgICAgIC0gMkQvM0QgcGVyZm9ybWFuY2UgaW4g bGludXggVk1zIGhhcyBiZWVuIGltcHJvdmVkIGFib3V0IDUwJSBvbiBCRFcKPiAgICAgICAtIEZp eCBhYm5vcm1hbCBpZGxlIHBvd2VyIGNvbnN1bXB0aW9uIGlzc3VlIGR1ZSB0byB3cm9uZyBmb3Jj ZXdha2UgcG9saWN5Cj4gICAgICAgLSBGaXggdGRyIGlzc3VlIHdoZW4gcnVubmluZyAyRC8zRC9N ZWRpYSB3b3JrbG9hZHMgaW4gV2luZG93cyBWTXMgc2ltdWx0YW5lb3VzbHkKPiAgICAgICAtIEtW TSBzdXBwb3J0IGlzIHN0aWxsIGluIGEgc2VwYXJhdGUgYnJhbmNoIGFzIHByb3RvdHlwZSB3b3Jr LiBXZSBwbGFuIHRvIGludGVncmF0ZSBLVk0vWGVuIHN1cHBvcnQgdG9nZXRoZXIgaW4gdGhlIGZ1 dHVyZSByZWxlYXNlcwo+ICAgICAgIC0gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkg T2N0LCAyMDE1Cj4KPiBOb3RpY2UgdGhhdCB0aGlzIHJlbGVhc2UgY2FuIHN1cHBvcnQgYm90aCBJ bnRlbCA0dGggZ2VuZXJhdGlvbiBDb3JlIENQVShjb2RlIG5hbWU6IEhhc3dlbGwpIGFuZCBJbnRl bCA1dGggZ2VuZXJhdGlvbiBDb3JlIENQVSAoY29kZSBuYW1lOiBCcm9hZHdlbGwpLCB3aGlsZSB0 aGUgbGltaXRhdGlvbiBvZiB0aGUgbGF0dGVyIGluY2x1ZGU6Cj4gICAgICAgKiAzRCBjb25mb3Jt YW5jZSBtYXkgaGF2ZSBzb21lIGZhaWx1cmUKPiAgICAgICAqIFVuZGVyIGhpZ2ggZGVtYW5kIDNE IHdvcmtsb2Fkcywgc3RhYmlsaXR5IGlzc3VlcyBhcmUgZGV0ZWN0ZWQKPiAgICAgICAqIE11bHRp LW1vbml0b3Igc2NlbmFyaW8gaXMgbm90IGZ1bGx5IHRlc3RlZCwgd2hpbGUgc2luZ2xlIG1vbml0 b3Igb2YgVkdBL0hETUkvRFAvZURQIHNob3VsZCBqdXN0IHdvcmsKPiAgICAgICAqIEhvdHBsdWcg RFAgbWF5IGNhdXNlIGJsYWNrIHNjcmVlbiBldmVuIG9uIG5hdGl2ZSBlbnZpcm9ubWVudAo+Cj4g V2hlcmUgdG8gZ2V0Cj4KPiBrZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1Q cmV2aWV3LWtlcm5lbC5naXQKPiB4ZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1Q cmV2aWV3LXhlbi5naXQKPiBxZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJl dmlldy1xZW11LmdpdAo+Cj4KPiBXZSBoYXZlIGEgbWFpbGluZyBsaXN0IGZvciBHVlQtZyBkZXZl bG9wbWVudCwgYnVnIHJlcG9ydCBhbmQgdGVjaG5pY2FsIGRpc2N1c3Npb246Cj4KPiAgICAgICBo dHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwo+Cj4gTW9yZSBpbmZv cm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBj YW4gYmUgZm91bmQgYXQ6Cj4KPiAgICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVu Y2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4gICAgICAgaHR0 cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMv WGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4gICAgICAgaHR0cHM6Ly8wMS5vcmcveGVuL2Js b2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPgo+Cj4gTm90 ZTogVGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dy ZXNzLiBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBi ZSBjb25zaWRlcmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5n IGFuZCBjb25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4KPgo+ IC0tCj4gVGhhbmtzLAo+IEppa2UKPgo+IE9uIDA0LzEwLzIwMTUgMDk6MjMgUE0sIEppa2UgU29u ZyB3cm90ZToKPj4gSGkgYWxsLAo+Pgo+PiBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNlIGEgcHVi bGljIHVwZGF0ZSB0byBJbnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlvbiBUZWNobm9sb2d5IChJ bnRlbCBHVlQtZywgZm9ybWVybHkga25vd24gYXMgWGVuR1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNv bXBsZXRlIHZHUFUgc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRl ZCB0b2RheSBvbiA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGgg SW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWlu dGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVz b3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2 ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZl bnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxh bmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBU aG91Z2ggd2Ugb25seSBzdXBwb3J0IFhlbiBvbiBJbnRlbCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28g ZmFyLCB0aGUgY29yZSBsb2dpYyBjYW4gYmUgZWFzaWx5IHBvcnRlZCB0byBvdGhlciBoeXBlcnZp c29ycy4KPj4KPj4gVGlwIG9mIHJlcG9zaXRvcmllcwo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+Cj4+ICAgICAgICAgICAgIEtlcm5lbDogYTAxMWM5Zjk1M2UsIEJyYW5jaDogbWFzdGVy LTIwMTVRMS0zLjE4LjAKPj4gICAgICAgICAgICAgUWVtdTogMmE3NWJiZmY2MmMxLCBCcmFuY2g6 IG1hc3Rlcgo+PiAgICAgICAgICAgICBYZW46IDM4YzM2ZjBmNTExYjEsIEJyYW5jaDogbWFzdGVy LTIwMTVRMS00LjUKPj4KPj4gU3VtbWFyeSB0aGlzIHVwZGF0ZQo+PiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4+IAktIFByZWxpbWluYXJ5IEJyb2Fkd2VsbCBzdXBwb3J0Lgo+PiAJLSBrZXJu ZWwgdXBkYXRlIGZyb20gZHJtLWludGVsIDMuMTcuMCB0byBkcm0taW50ZWwgMy4xOC4wKHRhZzog ZHJtLWludGVsLW5leHQtZml4ZXMtMjAxNC0xMi0xNywgbm90aWNlIHRoYXQgaTkxNSBkcml2ZXIg Y29kZSBpcyBtdWNoIG5ld2VyIHRoYW4ga2VybmVsIHN0YWJsZSB2ZXJzaW9uKS4KPj4gCS0gTmV4 dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSnVseSwgMjAxNS4KPj4gCS0gS1ZNIHN1cHBv cnQgaXMgc3RpbGwgaW4gYSBzZXBhcmF0ZSBicmFuY2ggYXMgcHJvdG90eXBlIHdvcmsuIFdlIHBs YW4gdG8gaW50ZWdyYXRlIEtWTS9YZW4gc3VwcG9ydCB0b2dldGhlciBpbiBmdXR1cmUgcmVsZWFz ZXMuCj4+Cj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+PiAJLSBndnQtZyBjb3JlIGxvZ2lj IGNvZGUgd2FzIG1vdmVkIGludG8gaTkxNSBkcml2ZXIgZGlyZWN0b3J5Lgo+PiAJLSBIb3N0IG1l ZGlhdGlvbiBpcyB1c2VkIGZvciBkb20wIGk5MTUgZHJpdmVyIGFjY2VzcywgaW5zdGVhZCBvZiBk ZS1wcml2aWxlZ2VkIGRvbTAuCj4+IAktIFRoZSBYZW4tc3BlY2lmaWMgY29kZSB3YXMgc2VwYXJh dGVkIGZyb20gdmd0IGNvcmUgbG9naWMgaW50byBhIG5ldyBmaWxlICJkcml2ZXIveGVuL3hlbmd0 LmMiLgo+PiAJLSBCcm9hZHdlbGwgaXMgcHJlbGltaW5hcmlseSBzdXBwb3J0ZWQgaW4gdGhpcyBy ZWxlYXNlLiBVc2VycyBjb3VsZCBzdGFydCBtdWx0aXBsZSBsaW51eC93aW5kb3dzIDY0LWJpdCB2 aXJ0dWFsIG1hY2hpbmVzIHNpbXVsdGFuZW91c2x5LCBhbmQgcGVyZm9ybSBkaXNwbGF5IHN3aXRj aCBhbW9uZyB0aGVtLgo+Pgo+PiBOb3RpY2UgdGhhdCBpdCBpcyBzdGlsbCBwcmVsaW1pbmFyeSBy ZWxlYXNlIGZvciBCRFcsIHdoaWNoIGlzIG5vdCB5ZXQgaW4gdGhlIHNhbWUgbGV2ZWwgb2YgSFNX IHJlbGVhc2UuIERpZmZlcmVuY2VzIGluY2x1ZGU6Cj4+ICAgICAgICAgICAgICAgICAgICAqIFBv d2VyL3BlcmZvcm1hbmNlIHR1bmluZyBvbiBCRFcgaXMgbm90IHlldCBkb25lLgo+PiAJICogU3Rh YmlsaXR5IG5lZWRzIHRvIGJlIGltcHJvdmVkLgo+PiAgICAgICAgICAgICAgICAgICAgKiBObyAz Mi1iaXQgZ3Vlc3QgT1Mgc3VwcG9ydC4KPj4gICAgICAgICAgICAgICAgICAgICogTXVsdGktbW9u aXRvciBzY2VuYXJpbyBpcyBub3QgZnVsbHkgdGVzdGVkLCB3aGlsZSBzaW5nbGUgbW9uaXRvciBv ZiBWR0EvSERNSS9EUC9lRFAgc2hvdWxkIGp1c3Qgd29yay4KPj4KPj4KPj4gV2hlcmUgdG8gZ2V0 Ogo+PiAtLS0tLS0tLS0tLS0tLS0tLQo+PiAgICAgICAgICAgICAgICAgICAga2VyZW5sOiBodHRw czovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwuZ2l0Cj4+ICAgICAgICAg ICAgICAgICAgICBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXhl bi5naXQKPj4gICAgICAgICAgICAgICAgICAgIFFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9y Zy9YZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Cj4+IFBsZWFzZSByZWZlciB0byB0aGUgbmV3IHNl dHVwIGd1aWRlLCB3aGljaCBwcm92aWRlcyBzdGVwLXRvLXN0ZXAgZGV0YWlscyBhYm91dCBidWls ZGluZy9jb25maWd1cmluZy9ydW5uaW5nIEludGVsIEdWVC1nOgo+PiAJIGh0dHBzOi8vZ2l0aHVi LmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9iL21hc3Rlci0yMDE1UTEtMy4xOC4w L1hlbkdUX1NldHVwX0d1aWRlXzIwMTVRMS5wZGYKPj4KPj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91 dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUgZm91bmQg YXQ6Cj4+ICAgICAgICAgICAgICAgICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVu Y2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+ICAgICAgICAg ICAgICAgICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRz L2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4gICAgICAgICAgICAg ICAgICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZp cnR1YWxpemF0aW9uLXhlbmd0Cj4+Cj4+IFRoZSBwcmV2aW91cyB1cGRhdGUgY2FuIGJlIGZvdW5k IGhlcmU6Cj4+ICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVz L2h0bWwveGVuLWRldmVsLzIwMTQtMTIvbXNnMDA0NzQuaHRtbAo+Pgo+Pgo+PiBOb3RlCj4+IC0t LS0tLS0tLS0tLS0tLQo+PiAJVGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQg YSB3b3JrIGluIHByb2dyZXNzLCBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qg bm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4sIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRh a2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBYZW5H VCBwcm9qZWN0Lgo+Pgo+Pgo+PiAtLQo+PiBUaGFua3MsCj4+IEppa2UKPj4KPj4gT24gMDEvMDkv MjAxNSAwNDo1MSBQTSwgSmlrZSBTb25nIHdyb3RlOgo+Pj4gSGkgYWxsLAo+Pj4KPj4+ICAgICAg IFdlJ3JlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYSBwdWJsaWMgdXBkYXRlIHRvIEludGVsIEdyYXBo aWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93 biBhcyBYZW5HVCkuIEludGVsIEdWVC1nIGlzIGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRo IG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9u IEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3Jz LiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGgg cGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQu IFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUg YSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0 aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZl YXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVu IG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBi ZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVydmlzb3JzLiAgIFRoZSBYZW5HVCBwcm9qZWN0 IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcywgQXMgc3VjaCBpdCBpcyBu b3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuLCBF eHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEg c3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Cj4+PiBUaGUgbmV3cyBvZiB0aGlz IHVwZGF0ZToKPj4+Cj4+PiAJLSBrZXJuZWwgdXBkYXRlIGZyb20gMy4xNC4xIHRvIGRybS1pbnRl bCAzLjE3LjAuCj4+PiAJLSBXZSBwbGFuIHRvIGludGVncmF0ZSBJbnRlbCBHVlQtZyBhcyBhIGZl YXR1cmUgaW4gaTkxNSBkcml2ZXIuIFRoYXQgZWZmb3J0IGlzIHN0aWxsIHVuZGVyIHJldmlldywg bm90IGluY2x1ZGVkIGluIHRoaXMgdXBkYXRlIHlldC4KPj4+IAktIE5leHQgdXBkYXRlIHdpbGwg YmUgYXJvdW5kIGVhcmx5IEFwciwgMjAxNS4KPj4+Cj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBv ZjoKPj4+Cj4+PiAJLSBJbmNsdWRpbmcgc29tZSBidWcgZml4ZXMgYW5kIHN0YWJpbGl0eSBlbmhh bmNlbWVudC4KPj4+IAktIE1ha2luZyBYZW5HVCBkZXZpY2UgbW9kZWwgdG8gYmUgYXdhcmUgb2Yg QnJvYWR3ZWxsLiBJbiB0aGlzIHZlcnNpb24gQkRXIGlzIG5vdCB5ZXQgZnVuY3Rpb25pbmcuCj4+ PiAJLSBBdmFpbGFibGUgRmVuY2UgcmVnaXN0ZXJzIG51bWJlciBpcyBjaGFuZ2VkIHRvIDMyIGZy b20gMTYgdG8gYWxpZ24gd2l0aCBIU1cgaGFyZHdhcmUuCj4+PiAJLSBOZXcgY2FzY2FkZSBpbnRl cnJ1cHQgZnJhbWV3b3JrIGZvciBzdXBwb3J0aW5nIGludGVycnVwdCB2aXJ0dWFsaXphdGlvbiBv biBib3RoIEhhc3dlbGwgYW5kIEJyb2Fkd2VsbC4KPj4+IAktIEFkZCBiYWNrIHRoZSBnZW1fdmd0 YnVmZmVyLiBUaGUgcHJldmlvdXMgcmVsZWFzZSBkaWQgbm90IGJ1aWxkIHRoYXQgbW9kdWxlIGZv ciAzLjE0IGtlcm5lbC4gSW4gdGhpcyByZWxlYXNlLCB0aGUgbW9kdWxlIGlzIGJhY2sgYW5kIHJl YmFzZWQgdG8gMy4xNy4KPj4+IAktIEVuYWJsZSB0aGUgaXJxIGJhc2VkIGNvbnRleHQgc3dpdGNo IGluIHZndCBkcml2ZXIsIHdoaWNoIHdpbGwgaGVscCByZWR1Y2UgdGhlIGNwdSB1dGlsaXphdGlv biB3aGlsZSBkb2luZyBjb250ZXh0IHN3aXRjaCwgaXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBh bmQgY2FuIGJlIHR1cm4gb2ZmIGJ5IGtlcm5lbCBmbGFnIGlycV9iYXNlZF9jdHhfc3dpdGNoLgo+ Pj4KPj4+Cj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlkZSwgd2hpY2ggcHJv dmlkZXMgc3RlcC10by1zdGVwIGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29uZmlndXJpbmcvcnVu bmluZyBJbnRlbCBHVlQtZzoKPj4+Cj4+PiAJaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdU LVByZXZpZXcta2VybmVsL2Jsb2IvbWFzdGVyL1hlbkdUX1NldHVwX0d1aWRlLnBkZgo+Pj4KPj4+ IFRoZSBuZXcgc291cmNlIGNvZGVzIGFyZSBhdmFpbGFibGUgYXQgdGhlIHVwZGF0ZWQgZ2l0aHVi IHJlcG9zOgo+Pj4KPj4+IAlMaW51eDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVBy ZXZpZXcta2VybmVsLmdpdAo+Pj4gCVhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdU LVByZXZpZXcteGVuLmdpdAo+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5H VC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pgo+Pj4KPj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50 ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0Ogo+ Pj4KPj4+Cj4+PiAJaHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2hu aWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgo+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhm b3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1p dC12N18wLnBkZgo+Pj4gCWh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dy YXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4+Pgo+Pj4KPj4+Cj4+PiBUaGUgcHJldmlvdXMg dXBkYXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4KPj4+Cj4+PiAJaHR0cDovL2xpc3RzLnhlbi5v cmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0xMi9tc2cwMDQ3NC5odG1sCj4+Pgo+Pj4K Pj4+Cj4+PiBBcHByZWNpYXRlIHlvdXIgY29tbWVudHMhCj4+Pgo+Pj4KPj4+Cj4+PiAtLQo+Pj4g VGhhbmtzLAo+Pj4gSmlrZQo+Pj4KPj4+Cj4+PiBPbiAxMi8wNC8yMDE0IDEwOjQ1IEFNLCBKaWtl IFNvbmcgd3JvdGU6Cj4+Pj4gSGkgYWxsLAo+Pj4+Cj4+Pj4gV2UncmUgcGxlYXNlZCB0byBhbm5v dW5jZSBhIHB1YmxpYyByZWxlYXNlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRl Y2hub2xvZ3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdW VC1nIGlzIGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3Vn aCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nl c3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3Rh bmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBj cml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1 bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZp c29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMg YSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNh cGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBH cmFwaGljcyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90 aGVyIGh5cGVydmlzb3JzLgo+Pj4+Cj4+Pj4KPj4+PiBUaGUgbmV3cyBvZiB0aGlzIHVwZGF0ZToK Pj4+Pgo+Pj4+Cj4+Pj4gCS0ga2VybmVsIHVwZGF0ZSBmcm9tIDMuMTEuNiB0byAzLjE0LjEKPj4+ Pgo+Pj4+IAktIFdlIHBsYW4gdG8gaW50ZWdyYXRlIEludGVsIEdWVC1nIGFzIGEgZmVhdHVyZSBp biBpOTE1IGRyaXZlci4gVGhhdCBlZmZvcnQgaXMgc3RpbGwgdW5kZXIgcmV2aWV3LCBub3QgaW5j bHVkZWQgaW4gdGhpcyB1cGRhdGUgeWV0Cj4+Pj4KPj4+PiAJLSBOZXh0IHVwZGF0ZSB3aWxsIGJl IGFyb3VuZCBlYXJseSBKYW4sIDIwMTUKPj4+Pgo+Pj4+Cj4+Pj4gVGhpcyB1cGRhdGUgY29uc2lz dHMgb2Y6Cj4+Pj4KPj4+PiAJLSBXaW5kb3dzIEhWTSBzdXBwb3J0IHdpdGggZHJpdmVyIHZlcnNp b24gMTUuMzMuMzkxMAo+Pj4+Cj4+Pj4gCS0gU3RhYmlsaXR5IGZpeGVzLCBlLmcuIHN0YWJpbGl6 ZSBHUFUsIHRoZSBHUFUgaGFuZyBvY2N1cnJlbmNlIHJhdGUgYmVjb21lcyByYXJlIG5vdwo+Pj4+ Cj4+Pj4gCS0gSGFyZHdhcmUgTWVkaWEgQWNjZWxlcmF0aW9uIGZvciBEZWNvZGluZy9FbmNvZGlu Zy9UcmFuc2NvZGluZywgVkMxLCBIMjY0IGV0Yy4gZm9ybWF0IHN1cHBvcnRpbmcKPj4+Pgo+Pj4+ IAktIERpc3BsYXkgZW5oYW5jZW1lbnRzLCBlLmcuIERQIHR5cGUgaXMgc3VwcG9ydGVkIGZvciB2 aXJ0dWFsIFBPUlQKPj4+Pgo+Pj4+IAktIERpc3BsYXkgcG9ydCBjYXBhYmlsaXR5IHZpcnR1YWxp emF0aW9uOiB3aXRoIHRoaXMgZmVhdHVyZSwgZG9tMCBtYW5hZ2VyIGNvdWxkIGZyZWVseSBhc3Np Z24gdmlydHVhbCBEREkgcG9ydHMgdG8gVk0sIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgd2hldGhl ciB0aGUgY29ycmVzcG9uZGluZyBwaHlzaWNhbCBEREkgcG9ydHMgYXJlIGF2YWlsYWJsZQo+Pj4+ Cj4+Pj4KPj4+Pgo+Pj4+IFBsZWFzZSByZWZlciB0byB0aGUgbmV3IHNldHVwIGd1aWRlLCB3aGlj aCBwcm92aWRlcyBzdGVwLXRvLXN0ZXAgZGV0YWlscyBhYm91dCBidWlsZGluZy9jb25maWd1cmlu Zy9ydW5uaW5nIEludGVsIEdWVC1nOgo+Pj4+Cj4+Pj4KPj4+PiAJaHR0cHM6Ly9naXRodWIuY29t LzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2IvbWFzdGVyL1hlbkdUX1NldHVwX0d1aWRl LnBkZgo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IFRoZSBuZXcgc291cmNlIGNvZGVzIGFyZSBhdmFpbGFi bGUgYXQgdGhlIHVwZGF0ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+Cj4+Pj4KPj4+PiAJTGludXg6IGh0 dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC5naXQKPj4+Pgo+Pj4+ IAlYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXhlbi5naXQKPj4+ Pgo+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1xZW11 LmdpdAo+Pj4+Cj4+Pj4KPj4+PiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGJh Y2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNhbiBiZSBmb3VuZCBhdDoKPj4+Pgo+Pj4+Cj4+ Pj4gCWh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vz c2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pgo+Pj4+IAlodHRwOi8vZXZlbnRzLmxpbnV4Zm91 bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQt djdfMC5wZGYKPj4+Pgo+Pj4+IAlodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAx My9ncmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pj4+Cj4+Pj4KPj4+PiBUaGUgcHJldmlv dXMgdXBkYXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+Cj4+Pj4KPj4+PiAJaHR0cDovL2xpc3Rz Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0wNy9tc2cwMzI0OC5odG1sCj4+ Pj4KPj4+Pgo+Pj4+IEFwcHJlY2lhdGUgeW91ciBjb21tZW50cyEKPj4+Pgo+Pj4+Cj4+Pj4gLS0K Pj4+PiBUaGFua3MsCj4+Pj4gSmlrZQo+Pj4+Cj4+Pj4gT24gMDcvMjUvMjAxNCAwNDozMSBQTSwg SmlrZSBTb25nIHdyb3RlOgo+Pj4+PiBIaSBhbGwsCj4+Pj4+Cj4+Pj4+IFdlJ3JlIHBsZWFzZWQg dG8gYW5ub3VuY2UgYW4gdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRl Y2hub2xvZ3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdW VC1nIGlzIGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3Vn aCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nl c3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3Rh bmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBj cml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1 bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZp c29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMg YSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNh cGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBH cmFwaGljcyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90 aGVyIGh5cGVydmlzb3JzLgo+Pj4+Pgo+Pj4+PiBUaGUgbmV3cyBvZiB0aGlzIHVwZGF0ZToKPj4+ Pj4KPj4+Pj4gCS0gUHJvamVjdCBjb2RlIG5hbWUgaXMgIlhlbkdUIiwgbm93IG9mZmljaWFsIG5h bWUgaXMgSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6YXRpb24gVGVjaG5vbG9neSAoSW50ZWwgR1ZU LWcpCj4+Pj4+IAktIEN1cnJlbnRseSBJbnRlbCBHVlQtZyBzdXBwb3J0cyBJbnRlbCBQcm9jZXNz b3IgR3JhcGhpY3MgYnVpbHQgaW50byA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlIHByb2Nlc3Nv cnMgLSBIYXN3ZWxsIHBsYXRmb3JtCj4+Pj4+IAktIE1vdmluZyBmb3J3YXJkLCBYZW5HVCB3aWxs IGNoYW5nZSB0byBxdWFydGVybHkgcmVsZWFzZSBjYWRlbmNlLiBOZXh0IHVwZGF0ZSB3aWxsIGJl IGFyb3VuZCBlYXJseSBPY3RvYmVyLCAyMDE0Lgo+Pj4+Pgo+Pj4+PiBUaGlzIHVwZGF0ZSBjb25z aXN0cyBvZjoKPj4+Pj4KPj4+Pj4gCS0gU3RhYmlsaXR5IGZpeGVzLCBlLmcuIHN0YWJsZSBEUCBz dXBwb3J0Cj4+Pj4+IAktIERpc3BsYXkgZW5oYW5jZW1lbnRzLCBlLmcuIHZpcnR1YWwgbW9uaXRv ciBzdXBwb3J0LiBVc2VycyBjYW4gZGVmaW5lIGEgdmlydHVhbCBtb25pdG9yIHR5cGUgd2l0aCBj dXN0b21pemVkIEVESUQgZm9yIHZpcnR1YWwgbWFjaGluZXMsIG5vdCBuZWNlc3NhcmlseSB0aGUg c2FtZSBhcyBwaHlzaWNhbCBtb25pdG9ycy4KPj4+Pj4gCS0gSW1wcm92ZWQgc3VwcG9ydCBmb3Ig R1BVIHJlY292ZXJ5Cj4+Pj4+IAktIEV4cGVyaW1lbnRhbCBXaW5kb3dzIEhWTSBzdXBwb3J0LiBU byBkb3dubG9hZCB0aGUgZXhwZXJpbWVudGFsIHZlcnNpb24sIHNlZSBzZXR1cCBndWlkZSBmb3Ig ZGV0YWlscwo+Pj4+PiAJLSBFeHBlcmltZW50YWwgSGFyZHdhcmUgTWVkaWEgQWNjZWxlcmF0aW9u IGZvciBkZWNvZGluZy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gUGxlYXNlIHJlZmVyIHRvIHRoZSBuZXcg c2V0dXAgZ3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3RlcCBkZXRhaWxzIGFib3V0IGJ1 aWxkaW5nL2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6Cj4+Pj4+Cj4+Pj4+IAlodHRw czovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwvYmxvYi9tYXN0ZXIvWGVu R1RfU2V0dXBfR3VpZGUucGRmCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFRoZSBuZXcgc291cmNlIGNvZGVz IGFyZSBhdmFpbGFibGUgYXQgdGhlIHVwZGF0ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+Pgo+Pj4+PiAJ TGludXg6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC5naXQK Pj4+Pj4gCVhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcteGVuLmdp dAo+Pj4+PiAJUWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXctcWVt dS5naXQKPj4+Pj4KPj4+Pj4KPj4+Pj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQt ZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUgZm91bmQgYXQ6Cj4+Pj4+Cj4+ Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNl c3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+IAlodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRh dGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdf MC5wZGYKPj4+Pj4gCWh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBo aWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4+Pj4+Cj4+Pj4+IFRoZSBwcmV2aW91cyB1cGRhdGUg Y2FuIGJlIGZvdW5kIGhlcmU6Cj4+Pj4+Cj4+Pj4+IAlodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNo aXZlcy9odG1sL3hlbi1kZXZlbC8yMDE0LTAyL21zZzAxODQ4Lmh0bWwKPj4+Pj4KPj4+Pj4gQXBw cmVjaWF0ZSB5b3VyIGNvbW1lbnRzIQo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+ Pj4+PiBUaGFua3MsCj4+Pj4+IEppa2UKPj4+Pj4KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK