From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [ANNOUNCE] 2016-Q1 release of KVMGT (Was Re: KVMGT - the implementation of ...) Date: Sat, 16 Apr 2016 14:31:23 +0800 Message-ID: <5711DC3B.9010102@intel.com> References: <547FC5DE.4010701@intel.com> <562F45B4.70004@intel.com> <56A86482.4090009@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 89E4C6E11D for ; Sat, 16 Apr 2016 06:32:35 +0000 (UTC) In-Reply-To: <56A86482.4090009@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kvm@vger.kernel.org, igvt-g@lists.01.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "Cowperthwaite, David J" , "Li, Susie" , "Dong, Eddie" , Zhiyuan Lv , "Downs, Mike" , "Wang, Hongbo" , "Zhou, Chao" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50 ZWwgR1ZULWcgZm9yIEtWTS4KCkludGVsIEdWVC1nIGZvciBLVk0gKGEuay5hLiBLVk1HVCkgaXMg YSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhy b3VnaCwgc3RhcnRpbmcgZnJvbSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNz b3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gIEEgdmlydHVhbCBHUFUgaW5zdGFu Y2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNy aXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVu bmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlz b3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBh IGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2Fw YWJpbGl0eS4KCgpSZXBvc2l0b3JpZXM6CgpLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9y Zy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMS00LjMuMCBicmFuY2gpClFlbXU6IGh0dHBzOi8vZ2l0aHVi LmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICgyMDE2cTEtMi4zLjAgYnJhbmNoKQoKClRoaXMgdXBkYXRl IGNvbnNpc3RzIG9mOgoKLSBLVk1HVCBub3cgaGFzIGJldHRlciBzdXBwb3J0IGZvciA1dGggZ2Vu ZXJhdGlvbiAoQnJvYWR3ZWxsKSBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLCBYZW9uKFIpIEUz IHY0Ci0gQSBuZXcgZmVhdHVyZSwgUUVNVSBjb21wb3NpdG9yIGRpc3BsYXkgaXMgYWRkZWQgdG8g c3VwcG9ydCBkaXNwbGF5IFZNIGluIFFFTVUgd2luZG93LiAodXNlIGk5MTUuZW5hYmxlX3ZndGJ1 ZmZlcj0xIGluIGtlcm5lbCBjb21tYW5kIGxpbmUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZSwgZGlz YWJsZWQgYnkgZGVmYXVsdCwgZGV0YWlscyBwbGVhc2UgcmVmZXIgdG8gdGhlIFNldHVwIEd1aWRl KQotIDJELzNEL01lZGlhIHdvcmtsb2FkcyBjYW4gYmUgcnVuIHNpbXVsdGFuZW91c2x5IGluIG11 bHRpcGxlIGd1ZXN0cy4KLSBTdXBwb3J0IGJvdGggV2luZG93cyBHdWVzdCBhbmQgTGludXggR3Vl c3QoV2luNy0zMiwgV2luNy02NCwgV2luOC4xLTY0LCBVYnVudHUxNC4wNC02NCkKLSBIb3N0IExp bnV4IGtlcm5lbCBoYXMgYmVlbiB1cGdyYWRlZCBmcm9tIDQuMi4wIHRvIDQuMy4wIChiYXNlZCBv biBkcm0taW50ZWwpCi0gS1ZNR1QgaGFzIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIDZ0aCBnZW5l cmF0aW9uIChTa3lsYWtlKSBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLgoKCktub3duIGlzc3Vl czoKCiAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRvIHJ1biBt b3N0IDNEIHdvcmtsb2Fkcy4KICAgLSBPbiBzb21lIHBhcnRpY3VsYXIgcGxhdGZvcm0sIGFzc2ln bmluZyA+MkcgbWVtb3J5IHRvIFZNIHdpbGwgY2F1c2UgTGludXggVk0gZmFpbGVkIHRvIGJvb3Qg dXAgYW5kIFdpbmRvd3MgVk0gZmFpbGVkIHRvIGxvYWQgR0ZYIGRyaXZlci4KICAgLSBVc2luZyBW TEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNlIG1vc2FpYyBvciBzbG93IHJlc3BvbnNlLgog ICAtIFJ1bm5pbmcgaGVhdnkgM0Qgd29ya2xvYWRzIGluIG11bHRpcGxlIGd1ZXN0cyBmb3IgY291 cGxlIG9mIGhvdXJzIG1heSBjYXVzZSBzdGFiaWxpdHkgaXNzdWUuKHVzZSBpOTE1LnByZWVtcHRp b25fcG9saWN5PTMgaW4gaG9zdCBrZXJuZWwgY21kIGxpbmUgY2FuIHdvcmsgYXJvdW5kIHRoaXMg c3RhYmlsaXR5IGlzc3VlKQoKClBsZWFzZSBzdWJzY3JpYmUgdG8gam9pbiB0aGUgbWFpbGluZyBs aXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwoKT2ZmaWNp YWwgaUdWVC1nIHBvcnRhbDogaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCgpNb3JlIGluZm9ybWF0aW9u IGFib3V0IGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSBhbmQgb3RoZXJzIGFib3V0IEludGVsIEdW VC1nLCBjYW4gYmUgZm91bmQgYXQ6CgoKICAgIGh0dHA6Ly93d3cubGludXgta3ZtLm9yZy9pbWFn ZXMvZi9mMy8wMXgwOGItS1ZNR1QtYS5wZGYKICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KCgpUaGUg dXBzdHJlYW1pbmcgZWZmb3J0IG9mIGlHVlQtZyBwcm9qZWN0IGlzIG9uZ29pbmcgZWxzZXdoZXJl LCBub3QgYXMgYSBwYXJ0IG9mIHRoaXMgcmVsZWFzZS4KCgpOb3RlOgoKVGhlIEtWTUdUIHByb2pl Y3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0IGlz IG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4g RXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmluZyBh IHN5c3RlbSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCgoKLS0KVGhhbmtzLApKaWtlCgpPbiAw MS8yNy8yMDE2IDAyOjMyIFBNLCBKaWtlIFNvbmcgd3JvdGU6Cj4gSGkgYWxsLAo+IAo+IFdlIGFy ZSBwbGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIgdXBkYXRlIG9mIEludGVsIEdWVC1nIGZvciBL Vk0uCj4gCj4gSW50ZWwgR1ZULWcgZm9yIEtWTSAoYS5rLmEuIEtWTUdUKSBpcyBhIGZ1bGwgR1BV IHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFy dGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJ bnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiAgQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWlu dGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVz b3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2 ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZl bnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxh bmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5Lgo+ IAo+IFJlcG9zaXRvcmllczoKPiAKPiAJS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcv aWd2dGcta2VybmVsICgyMDE1cTQtNC4yLjAgYnJhbmNoKQo+IAlRZW11OiBodHRwczovL2dpdGh1 Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoa3ZtZ3RfcHVibGljMjAxNXE0IGJyYW5jaCkKPiAKPiBU aGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPiAKPiAJLSBLVk1HVCBub3cgaGFzIGJldHRlciBzdXBw b3J0IGZvciA1dGggZ2VuZXJhdGlvbiAoQnJvYWR3ZWxsKSBJbnRlbCBDb3JlKFRNKSBwcm9jZXNz b3JzLCAyRC8zRC9NZWRpYSB3b3JrbG9hZHMgY2FuIGJlIHJ1biBzaW11bHRhbmVvdXNseSBpbiBt dWx0aXBsZSBndWVzdHMuCj4gCS0gSG9zdCBMaW51eCBrZXJuZWwgaGFzIGJlZW4gdXBncmFkZWQg ZnJvbSAzLjE4LjAgdG8gNC4yLjAgKGJhc2VkIG9uIGRybS1pbnRlbCkKPiAKPiBOZXh0IHVwZGF0 ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBBcHJpbCwgMjAxNi4KPiAKPiBLbm93biBpc3N1ZXM6Cj4g Cj4gCS0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRvIHJ1biBtb3N0 IDNEIHdvcmtsb2Fkcy4KPiAJLSBVc2luZyBWTEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNl IG1vc2FpYyBvciBzbG93IHJlc3BvbnNlLgo+IAktIFJ1bm5pbmcgaGVhdnkgM0Qgd29ya2xvYWRz IGluIG11bHRpcGxlIGd1ZXN0cyBmb3IgY291cGxlIG9mIGhvdXJzIG1heSBjYXVzZSBzdGFiaWxp dHkgaXNzdWUuCj4gCj4gT2ZmaWNpYWwgaUdWVC1nIHBvcnRhbDogaHR0cHM6Ly8wMS5vcmcvaWd2 dC1nCj4gUGxlYXNlIHN1YnNjcmliZSB0aGUgbWFpbGluZyBsaXN0OiBodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwo+IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQg YmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNh biBiZSBmb3VuZCBhdDoKPiAKPiAJaHR0cDovL3d3dy5saW51eC1rdm0ub3JnL2ltYWdlcy9mL2Yz LzAxeDA4Yi1LVk1HVC1hLnBkZgo+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2Uv YXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4gCj4gCj4gTm90ZTog VGhlIEtWTUdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNz LiBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBj b25zaWRlcmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFu ZCBjb25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCj4gCj4gCj4g LS0KPiBUaGFua3MsCj4gSmlrZQo+IAo+IE9uIDEwLzI3LzIwMTUgMDU6MzYgUE0sIEppa2UgU29u ZyB3cm90ZToKPj4gSGkgYWxsLAo+Pgo+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90 aGVyIHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgS1ZNLgo+Pgo+PiBJbnRlbCBHVlQtZyBpcyBh IGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJv dWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3Nv cnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNl IGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0 aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5p bmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29y IGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBn b29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFi aWxpdHkuIEtWTSBpcyBzdXBwb3J0ZWQgYnkgSW50ZWwgR1ZULWcoYS5rLmEuIEtWTUdUKS4KPj4K Pj4KPj4gUmVwb3NpdG9yaWVzCj4+Cj4+ICAgICAgS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20v MDFvcmcvaWd2dGcta2VybmVsICgyMDE1cTMtMy4xOC4wIGJyYW5jaCkKPj4gICAgICBRZW11OiBo dHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoa3ZtZ3RfcHVibGljMjAxNXEzIGJy YW5jaCkKPj4KPj4KPj4gVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4+Cj4+ICAgICAgLSBLVk1H VCBpcyBub3cgbWVyZ2VkIHdpdGggWGVuR1QgaW4gdW5pZmllZCByZXBvc2l0b3JpZXMoa2VybmVs IGFuZCBxZW11KSwgYnV0IGN1cnJlbnRseQo+PiAgICAgICAgZGlmZmVyZW50IGJyYW5jaGVzIGZv ciBxZW11LiAgS1ZNR1QgYW5kIFhlbkdUIHNoYXJlIHNhbWUgaUdWVC1nIGNvcmUgbG9naWMuCj4+ ICAgICAgLSBQUEdUVCBzdXBwb3J0ZWQsIGhlbmNlIHRoZSBXaW5kb3dzIGd1ZXN0IHN1cHBvcnQK Pj4gICAgICAtIEtWTUdUIG5vdyBzdXBwb3J0cyBib3RoIDR0aCBnZW5lcmF0aW9uIChIYXN3ZWxs KSBhbmQgNXRoIGdlbmVyYXRpb24gKEJyb2Fkd2VsbCkgSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29y cwo+PiAgICAgIC0gMkQvM0QvTWVkaWEgZGVjb2RpbmcgaGF2ZSBiZWVuIHZhbGlkYXRlZCBvbiBV YnVudHUgMTQuMDQgYW5kIFdpbmRvd3M3L1dpbmRvd3MgOC4xCj4+Cj4+IE5leHQgdXBkYXRlIHdp bGwgYmUgYXJvdW5kIGVhcmx5IEphbiwgMjAxNi4KPj4KPj4gS25vd24gaXNzdWVzOgo+Pgo+PiAg ICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRvIHJ1biBtb3N0 IDNEIHdvcmtsb2Fkcy4KPj4gICAgICAtIDNEbWFyazA2IHJ1bm5pbmcgaW4gV2luZG93cyBWTSBt YXkgaGF2ZSBzb21lIHN0YWJpbGl0eSBpc3N1ZS4KPj4gICAgICAtIFVzaW5nIFZMQyB0byBwbGF5 IC5vZ2cgZmlsZSBtYXkgY2F1c2UgbW9zYWljIG9yIHNsb3cgcmVzcG9uc2UuCj4+Cj4+Cj4+IFBs ZWFzZSBzdWJzY3JpYmUgdGhlIG1haWxpbmcgbGlzdCB0byByZXBvcnQgQlVHcywgZGlzY3Vzcywg YW5kL29yIGNvbnRyaWJ1dGU6Cj4+Cj4+ICAgICAgaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3Z0LWcKPj4KPj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQt ZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUgZm91bmQgYXQobWF5IG5vdCBi ZSB1cC10by1kYXRlKToKPj4KPj4gICAgICBodHRwczovLzAxLm9yZy9pZ3Z0LWcKPj4gICAgICBo dHRwOi8vd3d3LmxpbnV4LWt2bS5vcmcvaW1hZ2VzL2YvZjMvMDF4MDhiLUtWTUdULWEucGRmCj4+ ICAgICAgaHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1z ZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgo+Pgo+Pgo+PiBOb3RlOgo+Pgo+PiBUaGUgS1ZNR1Qg cHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2gg aXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQg b25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3Vy aW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgS1ZNR1QgcHJvamVjdC4KPj4KPj4KPj4gLS0KPj4gVGhh bmtzLAo+PiBKaWtlCj4+Cj4+IE9uIDEyLzA0LzIwMTQgMTA6MjQgQU0sIEppa2UgU29uZyB3cm90 ZToKPj4+IEhpIGFsbCwKPj4+Cj4+PiAgICBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUg Zmlyc3QgcmVsZWFzZSBvZiBLVk1HVCBwcm9qZWN0LiBLVk1HVCBpcyB0aGUgaW1wbGVtZW50YXRp b24gb2YgSW50ZWwgR1ZULWcgdGVjaG5vbG9neSwgYSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBz b2x1dGlvbi4gVW5kZXIgSW50ZWwgR1ZULWcsIGEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFp bnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJl c291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRp dmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2 ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFs YW5jZSBvZiBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4KPj4+ Cj4+Pgo+Pj4gICAgS1ZNR1QgaXMgc3RpbGwgaW4gdGhlIGVhcmx5IHN0YWdlOgo+Pj4KPj4+ICAg ICAtIEJhc2ljIGZ1bmN0aW9ucyBvZiBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiB3b3JrcywgZ3Vl c3QgY2FuIHNlZSBhIGZ1bGwtZmVhdHVyZWQgdkdQVS4KPj4+ICAgICAgIFdlIHJhbiBzZXZlcmFs IDNEIHdvcmtsb2FkcyBzdWNoIGFzIGxpZ2h0c21hcmssIG5leHVpeiwgdXJiYW50ZXJyb3IgYW5k IHdhcnNvdy4KPj4+Cj4+PiAgICAgLSBPbmx5IExpbnV4IGd1ZXN0IHN1cHBvcnRlZCBzbyBmYXIs IGFuZCBQUEdUVCBtdXN0IGJlIGRpc2FibGVkIGluIGd1ZXN0IHRocm91Z2ggYQo+Pj4gICAgICAg a2VybmVsIHBhcmFtZXRlcihzZWUgUkVBRE1FLmt2bWd0IGluIFFFTVUpLgo+Pj4KPj4+ICAgICAt IFRoaXMgZHJvcCBhbHNvIGluY2x1ZGVzIHNvbWUgWGVuIHNwZWNpZmljIGNoYW5nZXMsIHdoaWNo IHdpbGwgYmUgY2xlYW5lZCB1cCBsYXRlci4KPj4+Cj4+PiAgICAgLSBPdXIgZW5kIGdvYWwgaXMg dG8gdXBzdHJlYW0gYm90aCBYZW5HVCBhbmQgS1ZNR1QsIHdoaWNoIHNoYXJlcyB+OTAlIGxvZ2lj IGZvciB2R1BVCj4+PiAgICAgICBkZXZpY2UgbW9kZWwgKHdpbGwgYmUgcGFydCBvZiBpOTE1IGRy aXZlciksIHdpdGggb25seSBkaWZmZXJlbmNlIGluIGh5cGVydmlzb3IKPj4+ICAgICAgIHNwZWNp ZmljIHNlcnZpY2VzCj4+Pgo+Pj4gICAgIC0gaW5zdWZmaWNpZW50IHRlc3QgY292ZXJhZ2UsIHNv IHBsZWFzZSBiZWFyIHdpdGggc3RhYmlsaXR5IGlzc3VlcyA6KQo+Pj4KPj4+Cj4+Pgo+Pj4gICAg VGhlcmUgYXJlIHRoaW5ncyBuZWVkIHRvIGJlIGltcHJvdmVkLCBlc3AuIHRoZSBLVk0gaW50ZXJm YWNpbmcgcGFydDoKPj4+Cj4+PiAJMQlhIGRvbWlkIHdhcyBhZGRlZCB0byBlYWNoIEtWTUdUIGd1 ZXN0Cj4+Pgo+Pj4gCQlBbiBJRCBpcyBuZWVkZWQgZm9yIGZvcmVncm91bmQgT1Mgc3dpdGNoaW5n LCBlLmcuCj4+Pgo+Pj4gCQkJIyBlY2hvIDxkb21pZD4JPgkvc3lzL2tlcm5lbC92Z3QvY29udHJv bC9mb3JlZ3JvdW5kX3ZtCj4+Pgo+Pj4gCQlkb21pZCAwIGlzIHJlc2VydmVkIGZvciBob3N0IE9T Lgo+Pj4KPj4+Cj4+PiAgICAJMglTUkNVIHdvcmthcm91bmRzLgo+Pj4KPj4+IAkJU29tZSBLVk0g ZnVuY3Rpb25zLCBzdWNoIGFzOgo+Pj4KPj4+IAkJCQlrdm1faW9fYnVzX3JlZ2lzdGVyX2Rldgo+ Pj4gCQkJCWluc3RhbGxfbmV3X21lbXNsb3RzCj4+Pgo+Pj4gCQltdXN0IGJlIGNhbGxlZCAqd2l0 aG91dCogJmt2bS0+c3JjdSByZWFkLWxvY2tlZC4gT3RoZXJ3aXNlIGl0IGhhbmdzLgo+Pj4KPj4+ IAkJSW4gS1ZNR1QsIHdlIG5lZWQgdG8gcmVnaXN0ZXIgYW4gaW9kZXYgb25seSAqYWZ0ZXIqIEJB UiByZWdpc3RlcnMgYXJlCj4+PiAJCXdyaXR0ZW4gYnkgZ3Vlc3QuIFRoYXQgbWVhbnMsIHdlIGFs cmVhZHkgaGF2ZSAma3ZtLT5zcmN1IGhvbGQgLQo+Pj4gCQl0cmFwcGluZy9lbXVsYXRpbmcgUElP KEJBUiByZWdpc3RlcnMpIG1ha2VzIHVzIGluIHN1Y2ggYSBjb25kaXRpb24uCj4+PiAJCVRoYXQg d2lsbCBtYWtlIGt2bV9pb19idXNfcmVnaXN0ZXJfZGV2IGhhbmdzLgo+Pj4KPj4+IAkJQ3VycmVu dGx5IHdlIGhhdmUgdG8gZGlzYWJsZSByY3VfYXNzaWduX3BvaW50ZXIoKSBpbiBzdWNoIGZ1bmN0 aW9ucy4KPj4+Cj4+PiAJCVRoZXNlIHdlcmUgZGlydHkgd29ya2Fyb3VuZHMsIHlvdXIgc3VnZ2Vz dGlvbnMgYXJlIGhpZ2ggd2VsY29tZSEKPj4+Cj4+Pgo+Pj4gCTMJc3lzY2FsbHMgd2VyZSBjYWxs ZWQgdG8gYWNjZXNzICIvZGV2L21lbSIgZnJvbSBrZXJuZWwKPj4+Cj4+PiAJCUFuIGluLWtlcm5l bCBtZW1zbG90IHdhcyBhZGRlZCBmb3IgYXBlcnR1cmUsIGJ1dCB1c2luZyBzeXNjYWxscyBsaWtl Cj4+PiAJCW9wZW4gYW5kIG1tYXAgdG8gb3BlbiBhbmQgYWNjZXNzIHRoZSBjaGFyYWN0ZXIgZGV2 aWNlICIvZGV2L21lbSIsCj4+PiAJCWZvciBwYXNzLXRocm91Z2guCj4+Pgo+Pj4KPj4+Cj4+Pgo+ Pj4gVGhlIHNvdXJjZSBjb2RlcyhrZXJuZWwsIHFlbXUgYXMgd2VsbCBhcyBzZWFiaW9zKSBhcmUg YXZhaWxhYmxlIGF0IGdpdGh1YjoKPj4+Cj4+PiAJZ2l0Oi8vZ2l0aHViLmNvbS8wMW9yZy9LVk1H VC1rZXJuZWwKPj4+IAlnaXQ6Ly9naXRodWIuY29tLzAxb3JnL0tWTUdULXFlbXUKPj4+IAlnaXQ6 Ly9naXRodWIuY29tLzAxb3JnL0tWTUdULXNlYWJpb3MKPj4+Cj4+PiBJbiB0aGUgS1ZNR1QtcWVt dSByZXBvc2l0b3J5LCB0aGVyZSBpcyBhICJSRUFETUUua3ZtZ3QiIHRvIGJlIHJlZmVycmVkLgo+ Pj4KPj4+Cj4+Pgo+Pj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBhbmQgS1ZN R1QgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4KPj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZl cmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+PiAJaHR0 cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMv S1ZNR1QtYSUyMEZ1bGwlMjBHUFUlMjBWaXJ0dWFsaXphdGlvbiUyMFNvbHV0aW9uXzEucGRmCj4+ Pgo+Pj4KPj4+IEFwcHJlY2lhdGUgeW91ciBjb21tZW50cywgQlVHIHJlcG9ydHMsIGFuZCBjb250 cmlidXRpb25zIQo+Pj4KPj4+Cj4+Pgo+Pj4KPj4+IC0tCj4+PiBUaGFua3MsCj4+PiBKaWtlCj4+ PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK