From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: DESIGN v2: CPUID part 3 Date: Mon, 31 Jul 2017 15:49:37 -0400 Message-ID: <20170731194937.GC16772@char.us.oracle.com> References: <1496927527-6218-1-git-send-email-andrew.cooper3@citrix.com> <1499180124-24693-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Joao Martins Cc: Andrew Cooper , Xen-devel List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBKdWwgMDUsIDIwMTcgYXQgMDI6MjI6MDBQTSArMDEwMCwgSm9hbyBNYXJ0aW5zIHdy b3RlOgo+IE9uIDA3LzA1LzIwMTcgMTI6MTYgUE0sIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4gPiBP biAwNS8wNy8xNyAxMDo0NiwgSm9hbyBNYXJ0aW5zIHdyb3RlOgo+ID4+IEhleSBBbmRyZXcsCj4g Pj4KPiA+PiBPbiAwNy8wNC8yMDE3IDAzOjU1IFBNLCBBbmRyZXcgQ29vcGVyIHdyb3RlOgo+ID4+ PiBQcmVzZW50ZWQgaGVyZXdpdGggaXMgdGhlIGEgcGxhbiBmb3IgdGhlIGZpbmFsIHBhcnQgb2Yg Q1BVSUQgd29yaywgd2hpY2gKPiA+Pj4gcHJpbWFyaWx5IGNvdmVycyBiZXR0ZXIgWGVuL1Rvb2xz dGFjayBpbnRlcmFjdGlvbiBmb3IgY29uZmlndXJpbmcgdGhlIGd1ZXN0cwo+ID4+PiBDUFVJRCBw b2xpY3kuCj4gPj4+Cj4gPj4gUmVhbGx5IG5pY2Ugd3JpdGUgdXAsIGEgZmV3IGNvbW1lbnRzIGJl bG93Lgo+ID4+Cj4gPj4+IEEgUERGIHZlcnNpb24gb2YgdGhpcyBkb2N1bWVudCBpcyBhdmFpbGFi bGUgZnJvbToKPiA+Pj4KPiA+Pj4gaHR0cDovL3hlbmJpdHMueGVuLm9yZy9wZW9wbGUvYW5kcmV3 Y29vcC9jcHVpZC1wYXJ0LTMtcmV2Mi5wZGYKPiA+Pj4KPiA+Pj4gQ2hhbmdlcyBmcm9tIHYxOgo+ ID4+PiAgKiBDbGFyaWZpY2F0aW9uIG9mIHRoZSBpbnRlcmFjdGlvbiBvZiBlbXVsYXRlZCBmZWF0 dXJlcwo+ID4+PiAgKiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkaWZmZXJlbmNlIGJldHdl ZW4gbWF4IGFuZCBkZWZhdWx0IGZlYXR1cmVzZXRzLgo+ID4+Pgo+ID4+PiB+QW5kcmV3Cj4gPj4+ Cj4gPj4+IC0tLS0tODwtLS0tLQo+ID4+PiAlIENQVUlEIEhhbmRsaW5nIChwYXJ0IDMpCj4gPj4+ ICUgUmV2aXNpb24gMgo+ID4+Pgo+IAo+IFtzbmlwXQo+IAo+ID4+PiAjIFByb3Bvc2FsCj4gPj4+ Cj4gPj4+IEZpcnN0IGFuZCBmb3JlbW9zdCwgc3BsaXQgdGhlIGN1cnJlbnQgKiptYXhcX3BvbGlj eSoqIG5vdGlvbiBpbnRvIHNlcGFyYXRlCj4gPj4+ICoqbWF4KiogYW5kICoqZGVmYXVsdCoqIHBv bGljaWVzLiAgVGhpcyBhbGxvd3MgZm9yIHRoZSBwcm92aXNpb24gb2YgZmVhdHVyZXMKPiA+Pj4g d2hpY2ggYXJlIHVudXNlZCBieSBkZWZhdWx0LCBidXQgbWF5IGJlIG9wdGVkIGluIHRvLCBib3Ro IGF0IHRoZSBoeXBlcnZpc29yCj4gPj4+IGxldmVsIGFuZCB0aGUgdG9vbHN0YWNrIGxldmVsLgo+ ID4+Pgo+ID4+PiBBdCB0aGUgaHlwZXJ2aXNvciBsZXZlbCwgKiptYXgqKiBjb25zdGl0dXRlcyBh bGwgdGhlIGZlYXR1cmVzIFhlbiBjYW4gdXNlIG9uCj4gPj4+IHRoZSBjdXJyZW50IGhhcmR3YXJl LCB3aGlsZSAqKmRlZmF1bHQqKiBpcyB0aGUgc3Vic2V0IHRoZXJlb2Ygd2hpY2ggYXJlCj4gPj4+ IHN1cHBvcnRlZCBmZWF0dXJlcywgdGhlIGZlYXR1cmVzIHdoaWNoIHRoZSB1c2VyIGhhcyBleHBs aWNpdGx5IG9wdGVkIGluIHRvLAo+ID4+PiBhbmQgZXhjbHVkaW5nIGFueSBmZWF0dXJlcyB0aGUg dXNlciBoYXMgZXhwbGljaXRseSBvcHRlZCBvdXQgb2YuCj4gPj4+Cj4gPj4+IEEgbmV3IGBjcHVp ZD1gIGNvbW1hbmQgbGluZSBvcHRpb24gc2hhbGwgYmUgaW50cm9kdWNlZCwgd2hvc2UgaW50ZXJu YWxzIGFyZQo+ID4+PiBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSBmZWF0dXJlc2V0 IEFCSS4gIFRoaXMgbWVhbnMgdGhhdCBhbGwgZmVhdHVyZXMKPiA+Pj4gYWRkZWQgdG8gYGluY2x1 ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaGAgYXV0b21hdGljYWxseSBnYWluIGNv bW1hbmQKPiA+Pj4gbGluZSBjb250cm9sLiAgKFJGQzogVGhlIHNhbWUgdG9wIGxldmVsIG9wdGlv biBjYW4gcHJvYmFibHkgYmUgdXNlZCBmb3IKPiA+Pj4gbm9uLWZlYXR1cmUgQ1BVSUQgZGF0YSBj b250cm9sLCBhbHRob3VnaCBJIGNhbid0IGN1cnJlbnRseSB0aGluayBvZiBhbnkgY2FzZXMKPiA+ Pj4gd2hlcmUgdGhpcyB3b3VsZCBiZSB1c2VkIEFsc28gZmluZCBhIHNlbnNpYmxlIHdheSB0byBl eHByZXNzICdhdmFpbGFibGUgYnV0Cj4gPj4+IG5vdCB0byBiZSB1c2VkIGJ5IFhlbicsIGFzIHBl ciB0aGUgY3VycmVudCBgc21lcGAgYW5kIGBzbWFwYCBvcHRpb25zLikKPiA+Pj4KPiA+Pj4KPiA+ Pj4gQXQgdGhlIGd1ZXN0IGxldmVsLCB0aGUgKiptYXgqKiBwb2xpY3kgaXMgY29uY2VwdHVhbGx5 IHVuY2hhbmdlZC4gIEl0Cj4gPj4+IGNvbnN0aXR1dGVzIGFsbCB0aGUgZmVhdHVyZXMgWGVuIGlz IHdpbGxpbmcgdG8gb2ZmZXIgdG8gZWFjaCB0eXBlIG9mIGd1ZXN0IG9uCj4gPj4+IHRoZSBjdXJy ZW50IGhhcmR3YXJlIChpbmNsdWRpbmcgZW11bGF0ZWQgZmVhdHVyZXMpLiAgSG93ZXZlciwgaXQg c2hhbGwgaW5zdGVhZAo+ID4+PiBiZSBkZXJpdmVkIGZyb20gWGVuJ3MgKipkZWZhdWx0KiogaG9z dCBwb2xpY3kuICBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0Cj4gPj4+IGV4cGVyaW1lbnRhbCBoeXBl cnZpc29yIGZlYXR1cmVzIG11c3QgYmUgb3B0ZWQgaW4gdG8gYXQgdGhlIFhlbiBsZXZlbCBiZWZv cmUKPiA+Pj4gdGhleSBjYW4gYmUgb3B0ZWQgaW4gdG8gYXQgdGhlIHRvb2xzdGFjayBsZXZlbC4K PiA+Pj4KPiA+Pj4gVGhlIGd1ZXN0cyAqKmRlZmF1bHQqKiBwb2xpY3kgaXMgdGhlbiBkZXJpdmVk IGZyb20gaXRzICoqbWF4KiouICBUaGlzIGlzCj4gPj4+IGJlY2F1c2UgdGhlcmUgYXJlIHNvbWUg ZmVhdHVyZXMgd2hpY2ggc2hvdWxkIGFsd2F5cyBiZSBleHBsaWNpdGx5IG9wdGVkIGluIHRvCj4g Pj4+IGJ5IHRoZSB0b29sc3RhY2ssIHN1Y2ggYXMgZW11bGF0ZWQgZmVhdHVyZXMgd2hpY2ggY29t ZSB3aXRoIGEgc2VjdXJpdHkKPiA+Pj4gdHJhZGUtb2ZmLCBvciBmb3Igbm9uLWFyY2hpdGVjdHVy YWwgZmVhdHVyZXMgd2hpY2ggbWF5IGRpZmZlciBpbgo+ID4+PiBpbXBsZW1lbnRhdGlvbiBpbiBo ZXRlcm9nZW5lb3VzIGVudmlyb25tZW50cy4KPiA+Pj4KPiA+Pj4gQWxsIGdsb2JhbCBwb2xpY2ll cyAoWGVuIGFuZCBndWVzdCwgbWF4IGFuZCBkZWZhdWx0KSBzaGFsbCBiZSBtYWRlIGF2YWlsYWJs ZQo+ID4+PiB0byB0aGUgdG9vbHN0YWNrLCBpbiBhIG1hbm5lciBzaW1pbGFyIHRvIHRoZSBleGlz dGluZwo+ID4+PiBfWEVOXF9TWVNDVExcX2dldFxfY3B1XF9mZWF0dXJlc2V0XyBtZWNoYW5pc20u ICBUaGlzIGFsbG93cyBkZWNpc2lvbnMgdG8gYmUKPiA+Pj4gdGFrZW4gd2hpY2ggaW5jbHVkZSBh bGwgQ1BVSUQgZGF0YSwgbm90IGp1c3QgdGhlIGZlYXR1cmUgYml0bWFwcy4KPiA+Pj4KPiA+Pj4g TmV3IF9YRU5cX0RPTUNUTFxfe2dldCxzZXR9XF9jcHVpZFxfcG9saWN5XyBoeXBlcmNhbGxzIHdp bGwgYmUgaW50cm9kdWNlZCwKPiA+Pj4gd2hpY2ggYWxsb3dzIHRoZSB0b29sc3RhY2sgdG8gcXVl cnkgYW5kIHNldCB0aGUgY3B1aWQgcG9saWN5IGZvciBhIHNwZWNpZmljCj4gPj4+IGRvbWFpbi4g IEl0IHNoYWxsIHN1cGVyc2VkZSBfWEVOXF9ET01DVExcX3NldFxfY3B1aWRfLCBhbmQgc2hhbGwg ZmFpbCBpZiBYZW4KPiA+Pj4gaXMgdW5oYXBweSB3aXRoIGFueSBhc3BlY3Qgb2YgdGhlIHBvbGlj eSBkdXJpbmcgYXVkaXRpbmcuICBUaGlzIHByb3ZpZGVzCj4gPj4+IGZlZWRiYWNrIHRvIHRoZSB1 c2VyIHRoYXQgYSBjaG9zZW4gY29tYmluYXRpb24gd2lsbCBub3Qgd29yaywgcmF0aGVyIHRoYW4g dGhlCj4gPj4+IGd1ZXN0IGJvb3RpbmcgaW4gYW4gdW5leHBlY3RlZCBzdGF0ZS4KPiA+Pj4KPiA+ Pj4gV2hlbiBhIGRvbWFpbiBpcyBpbml0aWFsbHkgY3JlYXRlZCwgdGhlIGFwcHJvcHJpYXRlIGd1 ZXN0cyAqKmRlZmF1bHQqKiBwb2xpY3kKPiA+Pj4gaXMgZHVwbGljYXRlZCBmb3IgdXNlLiAgV2hl biBhdWRpdGluZywgWGVuIHNoYWxsIGF1ZGl0IHRoZSB0b29sc3RhY2tzCj4gPj4+IHJlcXVlc3Rl ZCBwb2xpY3kgYWdhaW5zdCB0aGUgZ3Vlc3RzICoqbWF4KiogcG9saWN5LiAgVGhpcyBhbGxvd3Mg ZXhwZXJpbWVudGFsCj4gPj4+IGZlYXR1cmVzIG9yIG5vbi1taWdyYXRpb24tc2FmZSBmZWF0dXJl cyB0byBiZSBvcHRlZCBpbiB0bywgd2l0aG91dCB0aG9zZQo+ID4+PiBmZWF0dXJlcyBiZWluZyBp bXBvc2VkIHVwb24gYWxsIGd1ZXN0cyBhdXRvbWF0aWNhbGx5Lgo+ID4+Pgo+ID4+PiBBIGd1ZXN0 cyBDUFVJRCBwb2xpY3kgc2hhbGwgYmUgaW1tdXRhYmxlIGFmdGVyIGNvbnN0cnVjdGlvbi4gIFRo aXMgYmV0dGVyCj4gPj4+IG1hdGNoZXMgcmVhbCBoYXJkd2FyZSwgYW5kIHNpbXBsaWZpZXMgdGhl IGxvZ2ljIGluIFhlbiB0byB0cmFuc2xhdGUgcG9saWN5Cj4gPj4+IGFsdGVyYXRpb25zIGludG8g Y29uZmlndXJhdGlvbiBjaGFuZ2VzLgo+ID4+Pgo+ID4+IFRoaXMgYXBwZWFycyB0byBiZSBhIHN1 aXRhYmxlIGFic3RyYWN0aW9uIGV2ZW4gZm9yIGhpZ2hlciBsZXZlbCB0b29sc3RhY2tzCj4gPj4g KGxpYnhsKS4gQXQgbGVhc3QgSSBjYW4gaW1hZ2luZSBsaWJ2aXJ0IGZldGNoaW5nIHRoZSBQVi9I Vk0gbWF4IHBvbGljeSwgYW5kCj4gPj4gY29tcGFyZSB0aGVtIGJldHdlZW4gZGlmZmVyZW50IHNl cnZlcnMgd2hlbiB1c2VyIGNvbXB1dGVzIHRoZSBndWVzdCBjcHUgY29uZmlnCj4gPj4gKHRoZSBu b3JtYWxpemVkIG9uZSkgYW5kIHVzZSB0aGUgY29tbW9uIGRlbm9taW5hdG9yIGFzIHRoZSBndWVz dCBwb2xpY3kuCj4gPj4gUHJvYmFibHkgaGlnaGVyIGxldmVsIHRvb2xzdGFjayBjb3VsZCBldmVu IHVzZSB0aGVzZSBzYWlkIHBvbGljaWVzIGNvbnN0cnVjdHMKPiA+PiBhbmQgYnVpbHQgdGhlIGlk ZWEgb2YgbW9kZWxzIHN1Y2ggdGhhdCB0aGUgdXNlciBjb3VsZCBlYXNpbHkgY2hvb3NlIG9uZSBm b3IgYQo+ID4+IHBvb2wgb2YgaG9zdHMgd2l0aCBkaWZmZXJlbnQgZmFtaWxpZXMuIEJ1dCB0aGUg ZGlzY3Vzc2lvbiBoZXJlIGlzIG1vcmUgZm9jdXNlZAo+ID4+IG9uIHhjIDwtPiBYZW4gc28gSSB3 b24ndCBjbG9iYmVyIGRpc2N1c3Npb24gd2l0aCBsaWJ4bCByZW1hcmtzLgo+ID4gCj4gPiBPbmUg dGhpbmcgSSBoYXZlbid0IGRlY2lkZWQgb24geWV0IGlzIGhvdyB0byByZXByZXNlbnQgdGhlIHBv bGljeSBhdCBhCj4gPiBoaWdoZXIgbGV2ZWwuICBTb21ld2hlcmUgKHByb2JhYmx5IGxpYnhjKSwg SSBhbSBnb2luZyB0byBuZWVkIHRvCj4gPiBpbXBsZW1lbnQgaXNfcG9saWN5X2NvbXBhdGlibGUo YSwgYiksIGFuZCBjYWxjdWxhdGVfY29tcGF0aWJsZV9wb2xpY3koYSwKPiA+IGIsIHJlcyksIHdo aWNoIHdpbGwgZGVmaW5pdGVseSBiZSBuZWVkZWQgYnkgWGFwaSwgYW5kIHdpbGwgcHJvYmFibHkg YmUKPiA+IHVzZWZ1bCB0byBvdGhlciBoaWdoZXIgbGV2ZWwgdG9vbHN0YWNrcy4KPiA+Cj4gSSBo YWQgaW5pdGlhbGx5IGludGVuZGVkIGZvciBsaWJ4bCB0byBrZWVwIHRoaXMgc29ydCBvZiBsb2dp YyB3aGVuIEkgd2FzIGxvb2tpbmcKPiBhdCB0aGUgdG9waWMsIGJ1dCB3aXRoIHRoZSBwcm9ibGVt cyBkZXBpY3RlZCBhYm92ZSwgbGlieGMgaXMgcHJvYmFibHkgYmV0dGVyCj4gc3VpdGVkIHRvIGhh dmUgdGhpcy4KPiAKPiA+Pj4gKFJGQzogRGVjaWRlIGV4YWN0bHkgd2hlcmUgdG8gZml0IHRoaXMu ICBfWEVOXF9ET01DVExcX21heFxfdmNwdXNfIHBlcmhhcHM/KQo+ID4+PiBUaGUgdG9vbHN0YWNr IHNoYWxsIGFsc28gaGF2ZSBhIG1lY2hhbmlzbSB0byBleHBsaWNpdGx5IHNlbGVjdCB0b3BvbG9n eQo+ID4+PiBjb25maWd1cmF0aW9uIGZvciB0aGUgZ3Vlc3QsIHdoaWNoIHByaW1hcmlseSBhZmZl Y3RzIHRoZSB2aXJ0dWFsIEFQSUMgSUQKPiA+Pj4gbGF5b3V0LCBhbmQgaGFzIGEga25vY2sgb24g ZWZmZWN0IGZvciB0aGUgQVBJQyBJRCBvZiB0aGUgdmlydHVhbCBJTy1BUElDLgo+ID4+PiBYZW4n cyBhdWRpdGluZyBzaGFsbCBlbnN1cmUgdGhhdCBndWVzdHMgb2JzZXJ2ZSB2YWx1ZXMgY29uc2lz dGVudCB3aXRoIHRoZQo+ID4+PiBndWFyYW50ZWVzIG1hZGUgYnkgdGhlIHZlbmRvciBtYW51YWxz Lgo+ID4+Pgo+ID4+IFdoeSBjaG9vc2UgbWF4X3ZjcHVzIGRvbWN0bD8KPiA+IAo+ID4gRGVzcGl0 ZSBpdHMgbmFtZSwgdGhlIG1heF92Y3B1cyBoeXBlcmNhbGwgaXMgdGhlIG9uZSB3aGljaCBhbGxv Y2F0ZXMgYWxsCj4gPiB0aGUgdmNwdXMgaW4gdGhlIGh5cGVydmlzb3IuICBJIGRvbid0IHdhbnQg dGhlcmUgdG8gYmUgYW55IG9wcG9ydHVuaXR5Cj4gPiBmb3IgdmNwdXMgdG8gZXhpc3QgYnV0IG5v IHRvcG9sb2d5IGluZm9ybWF0aW9uIHRvIGhhdmUgYmVlbiBwcm92aWRlZC4KPiA+IAo+IC9ub2Rz Cj4gCj4gU28gdGhlbiBkb2luZyB0aGlzIGF0IHZjcHVzIGFsbG9jYXRpb24gd2Ugd291bGQgbmVl ZCB0byBwYXNzIGFuIGFkZGl0aW9uYWwgQ1BVCj4gdG9wb2xvZ3kgYXJndW1lbnQgb24gdGhlIG1h eF92Y3B1cyBoeXBlcmNhbGw/IE90aGVyd2lzZSBpdCdzIHNvcnQgb2YgZ3Vlc3Mgd29yawo+IHdy dCBzb2NrZXRzLCBjb3JlcywgdGhyZWFkcyAuLi4gbm8/CgpBbmRyZXcsIHRob3VnaHRzIG9uIHRo aXMgYW5kIHRoZSBvbmUgYmVsb3c/Cgo+IAo+IFRoZXJlIGNvdWxkIGJlIG90aGVyIHVzZXMgdG9v IG9uIHBhc3NpbmcgdGhpcyBpbmZvIHRvIFhlbiwgc2F5IGUuZy4gdGhlCj4gc2NoZWR1bGVyIGtu b3dpbmcgdGhlIGd1ZXN0IENQVSB0b3BvbG9neSBpdCB3b3VsZCBhbGxvdyBiZXR0ZXIgc2VsZWN0 aW9uIG9mCj4gY29yZStzaWJsaW5nIHBhaXIgc3VjaCB0aGF0IGl0IGNvdWxkIG1hdGNoIGNhY2hl L2NwdSB0b3BvbG9neSBwYXNzZWQgb24gdGhlCj4gZ3Vlc3QgKGZvciB1bnBpbm5lZCBTTVQgZ3Vl c3RzKS4KPiAKPiA+Pgo+ID4+IFdpdGggbXVsdGlwbGUgc29ja2V0cy9ub2RlcyBhbmQgaGF2aW5n IHN1cHBvcnRlZCBleHRlbmRlZCB0b3BvbG9neSBsZWFmIHRoZSBBUElDCj4gPj4gSUQgbGF5b3V0 IHdpbGwgY2hhbmdlIGNvbnNpZGVyYWJseSByZXF1aXJpbmcgZml4dXAgaWYuLi4gc2F5IHdlIHNl dCB2TlVNQSAoSQo+ID4+IGtub3cgbnVtYSBub2RlICE9IHNvY2tldCBzcGVjIHdpc2UsIGJ1dCBv biB0aGUgbWFjaGluZXMgd2UgaGF2ZSBzZWVuIHNvIGZhciwKPiA+PiBpdCdzIGEgMToxIG1hcHBp bmcpLgo+ID4gCj4gPiBBTUQgRmFtMTVoIGFuZCBsYXRlciAobWF5KSBoYXZlIG11bHRpcGxlIE5V TUEgbm9kZXMgcGVyIHNvY2tldCwgd2hpY2gKPiA+IHdpbGwgbmVlZCB0byBiZSBhY2NvdW50ZWQg Zm9yIGluIGhvdyB0aGUgaW5mb3JtYXRpb24gaXMgcmVwcmVzZW50ZWQsCj4gPiBlc3BlY2lhbGx5 IGluIGxlYWYgMHg4MDAwMDAxZS4KPiA+IAo+ID4gSW50ZWwgb24gdGhlIG90aGVyIGhhbmQgKGFz IGZhciBhcyBJIGNhbiB0ZWxsKSwgaGFzIG5vIGludGVyYWN0aW9uCj4gPiBiZXR3ZWVuIE5VTUEg YW5kIHRvcG9sb2d5IGFzIGZhciBhcyBDUFVJRCBpcyBjb25jZXJuZWQuCj4gPgo+IFNvcnJ5LCBJ IHNob3VsZCBwcm9iYWJseSBoYXZlIG1lbnRpb25lZCBlYXJsaWVyIHRoYXQgIm1hY2hpbmVzIHdl IGhhdmUgc2VlbiBzbwo+IGZhciIgd2VyZSBJbnRlbCAtIEkgYW0gYml0IHVuYXdhcmUgb2YgdGhl IEFNRCBhZGRlZCBwb3NzaWJpbGl0aWVzLgo+IAo+ID4+IEFub3RoZXIgcXVlc3Rpb24gc2luY2Ug d2UgYXJlIHNwZWFraW5nIGFib3V0IHRvcG9sb2d5IGlzIHdvdWxkIGJlOiBob3cgZG8gd2UKPiA+ PiBtYWtlIGh2bWxvYWRlciBhd2FyZSBvZiBlYWNoIHRoZSBBUElDX0lEIGxheW91dD8gUmlnaHQg bm93LCBpdCBpcyB0b28gaGFyZGNvZGVkCj4gPj4gMiAqIEFQSUNfSUQgOiggUHJvYmFibHkgYSB4 ZW5zdG9yZSBlbnRyeSAnaHZtbG9hZGVyL2NwdXRvcG9sb2d5LXRocmVhZHMnIGFuZAo+ID4+ICdo dm1sb2FkZXIvY3B1dG9wb2xvZ3ktc29ja2V0cycgKG9yIHVzZSB2bnVtYV90b3BvLm5yX25vZGVz IGZvciB0aGUgbGF0dGVyKT8KPiA+IAo+ID4gQUNQSSB0YWJsZSB3cml0aW5nIGlzIGluIHRoZSB0 b29sc3RhY2sgbm93LCBidXQgZXZlbiBpZiBpdCB3ZXJlbid0LAo+ID4gSFZNTG9hZGVyIHdvdWxk IGhhdmUgdG8gZG8gd2hhdCBhbGwgcmVhbCBmaXJtd2FyZSBuZWVkcyB0byBkbywgYW5kIGxvb2sK PiA+IGF0IENQVUlELgoKSSB0aGluayB0aGUgcmVhbCBoYXJkd2FyZSB3aGVuIGNvbnN0cnVjdGlu ZyBpbnRlcmVzdGluZyB0b3BvbG9naWVzIHVzZXMKcGxhdGZvcm0gc3BlY2lmaWMgTVNScyBvciBv dGhlciBoaWRkZW4gZ2VtcyAobGlrZSBBTUQgTm9ydGhicmlkZ2UpLgoKPiA+IAo+IFJpZ2h0LCBi dXQgdGhlIG1wIHRhYmxlcyAoYW5kIGxhcGljIGlkcykgYXJlIHN0aWxsIGFkanVzdGVkL2NyZWF0 ZWQgYnkgaHZtbG9hZGVyCj4gdW5sZXNzIG9mYyBJIGFtIHJlYWRpbmcgaXQgd3JvbmcuIEJ1dCBh bnlob3cgLSBpZiB5b3UncmUgcGxhbm5pbmcgdG8gYmUgYmFzZWQgb24KCjxub2RzPgoKSSBjYW4n dCBzZWUgaG93IHRoZSBDUFVJRCB3b3VsZCBhbGxvdyB0byBjb25zdHJ1Y3QgdGhlIHByb3BlciBB UElDIE1BRFQgZW50cmllcyBzbyB0aGF0CnRoZSBBUElDIElEcyBtYXRjaCBhcyBvZiByaWdodCBu b3c/CgpVbmxlc3MgaHZtbG9hZGVyIGlzIGNoYW5nZWQgdG8gZG8gZnVsbCBTTVAgYm9vdHVwIChp dCBkb2VzIHRoYXQgbm93IGF0IHNvbWUgcG9pbnQpCmFuZCBlYWNoIENQVSByZXBvcnRzIHRoaXMg aW5mb3JtYXRpb24gYW5kIHRoZXkgYWxsIHVwZGF0ZSB0aGlzIHRhYmxlIGJhc2VkIG9uIHRoZWly CkVBWD0xIENQVUlEIHZhbHVlPwoKPiBDUFVJRCwgdGhhdCBpcyBjZXJ0YWlubHkgbW9yZSBjb3Jy ZWN0IHRoYW4gd2hhdCBJIGhhZCBzdWdnZXN0ZWQgZWFybGllciwgdGhvdWdoCj4gd2l0aCBhIGJp dCBtb3JlIGNpcnVyZ3kgb24gaHZtbG9hZGVyLgo+IAo+ID4+IFRoaXMgYWxsIGJyaW5ncyBtZSB0 byB0aGUgcXVlc3Rpb24gb2YgcGVyaGFwcyBhIHNlcGFyYXRlIGRvbWN0bD8KPiA+IAo+ID4gSSBz cGVjaWZpY2FsbHkgd2FudCB0byBhdm9pZCBoYXZpbmcgYSBzZXBhcmF0ZSBoeXBlcmNhbGwgZm9y IHRoaXMKPiA+IGluZm9ybWF0aW9uLgo+ID4gCj4gT0suCj4gCj4gSm9hbwo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gWGVuLWRldmVsIG1haWxp bmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==