From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: HVMLite / PVHv2 - using x86 EFI boot entry Date: Wed, 13 Apr 2016 14:56:29 -0400 Message-ID: <20160413185629.GA7501@char.us.oracle.com> References: <20160406024027.GX1990@wotan.suse.de> <5704D978.1050101@citrix.com> <20160408204032.GR1990@wotan.suse.de> <570B3228.90400@suse.com> <20160413182951.GW1990@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqPyS-0005gX-Qq for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 18:57:12 +0000 Content-Disposition: inline In-Reply-To: <20160413182951.GW1990@wotan.suse.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Luis R. Rodriguez" Cc: Matt Fleming , Michael Chang , linux-kernel@vger.kernel.org, Julien Grall , Jan Beulich , "H. Peter Anvin" , Daniel Kiper , x86@kernel.org, =?utf-8?Q?Vojt=C4=9Bch_Pavl=C3=ADk?= , Gary Lin , xen-devel@lists.xenproject.org, Jeffrey Cheung , Charles Arndol , Stefano Stabellini , joeyli , Borislav Petkov , Boris Ostrovsky , Juergen Gross , Andrew Cooper , Jim Fehlig , Andy Lutomirski , David Vrabel , Linus Torvalds , Roger Pau =?iso-8859-1?Q?Monn=E9?= List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDg6Mjk6NTFQTSArMDIwMCwgTHVpcyBSLiBSb2RyaWd1 ZXogd3JvdGU6Cj4gT24gTW9uLCBBcHIgMTEsIDIwMTYgYXQgMDc6MTI6MDhBTSArMDIwMCwgSnVl cmdlbiBHcm9zcyB3cm90ZToKPiA+IE9uIDA4LzA0LzE2IDIyOjQwLCBMdWlzIFIuIFJvZHJpZ3Vl eiB3cm90ZToKPiA+ID4gT24gV2VkLCBBcHIgMDYsIDIwMTYgYXQgMTA6NDA6MDhBTSArMDEwMCwg RGF2aWQgVnJhYmVsIHdyb3RlOgo+ID4gPj4gT24gMDYvMDQvMTYgMDM6NDAsIEx1aXMgUi4gUm9k cmlndWV6IHdyb3RlOgo+ID4gPj4+Cj4gPiA+Pj4gICAgICogWW91IGRvbid0IG5lZWQgZnVsbCBF RkkgZW11bGF0aW9uCj4gPiA+Pgo+ID4gPj4gSSB0aGluayBuZWVkaW5nIGFueSBFRkkgZW11bGF0 aW9uIGluc2lkZSBYZW4gKHdoaWNoIGlzIHdoZXJlIGl0IHdvdWxkCj4gPiA+PiBuZWVkIHRvIGJl IGZvciBkb20wKSBpcyBub3Qgc3VpdGFibGUgYmVjYXVzZSBvZiB0aGUgaW5jcmVhc2UgaW4KPiA+ ID4+IGh5cGVydmlzb3IgQUJJLgo+ID4gPiAKPiA+ID4gSXMgdGhpcyBiZWNhdXNlIG9mIHRpbWlu ZyBvbiBhcmNoaXRlY3R1cmUgLyBkZXNpZ24gb2YgSFZNTGl0ZSwgb3IKPiA+ID4gYSBnZW5lcmFs IHBvc2l0aW9uIHRoYXQgdGhlIGNvbXBsZXhpdHkgdG8gZGVhbCB3aXRoIEVGSSBlbXVsYXRpb24K PiA+ID4gaXMgdG9vIG11Y2ggZm9yIFhlbidzIHRhc3RlID8KPiA+IAo+ID4gVGhlIFhlbiBoeXBl cnZpc29yIHNob3VsZCBiZSBhcyBzbWFsbCBhcyBwb3NzaWJsZS4gQWRkaW5nIGFuIEVGSQo+ID4g ZW11bGF0b3Igd2lsbCBiZSBhZGRpbmcgcXVpdGUgc29tZSBjb2RlLiBUaGlzIHNob3VsZCBiZSBk b25lIGFmdGVyIGEKPiA+IHZlcnkgdGhvcm91Z2ggZXZhbHVhdGlvbiBvbmx5Lgo+IAo+IFN1cmUu Cj4gCj4gPiA+IEFSTSBhbHJlYWR5IHdlbnQgdGhlIEVGSSBlbnRyeSB3YXkgZm9yIGRvbVUgLS0g aXQgd2VudCB0aGUgT1ZNRiByb3V0ZSwKPiA+ID4gd291bGQgc3VjaCBhIHBvc3NpYmlsaXR5IGJl IHBvc3NpYmxlIGZvciB4ODYgZG9tVSBIVk1MaXRlID8gSWYgbm90IHdoeQo+ID4gPiBub3QsIEkg bWVhbiBpdCB3b3VsZCBzZWVtIHRvIG1ha2Ugc2Vuc2UgdG8gYXQgbGVhc3QgbWltaWMgdGhlIHNh bWUgdHlwZQo+ID4gPiBvZiBlYXJseSBib290IGVudmlyb25tZW50LCBhbmQgcGVyaGFwcyB0aGVy ZSBhcmUgc29tZSBsZXNzb25zIHRvIGJlCj4gPiA+IGxlYXJuZWQgZnJvbSB0aGF0IGVmZm9ydCB0 b28uCj4gPiAKPiA+IFRoZSBmaW5hbCBzb2x1dGlvbiBtdXN0IGJlIGFwcHJvcHJpYXRlIGZvciBk b20wLCB0b28uIFNvIGRvbid0IHRyeQo+ID4gdG8gbGltaXQgdGhlIGRpc2N1c3Npb24gdG8gZG9t VS4gSWYgZG9tMCBpc24ndCBnb2luZyB0byBiZSBhY2NlcHRhYmxlCj4gPiB0aGVyZSB3aWxsIG5v IG5lZWQgdG8gZGlzY3VzcyBkb21VLgo+IAo+IFVuZGVyc3Rvb2QuIEdlb3JnZSBub3RlZCB0aGF0 IG9uIEFSTSBkb20wIHN0aWxsIHVzZXMgdGhlIEFSTSBuYXRpdmUgZW50cnkKPiBwb2ludCwgaXQg c2VlbXMgdG8gYWNjb21wbGlzaCB0aGlzIGFzIGl0IHVzZXMgYSBkZXZpY2UgdHJlZSBub2RlLiBJ J2xsCj4gY2hpbWUgaW4gb24gdGhhdCBpbiBhbm90aGVyIHRocmVhZC4KPiAKPiA+ID4gQXJlIHRo ZXJlIHNvbWUgbGVzc29ucyB0byBiZSBsZWFybmVkIHdpdGggQVJNJ3MgZWZmb3J0PyBXaGF0IGFy ZSB0aGV5Pwo+ID4gPiBJZiB0aGF0IGNvdWxkIGJlIHJlLWRvbmUgYWdhaW4gd2l0aCBhbnkgdHlw ZSBvZiBjbGVhbmVyIHBhdGgsIHdoYXQKPiA+ID4gY291bGQgdGhhdCBiZSB0aGF0IGNvdWxkIGhl bHAgdGhlIHg4NiBzaWRlID8KPiA+ID4gCj4gPiA+IEFsdGhvdWdoIGVtdWxhdGluZyBFRkkgbWF5 IHJlcXVpcmUgd29yaywgc29tZSBmb2xrcyBoYXZlIHBvaW50ZWQgb3V0Cj4gPiA+IHRoYXQgdGhl IGFtb3VudCBvZiB3b3JrIG1heSBub3QgYmUgdGhhdCBtdWNoLiBJZiB0aGF0IGlzIGRvbmUgY2Fu Cj4gPiA+IHdlIGluc3RlYWQgcmVseSBvbiB0aGUgc2FtZSBjb2RlIHRvIHJlcGxhY2UgT1ZNRiB0 byBzdXBwb3J0IGJvdGgKPiA+ID4gWGVuIEFSTSBhbmQgWGVuIEhWTUxpdGUgb24geDg2ID8gV2hh dCB3b3VsZCBiZSB0aGUgcHJvcyAvIGNvbnMgb2YKPiA+ID4gdGhpcyA/Cj4gPiA+IAo+ID4gPj4g SSBhbHNvIHN0aWxsIGRvIG5vdCB1bmRlcnN0YW5kIHlvdXIgb2JqZWN0aW9uIHRvIHRoZSBjdXJy ZW50IHRpbnkgc3R1Yi4KPiA+ID4gCj4gPiA+IEl0cyBtb3JlIG9mIGEgaHlwb3RoZXRpY2FsIC0t IGNhbiBhbiBFRkkgZW50cnkgYmUgdXNlZCBpbnN0ZWFkIGdpdmVuCj4gPiA+IGl0IGFscmVhZHkg ZG9lcyBleGFjdGx5IHdoYXQgdGhlIG5ldyBzbWFsbCBlbnRyeSBkb2VzID8gSXRzIGFsc28gcmF0 aGVyCj4gPiA+IG9kZCB0byBhZGQgYSBuZXcgZW50cnkgd2l0aG91dCBldmFsdWF0aW5nIGZ1bGx5 IGEgcG9zc2libGUgYWx0ZXJuYXRpdmUKPiA+ID4gdGhhdCB3b3VsZCBwcm92aWRlIHRoZSBzYW1l IGV4YWN0IG1lY2hhbmlzbS4KPiA+IAo+ID4gVGhlIGludGVyZmFjZSBpc24ndCB0aGUgbmV3IGVu dHJ5IG9ubHkuIEl0IHNob3VsZCBiZSBldmFsdWF0ZWQgaG93IG11Y2gKPiA+IG9mIHRoZSBlYXJs eSBFRkkgYm9vdCBwYXRoIHdvdWxkIGJlIGNvbW1vbiB0byB0aGUgSFZNbGl0ZSBvbmUuCj4gCj4g V2UgYWxzbyBoYXZlIG90aGVyIGFzbSBjb2RlIHdoaWNoIGNhbiBiZSBzaGFyZWQuIEknbGwgcmVw bHkgdG8gQm9yaXMnCj4gb3JpZ2luYWwgZS1tYWlsIHdpdGggd2hhdCBJIGNhbiBpZGVudGlmeSBh cyBwZXJoYXBzIHNoYXJhYmxlLiBUaGVyZSBpcwo+IG9idmlvdXNseSBtb3JlIGFzIHlvdSBhbGx1 ZGUuCj4gCj4gPiBXaGF0IHdvdWxkIGJlIGdhaW5lZCBieSB1c2luZyB0aGUgc2FtZSBlbnRyeSBi dXQgaGF2aW5nIHR3byBkaWZmZXJlbnQgYm9vdAo+ID4gcGF0aHMgYWZ0ZXIgaXQ/Cj4gCj4gSXRz IGEgZ29vZCBxdWVzdGlvbi4gSW4gc3VtbWFyeSBmb3IgbWUgaXQgd291bGQgYmUgdGhlIHB1c2gg Zm9yIHNoYXJpbmcgbW9yZQo+IGNvZGUgYW5kIHRoZSBwdXNoIGZvciBzZW1hbnRpY3Mgb24gZWFy bHkgYm9vdCB0byBhZGRyZXNzIGRpZmZlcmVuY2VzCj4gcHJvYWN0aXZlbHksIGFuZCB1bHRpbWF0 ZWx5IGl0IG1heSBlbmFibGUgdXMgdG8gaGVscCBicmluZyBjbG9zZXIgdGhlIG9sZCBQVgo+IGJv b3QgcGF0aCBjbG9zZXIuCgpCdXQgd2h5PyBXZSB3YW50IHRvIGtpbGwgUFYgKGV2ZW50dWFsbHkp Lgo+IAo+IEknbGwgZWxhYm9yYXRlIG9uIHRoaXMgYnV0IGZpcnN0IGxldCdzIGNsYXJpZnkgd2h5 IGEgbmV3IGVudHJ5IGlzIHVzZWQgZm9yCj4gSFZNbGl0ZSB0byBzdGFydCBvZiB3aXRoOgo+IAo+ ICAgMSkgWGVuIEFCSSBoYXMgaGlzdG9yaWNhbGx5IG5vdCB3YW50ZWQgdG8gc2V0IHVwIHRoZSBi b290IHBhcmFtcyBmb3IgTGludXgKPiAgICAgIGd1ZXN0cywgaW5zdGVhZCBpdCBpbnNpc3RzIG9u IGxldHRpbmcgdGhlIExpbnV4IGtlcm5lbCBYZW4gYm9vdCBzdHVicyBmaWxsCj4gICAgICB0aGF0 IG91dCBmb3IgaXQuIFRoaXMgc3RpY2tpbmcgcG9pbnQgbWVhbnMgaXQgaGFzIGltcGxpY2F0ZWQg YSBib290IHN0dWIuCgoKV2hpY2ggaXMgYi9jIGl0IGhhcyB0byBiZSBPUyBhZ25vc3RpYy4gSXQg aGFzIG5vdGhpbmcgdG8gZG8gJ25vdCB3YW50aW5nJy4KCj4gICAgICBUaGUgSFZNTGl0ZSBib290 IGVudHJ5IHRyaWVzIHRvIGJyaW5nIHRoZSBib290IGVudHJpZXMgcGF0aHMgY2xvc2VyIGFzIGl0 Cj4gICAgICBsZXZlcmFnZXMgbW9yZSBvZiB0aGUgSFZNIGJvb3QgcGF0aCBwaGlsb3NvcGh5IHRv IG1pbWljIHRoZSByZWd1bGFyIFBDIGJvb3QKPiAgICAgIHBhdGguCj4gCj4gICAgICBJcyBIVk1M aXRlIHN1cHBvc2VkIHRvIHN1cHBvcnQgbGVnYWN5IFBWIGd1ZXN0cyBhcyB3ZWxsIEJUVyA/CgpH b3NoIG5vLgo+IAo+ICAgICAgUmVhc29uIEknbSBoaWdobGlnaHRpbmcgWGVuIEFCSSBhcyBhICpy ZWFzb24qIGFsb25lIGlzIHRoYXQgZXZlbiB3aXRoCj4gICAgICB0b2RheSdzIGxhcmdlIGRpc2Ny ZXBhbmN5IG9uIHRoZSBvbGQgUFYgYm9vdCBwYXRoIEkgYmVsaWV2ZSB3ZSBjYW4KPiAgICAgIGJy aW5nIHRvZ2V0aGVyIHRoZSBib290IHBhdGhzIGNsb3NlciB0b2dldGhlciBpZiB0aGUgWGVuIEFC SSB3YXMgc2xpZ2h0bHkKPiAgICAgIGZsZXhpYmxlIGFib3V0IHRoaXMsIEkndmUgaGlnaGxpZ2h0 ZWQgaG93IEkgYmVsaWV2ZSB0aGF0IGlzIHBvc3NpYmxlIGJlZm9yZSwKCjxydW5zIGF3YXkgc2Ny ZWFtaW5nPgoKPiAgICAgICppZmYqIHRoZSBYZW4gQUJJIHdvdWxkIGF0IHRoZSB2ZXJ5IGxlYXN0 IHNldCAyIHRoaW5ncyBvbmx5Ogo+IAo+ICAgICAgYSkgSHlwZXJ2aXNvciB0eXBlCj4gICAgICBi KSBBIGN1c3RvbSBkYXRhIHBvaW50ZXIKPiAKPiAgICAgIFRoaXMgd291bGQgZW5hYmxlIGEgc2lu Z2xlIGJvb3QgZW50cnkgb24gdGhlIGd1ZXN0IHRvIGhhbmRsZSB0aGVuOgo+IAo+IAlQc2V1ZG8g Y29kZToKPiAKPiAJc3RhcnR1cF8zMigpICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0dXBf NjQoKQo+IAkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gCSAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiAJICAgICAgIFYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+IAlwcmVfaHlwZXJ2aXNvcl9zdHViXzMy KCkgICAgICAgIHByZV9oeXBlcnZpc29yX3N0dWJfNjQoKQo+IAkgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cj4gCSAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKPiAJICAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVgo+IAkgW2V4aXN0aW5nIHN0YXJ0dXBfMzIoKV0gICAgICAgW2V4aXN0aW5nIHN0YXJ0dXBf NjQoKV0KPiAJICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IAkg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gCSAgICAgICBWICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYKPiAJcG9zdF9oeXBlcnZpc29yX3N0dWJf MzIoKSAgICAgICBwb3N0X2h5cGVydmlzb3Jfc3R1Yl82NCgpCj4gCj4gICAgICAKPiAgICAgIElm IHRoZSBYZW4gQUJJIHdhcyBmbGV4aWJsZSBhYm91dCBzZXR0aW5nIGEgaHlwZXJ2aXNvciB0eXBl IGFuZCBjdXN0b20KPiAgICAgIGRhdGEgcG9pbnRlciB0aGVuIHdlIHdvdWxkIGhhdmVuIGhhbmRs ZXJzIGZvciBpdCwgYW5kIGluIGl0LCBpdCBjYW4KPiAgICAgIGRvIHdoYXRldmVyIGl0IHRoaW5r cyBpcyBuZWVkZWQgZm9yIGl0cyBvd24gZ3Vlc3QgdHlwZXMuIEl0IGNvdWxkCj4gICAgICBhbHNv IGNvbnRpbnVlIHRvIHNldCB0aGUgemVybyBwYWdlIG9uIGl0cyBvd24gYXMgaXQgc2VlcyBmaXQu Cj4gCj4gICAgICBBZ2Fpbiwgbm90ZSB0aGF0IGlmIHRoaXMgaXMgZG9uZSBpdCBjb3VsZCBhbHNv IG1lYW4gZXZlbiBicmluZ2luZyB0b2dldGhlcgo+ICAgICAgdGhlIG9sZCBQViBib290IHBhdGgg Y2xvc2VyIHRvZ2V0aGVyLi4uIHNvIHRoaXMgaXMgbm90IGp1c3QgYSBwcm9zcGVjdAo+ICAgICAg Zm9yIEhWTUxpdGUgYnV0IGFsc28gZm9yIG9sZCBQViBndWVzdHMuCj4gCj4gICAyKSBCZWNhdXNl IG9mIDEpIGl0IGhhcyBtZWFudCB3ZSBoYXZlIG5vIGZvcm1hbCBzZW1hbnRpY3MgZm9yIGVhcmx5 IGJvb3QKPiAgICAgIGNvZGUgaXMgYXZhaWxhYmxlIGFuZCBzbyBzZXZlcmUgZGlmZmVyZW5jZXMg Y2FuIGJlc3QgYmUgYWRkcmVzc2VkIGFsc28KPiAgICAgIGJ5IHlldCBhbm90aGVyIGJvb3QgZW50 cnkuIFRoaXMgaGFzIG1lYW50IG9mdGVuIHRpbWVzIG5vdCBhZGRyZXNzaW5nCgpUaGVyZSBhcmUg c2VtYW50aWNzIHdyaXR0ZW4gZm9yIHRoaXMgbmV3IGNvZGU6IGh0dHA6Ly94ZW5iaXRzLnhlbi5v cmcvZG9jcy91bnN0YWJsZS9taXNjL2h2bWxpdGUuaHRtbAoKQWxsIG90aGVyIG9uZXMgcmVsYXRl ZCB0byBsb3ctbGV2ZWwgb3BlcmF0aW9ucyBhcmUgZGVzY3JpYmVkIGluIEludGVsIFNETS4KCgo+ ICAgICAgb3Igbm90IGtub3dpbmcgaWYgd2UndmUgYWRkcmVzc2VkIHJlYWwgZGlmZmVyZW5jZXMg YmV0d2VlbiB0aGUgZGlmZmVyZW50Cj4gICAgICBlbnRyaWVzLiBDYXNlIGluIHBvaW50LCBkZWFk IGNvZGUgWzBdLiBIb3cgZG8gd2Uga25vdyB3ZSB3aWxsIG5vdCBydW4KPiAgICAgIGNlcnRhaW4g Y29kZSB0aGF0IHNob3VsZCBub3QgcnVuIGZvciB0aGUgZGlmZmVyZW50IGVudHJpZXMgPyBXaXRo b3V0Cj4gICAgICAqYW55KiBzZW1hbnRpY3MgbGF0ZXIgaW4gYm9vdCBjb2RlIHRvIGRpc3Rpbmd1 aXNoIHdoZXJlIHdlIGNhbWUgZnJvbQo+ICAgICAgYW5kIGJlY2F1c2Ugd2Ugc3RyaXZlIHRvIGJ1 aWxkIHNpbmdsZSBrZXJuZWxzIHdpdGggZGlmZmVyZW50IHBvc3NpYmxlCj4gICAgICBydW4gdGlt ZSBlbnZpcm9ubWVudHMgaXQgbWVhbnMgd2UgaGF2ZSB0b25zIG9mIGNvZGUgYXZhaWxhYmxlIHRv Cj4gICAgICBleGVjdXRlIC8gcnVuIHRoYXQgd2UgbWF5IG5vdCBuZWVkLgoKSSBhbSBub3QgZm9s bG93aW5nIHRoYXQuIFBWSCBha2EgSFZNTGl0ZSB3aWxsIHByZXR0eSBtdWNoIGVyYXNlIHRoZSBu ZWVkIGZvciB0aGUKcHZvcHMuCj4gCj4gICAgICBCZWNhdXNlIG9mIHRoZSBsYWNrIG9mIHNlbWFu dGljcyB3ZSBtYXkgc3RpbGwgaGF2ZSBkZWFkIGNvZGUgcHJvc3BlY3RzCj4gICAgICB3aXRoIHRo ZSBuZXcgSFZNTGl0ZSBlbnRyeS4gSG93IGFyZSB3ZSBzdXJlIHRoZXJlIGlzIG5vIGRpZmZlcmVu Y2VzID8KPiAKPiBbMF0gaHR0cDovL3d3dy5kby1ub3QtcGFuaWMuY29tLzIwMTUvMTIvYXZvaWRp bmctZGVhZC1jb2RlLXB2b3BzLW5vdC1zaWx2ZXItYnVsbGV0Lmh0bWwKPiAKPiAgIDMpIFVuaWtl cm5lbCAvIG90aGVyIE9TIHJlcXVpcmVtZW50czogdGhpcyBpcyByZWFsbHkgdGllZCB0byAyKSBi dXQgZXZlbiBpZgo+ICAgICAgd2UgdHJpZWQgdG8gZXZvbHZlIHRoZSBYZW4gQUJJIGl0IHdvdWxk IG1lYW4gY29uc2lkZXJpbmcgZXhpc3Rpbmcgc29sdXRpb25zCj4gICAgICBvdXQgdGhlcmUuIFRo aW5ncyB0byBjb25zaWRlciBhcyBhbiBleGFtcGxlOiBGcmVlQlNEIGRvZXNuJ3QgaGF2ZSBhbiBF RkkKPiAgICAgIGVudHJ5LCB1bmlrZXJuZWxzIHdhbnQgYSBzaW1wbGUgYm9vdCBlbnRyeS4KPiAK PiBXaXRoIHRoaXMgaW4gbWluZCB0aGVuLCB0aGF0IEkgY2FuIHRoaW5rIG9mOgo+IAo+IENvbnMg b2YgdXNpbmcgdGhlIHNhbWUgZW50cnkgYnV0IGhhdmluZyB0d28gZGlmZmVyZW50IGJvb3QgcGF0 aHM6Cj4gCj4gICAqIFB1c2hlcyB0aGUgWGVuIEFCSSwgbmVlZHMgdG8gbWFrZSBldmVyeW9uZSBo YXBweSwgdGhpcyBpcyBoYXJkCj4gICAqIFBlcmhhcHMgaGFyZGVyIHRvIGltcGxlbWVudAo+IAo+ IEdhaW5zIG9mIHN0cml2aW5nIHRvIHVzZSB0aGUgc2FtZSBlbnRyeSBidXQgaGF2aW5nIHR3byBk aWZmZXJlbnQgYm9vdDoKPiAKPiAgKiBIZWxwcyB0byBzaGFyZSBtb3JlIGNvZGUgZWFzaWx5Cj4g ICogUmVkdWNlIGF0dGFjayBzdXJmYWNlCj4gICogUmVxdWlyZXMgdXMgdG8gaGF2ZSBzZW1hbnRp Y3MgZm9yIGVhcmx5IGJvb3Q7IHRoaXMgaGFzIGEgc2VyaWVzIG9mCj4gICAgc2lkZSBiZW5lZml0 czoKPiAgICAtIE1lYW5zIHlvdSBzaG91bGQgdHJ5IHRvIGFkZHJlc3MgZGlmZmVyZW5jZXMgZXhw bGljaXRseSByYXRoZXIgdGhhbgo+ICAgICAgaW1wbGljaXRseSAtLSBjYXNlIGluIHBvaW50IERl YWQgQ29kZQo+IAo+ID4gWW91IHN0aWxsIG5lZWQgYSB3YXkgdG8gZGlzdGluZ3Vpc2ggYmV0d2Vl biBiYXJlIG1ldGFsCj4gPiBFRkkgYW5kIEhWTWxpdGUuCj4gCj4gR3JlYXQgcG9pbnQhIFRoaXMg aXMgdGhlIHNlbWFudGljcyBhc3BlY3QuIFRoZSBuZXcgZW50cnkgZm9yIEhWTWxpdGUgYXBwcm9h Y2gKPiBkZWFscyB3aXRoIHRoaXMgYnkgbWFraW5nIHRoZSBkaWZmZXJlbmNlcyBpbXBsaWNpdCBi eSB0aGUgbmV3IGVudHJ5IHBvaW50Lgo+IE15IGNhbGwgZm9yIGFkZHJlc3NpbmcgdGhpcyB0aHJv dWdoIGEgaHlwZXJ2aXNvciB0eXBlIHdhcyB0byBzZWUgaWYgd2UgY2FuCj4gZ2V0IHRob3NlIHNl bWFudGljcyBhZGRlZCBleHBsaWNpdGx5IHNvIHdlIGNhbiBhbHNvIGxhdGVyIGFkZHJlc3MgZGVh ZAo+IGNvZGUgY29uY2VybnMgZm9yIHRoZSBuZXcgSFZNTGl0ZSBndWVzdCB0eXBlLgoKUmlnaHQs IHRoZXkgYXJlLi4KPiAKPiBQYXJ0IG9mIG15IG93biBpbnRlcmVzdCBpbiBhbiBFRkkgZW50cnkg aGVyZSBpcyB0aGF0IEVGSSBjb3VsZCBiZSB1c2VkIHRvIGhlbHAKPiBleHBhbmQgb24gdGhlIHNl bWFudGljcyBpbiBhbiBPUy9hZ25vc3RpYyBmb3JtIHJhdGhlciB0aGFuIHB1c2hpbmcgdGhlIHg4 NiBib290Cj4gcHJvdG9jb2wgZnVydGhlci4gVGhhdCBzZWVtcyB0byBoYXZlIGl0cyBvd24gc2V0 IG9mIGRyYXdiYWNrcyB0aG91Z2guCj4gCj4gCj4gPiBBbmQgWGVuIG5lZWRzIGEgd2F5IHRvIGZp bmQgb3V0IHdoZXRoZXIgYSBrZXJuZWwgaXMKPiA+IHN1cHBvcnRpbmcgSFZNbGl0ZSB0byBib290 IGl0IGluIHRoZSBjb3JyZWN0IG1vZGUuCj4gCj4gSG93IHdhcyBYZW4gZ29pbmcgdG8gZmluZCBv dXQgaWYgbmV3IGtlcm5lbHMgaGFkIEhWTWxpdGUgc3VwcG9ydCB3aXRoIHRoZQo+IG5ldyBlbnRy eSA/IEFuIEVMRk5PVEUoKSA/IElmIGFuIGVudHJ5IGlzIHNoYXJlZCBjb3VsZCB3ZSBub3RlIHVz ZSBhbgoKWWVhaC4KPiBFTEZOT1RFKCkgYWxzbyBmb3IgdGhpcyB0aG91Z2ggdG9vID8KCk5vdCBz dXJlIHdoYXQgeW91IG1lYW4gYnkgJ3NoYXJlZCcuIEJ1dCB5b3UgY2FuIGFkZCBtdWx0aXBsZSBF bGYgUFRfTk9URXMuClNlZSB0aGUgRUxGIGRvY3VtZW50Lgo+IAo+ICAgTHVpcwo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gWGVuLWRldmVsIG1h aWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=