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 17:08:01 -0400 Message-ID: <20160413210801.GC5962@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> <20160413185629.GA7501@char.us.oracle.com> <20160413204055.GD1990@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqS1g-0005b0-8t for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 21:08:40 +0000 Content-Disposition: inline In-Reply-To: <20160413204055.GD1990@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 T24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMTA6NDA6NTVQTSArMDIwMCwgTHVpcyBSLiBSb2RyaWd1 ZXogd3JvdGU6Cj4gT24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDI6NTY6MjlQTSAtMDQwMCwgS29u cmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDg6 Mjk6NTFQTSArMDIwMCwgTHVpcyBSLiBSb2RyaWd1ZXogd3JvdGU6Cj4gPiA+IE9uIE1vbiwgQXBy IDExLCAyMDE2IGF0IDA3OjEyOjA4QU0gKzAyMDAsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4gPiA+ IAo+ID4gPiA+IFdoYXQgd291bGQgYmUgZ2FpbmVkIGJ5IHVzaW5nIHRoZSBzYW1lIGVudHJ5IGJ1 dCBoYXZpbmcgdHdvIGRpZmZlcmVudCBib290Cj4gPiA+ID4gcGF0aHMgYWZ0ZXIgaXQ/Cj4gPiA+ IAo+ID4gPiBJdHMgYSBnb29kIHF1ZXN0aW9uLiBJbiBzdW1tYXJ5IGZvciBtZSBpdCB3b3VsZCBi ZSB0aGUgcHVzaCBmb3Igc2hhcmluZyBtb3JlCj4gPiA+IGNvZGUgYW5kIHRoZSBwdXNoIGZvciBz ZW1hbnRpY3Mgb24gZWFybHkgYm9vdCB0byBhZGRyZXNzIGRpZmZlcmVuY2VzCj4gPiA+IHByb2Fj dGl2ZWx5LCBhbmQgdWx0aW1hdGVseSBpdCBtYXkgZW5hYmxlIHVzIHRvIGhlbHAgYnJpbmcgY2xv c2VyIHRoZSBvbGQgUFYKPiA+ID4gYm9vdCBwYXRoIGNsb3Nlci4KPiA+IAo+ID4gQnV0IHdoeT8g V2Ugd2FudCB0byBraWxsIFBWIChldmVudHVhbGx5KS4KPiAKPiBZZWFoIHllYWgsIGJ1dCBpdHMg c3RpbGwgdGhlcmUsIGFuZCB3ZSdsbCBoYXZlIHRvIGxpdmUgd2l0aCBpdCBmb3IKPiBhdCBsZWFz dCBtaW5pbXVtIDUgeWVhcnMgSSBoZWFyLiBQYXJ0IG9mIG15IGludGVyZXN0IGlzIHRvIHNlZSB0 byBpdAo+IHRoYXQgdGhpcyBwYXRoIGdldHMgbGVzcyBkaXNydXB0aW9uIGFuZCBpc3N1ZXMsIGFu ZCB3ZSBhbHNvIGFkZHJlc3MKPiBkZWFkIGNvZGUgaXNzdWVzIHdoaWNoIHB2b3BzIHNpbXBseSBm b2xkZWQgdW5kZXIgdGhlIHJ1Zy4gVGhlIGRlYWQgY29kZQo+IGNvbmNlcm5zIG1heSBleGlzdCBz dGlsbCBmb3IgaHZtbGl0ZSwgc28gdW5sZXNzIHNvbWVvbmUgaXMgd2lsbGluZwo+IHRvIG1ha2Ug YSBib2xkIGNsYWltIHRoZXJlIGlzIG5vbmUsIGl0cyBzb21ldGhpbmcgdG8gY29uc2lkZXIuCgpX aGF0IGlzIHRoaXMgZGVhZCBjb2RlIHlvdSBzcGVhayBvZj8gSXMgaXQgTVRSUj8gSXMgZWFybHkg cGF0aCBjb2RlCnRoYXQgUFYgbWlzc2VzIChsaWtlIEtBU0wgb3Igb3RoZXI/KQoKClRoZSBlbnRy YWNlIHBvaW50IGluIExpbnV4ICJwcm9wZXIiIGlzIHN0YXJ0dXBfMzIgb3Igc3RhcnR1cF82NCAt IHRoZSBzYW1lCnBhdGggdGhhdCBFRkkgdXNlcy4KCklmIHlvdSB3ZXJlIHRvIGRyYXcgdGhpcyAo dmVyeSBzaW1wbGlmaWVkKToKCmEpLSBHUlVCMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cIChjcmVh dGVzIGFuIGJvb3RwYXJhbSBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLSBzdGFydHVwXzMyIG9y IHN0YXJ0dXBfNjQKYikgRUZJIC0+IExpbnV4IEVGSSBzdHViIC0tLS0tLS0vCiAgICAgICAoY3Jl YXRlcyBib290cGFybSkgICAgICAvCmMpIEdSVUIyLUVGSSAgLT4gTGludXggRUZJLS0tLS8KICAg ICAgICAgICAgICAgc3R1YiAgICAgICAgIC8KZCkgSFZNTGl0ZSAtLS0tLS0tLS0tLS0tLS0tLwog ICAgICAoY3JlYXRlcyBib290cGFybSkKCihJIGFtIG5vdCBzdXJlIGFib3V0IHRoZSBjKSAtIEkg d291bGQgaGF2ZSB0byBsb29rIGluIHNvdXJjZSB0bwpiZSBzb3VyY2UpLiBUaGVyZSBpcyBhbHNv IExJTE8gaW4gdGhpcywgYnV0IEkgYW0gbm90IGV2ZW4gc3VyZSBpZgp3b3JrcyBhbnltb3JlLgoK CldoYXQgeW91IGhhdmUgaXMgdGhhdCBldmVyeSBlbnRyeSBwb2ludCBjcmVhdGVzIHRoZSBib290 cGFyYW1zCmFuZCBlbmRzIHVwIGNhbGxpbmcgc3RhcnR1cF9YLiBUaGUgc3RhcnR1cF82NCB0aGVu IGhpdCB0aGUgcmVzdApvZiB0aGUga2VybmVsLiBUaGUgc3RhcnRwX1ggY29kZSBpcyB0aGUgb25l IHRoYXQgd291bGQgc2V0dXAKdGhlIGJhc2ljIHBhZ2V0YWJsZXMsIHNlZ21lbnRzLCBldGMuCgo+ IAo+IEhvdyB3ZSBhZGRyZXNzIHNlbWFudGljcyB0aGVuIGlzICp2ZXJ5KiBpbXBvcnRhbnQgdG8g bWUuCgpXaGljaCBzZW1hbnRpY3M/IEhvdyB0aGUgQ1BVIGlzIGdvaW5nIHRvIGJlIGF0IHN0YXJ0 dXBfWCA/IE9yCmhvdyB0aGUgQ1BVIGlzIGdvaW5nIHRvIGJlIHdoZW4gRUZJIGZpcm13YXJlIGlu dm9rZXMgdGhlIEVGSSBzdHViPwpPciB3aGVuIEdSVUIyIGxvYWRzIExpbnV4PwoKVGhhdCAodGhv c2UgYm9vdGxvYWRlcnMpIGlzIGNsZWFybHkgZGVmaW5lZC4gVGhlIFVSTCBJIHByb3ZpZGVkCm1l bnRpb25zIHRoZSBIVk1MaXRlIG9uZS4gVGhlIERvY3VtZW50YXRpb24veDg2L2Jvb3QuYyBtZW50 aW9ucwp3aGF0IHRoZSBzZW1hbnRpY3MgYXJlIHRvIGV4cGVjdGVkIHdoZW4gcHJvdmlkaW5nIGFu IGJvb3RzdHJhcAood2hpY2ggaXMgd2hhdCBIVk1MaXRlbCBzdHViIGNvZGUgaW4gTGludXggd291 bGQgd3JpdGUgYWdhaW5zdCAtCmFuZCB3aGF0IEVGSSBzdHViIGNvZGUgaGFkIGJlZW4gd3JpdHRl biBhZ2FpbnN0IHRvbykuCj4gCj4gPiA+IEknbGwgZWxhYm9yYXRlIG9uIHRoaXMgYnV0IGZpcnN0 IGxldCdzIGNsYXJpZnkgd2h5IGEgbmV3IGVudHJ5IGlzIHVzZWQgZm9yCj4gPiA+IEhWTWxpdGUg dG8gc3RhcnQgb2Ygd2l0aDoKPiA+ID4gCj4gPiA+ICAgMSkgWGVuIEFCSSBoYXMgaGlzdG9yaWNh bGx5IG5vdCB3YW50ZWQgdG8gc2V0IHVwIHRoZSBib290IHBhcmFtcyBmb3IgTGludXgKPiA+ID4g ICAgICBndWVzdHMsIGluc3RlYWQgaXQgaW5zaXN0cyBvbiBsZXR0aW5nIHRoZSBMaW51eCBrZXJu ZWwgWGVuIGJvb3Qgc3R1YnMgZmlsbAo+ID4gPiAgICAgIHRoYXQgb3V0IGZvciBpdC4gVGhpcyBz dGlja2luZyBwb2ludCBtZWFucyBpdCBoYXMgaW1wbGljYXRlZCBhIGJvb3Qgc3R1Yi4KPiA+IAo+ ID4gCj4gPiBXaGljaCBpcyBiL2MgaXQgaGFzIHRvIGJlIE9TIGFnbm9zdGljLiBJdCBoYXMgbm90 aGluZyB0byBkbyAnbm90IHdhbnRpbmcnLgo+IAo+IEl0IGNhbiBzdGlsbCBiZSBPUyBhZ25vc3Rp YyBhbmQgcGFzcyBvbiB0eXBlIGFuZCBjdXN0b20gZGF0YSBwb2ludGVyLgoKU3VyZS4gSXQgaGFz IHRoYXQgKGl0IE1VU1Qgb3RoZXJ3aXNlIGhvdyBlbHNlIHdvdWxkIHlvdSBwYXNzIGRhdGEpLgpJ dCBpcyBkb2N1bWVudGVkIGFzIHdlbGwgaHR0cDovL3hlbmJpdHMueGVuLm9yZy9kb2NzL3Vuc3Rh YmxlL2h5cGVyY2FsbC94ODZfNjQvaW5jbHVkZSxwdWJsaWMseGVuLmguaHRtbCNpbmNvbnRlbnRz X3N0YXJ0b2ZkYXkKKHNlZSAiIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUgcGFzc2VkIHRvIFBWSCBn dWVzdHMgaW4gJWVieC4iKQoKPiAKPiBXb3VsZCB0aGF0IGJlIHJlYXNvbmFibGUgPwo+IAo+ID4g PiAgICAgIFRoZSBIVk1MaXRlIGJvb3QgZW50cnkgdHJpZXMgdG8gYnJpbmcgdGhlIGJvb3QgZW50 cmllcyBwYXRocyBjbG9zZXIgYXMgaXQKPiA+ID4gICAgICBsZXZlcmFnZXMgbW9yZSBvZiB0aGUg SFZNIGJvb3QgcGF0aCBwaGlsb3NvcGh5IHRvIG1pbWljIHRoZSByZWd1bGFyIFBDIGJvb3QKPiA+ ID4gICAgICBwYXRoLgo+ID4gPiAKPiA+ID4gICAgICBJcyBIVk1MaXRlIHN1cHBvc2VkIHRvIHN1 cHBvcnQgbGVnYWN5IFBWIGd1ZXN0cyBhcyB3ZWxsIEJUVyA/Cj4gPiAKPiA+IEdvc2ggbm8uCj4g Cj4gSW50ZXJlc3RpbmcuLiBhbmQgKmV2ZXJ5b25lKiBpcyBoYXBweSBhYm91dCB0aGlzPwoKVGhl IFhlbiBMaW51eCBfYW5kXyB4ODYgbWFpbnRhaW5lcnMgYXJlLgpBbmQgdGhlIFhlbiBjb21tdW5p dHkgZGV2ZWxvcGVycyBhcyB3ZWxsIChJIGhhZG4ndCBoZWFyZCBhbnlib2R5IHNjcmVhbWluZyBO T09PCnNvIEkgYW0gcHJlc3VtaW5nIHNvKS4KCj4gCj4gPiA+ICAgICAgUmVhc29uIEknbSBoaWdo bGlnaHRpbmcgWGVuIEFCSSBhcyBhICpyZWFzb24qIGFsb25lIGlzIHRoYXQgZXZlbiB3aXRoCj4g PiA+ICAgICAgdG9kYXkncyBsYXJnZSBkaXNjcmVwYW5jeSBvbiB0aGUgb2xkIFBWIGJvb3QgcGF0 aCBJIGJlbGlldmUgd2UgY2FuCj4gPiA+ICAgICAgYnJpbmcgdG9nZXRoZXIgdGhlIGJvb3QgcGF0 aHMgY2xvc2VyIHRvZ2V0aGVyIGlmIHRoZSBYZW4gQUJJIHdhcyBzbGlnaHRseQo+ID4gPiAgICAg IGZsZXhpYmxlIGFib3V0IHRoaXMsIEkndmUgaGlnaGxpZ2h0ZWQgaG93IEkgYmVsaWV2ZSB0aGF0 IGlzIHBvc3NpYmxlIGJlZm9yZSwKPiA+IAo+ID4gPHJ1bnMgYXdheSBzY3JlYW1pbmc+Cj4gCj4g RXZlcnlvbmUgaGFzLiBJZiB5b3UgbmVlZCB0byBzdXBwb3J0IG9sZCBQViBndWVzdHMgZm9yIG1v cmUgdGhhbiA1IHllYXJzIHRoZQo+IHdvcmsgSSdtIGRvaW5nIHNob3VsZCBoZWxwIHdpdGggdGhh dC4gSSdtIHRyeWluZyB0byBsZXZlcmFnZSBnYWlucyBvZiB0aGUKPiB3b3JrIEknbSBkb2luZyBm b3IgSFZNTGl0ZSwgYW5kIHBhcnQgb2YgdGhpcyBpcyB0cnlpbmcgdG8gYWRkcmVzcyBzZW1hbnRp Y3MKPiBwcm9hY3RpdmVseS4KCldoYXQgZG8geW91IG1lYW4gYnkgJ3N1cHBvcnQnPyBTdXBwb3J0 IGFuIG9sZCBrZXJuZWwgb3Igc3VwcG9ydCB1cHN0cmVhbSBMaW51eD8KCj4gCj4gPiA+ICAgICAg KmlmZiogdGhlIFhlbiBBQkkgd291bGQgYXQgdGhlIHZlcnkgbGVhc3Qgc2V0IDIgdGhpbmdzIG9u bHk6Cj4gPiA+IAo+ID4gPiAgICAgIGEpIEh5cGVydmlzb3IgdHlwZQo+ID4gPiAgICAgIGIpIEEg Y3VzdG9tIGRhdGEgcG9pbnRlcgo+ID4gPiAKPiA+ID4gICAgICBUaGlzIHdvdWxkIGVuYWJsZSBh IHNpbmdsZSBib290IGVudHJ5IG9uIHRoZSBndWVzdCB0byBoYW5kbGUgdGhlbjoKPiA+ID4gCj4g PiA+IAlQc2V1ZG8gY29kZToKPiA+ID4gCj4gPiA+IAlzdGFydHVwXzMyKCkgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhcnR1cF82NCgpCj4gPiA+IAkgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4gPiA+IAkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cj4gPiA+IAkgICAgICAgViAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWCj4gPiA+IAlwcmVfaHlwZXJ2aXNvcl9zdHViXzMyKCkgICAgICAgIHByZV9oeXBlcnZp c29yX3N0dWJfNjQoKQo+ID4gPiAJICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAo+ID4gPiAJICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAo+ID4gPiAJICAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVgo+ID4g PiAJIFtleGlzdGluZyBzdGFydHVwXzMyKCldICAgICAgIFtleGlzdGluZyBzdGFydHVwXzY0KCld Cj4gPiA+IAkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPiA+ IAkgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gPiA+IAkgICAg ICAgViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWCj4gPiA+IAlwb3N0X2h5cGVy dmlzb3Jfc3R1Yl8zMigpICAgICAgIHBvc3RfaHlwZXJ2aXNvcl9zdHViXzY0KCkKPiA+ID4gCj4g PiA+ICAgICAgCj4gPiA+ICAgICAgSWYgdGhlIFhlbiBBQkkgd2FzIGZsZXhpYmxlIGFib3V0IHNl dHRpbmcgYSBoeXBlcnZpc29yIHR5cGUgYW5kIGN1c3RvbQo+ID4gPiAgICAgIGRhdGEgcG9pbnRl ciB0aGVuIHdlIHdvdWxkIGhhdmVuIGhhbmRsZXJzIGZvciBpdCwgYW5kIGluIGl0LCBpdCBjYW4K PiA+ID4gICAgICBkbyB3aGF0ZXZlciBpdCB0aGlua3MgaXMgbmVlZGVkIGZvciBpdHMgb3duIGd1 ZXN0IHR5cGVzLiBJdCBjb3VsZAo+ID4gPiAgICAgIGFsc28gY29udGludWUgdG8gc2V0IHRoZSB6 ZXJvIHBhZ2Ugb24gaXRzIG93biBhcyBpdCBzZWVzIGZpdC4KPiA+ID4gCj4gPiA+ICAgICAgQWdh aW4sIG5vdGUgdGhhdCBpZiB0aGlzIGlzIGRvbmUgaXQgY291bGQgYWxzbyBtZWFuIGV2ZW4gYnJp bmdpbmcgdG9nZXRoZXIKPiA+ID4gICAgICB0aGUgb2xkIFBWIGJvb3QgcGF0aCBjbG9zZXIgdG9n ZXRoZXIuLi4gc28gdGhpcyBpcyBub3QganVzdCBhIHByb3NwZWN0Cj4gPiA+ICAgICAgZm9yIEhW TUxpdGUgYnV0IGFsc28gZm9yIG9sZCBQViBndWVzdHMuCj4gPiA+IAo+ID4gPiAgIDIpIEJlY2F1 c2Ugb2YgMSkgaXQgaGFzIG1lYW50IHdlIGhhdmUgbm8gZm9ybWFsIHNlbWFudGljcyBmb3IgZWFy bHkgYm9vdAo+ID4gPiAgICAgIGNvZGUgaXMgYXZhaWxhYmxlIGFuZCBzbyBzZXZlcmUgZGlmZmVy ZW5jZXMgY2FuIGJlc3QgYmUgYWRkcmVzc2VkIGFsc28KPiA+ID4gICAgICBieSB5ZXQgYW5vdGhl ciBib290IGVudHJ5LiBUaGlzIGhhcyBtZWFudCBvZnRlbiB0aW1lcyBub3QgYWRkcmVzc2luZwo+ ID4gCj4gPiBUaGVyZSBhcmUgc2VtYW50aWNzIHdyaXR0ZW4gZm9yIHRoaXMgbmV3IGNvZGU6IGh0 dHA6Ly94ZW5iaXRzLnhlbi5vcmcvZG9jcy91bnN0YWJsZS9taXNjL2h2bWxpdGUuaHRtbAo+IAo+ IFRoYXQgb25seSBhZGRyZXNzZWQgc2VtYW50aWNzIGZvciBlYXJseSBib290IGNvZGUgaW1wbGlj aXRseSB0aHJvdWdoIGEgbmV3IGVudHJ5Li4uCgpBbmQgdGhlcmUgaXMgdGhlIERvY3VtZW50YXRp b24veDg2L2Jvb3QudHh0LgoKWW91IGhhdmUgdHdvIHNlbWFudGljcyBmcm9tIGVpdGhlciBzaWRl IGNsZWFybHkgZGVmaW5lZC4gTm93IGl0IGlzIGp1c3QKdGhlIG1hdHRlciBvZiBjb25uZWN0aW5n IHRoZSBkb3RzLgoKPiAKPiA+IEFsbCBvdGhlciBvbmVzIHJlbGF0ZWQgdG8gbG93LWxldmVsIG9w ZXJhdGlvbnMgYXJlIGRlc2NyaWJlZCBpbiBJbnRlbCBTRE0uCj4gPiAKPiA+IAo+ID4gPiAgICAg IG9yIG5vdCBrbm93aW5nIGlmIHdlJ3ZlIGFkZHJlc3NlZCByZWFsIGRpZmZlcmVuY2VzIGJldHdl ZW4gdGhlIGRpZmZlcmVudAo+ID4gPiAgICAgIGVudHJpZXMuIENhc2UgaW4gcG9pbnQsIGRlYWQg Y29kZSBbMF0uIEhvdyBkbyB3ZSBrbm93IHdlIHdpbGwgbm90IHJ1bgo+ID4gPiAgICAgIGNlcnRh aW4gY29kZSB0aGF0IHNob3VsZCBub3QgcnVuIGZvciB0aGUgZGlmZmVyZW50IGVudHJpZXMgPyBX aXRob3V0Cj4gPiA+ICAgICAgKmFueSogc2VtYW50aWNzIGxhdGVyIGluIGJvb3QgY29kZSB0byBk aXN0aW5ndWlzaCB3aGVyZSB3ZSBjYW1lIGZyb20KPiA+ID4gICAgICBhbmQgYmVjYXVzZSB3ZSBz dHJpdmUgdG8gYnVpbGQgc2luZ2xlIGtlcm5lbHMgd2l0aCBkaWZmZXJlbnQgcG9zc2libGUKPiA+ ID4gICAgICBydW4gdGltZSBlbnZpcm9ubWVudHMgaXQgbWVhbnMgd2UgaGF2ZSB0b25zIG9mIGNv ZGUgYXZhaWxhYmxlIHRvCj4gPiA+ICAgICAgZXhlY3V0ZSAvIHJ1biB0aGF0IHdlIG1heSBub3Qg bmVlZC4KPiA+IAo+ID4gSSBhbSBub3QgZm9sbG93aW5nIHRoYXQuIFBWSCBha2EgSFZNTGl0ZSB3 aWxsIHByZXR0eSBtdWNoIGVyYXNlIHRoZSBuZWVkIGZvciB0aGUKPiA+IHB2b3BzLgo+IAo+IEl0 IGRvZXMgbm90IG1lYW4gdGhlcmUgYXJlIG5vIGRlYWQgY29kZSBjb25jZXJucyB3aXRoIEhWTWxp dGUuCgpJIGFtIHByZXR0eSBzdXJlIHRoZXJlIGFyZSBub25lLiBCdXQgSSBuZWVkIHRvIG1ha2Ug c3VyZSBJIHVuZGVyc3RhbmQKd2hhdCB5b3UgbWVhbiBieSAnZGVhZCBjb2RlJy4KCj4gCj4gPiA+ IAo+ID4gPiAgICAgIEJlY2F1c2Ugb2YgdGhlIGxhY2sgb2Ygc2VtYW50aWNzIHdlIG1heSBzdGls bCBoYXZlIGRlYWQgY29kZSBwcm9zcGVjdHMKPiA+ID4gICAgICB3aXRoIHRoZSBuZXcgSFZNTGl0 ZSBlbnRyeS4gSG93IGFyZSB3ZSBzdXJlIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2VzID8KPiA+ID4g Cj4gPiA+IFswXSBodHRwOi8vd3d3LmRvLW5vdC1wYW5pYy5jb20vMjAxNS8xMi9hdm9pZGluZy1k ZWFkLWNvZGUtcHZvcHMtbm90LXNpbHZlci1idWxsZXQuaHRtbAo+ID4gPiAKPiA+ID4gICAzKSBV bmlrZXJuZWwgLyBvdGhlciBPUyByZXF1aXJlbWVudHM6IHRoaXMgaXMgcmVhbGx5IHRpZWQgdG8g MikgYnV0IGV2ZW4gaWYKPiA+ID4gICAgICB3ZSB0cmllZCB0byBldm9sdmUgdGhlIFhlbiBBQkkg aXQgd291bGQgbWVhbiBjb25zaWRlcmluZyBleGlzdGluZyBzb2x1dGlvbnMKPiA+ID4gICAgICBv dXQgdGhlcmUuIFRoaW5ncyB0byBjb25zaWRlciBhcyBhbiBleGFtcGxlOiBGcmVlQlNEIGRvZXNu J3QgaGF2ZSBhbiBFRkkKPiA+ID4gICAgICBlbnRyeSwgdW5pa2VybmVscyB3YW50IGEgc2ltcGxl IGJvb3QgZW50cnkuCj4gPiA+IAo+ID4gPiBXaXRoIHRoaXMgaW4gbWluZCB0aGVuLCB0aGF0IEkg Y2FuIHRoaW5rIG9mOgo+ID4gPiAKPiA+ID4gQ29ucyBvZiB1c2luZyB0aGUgc2FtZSBlbnRyeSBi dXQgaGF2aW5nIHR3byBkaWZmZXJlbnQgYm9vdCBwYXRoczoKPiA+ID4gCj4gPiA+ICAgKiBQdXNo ZXMgdGhlIFhlbiBBQkksIG5lZWRzIHRvIG1ha2UgZXZlcnlvbmUgaGFwcHksIHRoaXMgaXMgaGFy ZAo+ID4gPiAgICogUGVyaGFwcyBoYXJkZXIgdG8gaW1wbGVtZW50Cj4gPiA+IAo+ID4gPiBHYWlu cyBvZiBzdHJpdmluZyB0byB1c2UgdGhlIHNhbWUgZW50cnkgYnV0IGhhdmluZyB0d28gZGlmZmVy ZW50IGJvb3Q6Cj4gPiA+IAo+ID4gPiAgKiBIZWxwcyB0byBzaGFyZSBtb3JlIGNvZGUgZWFzaWx5 Cj4gPiA+ICAqIFJlZHVjZSBhdHRhY2sgc3VyZmFjZQo+ID4gPiAgKiBSZXF1aXJlcyB1cyB0byBo YXZlIHNlbWFudGljcyBmb3IgZWFybHkgYm9vdDsgdGhpcyBoYXMgYSBzZXJpZXMgb2YKPiA+ID4g ICAgc2lkZSBiZW5lZml0czoKPiA+ID4gICAgLSBNZWFucyB5b3Ugc2hvdWxkIHRyeSB0byBhZGRy ZXNzIGRpZmZlcmVuY2VzIGV4cGxpY2l0bHkgcmF0aGVyIHRoYW4KPiA+ID4gICAgICBpbXBsaWNp dGx5IC0tIGNhc2UgaW4gcG9pbnQgRGVhZCBDb2RlCj4gPiA+IAo+ID4gPiA+IFlvdSBzdGlsbCBu ZWVkIGEgd2F5IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYmFyZSBtZXRhbAo+ID4gPiA+IEVGSSBh bmQgSFZNbGl0ZS4KPiA+ID4gCj4gPiA+IEdyZWF0IHBvaW50ISBUaGlzIGlzIHRoZSBzZW1hbnRp Y3MgYXNwZWN0LiBUaGUgbmV3IGVudHJ5IGZvciBIVk1saXRlIGFwcHJvYWNoCj4gPiA+IGRlYWxz IHdpdGggdGhpcyBieSBtYWtpbmcgdGhlIGRpZmZlcmVuY2VzIGltcGxpY2l0IGJ5IHRoZSBuZXcg ZW50cnkgcG9pbnQuCj4gPiA+IE15IGNhbGwgZm9yIGFkZHJlc3NpbmcgdGhpcyB0aHJvdWdoIGEg aHlwZXJ2aXNvciB0eXBlIHdhcyB0byBzZWUgaWYgd2UgY2FuCj4gPiA+IGdldCB0aG9zZSBzZW1h bnRpY3MgYWRkZWQgZXhwbGljaXRseSBzbyB3ZSBjYW4gYWxzbyBsYXRlciBhZGRyZXNzIGRlYWQK PiA+ID4gY29kZSBjb25jZXJucyBmb3IgdGhlIG5ldyBIVk1MaXRlIGd1ZXN0IHR5cGUuCj4gPiAK PiA+IFJpZ2h0LCB0aGV5IGFyZS4uCj4gCj4gVGhlcmUgaXMgaHVnZSBtZXJpdCB0byBhZGRyZXNz IGEgaHVnZSBjaHVua3Mgb2YgZGVhZCBjb2RlIGNvbmNlcm5zIGJ5IHN0aWNraW5nCj4gbW9yZSBj bG9zZXIgdG8gdGhlIG5hdGl2ZSBib290aCBwYXRocywgaXQgZG9lc24ndCBtZWFuIHlvdSBzdGls bCBoYXZlIG5vCgpSaWdodCwgd2hpY2ggd2UgZG8uIEtlZXAgaW4gbWluZCB0aGF0IExpbnV4IGRv ZXMgbm90IGJvb3QgYnkgaXRzZWxmLiBJdCBuZWVkcwphIGJvb3Rsb2FkZXIgd2hpY2ggc2V0cyB0 aGUgc3RhZ2UgZm9yIGl0LiBXZSBzZXQgdGhlIHNhbWUgZXhhY3Qgc3RhZ2UuCgo+IGRlYWQgY29k ZSBjb25jZXJucyB3aXRoIEhWTWxpdGUsIG5vciB0aGF0IEhWTUxpdGUgaGFzIG5vIHBsYXRmb3Jt IHF1aXJrcywKPiBpdCBkb2VzIGFuZCBwYXJ0IG9mIHNvbWUgcmVjZW50IHdvcmsgaXMgdG8gcGF2 ZSBhICpjbGVhbiogcGF0aCBmb3Igc2V0dGluZwo+IHRoZXNlIGRpZmZlcmVuY2VzIGFwYXJ0LgoK L21lIHNjcmF0Y2hlcyBoaXMgaGVhZC4KClRoZXJlIHdpbGwgYWx3YXlzIGJlIHBsYXRmb3JtIHF1 aXJrcy4KCkkgZ3Vlc3MgSSBhbSBub3QgdW5kZXJzdGFuZGluZyB5b3VyIGNvbmNlcm5zLiBUaGUg d29yayB0aGF0IEJvcmlzIGlzIGRvaW5nIGlzCnRvIGNvZGUgYWdhaW5zdCB0aGUgYm9vdHBhcmFt cyAtIHdoaWNoIGhhcyBhIHNwZWMuCgo+IAo+ID4gPiBQYXJ0IG9mIG15IG93biBpbnRlcmVzdCBp biBhbiBFRkkgZW50cnkgaGVyZSBpcyB0aGF0IEVGSSBjb3VsZCBiZSB1c2VkIHRvIGhlbHAKPiA+ ID4gZXhwYW5kIG9uIHRoZSBzZW1hbnRpY3MgaW4gYW4gT1MvYWdub3N0aWMgZm9ybSByYXRoZXIg dGhhbiBwdXNoaW5nIHRoZSB4ODYgYm9vdAo+ID4gPiBwcm90b2NvbCBmdXJ0aGVyLiBUaGF0IHNl ZW1zIHRvIGhhdmUgaXRzIG93biBzZXQgb2YgZHJhd2JhY2tzIHRob3VnaC4KPiA+ID4gCj4gPiA+ IAo+ID4gPiA+IEFuZCBYZW4gbmVlZHMgYSB3YXkgdG8gZmluZCBvdXQgd2hldGhlciBhIGtlcm5l bCBpcwo+ID4gPiA+IHN1cHBvcnRpbmcgSFZNbGl0ZSB0byBib290IGl0IGluIHRoZSBjb3JyZWN0 IG1vZGUuCj4gPiA+IAo+ID4gPiBIb3cgd2FzIFhlbiBnb2luZyB0byBmaW5kIG91dCBpZiBuZXcg a2VybmVscyBoYWQgSFZNbGl0ZSBzdXBwb3J0IHdpdGggdGhlCj4gPiA+IG5ldyBlbnRyeSA/IEFu IEVMRk5PVEUoKSA/IElmIGFuIGVudHJ5IGlzIHNoYXJlZCBjb3VsZCB3ZSBub3RlIHVzZSBhbgo+ ID4gCj4gPiBZZWFoLgo+ID4gPiBFTEZOT1RFKCkgYWxzbyBmb3IgdGhpcyB0aG91Z2ggdG9vID8K PiA+IAo+ID4gTm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSAnc2hhcmVkJy4gQnV0IHlvdSBjYW4g YWRkIG11bHRpcGxlIEVsZiBQVF9OT1RFcy4KPiA+IFNlZSB0aGUgRUxGIGRvY3VtZW50Lgo+IAo+ IE9LIHNvIGV2ZW4gaWYgd2UgdXNlZCBhIGNvbW1vbi9zaGFyZWQgZW50cnkgcG9pbnQgd2UgY2Fu IGFkZHJlc3MgbGV0dGluZwo+IFhlbiBmaW5kIG91dCB3aGV0aGVyIG9yIG5vdCBhIGtlcm5lbCBz dXBwb3J0cyBIVk1saXRlLgoKWWVzLiBYZW4gcGFyc2VzIHRoZSBMaW51eCBFTEYgTk9URXMgYW5k IGNhbiBmaWd1cmUgb3V0IGlmIHRoZSBrZXJuZWwKY2FuIGRvIEhWTUxpdGUgb3Igbm90LgoKPiAK PiAgIEx1aXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==