From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [RFC XEN PATCH v4 00/41] Add vNVDIMM support to HVM domains Date: Thu, 7 Dec 2017 18:09:49 +0800 Message-ID: <20171207101030.22364-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Haozhong Zhang , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Gang Wei , Jan Beulich , Shane Wang , Chao Peng , Dan Williams , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org QWxsIHBhdGNoZXMgY2FuIGFsc28gYmUgZm91bmQgYXQKICBYZW46ICBodHRwczovL2dpdGh1Yi5j b20vaHp6aGFuOS94ZW4uZ2l0IG52ZGltbS1yZmMtdjQKICBRRU1VOiBodHRwczovL2dpdGh1Yi5j b20vaHp6aGFuOS9xZW11LmdpdCB4ZW4tbnZkaW1tLXJmYy12NAoKUkZDIHYzIGNhbiBiZSBmb3Vu ZCBhdAogIGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE3 LTA5L21zZzAwOTY0Lmh0bWwKCkNoYW5nZXMgaW4gdjQ6CiAgKiBNb3ZlIHRoZSBmdW5jdGlvbmFs aXR5IG9mIG1hbmFnZW1lbnQgdXRpbCAneGVuLW5kY3RsJyB0byBYbmUKICAgIG1hbmFnZW1lbnQg dG9vbCAneGwnLgogICogTG9hZCBRRU1VIEFDUEkgdmlhIFFFTVUgZndfY2ZnIGFuZCBCSU9TTGlu a2VyTG9hZGVyIGludGVyZmFjZS4KICAqIE90aGVyIGNoYW5nZXMgYXJlIGRvY3VtZW50ZWQgaW4g cGF0Y2hlcyBzZXBhcmF0ZWx5LgoKCi0gUGFydCAwLiBCdWcgZml4IGFuZCBjb2RlIGNsZWFudXAK ICBbMDEvNDFdIHg4Nl82NC9tbTogZml4IHRoZSBQRFggZ3JvdXAgY2hlY2sgaW4gbWVtX2hvdGFk ZF9jaGVjaygpCiAgWzAyLzQxXSB4ODZfNjQvbW06IGF2b2lkIGNsZWFuaW5nIHRoZSB1bm1hcHBl ZCBmcmFtZSB0YWJsZQogIFswMy80MV0gaHZtbG9hZGVyL3V0aWw6IGRvIG5vdCBjb21wYXJlIGNo YXJhY3RlcnMgYWZ0ZXIgJ1wwJyBpbiBzdHJuY21wCgotIFBhcnQgMS4gRGV0ZWN0IGhvc3QgUE1F TQogIERldGVjdCBob3N0IFBNRU0gdmlhIE5GSVQuIE5vIGZyYW1ldGFibGUgYW5kIE0yUCB0YWJs ZSBmb3IgdGhlbSBhcmUKICBjcmVhdGVkIGluIHRoaXMgcGFydC4KCiAgWzA0LzQxXSB4ZW4vY29t bW9uOiBhZGQgS2NvbmZpZyBpdGVtIGZvciBwbWVtIHN1cHBvcnQKICBbMDUvNDFdIHg4Ni9tbTog ZXhjbHVkZSBQTUVNIHJlZ2lvbnMgZnJvbSBpbml0aWFsIGZyYW1ldGFibGUKICBbMDYvNDFdIGFj cGk6IHByb2JlIHZhbGlkIFBNRU0gcmVnaW9ucyB2aWEgTkZJVAogIFswNy80MV0geGVuL3BtZW06 IHJlZ2lzdGVyIHZhbGlkIFBNRU0gcmVnaW9ucyB0byBYZW4gaHlwZXJ2aXNvcgogIFswOC80MV0g eGVuL3BtZW06IGhpZGUgTkZJVCBhbmQgZGVueSBhY2Nlc3MgdG8gUE1FTSBmcm9tIERvbTAKICBb MDkvNDFdIHhlbi9wbWVtOiBhZGQgZnJhbWV3b3JrIGZvciBoeXBlcmNhbGwgWEVOX1NZU0NUTF9u dmRpbW1fb3AKICBbMTAvNDFdIHhlbi9wbWVtOiBhZGQgWEVOX1NZU0NUTF9udmRpbW1fcG1lbV9n ZXRfcmdpb25zX25yCiAgWzExLzQxXSB4ZW4vcG1lbTogYWRkIFhFTl9TWVNDVExfbnZkaW1tX3Bt ZW1fZ2V0X3JlZ2lvbnMKICBbMTIvNDFdIHRvb2xzL3hsOiBhZGQgeGwgY29tbWFuZCAncG1lbS1s aXN0JwoKLSBQYXJ0IDIuIFNldHVwIGhvc3QgUE1FTSBmb3IgbWFuYWdlbWVudCBhbmQgZ3Vlc3Qg ZGF0YSB1c2FnZQogIEFsbG93IHVzZXJzIG9yIGFkbWlucyBpbiBEb20wIHRvIHNldHVwIGhvc3Qg UE1FTSBwYWdlcyBmb3IKICBtYW5hZ2VtZW50IGFuZCBndWVzdCBkYXRhIHVzYWdlcy4KICAgKiBN YW5hZ2VtZW50IFBNRU0gcGFnZXMgYXJlIHVzZWQgdG8gc3RvcmUgdGhlIGZyYW1ldGFibGUgYW5k IE0yUCBvZgogICAgIFBNRU0gcGFnZXMgKGluY2x1ZGluZyB0aGVtc2VsdmVzKSwgYW5kIG5ldmVy IG1hcHBlZCB0byBndWVzdC4KICAgKiBHdWVzdCBkYXRhIFBNRU0gcGFnZXMgY2FuIGJlIG1hcHBl ZCB0byBndWVzdCBhbmQgdXNlZCBhcyB0aGUKICAgICBiYWNrZW5kIHN0b3JhZ2Ugb2YgdmlydHVh bCBOVkRJTU0gZGV2aWNlcy4KCiAgWzEzLzQxXSB4ODZfNjQvbW06IHJlZmFjdG9yIG1lbW9yeV9h ZGQoKQogIFsxNC80MV0geDg2XzY0L21tOiBhbGxvdyBjdXN0b21pemVkIGxvY2F0aW9uIG9mIGV4 dGVuZGVkIGZyYW1ldGFibGUgYW5kIE0yUCB0YWJsZQogIFsxNS80MV0geGVuL3BtZW06IGFkZCBY RU5fU1lTQ1RMX252ZGltbV9wbWVtX3NldHVwIHRvIHNldHVwIG1hbmFnZW1lbnQgUE1FTSByZWdp b24KICBbMTYvNDFdIHRvb2xzL3hsOiBhY2NlcHQgYWxsIGJhc2VzIGluIHBhcnNlX3Vsb25nKCkK ICBbMTcvNDFdIHRvb2xzL3hsOiBleHBvc2UgcGFyc2VfdWxvbmcoKQogIFsxOC80MV0gdG9vbHMv eGw6IGFkZCB4bCBjb21tYW5kICdwbWVtLXNldHVwJwogIFsxOS80MV0geGVuL3BtZW06IHN1cHBv cnQgUE1FTV9SRUdJT05fVFlQRV9NR01UIGZvciBYRU5fU1lTQ1RMX252ZGltbV9wbWVtX2dldF9y ZWdpb25zX25yCiAgWzIwLzQxXSB4ZW4vcG1lbTogc3VwcG9ydCBQTUVNX1JFR0lPTl9UWVBFX01H TVQgZm9yIFhFTl9TWVNDVExfbnZkaW1tX3BtZW1fZ2V0X3JlZ2lvbnMKICBbMjEvNDFdIHRvb2xz L3hsOiBhZGQgb3B0aW9uICctLW1nbXQgfCAtbScgdG8geGwgY29tbWFuZCBwbWVtLWxpc3QKICBb MjIvNDFdIHhlbi9wbWVtOiBzdXBwb3J0IHNldHVwIFBNRU0gcmVnaW9uIGZvciBndWVzdCBkYXRh IHVzYWdlCiAgWzIzLzQxXSB0b29scy94bDogYWRkIG9wdGlvbiAnLS1kYXRhIHwgLWQnIHRvIHhs IGNvbW1hbmQgcG1lbS1zZXR1cAogIFsyNC80MV0geGVuL3BtZW06IHN1cHBvcnQgUE1FTV9SRUdJ T05fVFlQRV9EQVRBIGZvciBYRU5fU1lTQ1RMX252ZGltbV9wbWVtX2dldF9yZWdpb25zX25yCiAg WzI1LzQxXSB4ZW4vcG1lbTogc3VwcG9ydCBQTUVNX1JFR0lPTl9UWVBFX0RBVEEgZm9yIFhFTl9T WVNDVExfbnZkaW1tX3BtZW1fZ2V0X3JlZ2lvbnMKICBbMjYvNDFdIHRvb2xzL3hsOiBhZGQgb3B0 aW9uICctLWRhdGEgfCAtZCcgdG8geGwgY29tbWFuZCBwbWVtLWxpc3QKCi0gUGFydCAzLiBIeXBl cnZpc29yIHN1cHBvcnQgdG8gbWFwIGhvc3QgUE1FTSBwYWdlcyB0byBIVk0gZG9tYWluCiAgWzI3 LzQxXSB4ZW4vcG1lbTogYWRkIGZ1bmN0aW9uIHRvIG1hcCBQTUVNIHBhZ2VzIHRvIEhWTSBkb21h aW4KICBbMjgvNDFdIHhlbi9wbWVtOiByZWxlYXNlIFBNRU0gcGFnZXMgb24gSFZNIGRvbWFpbiBk ZXN0cnVjdGlvbgogIFsyOS80MV0geGVuOiBhZGQgaHlwZXJjYWxsIFhFTk1FTV9wb3B1bGF0ZV9w bWVtX21hcAoKLSBQYXJ0IDQuIExvYWQgUUVNVSBBQ1BJCiAgR3Vlc3QgTkZJVCBhbmQgTlZESU1N IG5hbWVzcGFjZSBkZXZpY2VzIGFyZSBidWlsdCBieSBRRU1VLiBUaGlzIHBhcnQKICBsb2FkcyBR RU1VIEFDUEkgdmlhIFFFTVUgZndfY2ZnIGFuZCBCSU9TTGlua2VyTG9hZGVyIGludGVyZmFjZS4g QQogIHNpbXBsZSBibGFja2xpc3QgbWVjaGFuaXNtIGlzIGFkZGVkIHRvIHJlamVjdCBETSBBQ1BJ IHRhYmxlcyB0aGF0CiAgbWF5IGNvbmZsaWN0IHdpdGggdGhvc2UgYnVpbHQgYnkgWGVuIGl0c2Vs Zi4KCiAgWzMwLzQxXSB0b29sczogcmVzZXJ2ZSBleHRyYSBndWVzdCBtZW1vcnkgZm9yIEFDUEkg ZnJvbSBkZXZpY2UgbW9kZWwKICBbMzEvNDFdIHRvb2xzL2xpYmFjcGk6IGFkZCBjYWxsYmFjayB0 byB0cmFuc2xhdGUgR1BBIHRvIEdWQQogIFszMi80MV0gdG9vbHMvbGliYWNwaTogYnVpbGQgYSBE TSBBQ1BJIHNpZ25hdHVyZSBibGFja2xpc3QKICBbMzMvNDFdIHRvb2xzL2xpYmFjcGksIGh2bWxv YWRlcjogZGV0ZWN0IFFFTVUgZndfY2ZnIGludGVyZmFjZQogIFszNC80MV0gdG9vbHMvbGliYWNw aTogcHJvYmUgUUVNVSBBQ1BJIFJPTXMgdmlhIGZ3X2NmZyBpbnRlcmZhY2UKICBbMzUvNDFdIHRv b2xzL2xpYmFjcGk6IGFkZCBhIFFFTVUgQklPU0xpbmtMb2FkZXIgZXhlY3V0b3IKICBbMzYvNDFd IHRvb2xzL2xpYmFjcGk6IGFkZCBmdW5jdGlvbiB0byBnZXQgdGhlIGRhdGEgb2YgUUVNVSBSU0RQ CiAgWzM3LzQxXSB0b29scy9saWJhY3BpOiBsb2FkIFFFTVUgQUNQSQoKLSBQYXJ0IDUuIFJlbWFp bmluZyB0b29sIHN0YWNrIGNoYW5nZXMKICBBZGQgeGwgZG9tYWluIGNvbmZpZ3VyYXRpb24gYW5k IGdlbmVyYXRlIG5ldyBRRU1VIG9wdGlvbnMgZm9yIHZOVkRJTU0uCgogIFszOC80MV0gdG9vbHMv eGw6IGFkZCB4bCBkb21haW4gY29uZmlndXJhdGlvbiBmb3IgdmlydHVhbCBOVkRJTU0gZGV2aWNl cwogIFszOS80MV0gdG9vbHMvbGlieGw6IGFsbG93IGFib3J0aW5nIGRvbWFpbiBjcmVhdGlvbiBv biBmYXRhbCBRTVAgaW5pdCBlcnJvcnMKICBbNDAvNDFdIHRvb2xzL2xpYnhsOiBpbml0aWF0ZSBQ TUVNIG1hcHBpbmcgdmlhIFFNUCBjYWxsYmFjawogIFs0MS80MV0gdG9vbHMvbGlieGw6IGJ1aWxk IHFlbXUgb3B0aW9ucyBmcm9tIHhsIHZOVkRJTU0gY29uZmlncwoKCiBkb2NzL21hbi94bC5jZmcu cG9kLjUuaW4gICAgICAgICAgICB8ICA0MCArKwogdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL01h a2VmaWxlICAgfCAgIDQgKy0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMgICAgIHwg IDE2ICsKIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmggICAgIHwgIDE0ICsKIHRvb2xz L2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbTAudGUgIHwgICAyICstCiB0b29scy9mbGFzay9wb2xp Y3kvbW9kdWxlcy94ZW4uaWYgICB8ICAgMyArLQogdG9vbHMvbGliYWNwaS9hY3BpMl8wLmggICAg ICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGliYWNwaS9idWlsZC5jICAgICAgICAgICAgICAgfCAx NzYgKysrKysrKystCiB0b29scy9saWJhY3BpL2xpYmFjcGkuaCAgICAgICAgICAgICB8ICAxMCAr CiB0b29scy9saWJhY3BpL3FlbXUuaCAgICAgICAgICAgICAgICB8ICA1NiArKysKIHRvb2xzL2xp YmFjcGkvcWVtdV9md19jZmcuYyAgICAgICAgIHwgIDk5ICsrKysrCiB0b29scy9saWJhY3BpL3Fl bXVfbG9hZGVyLmMgICAgICAgICB8IDM5MiArKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJh Y3BpL3FlbXVfc3R1Yi5jICAgICAgICAgICB8ICA2NCArKysKIHRvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oICAgICAgIHwgIDg4ICsrKysrCiB0b29scy9saWJ4Yy94Y19kb21haW4uYyAgICAg ICAgICAgICB8ICAxNSArCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAgICAgICB8IDE1 NCArKysrKysrKwogdG9vbHMvbGlieGwvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgIDUgKy0K IHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgICAgICAgIHwgIDU1ICsrKwogdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMgICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2Rt LmMgICAgICAgICAgICAgIHwgIDgxICsrKy0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg ICAgICAgIHwgICA2ICsKIHRvb2xzL2xpYnhsL2xpYnhsX252ZGltbS5jICAgICAgICAgIHwgMjI3 ICsrKysrKysrKysrCiB0b29scy9saWJ4bC9saWJ4bF9xbXAuYyAgICAgICAgICAgICB8IDEzOCAr KysrKystCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICB8ICA0OSArKysKIHRv b2xzL2xpYnhsL2xpYnhsX3g4Ni5jICAgICAgICAgICAgIHwgICA3ICstCiB0b29scy9saWJ4bC9s aWJ4bF94ODZfYWNwaS5jICAgICAgICB8ICAxMCArCiB0b29scy94bC9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogdG9vbHMveGwveGwuaCAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKwogdG9vbHMveGwveGxfY21kdGFibGUuYyAgICAgICAgICAgICAgfCAgMTkgKwogdG9v bHMveGwveGxfbnZkaW1tLmMgICAgICAgICAgICAgICAgfCAyMDUgKysrKysrKysrKwogdG9vbHMv eGwveGxfcGFyc2UuYyAgICAgICAgICAgICAgICAgfCAxMzAgKysrKystCiB0b29scy94bC94bF9w YXJzZS5oICAgICAgICAgICAgICAgICB8ICAgMSArCiB0b29scy94bC94bF92bWNvbnRyb2wuYyAg ICAgICAgICAgICB8ICAxNSArLQogeGVuL2FyY2gveDg2L2FjcGkvYm9vdC5jICAgICAgICAgICAg fCAgIDQgKwogeGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYyAgICAgICAgICAgfCAgIDcgKwogeGVu L2FyY2gveDg2L2RvbTBfYnVpbGQuYyAgICAgICAgICAgfCAgIDUgKwogeGVuL2FyY2gveDg2L2Rv bWFpbi5jICAgICAgICAgICAgICAgfCAgMzIgKy0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAg ICAgICAgICAgIHwgMTI0ICsrKysrLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAg ICAgfCAgIDQgKwogeGVuL2FyY2gveDg2L3NodXRkb3duLmMgICAgICAgICAgICAgfCAgIDMgKwog eGVuL2FyY2gveDg2L3Rib290LmMgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL2FyY2gveDg2 L3g4Nl82NC9tbS5jICAgICAgICAgICAgfCAzMDIgKysrKysrKysrKy0tLS0KIHhlbi9jb21tb24v S2NvbmZpZyAgICAgICAgICAgICAgICAgIHwgICA4ICsKIHhlbi9jb21tb24vTWFrZWZpbGUgICAg ICAgICAgICAgICAgIHwgICAxICsKIHhlbi9jb21tb24vY29tcGF0L21lbW9yeS5jICAgICAgICAg IHwgICAxICsKIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAgIHwgICAzICsKIHhl bi9jb21tb24va2V4ZWMuYyAgICAgICAgICAgICAgICAgIHwgICAzICsKIHhlbi9jb21tb24vbWVt b3J5LmMgICAgICAgICAgICAgICAgIHwgIDQ0ICsrKwogeGVuL2NvbW1vbi9wbWVtLmMgICAgICAg ICAgICAgICAgICAgfCA3NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4 ZW4vY29tbW9uL3N5c2N0bC5jICAgICAgICAgICAgICAgICB8ICAgOSArCiB4ZW4vZHJpdmVycy9h Y3BpL01ha2VmaWxlICAgICAgICAgICB8ICAgMiArCiB4ZW4vZHJpdmVycy9hY3BpL25maXQuYyAg ICAgICAgICAgICB8IDMyMSArKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FjcGkvYWN0Ymwx LmggICAgICAgICAgIHwgIDY5ICsrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAg ICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCAgICAgICAgICAgIHwgIDEwICst CiB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmggICAgICAgICB8ICAxNCArLQogeGVuL2luY2x1 ZGUvcHVibGljL3N5c2N0bC5oICAgICAgICAgfCAgOTcgKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9h Y3BpLmggICAgICAgICAgICAgIHwgIDEwICsKIHhlbi9pbmNsdWRlL3hlbi9wbWVtLmggICAgICAg ICAgICAgIHwgIDc2ICsrKysKIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgICAgICAgIHwg ICAzICsKIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oICAgICAgICAgICAgIHwgIDExICsKIHhlbi9p bmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgIHwgIDEyICsKIHhlbi94c20vZHVtbXkuYyAg ICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAg ICAgICAgIHwgIDE3ICsKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICA0 ICsKIDY1IGZpbGVzIGNoYW5nZWQsIDM5MzkgaW5zZXJ0aW9ucygrKSwgMTE3IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYmFjcGkvcWVtdS5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgdG9vbHMvbGliYWNwaS9xZW11X2Z3X2NmZy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvbGliYWNwaS9xZW11X2xvYWRlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGliYWNw aS9xZW11X3N0dWIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsX252ZGlt bS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMveGwveGxfbnZkaW1tLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB4ZW4vY29tbW9uL3BtZW0uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJz L2FjcGkvbmZpdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL3BtZW0uaAoK LS0gCjIuMTUuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=