From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 00/15] Enable Memory Bandwidth Allocation in Xen Date: Tue, 5 Sep 2017 17:32:22 +0800 Message-ID: <1504603957-5389-1-git-send-email-yi.y.sun@linux.intel.com> 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 1dpAVS-0006sb-Me for xen-devel@lists.xenproject.org; Tue, 05 Sep 2017 09:50:54 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , julien.grall@arm.com, mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, dgdegra@tycho.nsa.gov, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org SGksIGFsbCwKCldlIHBsYW4gdG8gYnJpbmcgYSBuZXcgUFNSIChQbGF0Zm9ybSBTaGFyZWQgUmVz b3VyY2UpIGZlYXR1cmUgY2FsbGVkCkludGVsIE1lbW9yeSBCYW5kd2lkdGggQWxsb2NhdGlvbiAo TUJBKSB0byBYZW4uCgpCZXNpZGVzIHRoZSBNQkEgZW5hYmxpbmcsIHdlIGNoYW5nZSBzb21lIGlu dGVyZmFjZXMgdG8gbWFrZSB0aGVtIG1vcmUKZ2VuZXJhbCBidXQgbm90IG9ubHkgZm9yIENBVC4K CkFueSBjb21tZW50cyBhcmUgd2VsY29tZSEKCllvdSBjYW4gZmluZCB0aGlzIHNlcmllcyBhdDoK aHR0cHM6Ly9naXRodWIuY29tL3lpc3VuLWdpdC94ZW5fbWJhIG1iYV92My0xCgpUaGlzIHYzIHNl cmllcyBiYXNlcyBvbiBiZWxvdyB0d28gcGF0Y2hlcyB3aGljaCBhcmUgYmVpbmcgcmV2aWV3ZWQg bm93LiBJIG1heQp0YWtlIG9uZSBvciB0d28gd2Vla3MgbGVhdmUgZnJvbSB0b21vcnJvdy4gU28g SSBzdWJtaXQgdjMgYmVmb3JlIGJlbG93IHBhdGNoZXMKYXJlIG1lcmdlZCBhbmQgaG9wZSBub3Qg dG8gZGVsYXkgdGhlIHJldmlldyBwcm9ncmVzcy4gU29ycnkgZm9yIHRoYXQuCgpbUEFUQ0ggdjMg MS8yXSB0b29sczogdXNlICdfX2kzODZfXycgYW5kICdfX3g4Nl82NF9fJyB0byByZXBsYWNlIFBT UiBtYWNyb3MKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIw MTctMDkvbXNnMDAyMjkuaHRtbAoKW1BBVENIIHYzIDIvMl0gdG9vbHM6IGNoYW5nZSB0aGUgdHlw ZSBvZiAnKm5yJyBpbiAnbGlieGxfcHNyX2NhdF9nZXRfaW5mbycKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTctMDkvbXNnMDAyMzAuaHRtbAoKLS0tCkFj a2VkIGFuZCBSZXZpZXdlZCBsaXN0IGJlZm9yZSBWMzoKCmEgLSBBY2tlZC1ieQpyIC0gUmV2aWV3 ZWQtYnkKCiAgYXIgcGF0Y2ggMiAgLSBSZW5hbWUgUFNSIHN5c2N0bC9kb21jdGwgaW50ZXJmYWNl cyBhbmQgeHNtIHBvbGljeSB0byBtYWtlIHRoZW0gYmUgZ2VuZXJhbAogIHIgIHBhdGNoIDMgIC0g eDg2OiByZW5hbWUgJ2NibV90eXBlJyB0byAncHNyX3R5cGUnIHRvIG1ha2UgaXQgZ2VuZXJhbAog IHIgIHBhdGNoIDYgIC0geDg2OiBpbXBsZW1lbnQgZ2V0IHZhbHVlIGludGVyZmFjZSBmb3IgTUJB CiAgYXIgcGF0Y2ggMTIgLSB0b29sczogcmVuYW1lICd4Y19wc3JfY2F0X3R5cGUnIHRvICd4Y19w c3JfdHlwZScKICBhICBwYXRjaCAxMyAtIHRvb2xzOiBpbXBsZW1lbnQgbmV3IGdlbmVyaWMgZ2V0 IHZhbHVlIGludGVyZmFjZSBhbmQgTUJBIGdldCB2YWx1ZSBjb21tYW5kCiAgYSAgcGF0Y2ggMTUg LSBkb2NzOiBhZGQgTUJBIGRlc2NyaXB0aW9uIGluIGRvY3MKCi0tLQpWMyBjaGFuZ2UgbGlzdDoK ClBhdGNoIDE6CiAgICAtIHJlbW92ZSAnY2xvc2VkLWxvb3AnIHJlbGF0ZWQgZGVzY3JpcHRpb24u CiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gZXhwbGFpbiAnbGlu ZWFyJyBhbmQgJ25vbi1saW5lYXInIGJlZm9yZSBtZW50aW9uaW5nIHRoZW0uCiAgICAgIChzdWdn ZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gYWRqdXN0IGRlc3JpcHRpb24gb2YgJ3Bz ci1tYmEtc2V0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBl eHBsYWluICdNQkFfTUFYJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQog ICAgLSByZW1vdmUgJ248NjQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kp CiAgICAtIGZpeCBzb21lIHdvcmRpbmdzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBN b25uw6kpCiAgICAtIGFkZCBjb250ZXh0IGluICdUZXN0aW5nJyBwYXJ0IHRvIG1ha2UgdGhpbmdz IG1vcmUgY2xlYXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKUGF0Y2gg MjoKICAgIC0gcmVtb3ZlICdvcC9PUCcgZnJvbSBuYW1lcyBhbmQgbW9kaWZ5IHNvbWUgbmFtZXMg ZnJvbSAnUFNSX0NBVCcgdG8KICAgICAgJ1BTUl9BTExPQycuCiAgICAgIChzdWdnZXN0ZWQgYnkg Um9nZXIgUGF1IE1vbm7DqSkKUGF0Y2ggMzoKICAgIC0gcmVwbGFjZSAncHNyX3ZhbF90eXBlJyB0 byAncHNyX3R5cGUnIGFuZCByZW1vdmUgJ19WQUwnIGZyb20gdGhlIGVudW0KICAgICAgaXRlbXMu CiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKUGF0Y2ggNDoKICAgIC0gcmVw bGFjZSAncHNyX3ZhbF90eXBlJyB0byAncHNyX3R5cGUnLiBBbHNvLCBjaGFuZ2UgJ1BTUl9WQUxf VFlQRV9NQkEnIHRvCiAgICAgICdQU1JfVFlQRV9NQkFfVEhSVEwnLgogICAgICAoc3VnZ2VzdGVk IGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIHJlcGxhY2UgJ01CQV9MSU5FQVInIHRvICdNQkFf TElORUFSX01BU0snIHRvIG1ha2UgdGhlIG5hbWUgbW9yZSBjbGVhci4KICAgICAgKHN1Z2dlc3Rl ZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZXBsYXNlICdjYXRfaW5mbycvJ21iYV9pbmZv JyB0byAnY2F0Jy8nbWJhJyB0byBtYWtlIHRoZSBuYW1lcyBzaG9ydGVyLgogICAgICAoc3VnZ2Vz dGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICdsaW5lYXInIHRv ICdib29sJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBtYWtl IGZvcm1hdCBzdHJpbmcgb2YgcHJpbnRmIGluIG9uZSBsaW5lLgogICAgICAoc3VnZ2VzdGVkIGJ5 IFJvZ2VyIFBhdSBNb25uw6kpClBhdGNoIDU6CiAgICAtIHJlcGxhY2UgJ1BTUl9WQUxfVFlQRV9N QkEnIHRvICdQU1JfVFlQRV9NQkFfVEhSVEwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBh dSBNb25uw6kpClBhdGNoIDY6CiAgICAtIGNoYW5nZSAnUFNSX1ZBTF9UWVBFX01CQScgdG8gJ1BT Ul9UWVBFX01CQV9USFJUTCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkK UGF0Y2ggNzoKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIG1ha2UgaXQgY2xlYXIuCiAg ICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gbW9kaWZ5IGZ1bmN0aW9u YWxpdHkgb2YgJ2NoZWNrX3ZhbCcgdG8gbWFrZSBpdCBzaW1wbGUgdG8gb25seSBjaGVjayB2YWx1 ZS4KICAgICAgQ2hhbmdlIHRoZSBsYXN0IHBhcmFtZXRlciB0eXBlIGZyb20gJ3Vuc2lnbmVkIGxv bmcgKicgdG8gJ3Vuc2lnbmVkIGxvbmcnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBN b25uw6kpCiAgICAtIGNhbGwgcmRtc3JsIHRvIGdldCB2YWx1ZSBqdXN0IHdyaXR0ZW4gaW50byBN U1IgZm9yIE1CQS4gQmVjYXVzZSBIVyBjYW4KICAgICAgYXV0b21hdGljYWxseSBjaGFuZ2UgaW5w dXQgdmFsdWUgdG8gd2hhdCBpdCB3YW50cy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUg TW9ubsOpKQogICAgLSBjaGFuZ2UgdHlwZSBvZiAnd3JpdGVfbXNyJyB0byAndWludDMyX3QnIHRv IHJldHVybiB0aGUgdmFsdWUgYWN0dWFsbHkKICAgICAgd3JpdHRlbiBpbnRvIE1TUi4gVGhlbiwg Y2hhbmdlICdkb193cml0ZV9wc3JfbXNycycgdG8gc2V0IHRoZSByZXR1cm5lZAogICAgICB2YWx1 ZSBpbnRvICdjb3NfcmVnX3ZhbFtdJwogICAgLSBtb3ZlIHRoZSBkZWNsYXJhdGlvbiBvZiAnaicg aW50byBsb29wIGluICdkb193cml0ZV9wc3JfbXNycycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdtYmFfaW5mbycgdG8gJ21iYScuCiAgICAgIChz dWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdjYXRfaW5mbycgdG8g J2NhdCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVuYW1l ICdwc3JfY2F0L1BTUl9DQVQnIHRvICdwc3JfYWxsb2MvUFNSX0FMTE9DJyBhbmQgcmVtb3ZlICdv cC9PUCcKICAgICAgZnJvbSBuYW1lLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25u w6kpCiAgICAtIGNoYW5nZSAnUFNSX1ZBTF9UWVBFX01CQScgdG8gJ1BTUl9UWVBFX01CQV9USFJU TCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKUGF0Y2ggODoKICAgIC0g Y2hhbmdlICdMSUJYTF9IQVZFX1BTUl9NQkEnIHRvICdMSUJYTF9IQVZFX1BTUl9HRU5FUklDJy4K ICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSAndHlwZWRlZiBlbnVt IGxpYnhsX3Bzcl9jYm1fdHlwZSBsaWJ4bF9wc3JfdHlwZTsnIGluIGxpYnhsLmguCiAgICAgIChz dWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSBhbmQgV2VpIExpdSkKICAgIC0gY2hhbmdlICds aWJ4bF9wc3JfY2JtX3R5cGUnIHRvICdsaWJ4bF9wc3JfdHlwZScgaW4gbmV3bHkgZGVmaW5lZAog ICAgICBpbnRlcmZhY2VzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpClBh dGNoIDk6CiAgICAtIHJlbmFtZSAncHNyX2NhdC9QU1JfQ0FUJyB0byAncHNyX2FsbG9jL1BTUl9B TExPQycgYW5kIHJlbW92ZSAnb3AvT1AnCiAgICAgIGZyb20gbmFtZS4KICAgICAgKHN1Z2dlc3Rl ZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgJ2luZm8nIGZyb20gJ3hjX2NhdF9p bmZvJyBhbmQgJ3hjX21iYV9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9u bsOpKQogICAgLSBzZXQgZXJybm8gaW4gJ3hjX3Bzcl9nZXRfaHdfaW5mbycuCiAgICAgIChzdWdn ZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdpbmxpbmUnLgogICAgICAo c3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIHJlbW92ZSAncHNyJyBmcm9tICds aWJ4bF9fcHNyX2ZlYXRfdHlwZV90b19saWJ4Y19wc3JfZmVhdF90eXBlJyB0byBtYWtlCiAgICAg IGZ1bmN0aW9uIG5hbWUgc2hvcnRlci4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9u bsOpKQogICAgLSBjaGVjayAneGNfdHlwZScgaW4gJ2xpYnhsX3Bzcl9jYXRfZ2V0X2luZm8nLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpClBhdGNoIDEwOgogICAgLSByZW1v dmUgY2FzdGluZy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBy ZW1vdmUgaW5saW5lLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAt IGNoYW5nZSAnbGlieGNfX3Bzcl9od19pbmZvX3RvX2xpYnhsX3Bzcl9od19pbmZvJyB0bwogICAg ICAnbGlieGxfX3hjX2h3X2luZm9fdG9fbGlieGxfaHdfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQg YnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdfaHcnIGZyb20gcGFyYW1ldGVyIG5h bWVzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSBz b21lICdMT0dFJyB0byAnTE9HJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOp KQogICAgLSBjaGVjayByZXR1cm5lZCAneGNfdHlwZScgYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2x2 bCcgY2hlY2suCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKUGF0Y2ggMTE6 CiAgICAtIGNoYW5nZSB0aGUgZm9ybWF0IHN0cmluZyBvZiBwcmludGYgaW4gJ3Bzcl9tYmFfaHdp bmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBhZGQgJ2Nv bnN0JyBmb3IgJ29wdHNbXScgaW4gJ21haW5fcHNyX2h3aW5mbycuCiAgICAgIChzdWdnZXN0ZWQg YnkgUm9nZXIgUGF1IE1vbm7DqSkKUGF0Y2ggMTI6CiAgICAtIGNoYW5nZSAneGNfcHNyX3ZhbF90 eXBlJyB0byAneGNfcHNyX3R5cGUnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25u w6kpClBhdGNoIDEzOgogICAgLSByZXBsYWNlICdsaWJ4bF9wc3JfY2JtX3R5cGUnIHRvICdsaWJ4 bF9wc3JfdHlwZScgaW4gbmV3bHkgZGVmaW5lZAogICAgICBpbnRlcmZhY2VzLgogICAgICAoc3Vn Z2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpClBhdGNoIDE0OgogICAgLSBhZGQgJ2NvbnN0JyBm b3IgJ29wdHNbXScgaW4gJ21haW5fcHNyX21iYV9zZXQnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJv Z2VyIFBhdSBNb25uw6kpCiAgICAtIHJlcGxhY2UgJ2xpYnhsX3Bzcl9jYm1fdHlwZScgdG8gJ2xp YnhsX3Bzcl90eXBlJyBmb3IgbmV3bHkgZGVmaW5lZAogICAgICBpbnRlcmZhY2VzLgogICAgICAo c3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCgpZaSBTdW4gKDE1KToKICBkb2NzOiBjcmVh dGUgTWVtb3J5IEJhbmR3aWR0aCBBbGxvY2F0aW9uIChNQkEpIGZlYXR1cmUgZG9jdW1lbnQKICBS ZW5hbWUgUFNSIHN5c2N0bC9kb21jdGwgaW50ZXJmYWNlcyBhbmQgeHNtIHBvbGljeSB0byBtYWtl IHRoZW0gYmUKICAgIGdlbmVyYWwKICB4ODY6IHJlbmFtZSAnY2JtX3R5cGUnIHRvICdwc3JfdHlw ZScgdG8gbWFrZSBpdCBnZW5lcmFsCiAgeDg2OiBpbXBsZW1lbnQgZGF0YSBzdHJ1Y3R1cmUgYW5k IENQVSBpbml0IGZsb3cgZm9yIE1CQQogIHg4NjogaW1wbGVtZW50IGdldCBodyBpbmZvIGZsb3cg Zm9yIE1CQQogIHg4NjogaW1wbGVtZW50IGdldCB2YWx1ZSBpbnRlcmZhY2UgZm9yIE1CQQogIHg4 NjogaW1wbGVtZW50IHNldCB2YWx1ZSBmbG93IGZvciBNQkEKICB0b29sczogY3JlYXRlIGdlbmVy YWwgaW50ZXJmYWNlcyB0byBzdXBwb3J0IHBzciBhbGxvY2F0aW9uIGZlYXR1cmVzCiAgdG9vbHM6 IGltcGxlbWVudCB0aGUgbmV3IGxpYnhjIGdldCBodyBpbmZvIGludGVyZmFjZQogIHRvb2xzOiBp bXBsZW1lbnQgdGhlIG5ldyBsaWJ4bCBnZXQgaHcgaW5mbyBpbnRlcmZhY2UKICB0b29sczogaW1w bGVtZW50IHRoZSBuZXcgeGwgZ2V0IGh3IGluZm8gaW50ZXJmYWNlCiAgdG9vbHM6IHJlbmFtZSAn eGNfcHNyX2NhdF90eXBlJyB0byAneGNfcHNyX3R5cGUnCiAgdG9vbHM6IGltcGxlbWVudCBuZXcg Z2VuZXJpYyBnZXQgdmFsdWUgaW50ZXJmYWNlIGFuZCAgTUJBIGdldCB2YWx1ZQogICAgY29tbWFu ZAogIHRvb2xzOiBpbXBsZW1lbnQgbmV3IGdlbmVyaWMgc2V0IHZhbHVlIGludGVyZmFjZSBhbmQg TUJBIHNldCB2YWx1ZQogICAgY29tbWFuZAogIGRvY3M6IGFkZCBNQkEgZGVzY3JpcHRpb24gaW4g ZG9jcwoKIGRvY3MvZmVhdHVyZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MgIHwgMjgzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBkb2NzL21hbi94bC5wb2QuMS5pbiAgICAgICAgICAgICAg ICB8ICAzNCArKysrCiBkb2NzL21pc2MveGwtcHNyLm1hcmtkb3duICAgICAgICAgICB8ICA2MyAr KysrKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlICB8ICAgNCArLQogdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgNDcgKysrLS0KIHRvb2xzL2xpYnhj L3hjX3Bzci5jICAgICAgICAgICAgICAgIHwgMTA3ICsrKysrKystLS0tCiB0b29scy9saWJ4bC9s aWJ4bC5oICAgICAgICAgICAgICAgICB8ICAzMyArKysrCiB0b29scy9saWJ4bC9saWJ4bF9wc3Iu YyAgICAgICAgICAgICB8IDIzNyArKysrKysrKysrKysrKysrKysrKy0tLS0tCiB0b29scy9saWJ4 bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICB8ICAyMiArKysKIHRvb2xzL3hsL3hsLmggICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICsKIHRvb2xzL3hsL3hsX2NtZHRhYmxlLmMgICAgICAgICAg ICAgIHwgIDEyICsrCiB0b29scy94bC94bF9wc3IuYyAgICAgICAgICAgICAgICAgICB8IDI4MCAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAg ICAgICAgICAgfCAgODEgKysrKystLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgICAgICAg ICAgICB8IDM0NSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9hcmNo L3g4Ni9zeXNjdGwuYyAgICAgICAgICAgICAgIHwgIDUxICsrKystLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni9tc3ItaW5kZXguaCAgICAgfCAgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3IuaCAg ICAgICAgICAgfCAgMjIgKystCiB4ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggICAgICAgICB8 ICAzMCArKy0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAgICAgICB8ICAyNiArKy0K IHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgICA4ICstCiB4ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAgOCArLQogMjEgZmlsZXMgY2hhbmdlZCwgMTM1 NyBpbnNlcnRpb25zKCspLCAzMzkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j cy9mZWF0dXJlcy9pbnRlbF9wc3JfbWJhLnBhbmRvYwoKLS0gCjEuOS4xCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==