From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Subject: Re: HVMlite ABI specification DRAFT A Date: Thu, 4 Feb 2016 20:33:40 +0100 Message-ID: <56B3A794.4040904@citrix.com> References: <56B38EDE.5090700@citrix.com> <56B396ED.7010209@citrix.com> 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.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aRPf2-0002aG-Iv for xen-devel@lists.xenproject.org; Thu, 04 Feb 2016 19:33:48 +0000 In-Reply-To: <56B396ED.7010209@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper , xen-devel Cc: Wei Liu , Stefano Stabellini , Tim Deegan , Paul Durrant , David Vrabel , Jan Beulich , samuel.thibault@ens-lyon.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org RWwgNC8yLzE2IGEgbGVzIDE5OjIyLCBBbmRyZXcgQ29vcGVyIGhhIGVzY3JpdDoKPiBPbiAwNC8w Mi8xNiAxNzo0OCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToKPj4gSGVsbG8sCj4+Cj4+IEkndmUg Q2NlZCBhIGJ1bmNoIG9mIHBlb3BsZSB3aG8gaGF2ZSBleHByZXNzZWQgaW50ZXJlc3QgaW4gdGhl IEhWTWxpdGUgCj4+IGRlc2lnbi9pbXBsZW1lbnRhdGlvbiwgYm90aCBmcm9tIGEgWGVuIG9yIE9T IHBvaW50IG9mIHZpZXcuIElmIHlvdSAKPj4gd291bGQgbGlrZSB0byBiZSByZW1vdmVkLCBwbGVh c2Ugc2F5IHNvIGFuZCBJIHdpbGwgcmVtb3ZlIHlvdSBpbiAKPj4gZnVydGhlciBpdGVyYXRpb25z LiBUaGUgc2FtZSBhcHBsaWVzIGlmIHlvdSB3YW50IHRvIGJlIGFkZGVkIHRvIHRoZSBDYy4KPj4K Pj4gVGhpcyBpcyBhbiBpbml0aWFsIGRyYWZ0IG9uIHRoZSBIVk1saXRlIGRlc2lnbiBhbmQgaW1w bGVtZW50YXRpb24uIEkndmUgCj4+IG1peGVkIGNlcnRhaW4gYXNwZWN0cyBvZiB0aGUgZGVzaWdu IHdpdGggdGhlIGltcGxlbWVudGF0aW9uLCBiZWNhdXNlIEkgCj4+IHRoaW5rIHdlIGFyZSBxdWl0 ZSB0aWVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBwb3NzaWJpbGl0aWVzIGluIGNlcnRhaW4gCj4+ IGFzcGVjdHMsIHNvIG5vdCBzcGVha2luZyBhYm91dCBpdCB3b3VsZCBtYWtlIHRoZSBkb2N1bWVu dCBpbmNvbXBsZXRlLiBJIAo+PiBtaWdodCBiZSB3cm9uZyBvbiB0aGF0LCBzbyBmZWVsIGZyZWUg dG8gY29tbWVudCBvdGhlcndpc2UgaWYgeW91IHdvdWxkIAo+PiBwcmVmZXIgYSBkaWZmZXJlbnQg YXBwcm9hY2guIEF0IGxlYXN0IHRoaXMgc2hvdWxkIGdldCB0aGUgY29udmVyc2F0aW9uIAo+PiBz dGFydGVkIGludG8gYSBjb3VwbGUgb2YgcGVuZGluZyBpdGVtcyByZWdhcmRpbmcgSFZNbGl0ZS4g SSBkb24ndCB3YW50IAo+PiB0byBzcG9pbCB0aGUgZnVuLCBidXQgSU1ITyB0aGV5IGFyZToKPj4K Pj4gIC0gTG9jYWwgQVBJQzogc2hvdWxkIHdlIF9hbHdheXNfIHByb3ZpZGUgYSBsb2NhbCBBUElD IHRvIEhWTWxpdGUgCj4+ICAgIGd1ZXN0cz8KPiAKPiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJlc3Qg dG8gb2ZmZXIgYW4gTEFQSUMgYnkgZGVmYXVsdCAodG8gYmUgaGVscGZ1bCB0bwo+IG1vc3QgbW9k ZXJuIE9TZXMpLCBidXQgbGVhdmUgdGhlIG9wdGlvbiBmb3IgYW4gYWRtaW5pc3RyYXRvciB0byBk aXNhYmxlCj4gaWYgdGhleSBzcGVjaWZpY2FsbHkgZG9uJ3Qgd2FudCBvbmUuCgpTbyB0aGlzIGFs c28gaW1wbGllcyB0aGF0IHdlIHdpbGwgYWxzbyBwcm92aWRlIEFDUEkgYnkgZGVmYXVsdCAoUlNE VCwKRkFEVCwgTUFEVCk/IElNSE8gdGhlIGxvY2FsIEFQSUMgaXMgc3BlY2lhbGx5IGhlbHBmdWwg aWYgaXQgY29tZXMgd2l0aCBhCk1BRFQsIHNvIHRoYXQgd2UgY2FuIGRvIENQVSBlbnVtZXJhdGlv biBmcm9tIGl0LgoKPj4gIC0gSFZNbGl0ZSBoYXJkd2FyZSBkb21haW46IGNhbiB3ZSBnZXQgcmlk IG9mIHRoZSBQSFlTREVWIG9wcyBhbmQgUElSUSAKPj4gICAgZXZlbnQgY2hhbm5lbHM/Cj4+ICAt IEhWTWxpdGUgUENJLXBhc3N0aHJvdWdoOiBjYW4gd2UgZ2V0IHJpZCBvZiBwY2liYWNrL3BjaWZy b250Pwo+IAo+ICsxMDAwLCBmb3IgYm90aC4KPiAKPj4KPj4gVGhlIGRvY3VtZW50IGlzIHN0aWxs IGZhciBmcm9tIGNvbXBsZXRlLCBhbmQgSSd2ZSBvbmx5IHRyaWVkIHRvIAo+PiByZXByZXNlbnQg dGhlIHBvaW50cyB3aGVyZSB0aGVyZSdzIGNvbnNlbnN1cyAobGlrZSB0aGUgYm9vdCBBQkkpIG9y IAo+PiBwYXJ0cyB3aGVyZSBmZWVkYmFjayBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gcmVhY2ggYSBj b25zZW5zdXMgKGxpa2UgdGhlIAo+PiBpdGVtcyBwb2ludGVkIGFib3ZlKS4gSSdtIG9mIGNvdXJz ZSBub3QgYXMga25vd2xlZGdlYWJsZSBhcyBzb21lIHBlb3BsZSAKPj4gb24gdGhlIENjLCBzbyBw bGVhc2UgY29ycmVjdCBtZSBpZiB5b3UgdGhpbmsgdGhlcmUgYXJlIG1pc3Rha2VzIG9yIAo+PiBz aW1wbHkgaW1wb3NzaWJsZSBnb2Fscy4KPj4KPj4gUm9nZXIuCj4+IC0tLQo+Pgo+PiBYZW4gSFZN bGl0ZSBBQkkKPj4gPT09PT09PT09PT09PT09Cj4gCj4gQW55IGNoYW5jZSB0aGlzIGNhbiBlbmQg dXAgbGl2aW5nIGluIGRvY3Mvc3BlY3MvSFZNTGl0ZS1BQkkuJEZPTywKPiBhbG9uZ3NpZGUgdGhl IGV4aXN0aW5nIGZvcm1hbCBzcGVjcz8KPiAKPiBXb3VsZCBpdCBhbHNvIGJlIHBvc3NpYmxlIHRv IHdyaXRlIGEgZmVhdHVyZSBkb2N1bWVudCBpbgo+IGRvY3MvZmVhdHVyZXMvSFZNTGl0ZS4kRk9P ID8KClN1cmUsIEkgaGF2ZW4ndCBldmVuIHNlbnQgdGhpcyBpbiB0aGUgZm9ybSBvZiBhIHBhdGNo IHNvIHRoYXQgd2UgY2FuCmRpc2N1c3MgaXQgbW9yZSBmcmVlbHkuCgo+Pgo+PiBCb290IEFCSQo+ PiAtLS0tLS0tLQo+Pgo+PiBTaW5jZSB0aGUgWGVuIGVudHJ5IHBvaW50IGludG8gdGhlIGtlcm5l bCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlCj4+IG5hdGl2ZSBlbnRyeSBwb2ludCwgYSBgRUxG Tk9URWAgaXMgdXNlZCBpbiBvcmRlciB0byB0ZWxsIHRoZSBkb21haW4KPj4gYnVpbGRlciBob3cg dG8gbG9hZCBhbmQganVtcCBpbnRvIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQ6Cj4+Cj4+ICAgICBF TEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfUEhZUzMyX0VOVFJZLCAgICAgICAgICAubG9uZywgIHhl bl9zdGFydDMyKQo+Pgo+PiBUaGUgcHJlc2VuY2Ugb2YgdGhlIGBYRU5fRUxGTk9URV9QSFlTMzJf RU5UUllgIG5vdGUgaW5kaWNhdGVzIHRoYXQgdGhlCj4+IGtlcm5lbCBzdXBwb3J0cyB0aGUgYm9v dCBBQkkgZGVzY3JpYmVkIGluIHRoaXMgZG9jdW1lbnQuCj4+Cj4+IFRoZSBkb21haW4gYnVpbGRl ciBtdXN0IGxvYWQgdGhlIGtlcm5lbCBpbnRvIHRoZSBndWVzdCBtZW1vcnkgc3BhY2UgYW5kCj4+ IGp1bXAgaW50byB0aGUgZW50cnkgcG9pbnQgZGVmaW5lZCBhdCBgWEVOX0VMRk5PVEVfUEhZUzMy X0VOVFJZYCB3aXRoIHRoZQo+PiBmb2xsb3dpbmcgbWFjaGluZSBzdGF0ZToKPiAKPiBHaXZlbiBt dWx0aXBsZSBwb3NzaWJsZSBlbnRyaWVzLCB0aGUgZG9tYWluIGJ1aWxkZXIgbWlnaHQgaGF2ZSBt dWx0aXBsZQo+IHN0YXJ0aW5nIG9wdGlvbnMgYXZhaWxhYmxlLgo+IAo+IEkgd291bGQgcmV3b3Jk IHRoaXMgdG8gIldoZW4gc3RhcnRpbmcgYW4gSFZNTGl0ZSBkb21haW4sIHRoZSBkb21haW4KPiBi dWlsZGVyIHNoYWxsIGxvYWQgLi4uIiwgd2hpY2ggYWxsb3dzIHRoZSBkb21pYW4gYnVpbGRlciB0 byBjaG9zZSBhbgo+IGFsdGVybmF0aXZlIGVudHJ5IG1ldGhvZCwgYXQgaXRzIGRpc2NyZXRpb24u Cj4gCj4+Cj4+ICAqIGBlYnhgOiBjb250YWlucyB0aGUgcGh5c2ljYWwgbWVtb3J5IGFkZHJlc3Mg d2hlcmUgdGhlIGxvYWRlciBoYXMgcGxhY2VkCj4+ICAgIHRoZSBib290IHN0YXJ0IGluZm8gc3Ry dWN0dXJlLgo+Pgo+PiAgKiBgY3IwYDogYml0IDAgKFBFKSBtdXN0IGJlIHNldC4gQWxsIHRoZSBv dGhlciB3cml0ZWFibGUgYml0cyBhcmUgY2xlYXJlZC4KPj4KPj4gICogYGNyNGA6IGFsbCBiaXRz IGFyZSBjbGVhcmVkLgo+Pgo+PiAgKiBgY3NgOiBtdXN0IGJlIGEgMzItYml0IHJlYWQvZXhlY3V0 ZSBjb2RlIHNlZ21lbnQgd2l0aCBhIGJhc2Ugb2Yg4oCYMOKAmQo+PiAgICBhbmQgYSBsaW1pdCBv ZiDigJgweEZGRkZGRkZG4oCZLiBUaGUgc2VsZWN0b3IgdmFsdWUgaXMgdW5zcGVjaWZpZWQuCj4+ Cj4+ICAqIGBkc2AsIGBlc2A6IG11c3QgYmUgYSAzMi1iaXQgcmVhZC93cml0ZSBkYXRhIHNlZ21l bnQgd2l0aCBhIGJhc2Ugb2YKPj4gICAg4oCYMOKAmSBhbmQgYSBsaW1pdCBvZiDigJgweEZGRkZG RkZG4oCZLiBUaGUgc2VsZWN0b3IgdmFsdWVzIGFyZSBhbGwgdW5zcGVjaWZpZWQuCj4+Cj4+ICAq IGB0cmA6IG11c3QgYmUgYSAzMi1iaXQgVFNTIChhY3RpdmUpIHdpdGggYSBiYXNlIG9mICcwJyBh bmQgYSBsaW1pdCBvZiAnMHg2NycuCj4+Cj4+ICAqIGBlZmxhZ3NgOiBiaXQgMTcgKFZNKSBtdXN0 IGJlIGNsZWFyZWQuIEJpdCA5IChJRikgbXVzdCBiZSBjbGVhcmVkLgo+PiAgICBCaXQgOCAoVEYp IG11c3QgYmUgY2xlYXJlZC4gT3RoZXIgYml0cyBhcmUgYWxsIHVuc3BlY2lmaWVkLgo+IAo+IEkg d291bGQgYWxzbyBzcGVjaWZ5IHRoYXQgdGhlIGRpcmVjdGlvbiBmbGFnIHNoYWxsIGJlIGNsZWFy LCB0byBwcmV2ZW50Cj4gYWxsIGtlcm5lbHMgbmVlZGluZyB0byBgY2xkYCBvbiBlbnRyeS4KPgo+ Pgo+PiBBbGwgb3RoZXIgcHJvY2Vzc29yIHJlZ2lzdGVycyBhbmQgZmxhZyBiaXRzIGFyZSB1bnNw ZWNpZmllZC4gVGhlIE9TIGlzIGluCj4+IGNoYXJnZSBvZiBzZXR0aW5nIHVwIGl0J3Mgb3duIHN0 YWNrLCBHRFQgYW5kIElEVC4KPj4KPj4gVGhlIGZvcm1hdCBvZiB0aGUgYm9vdCBzdGFydCBpbmZv IHN0cnVjdHVyZSBpcyB0aGUgZm9sbG93aW5nIChwb2ludGVkIHRvCj4+IGJlICVlYngpOgo+Pgo+ PiAgICAgc3RydWN0IGh2bV9zdGFydF9pbmZvIHsKPj4gICAgICNkZWZpbmUgSFZNX1NUQVJUX01B R0lDX1ZBTFVFIDB4MzM2ZWM1NzgKPj4gICAgICAgICB1aW50MzJfdCBtYWdpYzsgICAgICAgICAg ICAgLyogQ29udGFpbnMgdGhlIG1hZ2ljIHZhbHVlIDB4MzM2ZWM1NzggICAgICAgKi8KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogKCJ4RW4zIiB3aXRoIHRoZSAweDgw IGJpdCBvZiB0aGUgIkUiIHNldCkuKi8KPj4gICAgICAgICB1aW50MzJfdCBmbGFnczsgICAgICAg ICAgICAgLyogU0lGX3h4eCBmbGFncy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KPj4g ICAgICAgICB1aW50MzJfdCBjbWRsaW5lX3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBv ZiB0aGUgY29tbWFuZCBsaW5lLiAgICAgKi8KPj4gICAgICAgICB1aW50MzJfdCBucl9tb2R1bGVz OyAgICAgICAgLyogTnVtYmVyIG9mIG1vZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJuZWwuICAgKi8K Pj4gICAgICAgICB1aW50MzJfdCBtb2RsaXN0X3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVz cyBvZiBhbiBhcnJheSBvZiAgICAgICAgICAgKi8KPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogaHZtX21vZGxpc3RfZW50cnkuICAgICAgICAgICAgICAgICAgICAgICAg Ki8KPj4gICAgIH07Cj4gCj4gRm9yIGJvdGggcGFkZHIgdmFsdWVzLCB6ZXJvIGluZGljYXRlcyAi bm90IHByb3ZpZGVkIi4KCkFjayB0byBhbGwgb2YgdGhlIGFib3ZlLgoKPj4KPj4gICAgIHN0cnVj dCBodm1fbW9kbGlzdF9lbnRyeSB7Cj4+ICAgICAgICAgdWludDMyX3QgcGFkZHI7ICAgICAgICAg ICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4gICAgICAgICAgICovCj4+ICAg ICAgICAgdWludDMyX3Qgc2l6ZTsgICAgICAgICAgICAgIC8qIFNpemUgb2YgdGhlIG1vZHVsZSBp biBieXRlcy4gICAgICAgICAgICAgICovCj4+ICAgICB9Owo+Pgo+PiBPdGhlciByZWxldmFudCBp bmZvcm1hdGlvbiBuZWVkZWQgaW4gb3JkZXIgdG8gYm9vdCBhIGd1ZXN0IGtlcm5lbAo+PiAoY29u c29sZSBwYWdlIGFkZHJlc3MsIHhlbnN0b3JlIGV2ZW50IGNoYW5uZWwuLi4pIGNhbiBiZSBvYnRh aW5lZAo+PiB1c2luZyBIVk1QQVJBTVMsIGp1c3QgbGlrZSBpdCdzIGRvbmUgb24gSFZNIGd1ZXN0 cy4KPj4KPj4gVGhlIHNldHVwIG9mIHRoZSBoeXBlcmNhbGwgcGFnZSBpcyBhbHNvIHBlcmZvcm1l ZCBpbiB0aGUgc2FtZSB3YXkKPj4gYXMgSFZNIGd1ZXN0cywgdXNpbmcgdGhlIGh5cGVydmlzb3Ig Y3B1aWQgbGVhdmVzIGFuZCBtc3IgcmFuZ2VzLgo+Pgo+PiBIYXJkd2FyZSBkZXNjcmlwdGlvbgo+ PiAtLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiBIYXJkd2FyZSBkZXNjcmlwdGlvbiBjYW4gY29t ZSBmcm9tIHR3byBkaWZmZXJlbnQgc291cmNlcywganVzdCBsaWtlIG9uIChQVilIVk0KPj4gZ3Vl c3RzLgo+Pgo+PiBEZXNjcmlwdGlvbiBvZiBQViBkZXZpY2VzIHdpbGwgYWx3YXlzIGNvbWUgZnJv bSB4ZW5idXMsIGFuZCBpbiBmYWN0Cj4+IHhlbmJ1cyBpcyB0aGUgb25seSBoYXJkd2FyZSBkZXNj cmlwdGlvbiB0aGF0IGlzIGd1YXJhbnRlZWQgdG8gYWx3YXlzIGJlCj4+IHByb3ZpZGVkIHRvIEhW TWxpdGUgZ3Vlc3RzLgo+Pgo+PiBEZXNjcmlwdGlvbiBvZiBwaHlzaWNhbCBoYXJkd2FyZSBkZXZp Y2VzIHdpbGwgYWx3YXlzIGNvbWUgZnJvbSBBQ1BJLCBpbiB0aGUKPj4gYWJzZW5jZSBvZiBhbnkg cGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlIG5vIEFDUEkgdGFibGVzIHdpbGwgYmUgcHJvdmlkZWQu IFRoZQo+PiBwcmVzZW5jZSBvZiBBQ1BJIHRhYmxlcyBjYW4gYmUgZGV0ZWN0ZWQgYnkgZmluZGlu ZyB0aGUgUlNEUCwganVzdCBsaWtlIG9uCj4+IGJhcmUgbWV0YWwuCj4+Cj4+IE5vbi1QViBkZXZp Y2VzIGV4cG9zZWQgdG8gdGhlIGd1ZXN0Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4+Cj4+IFRoZSBpbml0aWFsIGlkZWEgd2FzIHRvIHNpbXBseSBkb24ndCBwcm92aWRl IGFueSBlbXVsYXRlZCBkZXZpY2VzIHRvIGEgSFZNbGl0ZQo+PiBndWVzdCBhcyB0aGUgZGVmYXVs dCBvcHRpb24uIFdlIGhhdmUgaG93ZXZlciBpZGVudGlmaWVkIGNlcnRhaW4gc2l0dWF0aW9ucwo+ PiB3aGVyZSBlbXVsYXRlZCBkZXZpY2VzIGNvdWxkIGJlIGludGVyZXN0aW5nLCBib3RoIGZyb20g YSBwZXJmb3JtYW5jZSBhbmQKPj4gZWFzeSBpbXBsZW1lbnRhdGlvbiBwb2ludCBvZiB2aWV3LiBU aGUgZm9sbG93aW5nIGxpc3QgdHJpZXMgdG8gZW5jb21wYXNzCj4+IHRoZSBkaWZmZXJlbnQgaWRl bnRpZmllZCBzY2VuYXJpb3M6Cj4+Cj4+ICAqIDEuIEhWTWxpdGUgd2l0aCBubyBlbXVsYXRlZCBk ZXZpY2VzIGF0IGFsbAo+PiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPj4gICAgVGhpcyBpcyB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpbnNpZGUgb2Yg WGVuLCBldmVyeXRoaW5nIGlzIGRpc2FibGVkCj4+ICAgIGJ5IGRlZmF1bHQgYW5kIHRoZSBndWVz dCBoYXMgYWNjZXNzIHRvIHRoZSBQViBkZXZpY2VzIG9ubHkuIFRoaXMgaXMgb2YKPj4gICAgY291 cnNlIHRoZSBtb3N0IHNlY3VyZSBkZXNpZ24gYmVjYXVzZSBpdCBoYXMgdGhlIHNtYWxsZXIgc3Vy ZmFjZSBvZiBhdHRhY2suCj4+Cj4+ICAqIDIuIEhWTWxpdGUgd2l0aCBQQ0ktcGFzc3Rocm91Z2gK Pj4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgICBUaGUgY3VycmVudCBt b2RlbCBvZiBQQ0ktcGFzc3Rocm91Z2h0IGluIFBWIGd1ZXN0cyBpcyBjb21wbGV4IGFuZCByZXF1 aXJlcwo+PiAgICBoZWF2eSBtb2RpZmljYXRpb25zIHRvIHRoZSBndWVzdCBPUy4gR29pbmcgZm9y d2FyZCB3ZSB3b3VsZCBsaWtlIHRvIHJlbW92ZQo+PiAgICB0aGlzIGxpbWl0YXRpb24sIGJ5IHBy b3ZpZGluZyBhbiBpbnRlcmZhY2UgdGhhdCdzIHRoZSBzYW1lIGFzIGZvdW5kIG9uIGJhcmUKPj4g ICAgbWV0YWwuIEluIG9yZGVyIHRvIGRvIHRoaXMsIGF0IGxlYXN0IGFuIGVtdWxhdGVkIGxvY2Fs IEFQSUMgYW5kIElPIEFQSUMKPj4gICAgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIGd1ZXN0cywgdG9n ZXRoZXIgd2l0aCB0aGUgYWNjZXNzIHRvIGEgUENJLVJvb3QgY29tcGxleC4KPj4gICAgQXMgc2Fp ZCBpbiB0aGUgJ0hhcmR3YXJlIGRlc2NyaXB0aW9uJyBzZWN0aW9uIGFib3ZlLCB0aGlzIHdpbGwg YWxzbyByZXF1aXJlCj4+ICAgIEFDUEkuIFNvIHRoaXMgcHJvcG9zZWQgc2NlbmFyaW8gd2lsbCBy ZXF1aXJlIHRoZSBmb2xsb3dpbmcgZWxlbWVudHMgdGhhdCBhcmUKPj4gICAgbm90IHByZXNlbnQg aW4gdGhlIG1pbmltYWwgKG9yIGRlZmF1bHQpIEhWTWxpdGUgaW1wbGVtZW50YXRpb246IEFDUEks IGxvY2FsCj4+ICAgIEFQSUMgSU8gQVBJQyBhbmQgUENJLVJvb3QgY29tcGxleC4KPiAKPiBUaGUg SU9BUElDIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBkb2luZyBwYXNzdGhyb3VnaCBvZiBub24tVkYg ZGV2aWNlcy4gCj4gSWYgdGhlIHBhc3N0aHJvdWdoIHVzZWNhc2UgaXMgcmVzdHJpY3RlZCB0byBT UklPViBWRnMgb25seSwgdGhlIElPQVBJQwo+IGNhbiBiZSBvbWl0dGVkLCBhcyB0aGUgU1JJT1Yg c3BlYyBmb3JiaWRzIHRoZSB1c2Ugb2YgbGVnYWN5IGxpbmUKPiBpbnRlcnJ1cHRzIGZvciBWRnMu ICBBZ2FpbiB3aXRoIHNlY3VyaXR5IGluIG1pbmQsIGl0IHNob3VsZCBiZSBwb3NzaWJsZQo+IGZv ciBhbiBhZG1pbiB0byBzcGVjaWZ5IHRoaXMgY29uZmlndXJhdGlvbiBpZiB0aGV5IHJlYWxseSB3 aXNoIHRvIHJlZHVjZQo+IHRoZSBlbXVsYXRlZCBhdHRhY2sgc3VyZmFjZSBpbiBYZW4uCj4gCj4g SW5kZXBlbmRlbnRseSBvZiB0aGUgSFZNTGl0ZSBhbmdsZSwgaGF2aW5nIGEgbWluaW1hbCBob3N0 IGJyaWRnZSBpbiBYZW4KPiBzb2x2ZXMgYSBsb3Qgb2Ygb3VyIGN1cnJlbnQgYXJjaGl0ZWN0dXJh bCBwcm9ibGVtcyB3aXRoIGV4aXN0aW5nIFBDSQo+IFBhc3N0aHJvdWdoLCBhbmQgaW4gcGFydGlj dWxhciBhbGxvd3MgZm9yIGRldmljZSBtb2RlbCBkaXNhZ2dyZWdhdGlvbiwKPiB3aGljaCB3aWxs IGFsc28gYmUgb2YgaW50ZXJlc3QgZm9yIHRoZSBwbGFpbiBIVk0gY2FzZS4KClNvIHdlIHNob3Vs ZCBwcm92aWRlIGEgbGFwaWMvaW9hcGljIHNldCBvZiBvcHRpb25zIHRvIHhsIGNvbmZpZ3VyYXRp b24KZmlsZXM/Cgo+Pgo+PiAgKiAzLiBIVk1saXRlIGhhcmR3YXJlIGRvbWFpbgo+PiAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgICBUaGUgYWltIGlzIHRoYXQgYSBIVk1saXRlIGhh cmR3YXJlIGRvbWFpbiBpcyBnb2luZyB0byB3b3JrIGV4YWN0bHkgbGlrZSBhCj4+ICAgIEhWTWxp dGUgZG9tYWluIHdpdGggcGFzc2VkLXRocm91Z2ggZGV2aWNlcy4gVGhpcyBtZWFucyB0aGF0IHRo ZSBkb21haW4gd2lsbAo+PiAgICBuZWVkIGFjY2VzcyB0byB0aGUgc2FtZSBzZXQgb2YgZW11bGF0 ZWQgZGV2aWNlcywgYW5kIHRoYXQgc29tZSBBQ1BJIHRhYmxlcwo+PiAgICBtdXN0IGJlIGZpeGVk IGluIG9yZGVyIHRvIHJlZmxlY3QgdGhlIHJlYWxpdHkgb2YgdGhlIGNvbnRhaW5lciB0aGUgaGFy ZHdhcmUKPj4gICAgZG9tYWluIGlzIHJ1bm5pbmcgb24uIFRoZSBBQ1BJIHNlY3Rpb24gY29udGFp bnMgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbgo+PiAgICBhYm91dCB3aGljaC9ob3cgdGhlc2Ug dGFibGVzIGFyZSBnb2luZyB0byBiZSBmaXhlZC4KPj4KPj4gICAgTm90ZSB0aGF0IGluIHRoaXMg c2NlbmFyaW8gdGhlIGhhcmR3YXJlIGRvbWFpbiB3aWxsICphbHdheXMqIGhhdmUgYSBsb2NhbAo+ PiAgICBBUElDIGFuZCBJTyBBUElDLCBhbmQgdGhhdCB0aGUgdXNhZ2Ugb2YgUEhZU0RFViBvcGVy YXRpb25zIGFuZCBQSVJRIGV2ZW50Cj4+ICAgIGNoYW5uZWxzIGlzIGdvaW5nIHRvIGJlIHJlbW92 ZWQgaW4gZmF2b3VyIG9mIHRoZSBiYXJlIG1ldGFsIG1lY2hhbmlzbXMuCj4gCj4gV2UgZG8gbmVl ZCB0byBjYXRlciBmb3IgYXQgbGVhc3QgdGhlIFJUQyBmb3IgdGhlIGhhcmR3YXJlIGRvbWFpbi4g IFRoaXMKPiBjYW4gYmUgZG9uZSBieSBub3QgdXNpbmcgdGhlIEZBRFQgInJlZHVjZWQiIGZsYWcg YW5kIGFjdHVhbGx5IHdpcmluZyB1cAo+IHRoZSBsZWdhY3kgSU8gcG9ydHMsIHdoaWNoIG91Z2h0 IHRvIGJlIHN1ZmZpY2llbnQuCgpZZXMsIHRoZSByZWR1Y2VkIGZsYWcgc2hvdWxkIGJlIHNldCBm b3IgRG9tVSwgYnV0IG5vdCBmb3IgdGhlIGhhcmR3YXJlCmRvbWFpbi4KCj4+Cj4+IFRoZXJlIGhh dmUgYmVlbiBzb21lIG9waW5pb25zIHRoYXQgdGhlIGN1cnJlbnQgbW9kZWwgKDEpIHNob3VsZCBi ZSByZXBsYWNlZAo+PiB3aXRoICgyKSB3aXRob3V0IGFueSBwYXNzZWQtdGhyb3VnaCBkZXZpY2Vz LCBzbyB0aGF0IGF0IGxlYXN0IGEgbG9jYWwgQVBJQyBpcwo+PiBwcm92aWRlZC4gU2hvdWxkIHRo ZW4gYSBSU0RULCBGQURUIGFuZCBNQURUIGJlIHByb3ZpZGVkPyBXZSB3b3VsZCB0aGVuIGJlCj4+ IGFibGUgdG8gc3dpdGNoIHRoZSBDUFUgZW51bWVyYXRpb24gdG8gdGhlIG9uZSB1c2VkIG9uIGJh cmUgbWV0YWwgKGllOiB1c2luZyB0aGUKPj4gZGF0YSBpbiB0aGUgTUFEVCkuCj4+Cj4+IEFDUEkK Pj4gLS0tLQo+Pgo+PiBBQ1BJIHRhYmxlcyB3aWxsIGJlIHByb3ZpZGVkIHRvIHRoZSBoYXJkd2Fy ZSBkb21haW4gb3IgdG8gdW5wcml2aWxlZ2VkCj4+IGRvbWFpbnMgdGhhdCBoYXZlIHBhc3NlZC10 aHJvdWdoIFBDSSBkZXZpY2VzLiBJbiB0aGUgY2FzZSBvZiB1bnByaXZpbGVnZWQKPj4gZ3Vlc3Rz IEFDUEkgdGFibGVzIGFyZSBnb2luZyB0byBiZSBjcmVhdGVkIGJ5IHRoZSB0b29sc3RhY2sgYW5k IHdpbGwgb25seQo+PiBjb250YWluIHRoZSBzZXQgb2YgZGV2aWNlcyBhdmFpbGFibGUgdG8gdGhl IGd1ZXN0LCB3aGljaCB3aWxsIGF0IGxlYXN0IGJlCj4+IHRoZSBmb2xsb3dpbmc6IGxvY2FsIEFQ SUMsIElPIEFQSUMsIHRoZSBwYXNzZWQtdGhyb3VnaCBkZXZpY2UuIEluIG9yZGVyIHRvCj4+IHBy b3ZpZGUgdGhpcyBpbmZvcm1hdGlvbiBmcm9tIEFDUEkgdGhlIGZvbGxvd2luZyB0YWJsZXMgYXJl IG5lZWRlZCBhcyBhCj4+IG1pbmltdW06IFJTRFQsIEZBRFQsIE1BRFQgYW5kIERTRFQuCj4+Cj4+ IEluIHRoZSBjYXNlIG9mIHRoZSBoYXJkd2FyZSBkb21haW4sIFhlbiBoYXMgdHJhZGl0aW9uYWxs eSBwYXNzZWQtdGhyb3VnaCB0aGUKPj4gbmF0aXZlIEFDUEkgdGFibGVzIHRvIHRoZSBndWVzdC4g VGhpcyBpcyBzb21ldGhpbmcgdGhhdCBvZiBjb3Vyc2Ugd2Ugc3RpbGwKPj4gd2FudCB0byBkbywg YnV0IGluIHRoZSBjYXNlIG9mIEhWTWxpdGUgWGVuIHdpbGwgaGF2ZSB0byBtYWtlIHN1cmUgdGhh dAo+PiB0aGUgZGF0YSBwYXNzZWQgaW4gdGhlIEFDUEkgdGFibGVzIHRvIHRoZSBoYXJkd2FyZSBk b21haW4gY29udGFpbiB0aGUgYWNjdXJhdGUKPj4gaGFyZHdhcmUgZGVzY3JpcHRpb24uIFRoaXMg bWVhbnMgdGhhdCBhdCBsZWFzdCBjZXJ0YWluIHRhYmxlcyB3aWxsIGhhdmUgdG8KPj4gYmUgbW9k aWZpZWQvbWFuZ2xlZCBiZWZvcmUgYmVpbmcgcHJlc2VudGVkIHRvIHRoZSBndWVzdDoKPj4KPj4g ICogTUFEVDogdGhlIG51bWJlciBvZiBsb2NhbCBBUElDIGVudHJpZXMgbmVlZCB0byBiZSBmaXhl ZCB0byBtYXRjaCB0aGUgbnVtYmVyCj4+ICAgICAgICAgIG9mIHZDUFVzIGF2YWlsYWJsZSB0byB0 aGUgZ3Vlc3QuIFRoZSBhZGRyZXNzIG9mIHRoZSBJTyBBUElDKHMpIGFsc28KPj4gICAgICAgICAg bmVlZCB0byBiZSBmaXhlZCBpbiBvcmRlciB0byBtYXRjaCB0aGUgZW11bGF0ZWQgb25lcyB0aGF0 IHdlIGFyZSBnb2luZwo+PiAgICAgICAgICB0byBwcm92aWRlLgo+Pgo+PiAgKiBEU0RUOiBjZXJ0 YWluIGRldmljZXMgcmVwb3J0ZWQgaW4gdGhlIERTRFQgbWF5IG5vdCBiZSBhdmFpbGFibGUgdG8g dGhlIGd1ZXN0LAo+PiAgICAgICAgICBidXQgc2luY2UgdGhlIERTRFQgaXMgYSBydW4tdGltZSBn ZW5lcmF0ZWQgdGFibGUgd2UgY2Fubm90IGZpeCBpdC4gSW4KPj4gICAgICAgICAgb3JkZXIgdG8g Y29wZSB3aXRoIHRoaXMsIGEgU1RBTyB0YWJsZSB3aWxsIGJlIHByb3ZpZGVkIHRoYXQgc2hvdWxk Cj4+ICAgICAgICAgIGJlIGFibGUgdG8gc2lnbmFsIHdoaWNoIGRldmljZXMgYXJlIG5vdCBhdmFp bGFibGUgdG8gdGhlIGhhcmR3YXJlCj4+ICAgICAgICAgIGRvbWFpbi4gVGhpcyBpcyBpbiBsaW5l IHdpdGggdGhlIFhlbi9BQ1BJIGltcGxlbWVudGF0aW9uIGZvciBBUk0uCj4+Cj4+ICAqIE1QU1Qs IFBNVFQsIFNCVFQgYW5kIFNSQVQ6IHdvbid0IGJlIGluaXRpYWxseSBwcmVzZW50ZWQgdG8gdGhl IGd1ZXN0LCB1bnRpbAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZSBnZXQgb3Vy IGFjdCB0b2dldGhlciBvbiB0aGUgdk5VTUEgc3R1ZmYuCj4gCj4gYW5kIFNMSVQuCj4gCj4+Cj4+ IE5COiB0aGVyZSBhcmUgY29ybmVyIGNhc2VzIHRoYXQgSSdtIG5vdCBzdXJlIGhvdyB0byBzb2x2 ZSBwcm9wZXJseS4gQ3VycmVudGx5Cj4+IHRoZSBoYXJkd2FyZSBkb21haW4gaGFzIHNvbWUgJ2hh Y2tzJyByZWdhcmRpbmcgQUNQSSBhbmQgWGVuLiBBdCBsZWFzdCBJJ20gYXdhcmUKPj4gb2YgdGhl IGZvbGxvd2luZzoKPj4KPj4gICogMS4gUmVwb3J0aW5nIENQVSBQTSBpbmZvIGJhY2sgdG8gWGVu OiB0aGlzIGNvbWVzIGZyb20gdGhlIERTRFQgdGFibGUsIGFuZAo+PiAgICBzaW5jZSB0aGlzIHRh YmxlIGlzIG9ubHkgYXZhaWxhYmxlIHRvIHRoZSBoYXJkd2FyZSBkb21haW4gaXQgaGFzIHRvIHJl cG9ydAo+PiAgICB0aGUgUE0gaW5mbyBiYWNrIHRvIFhlbiBzbyB0aGF0IFhlbiBjYW4gcGVyZm9y bSBwcm9wZXIgUE0uCj4+ICAqIDIuIERvaW5nIHByb3BlciBzaHV0ZG93biAoUzUpIHJlcXVpcmVz IHRoZSB1c2FnZSBvZiBhIGh5cGVyY2FsbCwgd2hpY2ggaXMKPj4gICAgbWl4ZWQgd2l0aCBuYXRp dmUgQUNQSUNBIGNvZGUgaW4gbW9zdCBPU2VzLiBUaGlzIGlzIGF3a3dhcmQgYW5kIHJlcXVpcmVz Cj4+ICAgIHRoZSB1c2FnZSBvZiBob29rcyBpbnRvIEFDUElDQSB3aGljaCB3ZSBoYXZlIG5vdCB5 ZXQgbWFuYWdlZCB0byB1cHN0cmVhbS4KPj4gICogMy4gUmVwb3J0aW5nIHRoZSBQQ0kgZGV2aWNl cyBpdCBmaW5kcyB0byB0aGUgaHlwZXJ2aXNvcjogdGhpcyBpcyBub3QgdmVyeQo+PiAgICBpbnRy dXNpdmUgaW4gZ2VuZXJhbCwgc28gSSdtIG5vdCB0aGF0IHB1c2hlZCB0byByZW1vdmUgaXQuIEl0 J3MgZ2VuZXJhbGx5Cj4+ICAgIGVhc3kgaW4gYW55IE9TIHRvIGFkZCBzb21lIGtpbmQgb2YgaG9v ayB0aGF0J3MgZXhlY3V0ZWQgZXZlcnkgdGltZSBhIFBDSQo+PiAgICBkZXZpY2UgaXMgZGlzY292 ZXJlZC4KPj4gICogNC4gUmVwb3J0IFBDSSBtZW1vcnktbWFwcGVkIGNvbmZpZ3VyYXRpb24gYXJl YXMgdG8gWGVuOiBteSBvcGluaW9uIHJlZ2FyZGluZwo+PiAgICB0aGlzIG9uZSBpcyB0aGUgc2Ft ZSBhcyAoMyksIGl0J3Mgbm90IHJlYWxseSBpbnRydXNpdmUgc28gSSdtIG5vdCB2ZXJ5Cj4+ICAg IHB1c2hlZCB0byByZW1vdmUgaXQuCj4+Cj4+IEkgd291bGQgaWRlYWxseSBsaWtlIHRvIGdldCBy aWQgb2YgKDIpIGluIHRoZSBsaXN0IGFib3ZlLCBzaW5jZSBJJ20gcXVpdGUgc3VyZQo+PiB3ZSBh cmUgbmV2ZXIgZ29pbmcgdG8gYmUgYWJsZSB0byBtZXJnZSB0aGUgbmVlZGVkIGhvb2tzIGludG8g QUNQSUNBLiBBRkFJQ1QgWGVuCj4+IHNob3VsZCBiZSBhYmxlIHRvIHBhcnNlIHRoZSBGQURUIHRh YmxlIGFuZCBmaW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBQTTFhIGFuZAo+PiBQTTFiIGNvbnRyb2wg cmVnaXN0ZXJzIGFuZCB0cmFwIG9uIGFjY2Vzcy4KPiAKPiBEb2luZyB0aGlzIHdvdWxkIHJlcXVp cmUgbW9yZSBvZiAoMSksIGFzIHRoZSBleGFjdCB2YWx1ZXMgd3JpdHRlbiB0byB0aGUKPiBQTTFh IGFuZCBQTTFiIGNvbnRyb2wgcmVnaXN0ZXJzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIERTRFQsIGlp cmMuCgpPdWNoLCBJIHdhcyBob3BpbmcgdGhlIHZhbHVlcyB3b3VsZCBiZSBjb25zdGFudHMgZGVm aW5lZCBzb21ld2hlcmUuLi4KClJvZ2VyLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK