From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 00/28] add vIOMMU support with irq remapping function of virtual VT-d Date: Fri, 17 Nov 2017 14:22:07 +0800 Message-ID: <1510899755-40237-1-git-send-email-chao.gao@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.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Ian Jackson , Tim Deegan , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaHNldCBpcyB0byBpbnRyb2R1Y2UgdklPTU1VIGZyYW1ld29yayBhbmQgYWRkIHZp cnR1YWwgVlREJ3MKaW50ZXJydXB0IHJlbWFwcGluZyBzdXBwb3J0IGFjY29yZGluZyAiWGVuIHZp cnR1YWwgSU9NTVUgaGlnaCBsZXZlbApkZXNpZ24gZG9jIFYzIihodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLwoyMDE2LTExL21zZzAxMzkxLmh0bWwp LgoKLSB2SU9NTVUgZnJhbWV3b3JrCk5ldyBmcmFtZXdvcmsgcHJvdmlkZXMgdmlvbW11X29wcyBh bmQgaGVscCBmdW5jdGlvbnMgdG8gYWJzdHJhY3QKdklPTU1VIG9wZXJhdGlvbnMoRSxHIGNyZWF0 ZSwgZGVzdHJveSwgaGFuZGxlIGlycSByZW1hcHBpbmcgcmVxdWVzdAphbmQgc28gb24pLiBWZW5k b3JzKEludGVsLCBBUk0sIEFNRCBhbmQgc29uKSBjYW4gaW1wbGVtZW50IHRoZWlyCnZJT01NVSBj YWxsYmFja3MuCgotIFZpcnR1YWwgVlRECldlIGVuYWJsZSBpcnEgcmVtYXBwaW5nIGZ1bmN0aW9u IGFuZCBjb3ZlcnMgYm90aApNU0kgYW5kIElPQVBJQyBpbnRlcnJ1cHRzLiBEb24ndCBzdXBwb3J0 IHBvc3QgaW50ZXJydXB0IG1vZGUgZW11bGF0aW9uCmFuZCBwb3N0IGludGVycnVwdCBtb2RlIGVu YWJsZWQgb24gaG9zdCB3aXRoIHZpcnR1YWwgVlRELiB3aWxsIGFkZApsYXRlci4KCkluIGNhc2Ug b2YgY29uZmxpY3RzLCB0aGlzIHNlcmllcyBhbHNvIGNhbiBiZSBmb3VuZCBpbiBteSBwZXJzb25h bCBnaXRodWI6ClhlbjogaHR0cHM6Ly9naXRodWIuY29tL2djMTAwOC92aW9tbXVfeGVuLmdpdCB2 SU9NTVU0ClFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS9nYzEwMDgvdmlvbW11X3FlbXUuZ2l0IHZJ T01NVTMKCkFueSBjb21tZW50cyB3b3VsZCBiZSBoaWdobHkgYXBwcmVjaWF0ZWQuIEFuZCBiZWxv dyBpcyBjaGFuZ2UgaGlzdG9yeS4KCkNoYW5nZXMgc2luY2UgdjM6CiAtIGFkZCBsb2dpYyB0byBi dWlsZCBETUFSIHRhYmxlIGZvciBQVkggZ3Vlc3QuIEJ1dCBvbmx5IHZlcnkgbGltaXRlZCB0ZXN0 cyBhcmUKIHBlcmZvcm1lZCBvbiBQVkggZ3Vlc3QuCiAtIHVzZSBvbmUgaW50ZXJmYWNlIHRvIGJp bmRpbmcgZ3Vlc3QgcmVtYXBwYWJsZSBhbmQgbm9uLXJlbWFwcGFibGUgaW50ZXJydXB0cwogd2l0 aCBwaHlzaWNhbCBpbnRlcnJ1cHRzLiBUbyBhY2hpZXZlIHRoaXMsIGN1cnJlbnQgYmluZGluZyBp bnRlcmZhY2Ugc2hvdWxkCiBiZSBjaGFuZ2VkLiBUaGUgYWR2YW50YWdlIGlzIHRoYXQgaXQgY2Fu IHNpbXBsaWZ5IHRoZSBjb2RlIHRvIHN1cHBvcnQgdGhlCiBuZXcgZm9ybWF0IGd1ZXN0IGludGVy cnVwdC4gQnV0IHRoZSBkaXNhZHZhbnRhZ2UgaXMgY2xlYXJseSBpbmNvbXBhdGlibGUgd2l0aAog b2xkIFFFTVUuCiAtIFZULWQgcG9zdGVkIGludGVycnVwdCBmZWF0dXJlIGNhbiBiZSB1c2VkIHRv IGRlbGl2ZXIgZ3Vlc3QgcmVtYXBwYWJsZQogaW50ZXJydXB0LiBUaGUgZ3Vlc3QgaW50ZXJydXB0 IGF0dHJpYnV0ZXMgKHZlY3RvciwgYWZmaW5pdHkpIGFyZSBkZWNvZGVkIGZyb20KIGd1ZXN0IElS VEUgYW5kIHRoZW4gYWNjb3JkaW5nbHkgd3JpdHRlbiB0byBob3N0IElSVEUuIEluIHRoaXMgdmVy c2lvbiwgd2hlbgogZ3Vlc3QgaW52YWxpZGF0ZXMgYW4gSVJURSwgdGhlIGhvc3QgSVJURSB3aWxs IGJlIHVwZGF0ZWQgYWNjb3JkaW5nIHRvIHRoZQogbmV3IGd1ZXN0IElSVEUuCiAtIGFkZCBkcmFp bmluZyBpbi1mbGlnaHQgaW50ZXJydXB0IHN1cHBvcnQuIFdoZW4gZ3Vlc3QgaW52YWxpZGF0ZXMK IGFuIElSVEUsIHRoZSBpbi1mbGlnaHQgaW50ZXJydXB0IHJlbGF0ZWQgdG8gdGhlIElSVEUgc2hv dWxkIGJlIGRyYWluZWQuCiBUaGlzIHZlcnNpb24gcHJvdmlkZXMgYSB2ZXJ5IHNpbXBsZSBzb2x1 dGlvbjogcHJvY2VzcyBRSSBvbmx5IHdoZW4gbm8KIGludGVycnVwdCBpcyBkZWxpdmVyaW5nIHdo aWNoIGRlZmluaXRlbHkgaW1wbGllcyB0aGVyZSBpcyBubyBpbi1mbGlnaHQKIGludGVycnVwdC4K IC0gdXNlIGxvY2tzIGluIFFJIGFuZCBmYXVsdCBoYW5kbGluZyBzdWItZmVhdHVyZS4gVGhlc2Ug bG9ja3MgZ3VhcmFudGVlCiB0aGUgcmVnaXN0ZXJzL3N0YXR1cyB3b24ndCBiZSBjaGFuZ2VkIGJ5 IGd1ZXN0IHdoZW4gdnZ0ZCBpcyBkZWFsaW5nIHdpdGgKIGZhdWx0cyBvciBpbnZhbGlkYXRpb24g cmVxdWVzdHMuCiAtIG1vdmUgdmlvbW11IHN0cnVjdHVyZSB1bmRlciBodm0gZG9tYWluIHJhdGhl ciB0aGFuIG1ha2luZyBpdCBhIGZpZWxkIG9mCiBzdHJ1Y3QgZG9tYWluLgogLSByZW1vdmUgdW5u ZWVkZWQgZG9tY3RsIGludGVyZmFjZSBmb3IgZGVzdHJveWluZyB2aW9tbXUuIEN1cnJlbnRseSwg ZHluYW1pYwogZGVzdHJ1Y3Rpb24gYXJlbid0IG5lZWRlZC4KIC0gcmVvcmRlciB0aGUgcGF0Y2hl cyBwZXIgUm9nZXIncyBzdWdnZXN0aW9uOiB0aGUgdmlvbW11IGFic3RyYWN0IGdvZXMgZmlyc3Qs CiB0aGVuIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBlbXVsYXRlZCBWVC1kLCBzZXZlcmFsIGhvb2tz IG9mCiBjb25maWd1cmluZy9kZWxpdmVyaW5nIGd1ZXN0IGludGVycnVwdCBhbmQgRU9JLCBhbmQg cmVsYXRlZCBjaGFuZ2VzIG9mCiB0b29sc3RhY2suCiAtIGZpeCBtYW55IGNvZGluZyBzdHlsZSBp c3N1ZXMgcG9pbnRlZCBvdXQgYnkgUm9nZXIuCgpDaGFuZ2Ugc2luY2UgdjI6CiAgICAgICAxKSBS ZW1vdmUgdklPTU1VIGh5cGVyY2FsbCBvZiBxdWVyeSBjYXBhYmlsaXRpZXMgYW5kIGludHJvZHVj ZSB3aGVuIApuZWNlc3NhcnkuCiAgICAgICAyKSBSZW1vdmUgbGVuZ3RoIGZpZWxkIG9mIHZJT01N VSBjcmVhdGUgcGFyYW1ldGVyIG9mIHZJT01NVSBoeXBlcmNhbGwKICAgICAgIDMpIEludHJvZHVj ZSBpcnEgcmVtYXBwaW5nIG1vZGUgY2FsbGJhY2sgdG8gdklPTU1VIGZyYW1ld29yayBhbmQgdklP TU1VIApkZXZpY2UgbW9kZWxzCmNhbiBjaGVjayBpcnEgcmVtYXBwaW5nIG1vZGUgYnkgdmVuZG9y IHNwZWNpZmljIHdheXMuCiAgICAgICA0KSBVcGRhdGUgdklPTU1VIGRvY3MuCiAgICAgICA1KSBP dGhlciBjaGFuZ2VzIHBsZWFzZSBzZWUgcGF0Y2hlcycgY2hhbmdlIGxvZ3MuCgpDaGFuZ2Ugc2lu Y2UgdjE6CiAgICAgICAxKSBGaXggY29kaW5nIHN0eWxlIGlzc3VlcwogICAgICAgMikgQWRkIGRl ZmluaXRpb25zIGZvciB2SU9NTVUgdHlwZSBhbmQgY2FwYWJpbGl0aWVzCiAgICAgICAzKSBDaGFu Z2UgdklPTU1VIGtjb25maWcgYW5kIHNlbGVjdCB2SU9NTVUgZGVmYXVsdCBvbiB4ODYKICAgICAg IDQpIFB1dCB2SU9NTVUgY3JlYXRpb24gaW4gbGlieGxfX2FyY2hfZG9tYWluX2NyZWF0ZSgpCiAg ICAgICA1KSBNYWtlIHZJT01NVSBzdHJ1Y3R1cmUgb2YgdG9vbCBzdGFjayBtb3JlIGdlbmVyYWwg Zm9yIGJvdGggUFYgYW5kIEhWTS4KCkNoYW5nZSBzaW5jZSBSRkMgdjI6CiAgICAgICAxKSBNb3Zl IHZ2dGQuYyB0byBkcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZCBkaXJlY3Ryb3kuIAogICAgICAgMikg TWFrZSB2SU9NTVUgYWx3YXlzIGJ1aWx0IGluIG9uIHg4NgogICAgICAgMykgQWRkIG5ldyBib290 IGNtZCAidmlvbW11IiB0byBlbmFibGUgdmlvbW11IGZ1bmN0aW9uCiAgICAgICA0KSBGaXggc29t ZSBjb2RlIHN0eXBlIGlzc3Vlcy4KCkNoYW5nZSBzaW5jZSBSRkMgdjE6CiAgICAgICAxKSBBZGQg WGVuIHZpcnR1YWwgSU9NTVUgZG9jIGRvY3MvbWlzYy92aW9tbXUudHh0CiAgICAgICAyKSBNb3Zl IHZJT01NVSBoeXBlcmNhbGwgb2YgY3JlYXRlL2Rlc3Ryb3kgdklPTU1VIGFuZCBxdWVyeSAgCmNh cGFiaWxpdGllcyBmcm9tIGRtb3AgdG8gZG9tY3RsIHN1Z2dlc3RlZCBieSBQYXVsIER1cnJhbnQu IEJlY2F1c2UKdGhlc2UgaHlwZXJjYWxscyBjYW4gYmUgZG9uZSBpbiB0b29sIHN0YWNrIGFuZCBt b3JlIFZNIG1vZGUoRSxHIFBWSApvciBvdGhlciBtb2RlcyBkb24ndCB1c2UgUWVtdSkgY2FuIGJl IGJlbmVmaXQuCiAgICAgICAzKSBBZGQgY2hlY2sgb2YgaW5wdXQgTU1JTyBhZGRyZXNzIGFuZCBs ZW5ndGguCiAgICAgICA0KSBBZGQgaW9tbXVfdHlwZSBpbiB2SU9NTVUgaHlwZXJjYWxsIHBhcmFt ZXRlciB0byBzcGVjaWZ5CnZlbmRvciB2SU9NTVUgZGV2aWNlIG1vZGVsKEUsRyBJbnRlbCBWVEQs IEFNRCBvciBBUk0gSU9NTVUuIFNvIGZhcgpvbmx5IHN1cHBvcnQgSW50ZWwgVlREKS4KICAgICAg IDUpIEFkZCBzYXZlIGFuZCByZXN0b3JlIHN1cHBvcnQgZm9yIHZ2dGQKCkNoYW8gR2FvICgyMyk6 CiAgdnRkOiBjbGVhbi11cCBhbmQgcHJlcGFyYXRpb24gZm9yIHZ2dGQKICB4ODYvaHZtOiBJbnRy b2R1Y2UgYSBlbXVsYXRlZCBWVEQgZm9yIEhWTQogIHg4Ni92dnRkOiBBZGQgTU1JTyBoYW5kbGVy IGZvciBWVlRECiAgeDg2L3Z2dGQ6IFNldCBJbnRlcnJ1cHQgUmVtYXBwaW5nIFRhYmxlIFBvaW50 ZXIgdGhyb3VnaCBHQ01ECiAgeDg2L3Z2dGQ6IEVuYWJsZSBJbnRlcnJ1cHQgUmVtYXBwaW5nIHRo cm91Z2ggR0NNRAogIHg4Ni92dnRkOiBQcm9jZXNzIGludGVycnVwdCByZW1hcHBpbmcgcmVxdWVz dAogIHg4Ni92dnRkOiBkZWNvZGUgaW50ZXJydXB0IGF0dHJpYnV0ZSBmcm9tIElSVEUKICB4ODYv dnZ0ZDogYWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGRlY2lkZSB0aGUgaW50ZXJydXB0IGZvcm1h dAogIHg4Ni92dnRkOiBIYW5kbGUgaW50ZXJydXB0IHRyYW5zbGF0aW9uIGZhdWx0cwogIHg4Ni92 dnRkOiBFbmFibGUgUXVldWVkIEludmFsaWRhdGlvbiB0aHJvdWdoIEdDTUQKICB4ODYvdnZ0ZDog QWRkIHF1ZXVlZCBpbnZhbGlkYXRpb24gKFFJKSBzdXBwb3J0CiAgeDg2L3Z2dGQ6IHNhdmUgYW5k IHJlc3RvcmUgZW11bGF0ZWQgVlQtZAogIHg4Ni92aW9hcGljOiBIb29rIGludGVycnVwdCBkZWxp dmVyeSBvZiB2SU9BUElDCiAgeDg2L3Zpb2FwaWM6IGV4dGVuZCB2aW9hcGljX2dldF92ZWN0b3Io KSB0byBzdXBwb3J0IHJlbWFwcGluZyBmb3JtYXQKICAgIFJURQogIHhlbi9wdDogd2hlbiBiaW5k aW5nIGd1ZXN0IG1zaSwgYWNjZXB0IHRoZSB3aG9sZSBtc2kgbWVzc2FnZQogIHZ2dGQ6IHVwZGF0 ZSBodm1fZ21zaV9pbmZvIHdoZW4gYmluZGluZyBndWVzdCBtc2kgd2l0aCBwaXJxIG9yCiAgeDg2 L3Ztc2k6IEhvb2sgZGVsaXZlcmluZyByZW1hcHBpbmcgZm9ybWF0IG1zaSB0byBndWVzdCBhbmQg aGFuZGxpbmcKICAgIGVvaQogIHRvb2xzL2xpYmFjcGk6IEFkZCBETUEgcmVtYXBwaW5nIHJlcG9y dGluZyAoRE1BUikgQUNQSSB0YWJsZQogICAgc3RydWN0dXJlcwogIHRvb2xzL2xpYmFjcGk6IEFk ZCBuZXcgZmllbGRzIGluIGFjcGlfY29uZmlnIGZvciBETUFSIHRhYmxlCiAgdG9vbHMvbGlieGw6 IEFkZCBhbiB1c2VyIGNvbmZpZ3VyYWJsZSBwYXJhbWV0ZXIgdG8gY29udHJvbCB2SU9NTVUKICAg IGF0dHJpYnV0ZXMKICB0b29scy9saWJ4bDogYnVpbGQgRE1BUiB0YWJsZSBmb3IgYSBndWVzdCB3 aXRoIG9uZSB2aXJ0dWFsIFZURAogIHRvb2xzL2xpYnhsOiBjcmVhdGUgdklPTU1VIGR1cmluZyBk b21haW4gY29uc3RydWN0aW9uCiAgdG9vbHMvbGlieGM6IEFkZCB2aW9tbXUgb3BlcmF0aW9ucyBp biBsaWJ4YwoKTGFuIFRpYW55dSAoNSk6CiAgWGVuL2RvYzogQWRkIFhlbiB2aXJ0dWFsIElPTU1V IGRvYwogIFZJT01NVTogQWRkIHZJT01NVSBmcmFtZXdvcmsgYW5kIHZJT01NVSBkb21jdGwKICBW SU9NTVU6IEFkZCBpcnEgcmVxdWVzdCBjYWxsYmFjayB0byBkZWFsIHdpdGggaXJxIHJlbWFwcGlu ZwogIFZJT01NVTogQWRkIGdldCBpcnEgaW5mbyBjYWxsYmFjayB0byBjb252ZXJ0IGlycSByZW1h cHBpbmcgcmVxdWVzdAogIFZJT01NVTogSW50cm9kdWNlIGNhbGxiYWNrIG9mIGNoZWNraW5nIGly cSByZW1hcHBpbmcgbW9kZQoKIGRvY3MvbWFuL3hsLmNmZy5wb2QuNS5pbiAgICAgICAgICAgICAg IHwgICAyNyArCiBkb2NzL21pc2MvdmlvbW11LnR4dCAgICAgICAgICAgICAgICAgICB8ICAxMjAg KysrCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93biAgICB8ICAgIDcgKwogdG9v bHMvZmlybXdhcmUvaHZtbG9hZGVyL292bWYuYyAgICAgICAgfCAgICAyICstCiB0b29scy9saWJh Y3BpL2FjcGkyXzAuaCAgICAgICAgICAgICAgICB8ICAgNjEgKysKIHRvb2xzL2xpYmFjcGkvYnVp bGQuYyAgICAgICAgICAgICAgICAgIHwgICA2MSArKwogdG9vbHMvbGliYWNwaS9saWJhY3BpLmgg ICAgICAgICAgICAgICAgfCAgIDEwICsKIHRvb2xzL2xpYnhjL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgIHwgICAgMSArCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAgICB8 ICAgMTAgKy0KIHRvb2xzL2xpYnhjL3hjX2RvbWFpbi5jICAgICAgICAgICAgICAgIHwgICAxNCAr LQogdG9vbHMvbGlieGMveGNfdmlvbW11LmMgICAgICAgICAgICAgICAgfCAgIDUxICsrCiB0b29s cy9saWJ4bC9saWJ4bF9hcmNoLmggICAgICAgICAgICAgICB8ICAgIDEgKwogdG9vbHMvbGlieGwv bGlieGxfY3JlYXRlLmMgICAgICAgICAgICAgfCAgIDQ3ICsrCiB0b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwgICAgICAgICAgICB8ICAgMTIgKwogdG9vbHMvbGlieGwvbGlieGxfeDg2LmMgICAg ICAgICAgICAgICAgfCAgIDIxICstCiB0b29scy9saWJ4bC9saWJ4bF94ODZfYWNwaS5jICAgICAg ICAgICB8ICAgOTggKystCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgICAgICAgICAgICAgICB8 ICAgNTAgKy0KIHhlbi9hcmNoL3g4Ni9LY29uZmlnICAgICAgICAgICAgICAgICAgIHwgICAgMSAr CiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIHhlbi9h cmNoL3g4Ni9odm0vaXJxLmMgICAgICAgICAgICAgICAgIHwgICAgNiArCiB4ZW4vYXJjaC94ODYv aHZtL3Zpb2FwaWMuYyAgICAgICAgICAgICB8ICAgMjMgKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm1z aS5jICAgICAgICAgICAgICAgIHwgICAzMyArLQogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAg ICAgICAgICAgICAgfCAgICAzICsKIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgIHwgICAgMyArCiB4ZW4vY29tbW9uL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAg IDEgKwogeGVuL2NvbW1vbi9kb21jdGwuYyAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHhl bi9jb21tb24vdmlvbW11LmMgICAgICAgICAgICAgICAgICAgIHwgIDE3MSArKysrKwogeGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW8uYyAgICAgICAgICAgfCAgMTQ0ICsrLS0KIHhlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9NYWtlZmlsZSAgIHwgICAgNyArLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmggICAgfCAgMTk3ICsrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvdnZ0ZC5jICAgICB8IDEzMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oICAgICAgIHwgICAgMyArCiB4ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9odm0uaCAgICAgICAgICB8ICAgIDIgKwogeGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vaXJxLmggICAgICAgICAgfCAgICA2ICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L3Zp b21tdS5oICAgICAgICAgICB8ICAgODIgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9o dm0vc2F2ZS5oIHwgICAxOCArLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oICAgICAgICAg ICAgfCAgIDM5ICstCiB4ZW4vaW5jbHVkZS94ZW4vdmlvbW11LmggICAgICAgICAgICAgICB8ICAg ODUgKysrCiAzOCBmaWxlcyBjaGFuZ2VkLCAyNjAzIGluc2VydGlvbnMoKyksIDEyNyBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2NzL21pc2MvdmlvbW11LnR4dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2xpYnhjL3hjX3Zpb21tdS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2NvbW1vbi92aW9tbXUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC92dnRkLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9hc20teDg2L3Zp b21tdS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUveGVuL3Zpb21tdS5oCgotLSAK MS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=