From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [RFC PATCH 5/23] Tools/libxc: Add viommu operations in libxc Date: Tue, 18 Apr 2017 14:15:29 +0000 Message-ID: References: <1489750043-17260-1-git-send-email-tianyu.lan@intel.com> <1489750043-17260-6-git-send-email-tianyu.lan@intel.com> <20170328162403.tjx2s6ywjhvbjsti@citrix.com> <20170329004005.GA5058@skl-2s3.sh.intel.com> <20170330195708.GA88651@skl-2s3.sh.intel.com> <747e0516-eab2-b12e-32a3-9085fb6a7d23@intel.com> <3a672f1441bd4ce7a004095a387d5688@AMSPEX02CL03.citrite.net> <6b86c767-0dc3-7b69-6dcd-829e79815d0e@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <6b86c767-0dc3-7b69-6dcd-829e79815d0e@intel.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: 'Lan Tianyu' , Wei Liu , Kevin Tian , Ian Jackson , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KW3NuaXBdDQo+ID4NCj4gPiBOb3QgcXVpdGUg c3VyZSBJIHVuZGVyc3RhbmQgdGhpcy4gVGhlIFFFTXUgZGV2aWNlIG1vZGVsIGRvZXMgbm90ICdw YXNzDQo+IERNQSByZXF1ZXN0cycgYXMgc3VjaCwgaXQgbWFwcyBndWVzdCBSQU0gYW5kIHJlYWRz IG9yIHdyaXRlcyB0byBlbXVsYXRlDQo+IERNQSwgcmlnaHQ/IFNvLCB3aGF0J3MgbmVlZGVkIGlz IGEgbWVjaGFuaXNtIHRvIG1hcCBndWVzdCBSQU0gYnkgJ2J1cw0KPiBhZGRyZXNzJy4uLiBpLmUu IGFuIGFkZHJlc3MgdGhhdCB3aWxsIG5lZWQgdG8gYmUgdHJhbnNsYXRlZCB0aHJvdWdoIHRoZQ0K PiB2SU9NTVUgbWFwcGluZ3MuIFRoaXMgaXMganVzdCBhbiBldm9sdXRpb24gb2YgdGhlIGN1cnJl bnQgJ3ByaXYgbWFwcGluZycNCj4gb3BlcmF0aW9ucyB0aGF0IGFsbG93IGd1ZXN0IFJBTSB0byBi ZSBtYXBwZWQgYnkgZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzcy4gU28NCj4geW91IGRvbid0IG5lZWQg YSB2SU9NTVUgJ2RldmljZSBtb2RlbCcgYXMgc3VjaCwgZG8geW91Pw0KPiANCj4gDQo+IEd1ZXN0 IGFsc28gbWF5IGVuYWJsZSBETUEgcHJvdGVjdGlvbiBtZWNoYW5pc20gaW4gbGludXgga2VybmVs IHdoaWNoDQo+IGxpbWl0cyBhZGRyZXNzIHNwYWNlIG9mIGVtdWxhdGVkIGRldmljZSBhbmQgdGhp cyBkZXBlbmRzIG9uIHRoZSB2SU9NTVUncw0KPiBETUEgdHJhbnNsYXRpb24gZnVuY3Rpb24uIElu IHZJT01NVSdzIE1NSU8gZW11bGF0aW9uIHBhcnQgaXMgaW4gdGhlIFhlbg0KPiBoeXBlcnNpb3Ig YW5kIHRoZSBndWVzdCBzaGFkb3cgSU8gcGFnZSB0YWJsZSB3aWxsIGJlIG9ubHkgaW4gdGhlDQo+ IGh5cGVydmlzb3IuIFRvIHRyYW5zbGF0ZSBlbXVsYXRlZCBkZXZpY2UncyBETUEgcmVxdWVzdC4g SXQncyBuZWNlc3NhcnkNCj4gdG8gcGFzcyB0aGUgRE1BIHJlcXVlc3QgdG8gaHlwZXJ2aXNvci4N Cj4gDQoNCldoYXQgZG8geW91IG1lYW4gYnkgRE1BIHJlcXVlc3QgdGhvdWdoPyBBcmUgeW91IGlu dGVuZGluZyB0byBtYWtlIHNvbWUgZm9ybSBvZiBoeXBlcmNhbGwgdG8gcmVhZCBvciB3cml0ZSBn dWVzdCBtZW1vcnk/IElmIHNvIHRoZW4gd2h5IG5vdCBpbnRyb2R1Y2UgYSBjYWxsIHRvIG1hcCB0 aGUgZ3Vlc3QgbWVtb3J5ICh2aWEgYnVzIGFkZHJlc3MpIGFuZCByZWFkIG9yIHdyaXRlIGRpcmVj dGx5Lg0KDQo+IFNvIGZhciB3ZSBkb24ndCBzdXBwb3J0IERNQSB0cmFuc2xhdGlvbiBhbmQgc28g ZG9lc24ndCBwYXNzIERNQSByZXF1ZXN0Lg0KPiANCg0KSW5kZWVkLiBXZSBtYXAgZ3Vlc3QgbWVt b3J5IHVzaW5nIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgYmVjYXVzZSwgd2l0aG91dCBhbiBlbXVs YXRlZCBJT01NVSwgZ3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyA9PT0gYnVzIGFkZHJlc3MuIFRoaXMg aXMgd2h5IEkgc3VnZ2VzdCBhIG5ldyBtYXBwaW5nIG9wZXJhdGlvbiByYXRoZXIgdGhhbiAncGFz c2luZyBhIERNQSByZXF1ZXN0JyB0byB0aGUgaHlwZXJ2aXNvci4NCg0KPiBNYXAvdW1hcCBndWVz dCBtZW1vcnkgYWxyZWFkeSBzdXBwb3J0IGluIFFlbXUgYW5kIGp1c3QgbGlrZSBlbXVsYXRlZA0K PiBkZXZpY2UgbW9kZWwgYWNjZXNzIGd1ZXN0IG1lbW9yeS4gUWVtdSBhbHNvIHByb3ZpZGVzIHZJ T01NVSBob29rIHRvDQo+IHJlY2VpdmUgRE1BIHJlcXVlc3QgYW5kIHJldHVybiB0YXJnZXQgZ3Vl c3QgYWRkcmVzcy4gdklPTU1VIGZyYW1ld29yaw0KPiB3aWxsIHJlYWQvd3JpdGUgdGFyZ2V0IGFk ZHJlc3MuDQoNClRoYXQncyB0aGUgcGFydCBJIGRvbid0IGdldC4uLiB3aHkgaGF2ZSB0aGUgdklP TU1VIGNvZGUgZG8gdGhlIHJlYWRzIGFuZCB3cml0ZXM/IFdoeSBub3QgaGF2ZSBpdCBwcm92aWRl IGEgbWFwcGluZyBmdW5jdGlvbiBhbmQgdGhlbiBoYXZlIHRoZSBkZXZpY2UgbW9kZWwgaW4gUUVN VSByZWFkIGFuZCB3cml0ZSBkaXJlY3RseSBhcyBpdCBkb2VzIG5vdz8NCg0KPiBXaGF0IHdlIG5l ZWQgdG8gZG8gaXMgdG8gdHJhbnNsYXRlIERNQQ0KPiByZXF1ZXN0IHRvIHRhcmdldCBhZGRyZXNz IGFjY29yZGluZyBzaGFkb3cgSU8gcGFnZSB0YWJsZSBpbiB0aGUgaHlwZXJ2aXNvci4NCj4gDQoN Clllcywgc28gdGhlIG1hcHBpbmcgaGFzIHRvIGJlIGRvbmUgYnkgdGhlIGh5cGVydmlzb3IgKGFz IGlzIHRoZSBjYXNlIGZvciBwcml2IG1hcHBpbmcgb3IgZ3JhbnQgbWFwcGluZykgYnV0IHRoZSBt ZW1vcnkgYWNjZXNzZXMgdGhlbXNlbHZlcyBjYW4gYmUgZG9uZSBkaXJlY3RseSBieSB0aGUgZGV2 aWNlIG1vZGVsIGluIFFFTVUuDQoNCj4gDQo+IA0KPiA+DQo+ID4+IFFlbXUgaXMgcmVxdWlyZWQg dG8gdXNlIERNT1AgaHlwZXJjYWxsIGFuZA0KPiA+PiB0b29sIHN0YWNrIG1heSB1c2UgZG9tY3Rs IGh5ZXJjYWxsLiB2SU9NTVUgaHlwZXJjYWxscyB3aWxsIGJlIGRpdmlkZWQNCj4gPj4gaW50byB0 d28gcGFydC4NCj4gPj4NCj4gPj4gRG9tY3RsOg0KPiA+PiAJY3JlYXRlLCBkZXN0cm95IGFuZCBx dWVyeS4NCj4gPj4gRE1PUDoNCj4gPj4gCXZEZXYncyBETUEgcmVsYXRlZCBvcGVyYXRpb25zLg0K PiA+DQo+ID4gWWVzLCB0aGUgbWFwcGluZy91bm1hcHBpbmcgb3BlcmF0aW9ucyBzaG91bGQgYmUg RE1PUHMgYW5kIElNTw0KPiBzaG91bGQgYmUgZGVzaWduZWQgc3VjaCB0aGF0IHRoZXkgY2FuIGJl IHVuaWZpZWQgd2l0aCByZXBsYWNlbWVudHMgZm9yDQo+IGN1cnJlbnQgJ3ByaXYgbWFwJyBvcHMg c3VjaCB0aGF0IFFFTVUgY2FuIHVzZSB0aGUgc2FtZSBmdW5jdGlvbiBjYWxsLCBidXQNCj4gd2l0 aCBkaWZmZXJlbnQgYWRkcmVzcyBzcGFjZSBpZGVudGlmaWVycyAoaS5lLiBidXMgYWRkcmVzcywg Z3Vlc3QgcGh5c2ljYWwNCj4gYWRkcmVzcywgZXRjLikuIEJUVywgSSBzYXkgJ2V0Yy4nIGJlY2F1 c2Ugd2Ugc2hvdWxkIGFsc28gY29uc2lkZXIgbWFwcGluZyB0aGUNCj4gaW9yZXEgcGFnZXMgZnJv bSBYZW4gdXNpbmcgdGhlIHNhbWUgY2FsbCAtIHdpdGggYSBkZWRpY2F0ZWQgYWRkcmVzcyBzcGFj ZQ0KPiBpZGVudGlmaWVyIC0gYXMgd2VsbC4NCj4gPg0KPiANCj4gU28geW91IGFncmVlIHRvIGRp dmlkZSB2SU9NTVUncyBoeXBlcmNhbGxzIGludG8gdHdvIHBhcnRzKERNT1AgYW5kDQo+IERvbWN0 bCksIHJpZ2h0Pw0KPiANCg0KWWVzLCBJIGFncmVlIHdpdGggdGhlIGxvZ2ljIG9mIHRoZSBzcGxp dC4NCg0KICBDaGVlcnMsDQoNCiAgIFBhdWwNCg0KPiANCj4gPiAgIENoZWVycywNCj4gPg0KPiA+ ICAgICBQYXVsDQo+ID4NCj4gPj4NCj4gPj4gSXMgdGhpcyBPSz8NCj4gPj4NCj4gPj4+DQo+ID4+ PiBUaGFua3MsDQo+ID4+PiBDaGFvDQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4gIFBhdWwNCj4gPj4+ Pg0KPiA+Pj4+Pj4+IFRoZSBmb2xsb3dpbmcgdG9vbHN0YWNrIGNvZGUgaXMgdG8gYWRkIFhFTl9E TU9QX3Zpb21tdV9YWFgNCj4gPj4gc3lzY2FsbHM6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSHlwZXJj YWxscywgbm90IHN5c2NhbGxzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiAgLSBxdWVyeSBjYXBhYmls aXRpZXMgb2YgdklPTU1VIGVtdWxhdGVkIGJ5IFhlbg0KPiA+Pj4+Pj4+ICAtIGNyZWF0ZSB2SU9N TVUgaW4gWGVuIGh5cGVydmlzb3Igd2l0aCBiYXNlIGFkZHJlc3MsIGNhcGFiaWxpdHkNCj4gPj4+ Pj4+PiAgLSBkZXN0cm95IHZJT01NVSBzcGVjaWZpZWQgYnkgdmlvbW11X2lkDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29tPg0K PiA+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29t Pg0KPiA+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+ICB0b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUu YyAgICAgICAgICAgICAgICAgICB8IDY5DQo+ID4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPj4+Pj4+PiAgdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1v ZGVsLmggfCAzNQ0KPiA+PiArKysrKysrKysrKysrDQo+ID4+Pj4+Pj4gIHRvb2xzL2xpYnMvZGV2 aWNlbW9kZWwvbGlieGVuZGV2aWNlbW9kZWwubWFwICAgIHwgIDMgKysNCj4gPj4+Pj4+PiAgdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsX2NvbXBhdC5oICAgICAgICAgICAgfCAgNSArKw0KPiA+ Pj4+Pj4+ICB0b29scy9saWJ4Yy94Y19kZXZpY2Vtb2RlbF9jb21wYXQuYyAgICAgICAgICAgICB8 IDE4ICsrKysrKysNCj4gPj4+Pj4+PiAgNSBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygr KQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9k ZWwvY29yZS5jDQo+ID4+IGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9jb3JlLmMNCj4gPj4+Pj4+ PiBpbmRleCBhODVjYjQ5Li5hZWUxMTUwIDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL3Rvb2xzL2xp YnMvZGV2aWNlbW9kZWwvY29yZS5jDQo+ID4+Pj4+Pj4gKysrIGIvdG9vbHMvbGlicy9kZXZpY2Vt b2RlbC9jb3JlLmMNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBCZWFyIGluIG1pbmQgdGhhdCB0aGlzIGxp YnJhcnkgaXMgc3RhYmxlLCBzbyB3aGF0ZXZlciBlbmRzIHVwIGhlcmUgY2FuDQo+ID4+Pj4+PiBj aGFuZ2UgaW4gdGhlIGZ1dHVyZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGlzIGlzIG5vdCBzYXlp bmcgdGhlIGZvbGxvd2luZyBjb2RlIGlzIHByb2JsZW1hdGljLiBJdCBpcyBqdXN0IGENCj4gPj4+ Pj4+IGdlbmVyYWwgRllJLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9idmlvdXNseSB0aGUgdG9vbHN0 YWNrIHNpZGUgaXMgZ29pbmcgdG8gZm9sbG93IHRoZSBoeXBlcnZpc29yDQo+ID4+Pj4+PiBpbnRl cmZhY2UsIHNvIEkgd2lsbCBkbyBhIGRldGFpbGVkIHJldmlldyBsYXRlci4NCj4gPj4+Pj4NCj4g Pj4+Pj4gU3VyZS4gSWYgdGhlIGh5cGVydmlzb3IgaW50ZXJmYWNlIHNldHRsZXMgZG93biwgd2Ug Y2FuIGluZm9ybSB5b3UuDQo+ID4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+ICtpbnQgeGVuZGV2 aWNlbW9kZWxfdmlvbW11X2Rlc3Ryb3koDQo+ID4+Pj4+Pj4gKyAgICB4ZW5kZXZpY2Vtb2RlbF9o YW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9tLCB1aW50MzJfdA0KPiA+PiB2aW9tbXVfaWQpOw0KPiA+ Pj4+Pj4+ICAjZW5kaWYgLyogX19YRU5fVE9PTFNfXyAqLw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g ICNlbmRpZiAvKiBYRU5ERVZJQ0VNT0RFTF9IICovDQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnMvZGV2aWNlbW9kZWwvbGlieGVuZGV2aWNlbW9kZWwubWFwDQo+ID4+Pj4+IGIvdG9v bHMvbGlicy9kZXZpY2Vtb2RlbC9saWJ4ZW5kZXZpY2Vtb2RlbC5tYXANCj4gPj4+Pj4+PiBpbmRl eCA0NWM3NzNlLi5jMmUwOTY4IDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL3Rvb2xzL2xpYnMvZGV2 aWNlbW9kZWwvbGlieGVuZGV2aWNlbW9kZWwubWFwDQo+ID4+Pj4+Pj4gKysrIGIvdG9vbHMvbGli cy9kZXZpY2Vtb2RlbC9saWJ4ZW5kZXZpY2Vtb2RlbC5tYXANCj4gPj4+Pj4+PiBAQCAtMTcsNiAr MTcsOSBAQCBWRVJTXzEuMCB7DQo+ID4+Pj4+Pj4gIAkJeGVuZGV2aWNlbW9kZWxfbW9kaWZpZWRf bWVtb3J5Ow0KPiA+Pj4+Pj4+ICAJCXhlbmRldmljZW1vZGVsX3NldF9tZW1fdHlwZTsNCj4gPj4+ Pj4+PiAgCQl4ZW5kZXZpY2Vtb2RlbF9pbmplY3RfZXZlbnQ7DQo+ID4+Pj4+Pj4gKwkJeGVuZGV2 aWNlbW9kZWxfdmlvbW11X3F1ZXJ5X2NhcDsNCj4gPj4+Pj4+PiArCQl4ZW5kZXZpY2Vtb2RlbF92 aW9tbXVfY3JlYXRlOw0KPiA+Pj4+Pj4+ICsJCXhlbmRldmljZW1vZGVsX3Zpb21tdV9kZXN0cm95 Ow0KPiA+Pj4+Pj4+ICAJCXhlbmRldmljZW1vZGVsX3Jlc3RyaWN0Ow0KPiA+Pj4+Pj4+ICAJCXhl bmRldmljZW1vZGVsX2Nsb3NlOw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgc3VwcG9zZSB0aGlzIHNl cmllcyBpcyBnb2luZyB0byBtaXNzIDQuOS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBQbGVhc2UgYWRk IHRoZXNlIGZ1bmN0aW9ucyB0byBWRVJTXzEuMS4NCj4gPj4+Pj4NCj4gPj4+Pj4gWWVzLiBXZSB3 aWxsIGZpeCB0aGlzLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiAgCWxvY2FsOiAqOyAv KiBEbyBub3QgZXhwb3NlIGFueXRoaW5nIGJ5IGRlZmF1bHQgKi8NCj4gPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsX2NvbXBhdC5oDQo+ID4+Pj4+IGIvdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsX2NvbXBhdC5oDQo+ID4+Pj4+Pj4gaW5kZXggMDQwZTdi Mi4uMzE1YzQ1ZCAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmxfY29tcGF0LmgNCj4gPj4+Pj4+PiArKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmxfY29tcGF0LmgNCj4gPj4+Pj4+PiBAQCAtMTY0LDYgKzE2NCwxMSBAQCBpbnQgeGNfaHZtX3Nl dF9tZW1fdHlwZSgNCj4gPj4+Pj4+PiAgaW50IHhjX2h2bV9pbmplY3RfdHJhcCgNCj4gPj4+Pj4+ PiAgICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLCBpbnQgdmNwdSwgdWludDhf dCB2ZWN0b3IsDQo+ID4+Pj4+Pj4gICAgICB1aW50OF90IHR5cGUsIHVpbnQzMl90IGVycm9yX2Nv ZGUsIHVpbnQ4X3QgaW5zbl9sZW4sIHVpbnQ2NF90DQo+IGNyMik7DQo+ID4+Pj4+Pj4gK2ludCB4 Y192aW9tbXVfcXVlcnlfY2FwKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwNCj4gPj4g dWludDY0X3QNCj4gPj4+Pj4gKmNhcCk7DQo+ID4+Pj4+Pj4gK2ludCB4Y192aW9tbXVfY3JlYXRl KA0KPiA+Pj4+Pj4+ICsgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1aW50NjRf dCBiYXNlX2FkZHIsIHVpbnQ2NF90DQo+ID4+IGNhcCwNCj4gPj4+Pj4+PiArICAgIHVpbnQzMl90 ICp2aW9tbXVfaWQpOw0KPiA+Pj4+Pj4+ICtpbnQgeGNfdmlvbW11X2Rlc3Ryb3koeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9tLA0KPiB1aW50MzJfdA0KPiA+Pj4+PiB2aW9tbXVfaWQpOw0K PiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICNlbmRpZiAvKiBYQ19XQU5UX0NPTVBBVF9ERVZJQ0VNT0RF TF9BUEkgKi8NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19kZXZpY2Vtb2RlbF9jb21wYXQuYw0KPiA+Pj4+PiBiL3Rvb2xzL2xpYnhjL3hjX2RldmljZW1v ZGVsX2NvbXBhdC5jDQo+ID4+Pj4+Pj4gaW5kZXggZTRlZGVlYS4uNjJmNzAzYSAxMDA2NDQNCj4g Pj4+Pj4+PiAtLS0gYS90b29scy9saWJ4Yy94Y19kZXZpY2Vtb2RlbF9jb21wYXQuYw0KPiA+Pj4+ Pj4+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2RldmljZW1vZGVsX2NvbXBhdC5jDQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4gSSBkb24ndCB0aGluayB5b3UgbmVlZCB0byBwcm92aWRlIGNvbXBhdCB3cmFwcGVy cyBmb3IgdGhlbS4gVGhleQ0KPiBhcmUNCj4gPj4gbmV3DQo+ID4+Pj4+PiBBUElzLg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBPSy4gR290IGl0Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGFua3MsDQo+ID4+Pj4+ IENoYW8NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBXZWkuDQo+ID4+Pj4+DQo+ID4+Pj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4+Pj4+IFhlbi1kZXZl bCBtYWlsaW5nIGxpc3QNCj4gPj4+Pj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCj4gPj4+Pj4g aHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KPiANCj4gDQo+IC0tDQo+IEJlc3QgcmVn YXJkcw0KPiBUaWFueXUgTGFuDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK