From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [DRAFT RFC] PVHv2 interaction with physical devices Date: Thu, 10 Nov 2016 08:53:05 -0500 Message-ID: <20161110135304.GB16469@localhost.localdomain> References: <20161109155912.47dfdb57dqg6p3qz@mac> <20161109184517.GA7892@char.us.oracle.com> <20161110103908.ohm4gakoklqoqioh@mac> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c4pn9-0005XZ-P2 for xen-devel@lists.xenproject.org; Thu, 10 Nov 2016 13:53:23 +0000 Content-Disposition: inline In-Reply-To: <20161110103908.ohm4gakoklqoqioh@mac> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: Andrew Cooper , Kelly , Julien Grall , Paul Durrant , Jan Beulich , xen-devel@lists.xenproject.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBOb3YgMTAsIDIwMTYgYXQgMTE6Mzk6MDhBTSArMDEwMCwgUm9nZXIgUGF1IE1vbm7D qSB3cm90ZToKPiBPbiBXZWQsIE5vdiAwOSwgMjAxNiBhdCAwMTo0NToxN1BNIC0wNTAwLCBLb25y YWQgUnplc3p1dGVrIFdpbGsgd3JvdGU6Cj4gPiBPbiBXZWQsIE5vdiAwOSwgMjAxNiBhdCAwNDo1 OToxMlBNICswMTAwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOgo+ID4gPiBIZWxsbywKPiA+ID4g Cj4gPiA+IEknbSBhdHRhY2hpbmcgYSBkcmFmdCBvZiBob3cgYSBQVkh2MiBEb20wIGlzIHN1cHBv c2VkIHRvIGludGVyYWN0IHdpdGggCj4gPiA+IHBoeXNpY2FsIGRldmljZXMsIGFuZCB3aGF0IG5l ZWRzIHRvIGJlIGRvbmUgaW5zaWRlIG9mIFhlbiBpbiBvcmRlciB0byAKPiA+ID4gYWNoaWV2ZSBp dC4gQ3VycmVudCBkcmFmdCBpcyBSRkMgYmVjYXVzZSBJJ20gcXVpdGUgc3VyZSBJJ20gbWlzc2lu ZyBiaXRzIAo+ID4gPiB0aGF0IHNob3VsZCBiZSB3cml0dGVuIGRvd24gaGVyZS4gU28gZmFyIEkn dmUgdHJpZWQgdG8gZGVzY3JpYmUgd2hhdCBteSAKPiA+ID4gcHJldmlvdXMgc2VyaWVzIGF0dGVt cHRlZCB0byBkbyBieSBhZGRpbmcgYSBidW5jaCBvZiBJTyBhbmQgbWVtb3J5IHNwYWNlIAo+ID4g PiBoYW5kbGVycy4KPiA+ID4gCj4gPiA+IFBsZWFzZSBub3RlIHRoYXQgdGhpcyBkb2N1bWVudCBv bmx5IGFwcGxpZXMgdG8gUFZIdjIgRG9tMCwgaXQgaXMgbm90IAo+ID4gPiBhcHBsaWNhYmxlIHRv IHVudHJ1c3RlZCBkb21haW5zIHRoYXQgd2lsbCBuZWVkIG1vcmUgaGFuZGxlcnMgaW4gb3JkZXIg dG8gCj4gPiA+IHNlY3VyZSBYZW4gYW5kIG90aGVyIGRvbWFpbnMgcnVubmluZyBvbiB0aGUgc2Ft ZSBzeXN0ZW0uIFRoZSBpZGVhIGlzIHRoYXQgCj4gPiA+IHRoaXMgY2FuIGJlIGV4cGFuZGVkIHRv IHVudHJ1c3RlZCBkb21haW5zIGFsc28gaW4gdGhlIGxvbmcgdGVybSwgdGh1cyBoYXZpbmcgCj4g PiA+IGEgc2luZ2xlIHNldCBvZiBJTyBhbmQgbWVtb3J5IGhhbmRsZXJzIGZvciBwYXNzZWQtdGhy b3VnaCBkZXZpY2VzLgo+ID4gPiAKPiA+ID4gUm9nZXIuCj4gPiA+IAo+ID4gPiAtLS04PC0tLQo+ ID4gPiAKPiA+ID4gVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgaG93IGEgUFZIdjIgRG9tMCBpcyBz dXBwb3NlZCB0byBpbnRlcmFjdCB3aXRoIHBoeXNpY2FsCj4gPiA+IGRldmljZXMuCj4gPiA+IAo+ ID4gPiBBcmNoaXRlY3R1cmUKPiA+ID4gPT09PT09PT09PT09Cj4gPiA+IAo+ID4gPiBQdXJwb3Nl Cj4gPiA+IC0tLS0tLS0KPiA+ID4gCj4gPiA+IFByZXZpb3VzIERvbTAgaW1wbGVtZW50YXRpb25z IGhhdmUgYWx3YXlzIHVzZWQgUElSUXMgKHBoeXNpY2FsIGludGVycnVwdHMKPiA+ID4gcm91dGVk IG92ZXIgZXZlbnQgY2hhbm5lbHMpIGluIG9yZGVyIHRvIHJlY2VpdmUgZXZlbnRzIGZyb20gcGh5 c2ljYWwgZGV2aWNlcy4KPiA+ID4gVGhpcyBwcmV2ZW50cyBEb20wIGZvcm0gdGFraW5nIGFkdmFu dGFnZSBvZiBuZXcgaGFyZHdhcmUgdmlydHVhbGl6YXRpb24KPiA+ID4gZmVhdHVyZXMsIGxpa2Ug cG9zdGVkIGludGVycnVwdHMgb3IgaGFyZHdhcmUgdmlydHVhbGl6ZWQgbG9jYWwgQVBJQy4gQWxz byB0aGUKPiA+ID4gY3VycmVudCBkZXZpY2UgbWVtb3J5IG1hbmFnZW1lbnQgaW4gdGhlIFBWSCBE b20wIGltcGxlbWVudGF0aW9uIGlzIGxhY2tpbmcsCj4gPiA+IGFuZCBtaWdodCBub3Qgc3VwcG9y dCBkZXZpY2VzIHRoYXQgaGF2ZSBtZW1vcnkgcmVnaW9ucyBwYXN0IHRoZSA0R0IgCj4gPiA+IGJv dW5kYXJ5Lgo+ID4gCj4gPiBtZW1vcnkgcmVnaW9ucyBtZWFuaW5nIEJBUiByZWdpb25zPwo+IAo+ IFllcy4KPiAgCj4gPiA+IAo+ID4gPiBUaGUgbmV3IFBWSCBpbXBsZW1lbnRhdGlvbiAoUFZIdjIp IHNob3VsZCBvdmVyY29tZSB0aGUgaW50ZXJydXB0IGxpbWl0YXRpb25zIGJ5Cj4gPiA+IHByb3Zp ZGluZyB0aGUgc2FtZSBpbnRlcmZhY2UgdGhhdCdzIHVzZWQgb24gYmFyZSBtZXRhbCAoYSBsb2Nh bCBhbmQgSU8gQVBJQ3MpCj4gPiA+IHRodXMgYWxsb3dpbmcgdGhlIHVzYWdlIG9mIGFkdmFuY2Vk IGhhcmR3YXJlIGFzc2lzdGVkIHZpcnR1YWxpemF0aW9uCj4gPiA+IHRlY2huaXF1ZXMuIFRoaXMg YWxzbyBhbGlnbnMgd2l0aCB0aGUgdHJlbmQgb24gdGhlIGhhcmR3YXJlIGluZHVzdHJ5IHRvCj4g PiA+IG1vdmUgcGFydCBvZiB0aGUgZW11bGF0aW9uIGludG8gdGhlIHNpbGljb24gaXRzZWxmLgo+ ID4gCj4gPiBXaGF0IGlmIHRoZSBoYXJkd2FyZSBQVkgyIHJ1bnMgb24gZG9lcyBub3QgaGF2ZSB2 QVBJQz8KPiAKPiBUaGUgZW11bGF0ZWQgbG9jYWwgQVBJQyBwcm92aWRlZCBieSBYZW4gd2lsbCBi ZSB1c2VkLgo+IAo+ID4gPiAKPiA+ID4gSW4gb3JkZXIgdG8gaW1wcm92ZSB0aGUgbWFwcGluZyBv ZiBkZXZpY2UgbWVtb3J5IGFyZWFzLCBYZW4gd2lsbCBoYXZlIHRvCj4gPiA+IGtub3cgb2YgdGhv c2UgZGV2aWNlcyBpbiBhZHZhbmNlIChiZWZvcmUgRG9tMCB0cmllcyB0byBpbnRlcmFjdCB3aXRo IHRoZW0pCj4gPiA+IHNvIHRoYXQgdGhlIG1lbW9yeSBCQVJzIHdpbGwgYmUgcHJvcGVybHkgbWFw cGVkIGludG8gRG9tMCBtZW1vcnkgbWFwLgo+ID4gCj4gPiBPaCwgdGhhdCBpcyBnb2luZyB0byBi ZSBhIHByb2JsZW0gd2l0aCBTUi1JT1YuIFRob3NlIGFyZSBjcmVhdGVkIF9hZnRlcl8KPiA+IGRv bTAgaGFzIGJvb3RlZC4gSW4gZmFjdCB0aGV5IGFyZSBkb25lIGJ5IHRoZSBkcml2ZXJzIHRoZW1z ZWx2ZXMuCj4gPiAKPiA+IFNlZSB4ZW5fYWRkX2RldmljZSBpbiBkcml2ZXJzL3hlbi9wY2kuYyBo b3cgdGhpcyBpcyBoYW5kbGVkLgo+IAo+IElzIHRoZSBwcm9jZXNzIG9mIGNyZWF0aW5nIHRob3Nl IFZGIHNvbWV0aGluZyBzdGFuZGFydD8gKEluIHRoZSBzZW5zZSB0aGF0IAo+IGl0IGNhbiBiZSBk ZXRlY3RlZCBieSBYZW4sIGFuZCBwcm9wZXIgbWFwcGluZ3Mgc3RhYmxpc2hlZCkKClllcyBhbmQg bm8uCgpZb3UgY2FuIHJlYWQgZnJvbSB0aGUgUENJIGNvbmZpZ3VyYXRpb24gdGhhdCB0aGUgZGV2 aWNlIChQaHlzaWNhbApmdW5jdGlvbikgaGFzIFNSLUlPVi4gQnV0IHRoYXQgaW5mb3JtYXRpb24g bWF5IGJlIGluIHRoZSBleHRlbmRlZApjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBzbyB5b3UgbmVl ZCBNQ0ZHLiBBbnlob3cgdGhlIG9ubHkgdGhpbmcgdGhlIFBGCndpbGwgdGVsbCB5b3UgaXMgdGhl IEJBUiByZWdpb25zIHRoZXkgd2lsbCBvY2N1cHkgKHNpbmNlIHRoZXkKYXJlIGJlaGluZCB0aGUg YnJpZGdlKSBidXQgbm90IHRoZSBCREZzOgoKICAgICAgICBDYXBhYmlsaXRpZXM6IFsxNjAgdjFd IFNpbmdsZSBSb290IEkvTyBWaXJ0dWFsaXphdGlvbiAoU1ItSU9WKQogICAgICAgICAgICAgICAg SU9WQ2FwOiBNaWdyYXRpb24tLCBJbnRlcnJ1cHQgTWVzc2FnZSBOdW1iZXI6IDAwMAogICAgICAg ICAgICAgICAgSU9WQ3RsOiBFbmFibGUtIE1pZ3JhdGlvbi0gSW50ZXJydXB0LSBNU0UtIEFSSUhp ZXJhcmNoeSsKICAgICAgICAgICAgICAgIElPVlN0YTogTWlncmF0aW9uLQogICAgICAgICAgICAg ICAgSW5pdGlhbCBWRnM6IDgsIFRvdGFsIFZGczogOCwgTnVtYmVyIG9mIFZGczogMCwgRnVuY3Rp b24gRGVwZW5kZW5jeSBMaW5rOiAwMAogICAgICAgICAgICAgICAgVkYgb2Zmc2V0OiAxMjgsIHN0 cmlkZTogMiwgRGV2aWNlIElEOiAxMGNhCiAgICAgICAgICAgICAgICBTdXBwb3J0ZWQgUGFnZSBT aXplOiAwMDAwMDU1MywgU3lzdGVtIFBhZ2UgU2l6ZTogMDAwMDAwMDEKICAgICAgICAgICAgICAg IFJlZ2lvbiAwOiBNZW1vcnkgYXQgMDAwMDAwMDBmYmRhMDAwMCAoNjQtYml0LCBub24tcHJlZmV0 Y2hhYmxlKQogICAgICAgICAgICAgICAgUmVnaW9uIDM6IE1lbW9yeSBhdCAwMDAwMDAwMGZiZDgw MDAwICg2NC1iaXQsIG5vbi1wcmVmZXRjaGFibGUpCiAgICAgICAgICAgICAgICBWRiBNaWdyYXRp b246IG9mZnNldDogMDAwMDAwMDAsIEJJUjogMAogICAgICAgIEtlcm5lbCBkcml2ZXIgaW4gdXNl OiBpZ2IKCkFuZCBpZiBJIGVuYWJsZSBTUi1JT1Ygb24gdGhlIFBGIEkgZ2V0OgoKMGE6MDAuMCBF dGhlcm5ldCBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA4MjU3NiBHaWdhYml0IE5ldHdv cmsgQ29ubmVjdGlvbiAocmV2IDAxKQowYToxMC4wIEV0aGVybmV0IGNvbnRyb2xsZXI6IEludGVs IENvcnBvcmF0aW9uIDgyNTc2IFZpcnR1YWwgRnVuY3Rpb24gKHJldiAwMSkKMGE6MTAuMiBFdGhl cm5ldCBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA4MjU3NiBWaXJ0dWFsIEZ1bmN0aW9u IChyZXYgMDEpCjBhOjEwLjQgRXRoZXJuZXQgY29udHJvbGxlcjogSW50ZWwgQ29ycG9yYXRpb24g ODI1NzYgVmlydHVhbCBGdW5jdGlvbiAocmV2IDAxKQowYToxMC42IEV0aGVybmV0IGNvbnRyb2xs ZXI6IEludGVsIENvcnBvcmF0aW9uIDgyNTc2IFZpcnR1YWwgRnVuY3Rpb24gKHJldiAwMSkKMGE6 MTEuMCBFdGhlcm5ldCBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA4MjU3NiBWaXJ0dWFs IEZ1bmN0aW9uIChyZXYgMDEpCjBhOjExLjIgRXRoZXJuZXQgY29udHJvbGxlcjogSW50ZWwgQ29y cG9yYXRpb24gODI1NzYgVmlydHVhbCBGdW5jdGlvbiAocmV2IDAxKQowYToxMS40IEV0aGVybmV0 IGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIDgyNTc2IFZpcnR1YWwgRnVuY3Rpb24gKHJl diAwMSkKCi1iYXNoLTQuMSMgbHNwY2kgLXMgMGE6MTAuMCAtdgowYToxMC4wIEV0aGVybmV0IGNv bnRyb2xsZXI6IEludGVsIENvcnBvcmF0aW9uIDgyNTc2IFZpcnR1YWwgRnVuY3Rpb24KKHJldiAw MSkKICAgICAgICBTdWJzeXN0ZW06IFN1cGVyIE1pY3JvIENvbXB1dGVyIEluYyBEZXZpY2UgMTBj OQogICAgICAgIEZsYWdzOiBidXMgbWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwCiAgICAg ICAgW3ZpcnR1YWxdIE1lbW9yeSBhdCBmYmRhMDAwMCAoNjQtYml0LCBub24tcHJlZmV0Y2hhYmxl KSBbc2l6ZT0xNktdCiAgICAgICAgW3ZpcnR1YWxdIE1lbW9yeSBhdCBmYmQ4MDAwMCAoNjQtYml0 LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT0xNktdCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNzBd IE1TSS1YOiBFbmFibGUrIENvdW50PTMgTWFza2VkLQogICAgICAgIENhcGFiaWxpdGllczogW2Ew XSBFeHByZXNzIEVuZHBvaW50LCBNU0kgMDAKICAgICAgICBDYXBhYmlsaXRpZXM6IFsxMDBdIEFk dmFuY2VkIEVycm9yIFJlcG9ydGluZwogICAgICAgIENhcGFiaWxpdGllczogWzE1MF0gQWx0ZXJu YXRpdmUgUm91dGluZy1JRCBJbnRlcnByZXRhdGlvbiAoQVJJKQogICAgICAgIEtlcm5lbCBkcml2 ZXIgaW4gdXNlOiBpZ2J2ZgoKLWJhc2gtNC4xIyBsc3BjaSAtcyAwYToxMS40IC12CjBhOjExLjQg RXRoZXJuZXQgY29udHJvbGxlcjogSW50ZWwgQ29ycG9yYXRpb24gODI1NzYgVmlydHVhbCBGdW5j dGlvbgoocmV2IDAxKQogICAgICAgIFN1YnN5c3RlbTogU3VwZXIgTWljcm8gQ29tcHV0ZXIgSW5j IERldmljZSAxMGM5CiAgICAgICAgRmxhZ3M6IGJ1cyBtYXN0ZXIsIGZhc3QgZGV2c2VsLCBsYXRl bmN5IDAKICAgICAgICBbdmlydHVhbF0gTWVtb3J5IGF0IGZiZGI4MDAwICg2NC1iaXQsIG5vbi1w cmVmZXRjaGFibGUpIFtzaXplPTE2S10KICAgICAgICBbdmlydHVhbF0gTWVtb3J5IGF0IGZiZDk4 MDAwICg2NC1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTE2S10KICAgICAgICBDYXBhYmls aXRpZXM6IFs3MF0gTVNJLVg6IEVuYWJsZSsgQ291bnQ9MyBNYXNrZWQtCiAgICAgICAgQ2FwYWJp bGl0aWVzOiBbYTBdIEV4cHJlc3MgRW5kcG9pbnQsIE1TSSAwMAogICAgICAgIENhcGFiaWxpdGll czogWzEwMF0gQWR2YW5jZWQgRXJyb3IgUmVwb3J0aW5nCiAgICAgICAgQ2FwYWJpbGl0aWVzOiBb MTUwXSBBbHRlcm5hdGl2ZSBSb3V0aW5nLUlEIEludGVycHJldGF0aW9uIChBUkkpCiAgICAgICAg S2VybmVsIGRyaXZlciBpbiB1c2U6IGlnYnZmCgoKPiAKPiA+ID4gCj4gPiA+IFRoZSBmb2xsb3dp bmcgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBwcm9wb3NlZCBpbnRlcmZhY2UgYW5kIGltcGxlbWVu dGF0aW9uCj4gPiA+IG9mIGFsbCB0aGUgbG9naWMgbmVlZGVkIGluIG9yZGVyIHRvIGFjaGlldmUg dGhlIGZ1bmN0aW9uYWxpdHkgZGVzY3JpYmVkIAo+ID4gPiBhYm92ZS4KPiA+ID4gCj4gPiA+IE1N SU8gYXJlYXMKPiA+ID4gPT09PT09PT09PQo+ID4gPiAKPiA+ID4gT3ZlcnZpZXcKPiA+ID4gLS0t LS0tLS0KPiA+ID4gCj4gPiA+IE9uIHg4NiBzeXN0ZW1zIGNlcnRhaW4gcmVnaW9ucyBvZiBtZW1v cnkgbWlnaHQgYmUgdXNlZCBpbiBvcmRlciB0byBtYW5hZ2UKPiA+ID4gcGh5c2ljYWwgZGV2aWNl cyBvbiB0aGUgc3lzdGVtLiBBY2Nlc3MgdG8gdGhpcyBhcmVhcyBpcyBjcml0aWNhbCBmb3IgYQo+ ID4gPiBQVkggRG9tMCBpbiBvcmRlciB0byBvcGVyYXRlIHByb3Blcmx5LiBVbmxpa2UgcHJldmlv dXMgUFZIIERvbTAgaW1wbGVtZW50YXRpb24KPiA+ID4gKFBWSHYxKSB0aGF0IHdhcyBzZXR1cCB3 aXRoIGlkZW50aXR5IG1hcHBpbmdzIG9mIGFsbCB0aGUgaG9sZXMgYW5kIHJlc2VydmVkCj4gPiA+ IHJlZ2lvbnMgZm91bmQgaW4gdGhlIG1lbW9yeSBtYXAsIHRoaXMgbmV3IGltcGxlbWVudGF0aW9u IGludGVudHMgdG8gbWFwIG9ubHkKPiA+ID4gd2hhdCdzIGFjdHVhbGx5IG5lZWRlZCBieSB0aGUg RG9tMC4KPiA+IAo+ID4gQW5kIHdoeSB3YXMgdGhlIHByZXZpb3VzIGFwcHJvYWNoIG5vdCB3b3Jr aW5nPwo+IAo+IFByZXZpb3VzIFBWSHYxIGltcGxlbWVudGF0aW9uIHdvdWxkIG9ubHkgaWRlbnRp dHkgbWFwIGhvbGVzIGFuZCByZXNlcnZlZCAKPiBhcmVhcyBpbiB0aGUgZ3Vlc3QgbWVtb3J5IG1h cCwgb3IgdXAgdG8gdGhlIDRHQiBib3VuZGFyeSBpZiB0aGUgZ3Vlc3QgbWVtb3J5IAo+IG1hcCBp cyBzbWFsbGVyIHRoYW4gNEdCLiBJZiBhIGRldmljZSBoYXMgYSBCQVIgcGFzdCB0aGUgNEdCIGJv dW5kYXJ5IGZvciAKPiBleGFtcGxlLCBpdCB3b3VsZCBub3QgYmUgaWRlbnRpdHkgbWFwcGVkIGlu IHRoZSBwMm0uIAo+IAo+ID4gPiAKPiA+ID4gTG93IDFNQgo+ID4gPiAtLS0tLS0tCj4gPiA+IAo+ ID4gPiBXaGVuIGJvb3RlZCB3aXRoIGEgbGVnYWN5IEJJT1MsIHRoZSBsb3cgMU1CIGNvbnRhaW5z IGZpcm13YXJlIHJlbGF0ZWQgZGF0YQo+ID4gPiB0aGF0IHNob3VsZCBiZSBpZGVudGl0eSBtYXBw ZWQgdG8gdGhlIERvbTAuIFRoaXMgaW5jbHVkZSB0aGUgRUJEQSwgdmlkZW8KPiA+ID4gbWVtb3J5 IGFuZCBwb3NzaWJseSBST01zLiBBbGwgbm9uIFJBTSByZWdpb25zIGJlbG93IDFNQiB3aWxsIGJl IGlkZW50aXR5Cj4gPiA+IG1hcHBlZCB0byB0aGUgRG9tMCBzbyB0aGF0IGl0IGNhbiBhY2Nlc3Mg dGhpcyBkYXRhIGZyZWVseS4KPiA+ID4gCj4gPiA+IEFDUEkgcmVnaW9ucwo+ID4gPiAtLS0tLS0t LS0tLS0KPiA+ID4gCj4gPiA+IEFDUEkgcmVnaW9ucyB3aWxsIGJlIGlkZW50aXR5IG1hcHBlZCB0 byB0aGUgRG9tMCwgdGhpcyBpbXBsaWVzIHJlZ2lvbnMgd2l0aAo+ID4gPiB0eXBlIDMgYW5kIDQg aW4gdGhlIGU4MjAgbWVtb3J5IG1hcC4gQWxzbywgc2luY2Ugc29tZSBCSU9TIHJlcG9ydCBpbmNv cnJlY3QKPiA+ID4gbWVtb3J5IG1hcHMsIHRoZSB0b3AtbGV2ZWwgdGFibGVzIGRpc2NvdmVyZWQg YnkgWGVuIChhcyBsaXN0ZWQgaW4gdGhlCj4gPiA+IHtYL1J9U0RUKSB0aGF0IGFyZSBub3Qgb24g UkFNIHJlZ2lvbnMgd2lsbCBiZSBtYXBwZWQgdG8gRG9tMC4KPiA+ID4gCj4gPiA+IFBDSSBtZW1v cnkgQkFScwo+ID4gPiAtLS0tLS0tLS0tLS0tLS0KPiA+ID4gCj4gPiA+IFBDSSBkZXZpY2VzIGRp c2NvdmVyZWQgYnkgWGVuIHdpbGwgaGF2ZSBpdCdzIEJBUnMgc2Nhbm5lZCBpbiBvcmRlciB0byBk ZXRlY3QKPiA+ID4gbWVtb3J5IEJBUnMsIGFuZCB0aG9zZSB3aWxsIGJlIGlkZW50aXR5IG1hcHBl ZCB0byBEb20wLiBTaW5jZSBCQVJzIGNhbiBiZQo+ID4gPiBmcmVlbHkgbW92ZWQgYnkgdGhlIERv bTAgT1MgYnkgd3JpdGluZyB0byB0aGUgYXBwcm9wcmlhdGUgUENJIGNvbmZpZyBzcGFjZQo+ID4g PiByZWdpc3RlciwgWGVuIG11c3QgdHJhcCB0aG9zZSBhY2Nlc3NlcyBhbmQgdW5tYXAgdGhlIHBy ZXZpb3VzIHJlZ2lvbiBhbmQKPiA+ID4gbWFwIHRoZSBuZXcgb25lIGFzIHNldCBieSBEb20wLgo+ ID4gCj4gPiBZb3UgY2FuIG1ha2UgdGhhdCBzaW1wbGVyIC0gd2UgaGF2ZSBoeXBlcmNhbGxzIHRv ICJub3RpZnkiIGluIExpbnV4Cj4gPiB3aGVuIGEgZGV2aWNlIGlzIGNoYW5naW5nLiBUaG9zZSBj YW4gcHJvdmlkZSB0aGF0IGluZm9ybWF0aW9uIGFzIHdlbGwuCj4gPiAoVGhpcyBpcyB3aGF0IFBW IGRvbTAgZG9lcykuCj4gPiAKPiA+IEFsc28geW91IGFyZSBtaXNzaW5nIG9uZSBpbXBvcnRhbnQg cGFydCAtIHRoZSBNTUNGRy4gVGhhdCBpcyByZXF1aXJlZAo+ID4gZm9yIFhlbiB0byBiZSBhYmxl IHRvIHBva2UgYXQgdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlcyAoYWJvdmUgdGhlIDI1Niku Cj4gPiBBbmQgeW91IGNhbiBvbmx5IGdldCB0aGUgTU1DRkcgaWYgdGhlIEFDUEkgRFNEVCBoYXMg YmVlbiBwYXJzZWQuCj4gCj4gSG0sIEkgZ3Vlc3MgSSdtIG1pc3Npbmcgc29tZXRoaW5nLCBidXQg YXQgbGVhc3Qgb24gbXkgaGFyZHdhcmUgWGVuIHNlZW1zIHRvIAo+IGJlIGFibGUgdG8gcGFyc2Ug dGhlIE1DRkcgQUNQSSB0YWJsZSBiZWZvcmUgRG9tMCBkb2VzIGFueXRoaW5nIHdpdGggdGhlIAo+ IERTRFQ6Cj4gCj4gKFhFTikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFzZSBmODAwMDAw MCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSAzZgo+IChYRU4pIFBDSTogTUNGRyBhcmVhIGF0IGY4 MDAwMDAwIHJlc2VydmVkIGluIEU4MjAKPiAoWEVOKSBQQ0k6IFVzaW5nIE1DRkcgZm9yIHNlZ21l bnQgMDAwMCBidXMgMDAtM2YKPiAKPiA+IFNvIGlmIHlvdSBkbyB0aGUgUENJIGJ1cyBzY2Fubmlu ZyBfYmVmb3JlXyBib290aW5nIFBWSCBkb20wLCB5b3UgbWF5Cj4gPiBuZWVkIHRvIHVwZGF0ZSB5 b3VyIHZpZXcgb2YgUENJIGRldmljZXMgYWZ0ZXIgdGhlIE1NQ0ZHIGxvY2F0aW9ucwo+ID4gaGF2 ZSBiZWVuIHByb3ZpZGVkIHRvIHlvdS4KPiAKPiBJJ20gbm90IG9wcG9zZWQgdG8ga2VlcCB0aGUg UEhZU0RFVk9QX3BjaV9tbWNmZ19yZXNlcnZlZCwgYnV0IEkgc3RpbGwgaGF2ZSAKPiB0byBzZWUg aGFyZHdhcmUgd2hlcmUgdGhpcyBpcyBhY3R1YWxseSBuZWVkZWQuIEFsc28sIEFGQUlDVCwgRnJl ZUJTRCBhdCAKPiBsZWFzdCBpcyBvbmx5IGFibGUgdG8gZGV0ZWN0IE1NQ0ZHIHJlZ2lvbnMgcHJl c2VudCBpbiB0aGUgTUNGRyBBQ1BJIHRhYmxlOgoKVGhlcmUgaXMgc29tZSBoYXJkd2FyZSBvdXQg dGhlcmUgKEkgdGhpbmsgSSBzYXcgdGhpcyB3aXRoIGFuIElCTSBIUy0yMCwKYnV0IEkgY2FuJ3Qg cmVjYWxsIHRoZSBkZXRhaWxzKS4gVGhlIHNwZWNpZmljYXRpb24gc2F5cyB0aGF0IHRoZSBNQ0ZH Cl9tYXlfIGJlIGRlZmluZWQgaW4gdGhlIE1BRFQsIGJ1dCBpcyBub3QgZ3VhcmFudGVlZC4gV2hp Y2ggbWVhbnMgdGhhdCBpdApjYW4gYnViYmxlIHZpYSB0aGUgQUNQSSBEU0RUIGNvZGUuCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK