From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [Announcement] 2015-Q4 release of XenGT - a Mediated Graphics Passthrough Solution from Intel Date: Wed, 27 Jan 2016 14:21:07 +0800 Message-ID: <56A861D3.5090007@intel.com> References: <53D215D3.50608@intel.com> <547FCAAD.2060406@intel.com> <54AF967B.3060503@intel.com> <5527CEC4.9080700@intel.com> <559B3E38.1080707@intel.com> <562F4311.9@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 37BE06E1C1 for ; Tue, 26 Jan 2016 22:20:52 -0800 (PST) In-Reply-To: <562F4311.9@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 eSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpLgoK UmVwb3NpdG9yaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCktlcm5lbDogaHR0cHM6Ly9n aXRodWIuY29tLzAxb3JnL2lndnRnLWtlcm5lbCAoMjAxNXE0LTQuMi4wIGJyYW5jaCkKWGVuOiBo dHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGcteGVuICgyMDE1cTQtNC41IGJyYW5jaCkKUWVt dTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKHhlbmd0X3B1YmxpYzIwMTVx NCBicmFuY2gpCgpUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKCgktIDZ0aCBnZW5lcmF0aW9uIElu dGVsIENvcmUgUHJvY2Vzc29yIChjb2RlIG5hbWU6IFNreWxha2UpIGlzIHByZWxpbWluYXJpbHkg c3VwcG9ydGVkIGluIHRoaXMgcmVsZWFzZS4gVXNlcnMgY291bGQgc3RhcnQgcnVuIG11bHRpcGxl IFdpbmRvd3MgLyBMaW51eCB2aXJ0dWFsIG1hY2hpbmVzIHNpbXVsdGFuZW91c2x5LCBhbmQgc3dp dGNoIGRpc3BsYXkgYW1vbmcgdGhlbS4KCS0gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBzdXBwb3J0 IDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUgUHJvY2Vzc29yIChjb2RlIG5hbWU6IEhhc3dlbGwp IGFuZCA1dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlIFByb2Nlc3NvciAoY29kZSBuYW1lOiBCcm9h ZHdlbGwpLgoJLSBLZXJuZWwgdXBkYXRlIGZyb20gZHJtLWludGVsIDMuMTguMCB0byBkcm0taW50 ZWwgNC4yLjAuCgpLbm93biBpc3N1ZXM6CiAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdn ZXN0ZWQgZm9yIGEgVk0gdG8gcnVuIG1vc3QgM0Qgd29ya2xvYWRzLgogICAtIEtleW1hcCBtaWdo dCBiZSBpbmNvcnJlY3QgaW4gZ3Vlc3QuIENvbmZpZyBmaWxlIG1heSBuZWVkIHRvIGV4cGxpY2l0 bHkgc3BlY2lmeSAia2V5bWFwPSdlbi11cyciLiBBbHRob3VnaCBpdCBsb29rcyBsaWtlIHRoZSBk ZWZhdWx0IHZhbHVlLCBlYXJsaWVyIHdlIHNhdyB0aGUgcHJvYmxlbSBvZiB3cm9uZyBrZXltYXAg Y29kZSBpZiBpdCBpcyBub3QgZXhwbGljaXRseSBzZXQuCiAgIC0gQ2Fubm90IG1vdmUgbW91c2Ug cG9pbnRlciBzbW9vdGhseSBpbiBndWVzdCBieSBkZWZhdWx0IGxhdW5jaGVkIGJ5IFZOQyBtb2Rl LiBDb25maWd1cmF0aW9uIGZpbGUgbmVlZCB0byBleHBsaWNpdGx5IHNwZWNpZnkgInVzYj0xIiB0 byBlbmFibGUgYSBVU0IgYnVzLCBhbmQgInVzYmRldmljZT0ndGFibGV0JyIgdG8gYWRkIHBvaW50 ZXIgZGV2aWNlIHVzaW5nIGFic29sdXRlIGNvb3JkaW5hdGVzLgogICAtIFJ1bm5pbmcgaGVhdnkg M0Qgd29ya2xvYWRzIGluIG11bHRpcGxlIGd1ZXN0cyBmb3IgY291cGxlIG9mIGhvdXJzIG1heSBj YXVzZSBzdGFiaWxpdHkgaXNzdWUuCiAgIC0gVGhlcmUgYXJlIHN0aWxsIHN0YWJpbGl0eSBpc3N1 ZXMgb24gU2t5bGFrZQoKCk5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEFwcmlsLCAy MDE2LgoKR1ZULWcgcHJvamVjdCBwb3J0YWw6IGh0dHBzOi8vMDEub3JnL2lndnQtZwpQbGVhc2Ug c3Vic2NyaWJlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3Z0LWcKCgpNb3JlIGluZm9ybWF0aW9uIGFib3V0IGJhY2tncm91bmQsIGFyY2hpdGVj dHVyZSBhbmQgb3RoZXJzIGFib3V0IEludGVsIEdWVC1nLCBjYW4gYmUgZm91bmQgYXQ6CgogICAg aHR0cHM6Ly8wMS5vcmcvaWd2dC1nCiAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVu Y2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCiAgICBodHRwOi8v ZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5H VC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9u Lm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC1SRVdSSVRF JTIwM1JEJTIwdjQucGRmCiAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAx My9ncmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAoKCk5vdGU6IFRoZSBYZW5HVCBwcm9qZWN0 IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBpdCBpcyBu b3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuIEV4 dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBz eXN0ZW0gdG8gdXNlIHRoZSBYZW5HVCBwcm9qZWN0LgoKCi0tClRoYW5rcywKSmlrZQoKT24gMTAv MjcvMjAxNSAwNToyNSBQTSwgSmlrZSBTb25nIHdyb3RlOgo+IEhpIGFsbCwKPiAKPiBXZSBhcmUg cGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVu Lgo+IAo+IEludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gc29sdXRpb24g d2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRoIGdlbmVyYXRpb24g SW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMu IEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBw YXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4g VGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBh IFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRp Y2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVh dHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQg b24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpOyBhbmQgdGhlIGNvcmUg bG9naWMgY2FuIGJlIGVhc2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4gCj4gCj4g UmVwb3NpdG9yaWVzCj4gCj4gICAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9p Z3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJhbmNoKQo+ICAgICAgWGVuOiBodHRwczovL2dp dGh1Yi5jb20vMDFvcmcvaWd2dGcteGVuICgyMDE1cTMtNC41IGJyYW5jaCkKPiAgICAgIFFlbXU6 IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICh4ZW5ndF9wdWJsaWMyMDE1cTMg YnJhbmNoKQo+IAo+IAo+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+IAo+ICAgICAgLSBYZW5H VCBpcyBub3cgbWVyZ2VkIHdpdGggS1ZNR1QgaW4gdW5pZmllZCByZXBvc2l0b3JpZXMoa2VybmVs IGFuZCBxZW11KSwgYnV0IGN1cnJlbnRseQo+ICAgICAgICBkaWZmZXJlbnQgYnJhbmNoZXMgZm9y IHFlbXUuICBYZW5HVCBhbmQgS1ZNR1Qgc2hhcmUgc2FtZSBpR1ZULWcgY29yZSBsb2dpYy4KPiAg ICAgIC0gZml4IHN5c2ZzL2RlYnVnZnMgYWNjZXNzIHNlbGRvbSBjcmFzaCBpc3N1ZQo+ICAgICAg LSBmaXggYSBCVUcgaW4gWGVuR1QgSS9PIGVtdWxhdGlvbiBsb2dpYwo+ICAgICAgLSBpbXByb3Zl IDNkIHdvcmtsb2FkIHN0YWJpbGl0eQo+IAo+IE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVh cmx5IEphbiwgMjAxNi4KPiAKPiAKPiBLbm93biBpc3N1ZXM6Cj4gCj4gICAgICAtIEF0IGxlYXN0 IDJHQiBtZW1vcnkgaXMgc3VnZ2VzdGVkIGZvciBWTSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMu Cj4gICAgICAtIEtleW1hcCBtaWdodCBiZSBpbmNvcnJlY3QgaW4gZ3Vlc3QuIENvbmZpZyBmaWxl IG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSAia2V5bWFwPSdlbi11cyciLiBBbHRob3Vn aCBpdCBsb29rcyBsaWtlIHRoZSBkZWZhdWx0IHZhbHVlLCBlYXJsaWVyIHdlIHNhdyB0aGUgcHJv YmxlbSBvZiB3cm9uZyBrZXltYXAgY29kZSBpZiBpdCBpcyBub3QgZXhwbGljaXRseSBzZXQuCj4g ICAgICAtIFdoZW4gdXNpbmcgdGhyZWUgbW9uaXRvcnMsIGRvaW5nIGhvdHBsdWcgYmV0d2VlbiBH dWVzdCBwYXVzZS91bnBhdXNlIG1heSBub3QgYmUgYWJsZSB0byBsaWdodHVwIGFsbCBtb25pdG9y cyBhdXRvbWF0aWNhbGx5LiBTb21lIHNwZWNpZmljIG1vbml0b3IgaXNzdWVzLgo+ICAgICAgLSBD YW5ub3QgbW92ZSBtb3VzZSBwb2ludGVyIHNtb290aGx5IGluIGd1ZXN0IGJ5IGRlZmF1bHQgbGF1 bmNoZWQgYnkgVk5DIG1vZGUuIENvbmZpZ3VyYXRpb24gZmlsZSBuZWVkIHRvIGV4cGxpY2l0bHkg c3BlY2lmeSAidXNiPTEiIHRvIGVuYWJsZSBhIFVTQiBidXMsIGFuZCAidXNiZGV2aWNlPSd0YWJs ZXQnIiB0byBhZGQgcG9pbnRlciBkZXZpY2UgdXNpbmcgYWJzb2x1dGUgY29vcmRpbmF0ZXMuCj4g ICAgICAtIFJlc3VtZSBkb20wIGZyb20gUzMgbWF5IGNhdXNlIHNvbWUgZXJyb3IgbWVzc2FnZS4K PiAgICAgIC0gaTkxNSB1bmxvYWQvcmVsb2FkIGNhbm5vdCB3b3JrcyB3ZWxsIHdpdGggbGVzcyB0 aGFuIDMgdmNwdSB3aGVuIHVwb3dlcmQgc2VydmljZSB3YXMgcnVubmluZwo+ICAgICAgLSBVbmln ZW4gVHJvcGljcyBydW5uaW5nIGluIG11bHRpcGxlIGd1ZXN0cyB3aWxsIGNhdXNlIGRvbTAgYW5k IGd1ZXN0cyB0ZHIuCj4gCj4gCj4gUGxlYXNlIHN1YnNjcmliZSB0aGUgbWFpbGluZyBsaXN0IHRv IHJlcG9ydCBCVUdzLCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToKPiAKPiAgICAgIGh0dHBz Oi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vaWd2dC1nCj4gCj4gCj4gTW9yZSBpbmZv cm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBj YW4gYmUgZm91bmQgYXQobWF5IG5vdCBiZSB1cC10by1kYXRlKToKPiAKPiAgICAgIGh0dHBzOi8v MDEub3JnL2lndnQtZwo+ICAgICAgaHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJlbmNlL2F0 YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgo+ICAgICAgaHR0cDovL2V2 ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1Qt WGVuJTIwU3VtbWl0LXY3XzAucGRmCj4gICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlv bi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtUkVXUklU RSUyMDNSRCUyMHY0LnBkZgo+ICAgICAgaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4 LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPiAKPiAKPiBOb3RlOgo+IAo+ICAg ICBUaGUgWGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jl c3MuIEFzIHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJl IGNvbnNpZGVyZWQgb25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3Rpbmcg YW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPiAKPiAK PiAtLQo+IFRoYW5rcywKPiBKaWtlCj4gCj4gT24gMDcvMDcvMjAxNSAxMDo0OSBBTSwgSmlrZSBT b25nIHdyb3RlOgo+PiBIaSBhbGwsCj4+Cj4+IFdlJ3JlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYSBw dWJsaWMgdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3ko SW50ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFzIFhlbkdUKS4KPj4KPj4gSW50ZWwgR1ZULWcg aXMgYSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3Mt dGhyb3VnaCwgc3RhcnRpbmcgZnJvbSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9j ZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0 YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2Ug Y3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBy dW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2 aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVz IGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBj YXBhYmlsaXR5LiBYZW4gaXMgY3VycmVudGx5IHN1cHBvcnRlZCBvbiBJbnRlbCBQcm9jZXNzb3Ig R3JhcGhpY3MgKGEuay5hLiBYZW5HVCk7IGFuZCB0aGUgY29yZSBsb2dpYyBjYW4gYmUgZWFzaWx5 IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycywgZm9yIGV4YW1wbGUsIHRoZSBleHBlcmltZW50 YWwgY29kZSBoYXMgYmVlbiByZWxlYXNlZCB0byBzdXBwb3J0IEdWVC1nIHJ1bm5pbmcgb24gYSBL Vk0gaHlwZXJ2aXNvciAoYS5rLmEgS1ZNR1QpLgo+Pgo+PiBUaXAgb2YgcmVwb3NpdG9yaWVzCj4+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4KPj4gICAgICAgS2VybmVsOiA1YjczNjUzZDVj YSwgQnJhbmNoOiBtYXN0ZXItMjAxNVEyLTMuMTguMAo+PiAgICAgICBRZW11OiAyYTc1YmJmZjYy YzEsIEJyYW5jaDogbWFzdGVyCj4+ICAgICAgIFhlbjogMzhjMzZmMGY1MTFiMSwgQnJhbmNoOiBt YXN0ZXItMjAxNVEyLTQuNQo+Pgo+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4gICAgICAg LSBDaGFuZ2UgdGltZSBiYXNlZCBzY2hlZHVsZXIgdGltZXIgdG8gYmUgY29uZmlndXJhYmxlIHRv IGVuaGFuY2Ugc3RhYmlsaXR5Cj4+ICAgICAgIC0gRml4IHN0YWJpbGl0eSBpc3N1ZXMgdGhhdCBW TS9Eb20wIGdvdCB0ZHIgd2hlbiBoYW5nIHVwIGF0IHNvbWUgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24g b24gQkRXCj4+ICAgICAgIC0gT3B0aW1pemUgdGhlIGVtdWxhdGlvbiBvZiBlbF9zdGF0dXMgcmVn aXN0ZXIgdG8gZW5oYW5jZSBzdGFiaWxpdHkKPj4gICAgICAgLSAyRC8zRCBwZXJmb3JtYW5jZSBp biBsaW51eCBWTXMgaGFzIGJlZW4gaW1wcm92ZWQgYWJvdXQgNTAlIG9uIEJEVwo+PiAgICAgICAt IEZpeCBhYm5vcm1hbCBpZGxlIHBvd2VyIGNvbnN1bXB0aW9uIGlzc3VlIGR1ZSB0byB3cm9uZyBm b3JjZXdha2UgcG9saWN5Cj4+ICAgICAgIC0gRml4IHRkciBpc3N1ZSB3aGVuIHJ1bm5pbmcgMkQv M0QvTWVkaWEgd29ya2xvYWRzIGluIFdpbmRvd3MgVk1zIHNpbXVsdGFuZW91c2x5Cj4+ICAgICAg IC0gS1ZNIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBzZXBhcmF0ZSBicmFuY2ggYXMgcHJvdG90eXBl IHdvcmsuIFdlIHBsYW4gdG8gaW50ZWdyYXRlIEtWTS9YZW4gc3VwcG9ydCB0b2dldGhlciBpbiB0 aGUgZnV0dXJlIHJlbGVhc2VzCj4+ICAgICAgIC0gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQg ZWFybHkgT2N0LCAyMDE1Cj4+Cj4+IE5vdGljZSB0aGF0IHRoaXMgcmVsZWFzZSBjYW4gc3VwcG9y dCBib3RoIEludGVsIDR0aCBnZW5lcmF0aW9uIENvcmUgQ1BVKGNvZGUgbmFtZTogSGFzd2VsbCkg YW5kIEludGVsIDV0aCBnZW5lcmF0aW9uIENvcmUgQ1BVIChjb2RlIG5hbWU6IEJyb2Fkd2VsbCks IHdoaWxlIHRoZSBsaW1pdGF0aW9uIG9mIHRoZSBsYXR0ZXIgaW5jbHVkZToKPj4gICAgICAgKiAz RCBjb25mb3JtYW5jZSBtYXkgaGF2ZSBzb21lIGZhaWx1cmUKPj4gICAgICAgKiBVbmRlciBoaWdo IGRlbWFuZCAzRCB3b3JrbG9hZHMsIHN0YWJpbGl0eSBpc3N1ZXMgYXJlIGRldGVjdGVkCj4+ICAg ICAgICogTXVsdGktbW9uaXRvciBzY2VuYXJpbyBpcyBub3QgZnVsbHkgdGVzdGVkLCB3aGlsZSBz aW5nbGUgbW9uaXRvciBvZiBWR0EvSERNSS9EUC9lRFAgc2hvdWxkIGp1c3Qgd29yawo+PiAgICAg ICAqIEhvdHBsdWcgRFAgbWF5IGNhdXNlIGJsYWNrIHNjcmVlbiBldmVuIG9uIG5hdGl2ZSBlbnZp cm9ubWVudAo+Pgo+PiBXaGVyZSB0byBnZXQKPj4KPj4ga2VybmVsOiBodHRwczovL2dpdGh1Yi5j b20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwuZ2l0Cj4+IHhlbjogaHR0cHM6Ly9naXRodWIu Y29tLzAxb3JnL1hlbkdULVByZXZpZXcteGVuLmdpdAo+PiBxZW11OiBodHRwczovL2dpdGh1Yi5j b20vMDFvcmcvWGVuR1QtUHJldmlldy1xZW11LmdpdAo+Pgo+Pgo+PiBXZSBoYXZlIGEgbWFpbGlu ZyBsaXN0IGZvciBHVlQtZyBkZXZlbG9wbWVudCwgYnVnIHJlcG9ydCBhbmQgdGVjaG5pY2FsIGRp c2N1c3Npb246Cj4+Cj4+ICAgICAgIGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGlu Zm8vaWd2dC1nCj4+Cj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dy b3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0Ogo+Pgo+PiAgICAgICBodHRw czovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3By ZXNlbnRhdGlvbi90aWFuCj4+ICAgICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9y Zy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+ PiAgICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12 aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pgo+Pgo+PiBOb3RlOiBUaGUgWGVuR1QgcHJvamVjdCBzaG91 bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2ggaXQgaXMgbm90IGEg Y29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQgb25lLiBFeHRyYSBj YXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVt IHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4KPj4KPj4gLS0KPj4gVGhhbmtzLAo+PiBKaWtl Cj4+Cj4+IE9uIDA0LzEwLzIwMTUgMDk6MjMgUE0sIEppa2UgU29uZyB3cm90ZToKPj4+IEhpIGFs bCwKPj4+Cj4+PiBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNlIGEgcHVibGljIHVwZGF0ZSB0byBJ bnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlvbiBUZWNobm9sb2d5IChJbnRlbCBHVlQtZywgZm9y bWVybHkga25vd24gYXMgWGVuR1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNvbXBsZXRlIHZHUFUgc29s dXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRlZCB0b2RheSBvbiA0dGgg Z2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3Mg cHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNo IFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5 IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2 ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9y bWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZv cm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBUaG91Z2ggd2Ugb25seSBz dXBwb3J0IFhlbiBvbiBJbnRlbCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28gZmFyLCB0aGUgY29yZSBs b2dpYyBjYW4gYmUgZWFzaWx5IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycy4KPj4+Cj4+PiBU aXAgb2YgcmVwb3NpdG9yaWVzCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pgo+Pj4g ICAgICAgICAgICAgS2VybmVsOiBhMDExYzlmOTUzZSwgQnJhbmNoOiBtYXN0ZXItMjAxNVExLTMu MTguMAo+Pj4gICAgICAgICAgICAgUWVtdTogMmE3NWJiZmY2MmMxLCBCcmFuY2g6IG1hc3Rlcgo+ Pj4gICAgICAgICAgICAgWGVuOiAzOGMzNmYwZjUxMWIxLCBCcmFuY2g6IG1hc3Rlci0yMDE1UTEt NC41Cj4+Pgo+Pj4gU3VtbWFyeSB0aGlzIHVwZGF0ZQo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+Pj4gCS0gUHJlbGltaW5hcnkgQnJvYWR3ZWxsIHN1cHBvcnQuCj4+PiAJLSBrZXJuZWwg dXBkYXRlIGZyb20gZHJtLWludGVsIDMuMTcuMCB0byBkcm0taW50ZWwgMy4xOC4wKHRhZzogZHJt LWludGVsLW5leHQtZml4ZXMtMjAxNC0xMi0xNywgbm90aWNlIHRoYXQgaTkxNSBkcml2ZXIgY29k ZSBpcyBtdWNoIG5ld2VyIHRoYW4ga2VybmVsIHN0YWJsZSB2ZXJzaW9uKS4KPj4+IAktIE5leHQg dXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEp1bHksIDIwMTUuCj4+PiAJLSBLVk0gc3VwcG9y dCBpcyBzdGlsbCBpbiBhIHNlcGFyYXRlIGJyYW5jaCBhcyBwcm90b3R5cGUgd29yay4gV2UgcGxh biB0byBpbnRlZ3JhdGUgS1ZNL1hlbiBzdXBwb3J0IHRvZ2V0aGVyIGluIGZ1dHVyZSByZWxlYXNl cy4KPj4+Cj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+IAktIGd2dC1nIGNvcmUgbG9n aWMgY29kZSB3YXMgbW92ZWQgaW50byBpOTE1IGRyaXZlciBkaXJlY3RvcnkuCj4+PiAJLSBIb3N0 IG1lZGlhdGlvbiBpcyB1c2VkIGZvciBkb20wIGk5MTUgZHJpdmVyIGFjY2VzcywgaW5zdGVhZCBv ZiBkZS1wcml2aWxlZ2VkIGRvbTAuCj4+PiAJLSBUaGUgWGVuLXNwZWNpZmljIGNvZGUgd2FzIHNl cGFyYXRlZCBmcm9tIHZndCBjb3JlIGxvZ2ljIGludG8gYSBuZXcgZmlsZSAiZHJpdmVyL3hlbi94 ZW5ndC5jIi4KPj4+IAktIEJyb2Fkd2VsbCBpcyBwcmVsaW1pbmFyaWx5IHN1cHBvcnRlZCBpbiB0 aGlzIHJlbGVhc2UuIFVzZXJzIGNvdWxkIHN0YXJ0IG11bHRpcGxlIGxpbnV4L3dpbmRvd3MgNjQt Yml0IHZpcnR1YWwgbWFjaGluZXMgc2ltdWx0YW5lb3VzbHksIGFuZCBwZXJmb3JtIGRpc3BsYXkg c3dpdGNoIGFtb25nIHRoZW0uCj4+Pgo+Pj4gTm90aWNlIHRoYXQgaXQgaXMgc3RpbGwgcHJlbGlt aW5hcnkgcmVsZWFzZSBmb3IgQkRXLCB3aGljaCBpcyBub3QgeWV0IGluIHRoZSBzYW1lIGxldmVs IG9mIEhTVyByZWxlYXNlLiBEaWZmZXJlbmNlcyBpbmNsdWRlOgo+Pj4gICAgICAgICAgICAgICAg ICAgICogUG93ZXIvcGVyZm9ybWFuY2UgdHVuaW5nIG9uIEJEVyBpcyBub3QgeWV0IGRvbmUuCj4+ PiAJICogU3RhYmlsaXR5IG5lZWRzIHRvIGJlIGltcHJvdmVkLgo+Pj4gICAgICAgICAgICAgICAg ICAgICogTm8gMzItYml0IGd1ZXN0IE9TIHN1cHBvcnQuCj4+PiAgICAgICAgICAgICAgICAgICAg KiBNdWx0aS1tb25pdG9yIHNjZW5hcmlvIGlzIG5vdCBmdWxseSB0ZXN0ZWQsIHdoaWxlIHNpbmds ZSBtb25pdG9yIG9mIFZHQS9IRE1JL0RQL2VEUCBzaG91bGQganVzdCB3b3JrLgo+Pj4KPj4+Cj4+ PiBXaGVyZSB0byBnZXQ6Cj4+PiAtLS0tLS0tLS0tLS0tLS0tLQo+Pj4gICAgICAgICAgICAgICAg ICAgIGtlcmVubDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVs LmdpdAo+Pj4gICAgICAgICAgICAgICAgICAgIFhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3Jn L1hlbkdULVByZXZpZXcteGVuLmdpdAo+Pj4gICAgICAgICAgICAgICAgICAgIFFlbXU6IGh0dHBz Oi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pgo+Pj4gUGxlYXNl IHJlZmVyIHRvIHRoZSBuZXcgc2V0dXAgZ3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3Rl cCBkZXRhaWxzIGFib3V0IGJ1aWxkaW5nL2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6 Cj4+PiAJIGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9i L21hc3Rlci0yMDE1UTEtMy4xOC4wL1hlbkdUX1NldHVwX0d1aWRlXzIwMTVRMS5wZGYKPj4+Cj4+ PiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVj dHVyZSwgZXRjIGNhbiBiZSBmb3VuZCBhdDoKPj4+ICAgICAgICAgICAgICAgICAgICBodHRwczov L3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNl bnRhdGlvbi90aWFuCj4+PiAgICAgICAgICAgICAgICAgICAgaHR0cDovL2V2ZW50cy5saW51eGZv dW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0 LXY3XzAucGRmCj4+PiAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dz L3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Cj4+PiBUaGUg cHJldmlvdXMgdXBkYXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4gICAgICAgICAgICAgICAgICAg aHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0xMi9tc2cw MDQ3NC5odG1sCj4+Pgo+Pj4KPj4+IE5vdGUKPj4+IC0tLS0tLS0tLS0tLS0tLQo+Pj4gCVRoZSBY ZW5HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcywgQXMg c3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lk ZXJlZCBvbmUuLCBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNv bmZpZ3VyaW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Cj4+Pgo+Pj4g LS0KPj4+IFRoYW5rcywKPj4+IEppa2UKPj4+Cj4+PiBPbiAwMS8wOS8yMDE1IDA0OjUxIFBNLCBK aWtlIFNvbmcgd3JvdGU6Cj4+Pj4gSGkgYWxsLAo+Pj4+Cj4+Pj4gICAgICAgV2UncmUgcGxlYXNl ZCB0byBhbm5vdW5jZSBhIHB1YmxpYyB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6 YXRpb24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFzIFhlbkdUKS4g SW50ZWwgR1ZULWcgaXMgYSBjb21wbGV0ZSB2R1BVIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFz cy10aHJvdWdoLCBzdXBwb3J0ZWQgdG9kYXkgb24gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShU TSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4gVGhvdWdoIHdlIG9ubHkgc3VwcG9ydCBYZW4gb24gSW50ZWwgUHJv Y2Vzc29yIEdyYXBoaWNzIHNvIGZhciwgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVhc2lseSBwb3J0 ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuICAgVGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNv bnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLCBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRl IHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4sIEV4dHJhIGNhcmUgc2hv dWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNl IHRoZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Cj4+Pj4gVGhlIG5ld3Mgb2YgdGhpcyB1cGRhdGU6Cj4+ Pj4KPj4+PiAJLSBrZXJuZWwgdXBkYXRlIGZyb20gMy4xNC4xIHRvIGRybS1pbnRlbCAzLjE3LjAu Cj4+Pj4gCS0gV2UgcGxhbiB0byBpbnRlZ3JhdGUgSW50ZWwgR1ZULWcgYXMgYSBmZWF0dXJlIGlu IGk5MTUgZHJpdmVyLiBUaGF0IGVmZm9ydCBpcyBzdGlsbCB1bmRlciByZXZpZXcsIG5vdCBpbmNs dWRlZCBpbiB0aGlzIHVwZGF0ZSB5ZXQuCj4+Pj4gCS0gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91 bmQgZWFybHkgQXByLCAyMDE1Lgo+Pj4+Cj4+Pj4gVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4+ Pj4KPj4+PiAJLSBJbmNsdWRpbmcgc29tZSBidWcgZml4ZXMgYW5kIHN0YWJpbGl0eSBlbmhhbmNl bWVudC4KPj4+PiAJLSBNYWtpbmcgWGVuR1QgZGV2aWNlIG1vZGVsIHRvIGJlIGF3YXJlIG9mIEJy b2Fkd2VsbC4gSW4gdGhpcyB2ZXJzaW9uIEJEVyBpcyBub3QgeWV0IGZ1bmN0aW9uaW5nLgo+Pj4+ IAktIEF2YWlsYWJsZSBGZW5jZSByZWdpc3RlcnMgbnVtYmVyIGlzIGNoYW5nZWQgdG8gMzIgZnJv bSAxNiB0byBhbGlnbiB3aXRoIEhTVyBoYXJkd2FyZS4KPj4+PiAJLSBOZXcgY2FzY2FkZSBpbnRl cnJ1cHQgZnJhbWV3b3JrIGZvciBzdXBwb3J0aW5nIGludGVycnVwdCB2aXJ0dWFsaXphdGlvbiBv biBib3RoIEhhc3dlbGwgYW5kIEJyb2Fkd2VsbC4KPj4+PiAJLSBBZGQgYmFjayB0aGUgZ2VtX3Zn dGJ1ZmZlci4gVGhlIHByZXZpb3VzIHJlbGVhc2UgZGlkIG5vdCBidWlsZCB0aGF0IG1vZHVsZSBm b3IgMy4xNCBrZXJuZWwuIEluIHRoaXMgcmVsZWFzZSwgdGhlIG1vZHVsZSBpcyBiYWNrIGFuZCBy ZWJhc2VkIHRvIDMuMTcuCj4+Pj4gCS0gRW5hYmxlIHRoZSBpcnEgYmFzZWQgY29udGV4dCBzd2l0 Y2ggaW4gdmd0IGRyaXZlciwgd2hpY2ggd2lsbCBoZWxwIHJlZHVjZSB0aGUgY3B1IHV0aWxpemF0 aW9uIHdoaWxlIGRvaW5nIGNvbnRleHQgc3dpdGNoLCBpdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQs IGFuZCBjYW4gYmUgdHVybiBvZmYgYnkga2VybmVsIGZsYWcgaXJxX2Jhc2VkX2N0eF9zd2l0Y2gu Cj4+Pj4KPj4+Pgo+Pj4+IFBsZWFzZSByZWZlciB0byB0aGUgbmV3IHNldHVwIGd1aWRlLCB3aGlj aCBwcm92aWRlcyBzdGVwLXRvLXN0ZXAgZGV0YWlscyBhYm91dCBidWlsZGluZy9jb25maWd1cmlu Zy9ydW5uaW5nIEludGVsIEdWVC1nOgo+Pj4+Cj4+Pj4gCWh0dHBzOi8vZ2l0aHViLmNvbS8wMW9y Zy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9iL21hc3Rlci9YZW5HVF9TZXR1cF9HdWlkZS5wZGYK Pj4+Pgo+Pj4+IFRoZSBuZXcgc291cmNlIGNvZGVzIGFyZSBhdmFpbGFibGUgYXQgdGhlIHVwZGF0 ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+Cj4+Pj4gCUxpbnV4OiBodHRwczovL2dpdGh1Yi5jb20vMDFv cmcvWGVuR1QtUHJldmlldy1rZXJuZWwuZ2l0Cj4+Pj4gCVhlbjogaHR0cHM6Ly9naXRodWIuY29t LzAxb3JnL1hlbkdULVByZXZpZXcteGVuLmdpdAo+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5j b20vMDFvcmcvWGVuR1QtUHJldmlldy1xZW11LmdpdAo+Pj4+Cj4+Pj4KPj4+PiBNb3JlIGluZm9y bWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNh biBiZSBmb3VuZCBhdDoKPj4+Pgo+Pj4+Cj4+Pj4gCWh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+PiAJ aHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlk ZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4gCWh0dHBzOi8vMDEub3JnL3hlbi9i bG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4+Pj4KPj4+ Pgo+Pj4+Cj4+Pj4gVGhlIHByZXZpb3VzIHVwZGF0ZSBjYW4gYmUgZm91bmQgaGVyZToKPj4+Pgo+ Pj4+Cj4+Pj4gCWh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIw MTQtMTIvbXNnMDA0NzQuaHRtbAo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IEFwcHJlY2lhdGUgeW91ciBj b21tZW50cyEKPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiAtLQo+Pj4+IFRoYW5rcywKPj4+PiBKaWtlCj4+ Pj4KPj4+Pgo+Pj4+IE9uIDEyLzA0LzIwMTQgMTA6NDUgQU0sIEppa2UgU29uZyB3cm90ZToKPj4+ Pj4gSGkgYWxsLAo+Pj4+Pgo+Pj4+PiBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNlIGEgcHVibGlj IHJlbGVhc2UgdG8gSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6YXRpb24gVGVjaG5vbG9neSAoSW50 ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFzIFhlbkdUKS4gSW50ZWwgR1ZULWcgaXMgYSBjb21w bGV0ZSB2R1BVIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdXBwb3J0ZWQg dG9kYXkgb24gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIElu dGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRh aW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291 cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUg Z3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50 aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5j ZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gVGhv dWdoIHdlIG9ubHkgc3VwcG9ydCBYZW4gb24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIHNvIGZh ciwgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVhc2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNv cnMuCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFRoZSBuZXdzIG9mIHRoaXMgdXBkYXRlOgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiAJLSBrZXJuZWwgdXBkYXRlIGZyb20gMy4xMS42IHRvIDMuMTQuMQo+Pj4+Pgo+Pj4+ PiAJLSBXZSBwbGFuIHRvIGludGVncmF0ZSBJbnRlbCBHVlQtZyBhcyBhIGZlYXR1cmUgaW4gaTkx NSBkcml2ZXIuIFRoYXQgZWZmb3J0IGlzIHN0aWxsIHVuZGVyIHJldmlldywgbm90IGluY2x1ZGVk IGluIHRoaXMgdXBkYXRlIHlldAo+Pj4+Pgo+Pj4+PiAJLSBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFy b3VuZCBlYXJseSBKYW4sIDIwMTUKPj4+Pj4KPj4+Pj4KPj4+Pj4gVGhpcyB1cGRhdGUgY29uc2lz dHMgb2Y6Cj4+Pj4+Cj4+Pj4+IAktIFdpbmRvd3MgSFZNIHN1cHBvcnQgd2l0aCBkcml2ZXIgdmVy c2lvbiAxNS4zMy4zOTEwCj4+Pj4+Cj4+Pj4+IAktIFN0YWJpbGl0eSBmaXhlcywgZS5nLiBzdGFi aWxpemUgR1BVLCB0aGUgR1BVIGhhbmcgb2NjdXJyZW5jZSByYXRlIGJlY29tZXMgcmFyZSBub3cK Pj4+Pj4KPj4+Pj4gCS0gSGFyZHdhcmUgTWVkaWEgQWNjZWxlcmF0aW9uIGZvciBEZWNvZGluZy9F bmNvZGluZy9UcmFuc2NvZGluZywgVkMxLCBIMjY0IGV0Yy4gZm9ybWF0IHN1cHBvcnRpbmcKPj4+ Pj4KPj4+Pj4gCS0gRGlzcGxheSBlbmhhbmNlbWVudHMsIGUuZy4gRFAgdHlwZSBpcyBzdXBwb3J0 ZWQgZm9yIHZpcnR1YWwgUE9SVAo+Pj4+Pgo+Pj4+PiAJLSBEaXNwbGF5IHBvcnQgY2FwYWJpbGl0 eSB2aXJ0dWFsaXphdGlvbjogd2l0aCB0aGlzIGZlYXR1cmUsIGRvbTAgbWFuYWdlciBjb3VsZCBm cmVlbHkgYXNzaWduIHZpcnR1YWwgRERJIHBvcnRzIHRvIFZNLCBub3QgbmVjZXNzYXJ5IHRvIGNo ZWNrIHdoZXRoZXIgdGhlIGNvcnJlc3BvbmRpbmcgcGh5c2ljYWwgRERJIHBvcnRzIGFyZSBhdmFp bGFibGUKPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4gUGxlYXNlIHJlZmVyIHRvIHRoZSBuZXcgc2V0 dXAgZ3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3RlcCBkZXRhaWxzIGFib3V0IGJ1aWxk aW5nL2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IAlo dHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwvYmxvYi9tYXN0ZXIv WGVuR1RfU2V0dXBfR3VpZGUucGRmCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFRoZSBuZXcgc291 cmNlIGNvZGVzIGFyZSBhdmFpbGFibGUgYXQgdGhlIHVwZGF0ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+ Pgo+Pj4+Pgo+Pj4+PiAJTGludXg6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2 aWV3LWtlcm5lbC5naXQKPj4+Pj4KPj4+Pj4gCVhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3Jn L1hlbkdULVByZXZpZXcteGVuLmdpdAo+Pj4+Pgo+Pj4+PiAJUWVtdTogaHR0cHM6Ly9naXRodWIu Y29tLzAxb3JnL1hlbkdULVByZXZpZXctcWVtdS5naXQKPj4+Pj4KPj4+Pj4KPj4+Pj4gTW9yZSBp bmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0 YyBjYW4gYmUgZm91bmQgYXQ6Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgu b3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFu Cj4+Pj4+Cj4+Pj4+IAlodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZl bnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4KPj4+Pj4g CWh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxp emF0aW9uLXhlbmd0Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFRoZSBwcmV2aW91cyB1cGRhdGUgY2FuIGJl IGZvdW5kIGhlcmU6Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IAlodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNo aXZlcy9odG1sL3hlbi1kZXZlbC8yMDE0LTA3L21zZzAzMjQ4Lmh0bWwKPj4+Pj4KPj4+Pj4KPj4+ Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzIQo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+Pj4+PiBU aGFua3MsCj4+Pj4+IEppa2UKPj4+Pj4KPj4+Pj4gT24gMDcvMjUvMjAxNCAwNDozMSBQTSwgSmlr ZSBTb25nIHdyb3RlOgo+Pj4+Pj4gSGkgYWxsLAo+Pj4+Pj4KPj4+Pj4+IFdlJ3JlIHBsZWFzZWQg dG8gYW5ub3VuY2UgYW4gdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRl Y2hub2xvZ3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdW VC1nIGlzIGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3Vn aCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nl c3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3Rh bmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBj cml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1 bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZp c29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMg YSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNh cGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBH cmFwaGljcyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90 aGVyIGh5cGVydmlzb3JzLgo+Pj4+Pj4KPj4+Pj4+IFRoZSBuZXdzIG9mIHRoaXMgdXBkYXRlOgo+ Pj4+Pj4KPj4+Pj4+IAktIFByb2plY3QgY29kZSBuYW1lIGlzICJYZW5HVCIsIG5vdyBvZmZpY2lh bCBuYW1lIGlzIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3kgKEludGVs IEdWVC1nKQo+Pj4+Pj4gCS0gQ3VycmVudGx5IEludGVsIEdWVC1nIHN1cHBvcnRzIEludGVsIFBy b2Nlc3NvciBHcmFwaGljcyBidWlsdCBpbnRvIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUgcHJv Y2Vzc29ycyAtIEhhc3dlbGwgcGxhdGZvcm0KPj4+Pj4+IAktIE1vdmluZyBmb3J3YXJkLCBYZW5H VCB3aWxsIGNoYW5nZSB0byBxdWFydGVybHkgcmVsZWFzZSBjYWRlbmNlLiBOZXh0IHVwZGF0ZSB3 aWxsIGJlIGFyb3VuZCBlYXJseSBPY3RvYmVyLCAyMDE0Lgo+Pj4+Pj4KPj4+Pj4+IFRoaXMgdXBk YXRlIGNvbnNpc3RzIG9mOgo+Pj4+Pj4KPj4+Pj4+IAktIFN0YWJpbGl0eSBmaXhlcywgZS5nLiBz dGFibGUgRFAgc3VwcG9ydAo+Pj4+Pj4gCS0gRGlzcGxheSBlbmhhbmNlbWVudHMsIGUuZy4gdmly dHVhbCBtb25pdG9yIHN1cHBvcnQuIFVzZXJzIGNhbiBkZWZpbmUgYSB2aXJ0dWFsIG1vbml0b3Ig dHlwZSB3aXRoIGN1c3RvbWl6ZWQgRURJRCBmb3IgdmlydHVhbCBtYWNoaW5lcywgbm90IG5lY2Vz c2FyaWx5IHRoZSBzYW1lIGFzIHBoeXNpY2FsIG1vbml0b3JzLgo+Pj4+Pj4gCS0gSW1wcm92ZWQg c3VwcG9ydCBmb3IgR1BVIHJlY292ZXJ5Cj4+Pj4+PiAJLSBFeHBlcmltZW50YWwgV2luZG93cyBI Vk0gc3VwcG9ydC4gVG8gZG93bmxvYWQgdGhlIGV4cGVyaW1lbnRhbCB2ZXJzaW9uLCBzZWUgc2V0 dXAgZ3VpZGUgZm9yIGRldGFpbHMKPj4+Pj4+IAktIEV4cGVyaW1lbnRhbCBIYXJkd2FyZSBNZWRp YSBBY2NlbGVyYXRpb24gZm9yIGRlY29kaW5nLgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBQbGVhc2Ug cmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlkZSwgd2hpY2ggcHJvdmlkZXMgc3RlcC10by1zdGVw IGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29uZmlndXJpbmcvcnVubmluZyBJbnRlbCBHVlQtZzoK Pj4+Pj4+Cj4+Pj4+PiAJaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2Vy bmVsL2Jsb2IvbWFzdGVyL1hlbkdUX1NldHVwX0d1aWRlLnBkZgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+ PiBUaGUgbmV3IHNvdXJjZSBjb2RlcyBhcmUgYXZhaWxhYmxlIGF0IHRoZSB1cGRhdGVkIGdpdGh1 YiByZXBvczoKPj4+Pj4+Cj4+Pj4+PiAJTGludXg6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9Y ZW5HVC1QcmV2aWV3LWtlcm5lbC5naXQKPj4+Pj4+IAlYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8w MW9yZy9YZW5HVC1QcmV2aWV3LXhlbi5naXQKPj4+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5j b20vMDFvcmcvWGVuR1QtUHJldmlldy1xZW11LmdpdAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBNb3Jl IGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwg ZXRjIGNhbiBiZSBmb3VuZCBhdDoKPj4+Pj4+Cj4+Pj4+PiAJaHR0cHM6Ly93d3cudXNlbml4Lm9y Zy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgo+ Pj4+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmls ZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+Pj4+Pj4gCWh0dHBzOi8vMDEu b3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0 Cj4+Pj4+Pgo+Pj4+Pj4gVGhlIHByZXZpb3VzIHVwZGF0ZSBjYW4gYmUgZm91bmQgaGVyZToKPj4+ Pj4+Cj4+Pj4+PiAJaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwv MjAxNC0wMi9tc2cwMTg0OC5odG1sCj4+Pj4+Pgo+Pj4+Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1l bnRzIQo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IC0tCj4+Pj4+PiBUaGFua3Ms Cj4+Pj4+PiBKaWtlCj4+Pj4+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=