From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH RFC 4/7] xen/x86: Migrate to XBI structure Date: Sun, 10 Aug 2014 18:05:38 +0100 Message-ID: <53E7A662.7040504@citrix.com> References: <1407539046-16910-1-git-send-email-daniel.kiper@oracle.com> <1407539046-16910-5-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XGWZK-0002Ba-0k for xen-devel@lists.xenproject.org; Sun, 10 Aug 2014 17:06:06 +0000 In-Reply-To: <1407539046-16910-5-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Daniel Kiper , xen-devel@lists.xenproject.org Cc: keir@xen.org, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, roy.franz@linaro.org, ning.sun@intel.com, jbeulich@suse.com, ross.philipson@citrix.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org T24gMDkvMDgvMTQgMDA6MDQsIERhbmllbCBLaXBlciB3cm90ZToKPiBXZSBoYXZlIGFsbCBjb25z dGFudHMgYW5kIHN0cnVjdHVyZXMgaW4gcGxhY2UuIFNvLCBmaW5hbGx5IGJyZWFrIG11bHRpYm9v dCAodjEpCj4gcHJvdG9jb2wgZGVwZW5kZW5jeS4gSXQgbWVhbnMgdGhhdCBtb3N0IG9mIFhlbiBj b2RlIChleGNsdWRpbmcgcHJlbG9hZGVyKQo+IGNvdWxkIGJlIGJvb3Rsb2FkZXIgYWdub3N0aWMg YW5kIGRvZXMgbm90IG5lZWQgYWxtb3N0IGFueSBrbm93bGVkZ2UgYWJvdXQKPiBib290IHByb3Rv Y29sLiBBZGRpdGlvbmFsbHksIHdlIGFyZSBhYmxlIHRvIHBhc3MgYWxsIGJvb3QgZGF0YSB0byBf X3N0YXJ0X3hlbigpCj4gaW4gb25lIGJ1Y2tldCB3aXRob3V0IGFueSBzaWRlIGNoYW5uZWxzLiBJ IGRvIG5vdCBtZW50aW9uIHRoYXQgd2UgYXJlIGFsc28KPiBhYmxlIHRvIGVhc2lseSBpZGVudGlm eSBib290IGRhdGEgaW4gWGVuIGNvZGUuCj4KPiBIZXJlIGlzIGJvb3QgZGF0YSBmbG93IGZvciBs ZWdhY3kgQklPUyBwbGF0Zm9ybToKPgo+ICAgQklPUyAtPiBHUlVCIC0+IG11bHRpYm9vdFsxMl0q IC0+IF9fcmVsb2MoKSAtPiBNQkQgLT4tXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLwo+ICAgICAgICAgICAgICAgICAgICAgIC0tLS0t LS0tLS0tLS0tLS0tPC0tLS0tLS0tLS0tLS0tLS0tCj4gICAgICAgICAgICAgICAgICAgICAgXAo+ ICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICAgICAgICAgICAgICAgICAgICAtLS0+IF9f aW5pdF94YmkoKSAtPiBYQklfTUIgLT4gX19zdGFydF94ZW4oKSAtPiBYQkkKPiAgICAgICAgICAg ICAgICAgICAgICAgLwo+ICAgICAgICAgICAgICBCSU9TIC0+LS8KPgo+ICAgKiBtdWx0aWJvb3Qy IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQuIExvb2sgZm9yIGl0IGluIG5leHQgcGF0Y2guCj4KPiBI ZXJlIGlzIGJvb3QgZGF0YSBmbG93IGZvciBFRkkgcGxhdGZvcm06Cj4KPiAgIEVGSSAtPiBlZmlf c3RhcnQoKSAtPiBYQklfRUZJIC0+IF9fc3RhcnRfeGVuKCkgLT4gWEJJCj4KPiBXQVJOSU5HOiBB Uk0gYnVpbGQgY291bGQgYmUgYnJva2VuIGJ5IHRoaXMgcGF0Y2guIFdlIG5lZWQgdG8gYWdyZWUg WEJJCj4gaW50ZWdyYXRpb24gaW50byBBUk0uIFBlcnNvbmFsbHkgSSB0aGluayB0aGF0IGl0IGlz IHdvcnRoIHN0b3JpbmcgYWxsCj4gZGF0YSBmcm9tIGFueSBib290bG9hZGVyIGFuZCBwcmVsb2Fk ZXIgaW4gWEJJIG9uIGFueSBhcmNoaXRlY3R1cmUuIFRoaXMKPiBnaXZlIGEgY2hhbmNlIHRvIHNo YXJlIG1vcmUgY29kZSBiZXR3ZWVuIGFyY2hpdGVjdHVyZXMuIEhvd2V2ZXIsIGV2ZXJ5Cj4gYXJj aGl0ZWN0dXJlIHNob3VsZCBkZWZpbmUgaXRzIG93biBYQkkgKGluIHJlbGV2YW50IGluY2x1ZGUv YXNtIGRpcmVjdG9yeSkuCj4gRGVzcGl0ZSB0aGF0IGl0IGxvb2tzIHRoYXQgc29tZSBwYXJ0cyBv ZiBpdCBjb3VsZCBiZSBjb21tb24sIGUuZy4gIG1vZHVsZXMKPiBkYXRhLCBjb21tYW5kIGxpbmUg YXJndW1lbnRzLCBib290IGxvYWRlciBuYW1lLCBFRkkgZGF0YSwgZXRjLiwgZXZlbiBpZiB0eXBl cwo+IHdvdWxkIG5vdCBiZSB0aGUgc2FtZS4gU28sIGFzIGl0IHdhcyBzdGF0ZWQgYWJvdmUgYSBs b3Qgb2YgY29kZSBjb3VsZCBiZQo+IHNoYXJlZCBhbW9uZyBhcmNoaXRlY3R1cmVzLgo+Cj4gU2ln bmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KClRoaXMg cGF0Y2ggaXMgbWFzc2l2ZSwgYW5kIHJlYWxseSBuZWVkcyBzcGxpdHRpbmcgdXAgc29tZXdoYXQu ICBUaGVyZQphcmUgc2V2ZXJhbCBsb2dpY2FsbHkgZGlzdGluY3QgYml0cyB0byBpdC4KCj4gLS0t Cj4gIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgIDEgKwo+ICB4ZW4vYXJj aC94ODYvYm9vdC9jbWRsaW5lLlMgICAgICAgfCAgICA5ICstCj4gIHhlbi9hcmNoL3g4Ni9ib290 L2hlYWQuUyAgICAgICAgICB8ICAgMzEgKystLQo+ICB4ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5j ICAgICAgICAgfCAgMTUzICsrKysrKysrKysrKy0tLS0tCj4gIHhlbi9hcmNoL3g4Ni9ib290L3g4 Nl82NC5TICAgICAgICB8ICAgMTAgKy0KPiAgeGVuL2FyY2gveDg2L2RtaV9zY2FuLmMgICAgICAg ICAgIHwgICAgNyArLQo+ICB4ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMgICAgICAgfCAgIDI0 ICstLQo+ICB4ZW4vYXJjaC94ODYvZWZpL2Jvb3QuYyAgICAgICAgICAgfCAgMjEyICsrKysrKysr KysrLS0tLS0tLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni9lZmkvZWZpLmggICAgICAgICAgICB8ICAg IDMgLQo+ICB4ZW4vYXJjaC94ODYvZWZpL3J1bnRpbWUuYyAgICAgICAgfCAgIDUyICsrKystLQo+ ICB4ZW4vYXJjaC94ODYvaW5pdF94YmkuYyAgICAgICAgICAgfCAgMjU0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICB4ZW4vYXJjaC94ODYvbWljcm9jb2RlLmMgICAgICAgICAgfCAgIDM5 ICsrLS0tCj4gIHhlbi9hcmNoL3g4Ni9tcHBhcnNlLmMgICAgICAgICAgICB8ICAgIDkgKy0KPiAg eGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jIHwgICAxOSArLS0KPiAgeGVuL2FyY2gv eDg2L3NldHVwLmMgICAgICAgICAgICAgIHwgIDM0MCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDUg Ky0KPiAgeGVuL2RyaXZlcnMvYWNwaS9vc2wuYyAgICAgICAgICAgIHwgICAgOSArLQo+ICB4ZW4v ZHJpdmVycy92aWRlby92ZXNhLmMgICAgICAgICAgfCAgICA1ICstCj4gIHhlbi9kcml2ZXJzL3Zp ZGVvL3ZnYS5jICAgICAgICAgICB8ICAgMTYgKy0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25m aWcuaCAgICAgIHwgICAgMiAtCj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvZTgyMC5oICAgICAgICB8 ICAgIDggLQo+ICB4ZW4vaW5jbHVkZS9hc20teDg2L2VkZC5oICAgICAgICAgfCAgICA2IC0KPiAg eGVuL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oICAgICAgIHwgICAxMCArLQo+ICB4ZW4vaW5jbHVk ZS94ZW4vZWZpLmggICAgICAgICAgICAgfCAgIDEwIC0tCj4gIHhlbi9pbmNsdWRlL3hlbi92Z2Eu aCAgICAgICAgICAgICB8ICAgIDQgLQo+ICB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAg ICAgfCAgIDE0ICstCj4gIHhlbi94c20veHNtX2NvcmUuYyAgICAgICAgICAgICAgICB8ICAgIDYg Ky0KPiAgeGVuL3hzbS94c21fcG9saWN5LmMgICAgICAgICAgICAgIHwgICAxNCArLQo+ICAyOCBm aWxlcyBjaGFuZ2VkLCA3MjMgaW5zZXJ0aW9ucygrKSwgNTQ5IGRlbGV0aW9ucygtKQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gveDg2L2luaXRfeGJpLmMKPgo+IGRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKPiBpbmRleCBjMWUy NDRkLi5iYjIyNjRhIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQo+ICsrKyBi L3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQo+IEBAIC00Miw2ICs0Miw3IEBAIG9iai15ICs9IG51bWEu bwo+ICBvYmoteSArPSBwY2kubwo+ICBvYmoteSArPSBwZXJjcHUubwo+ICBvYmoteSArPSBwaHlz ZGV2Lm8KPiArb2JqLXkgKz0gaW5pdF94YmkubwoKaW5pdF94YmkgaXMgbm90IGEgZmFudGFzdGlj IGZpbGVuYW1lLiAgeGJpIGFsb25lIHdvdWxkIGJlIGJldHRlcgooc3ViamVjdCB0byBteSBjb25j ZXJuZWQgYWJvdXQgdGhlIG5hbWUgeGJpKS4KCj4gIG9iai15ICs9IHNldHVwLm8KPiAgb2JqLXkg Kz0gc2h1dGRvd24ubwo+ICBvYmoteSArPSBzbXAubwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvYm9vdC9jbWRsaW5lLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9jbWRsaW5lLlMKPiBpbmRleCAw MDY4N2ViLi43MzE2MDExIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2NtZGxpbmUu Uwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9ib290L2NtZGxpbmUuUwo+IEBAIC0xNTIsMTcgKzE1Miwx NCBAQCBjbWRsaW5lX3BhcnNlX2Vhcmx5Ogo+ICAgICAgICAgIHB1c2hhCj4gIAo+ICAgICAgICAg IC8qIEJhaWwgaWYgdGhlcmUgaXMgbm8gY29tbWFuZCBsaW5lIHRvIHBhcnNlLiAqLwo+IC0gICAg ICAgIG1vdiAgICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAo+IC0gICAgICAgIG1vdiAg ICAgTUJfZmxhZ3MoJWVieCksJWVheAo+IC0gICAgICAgIHRlc3QgICAgJDQsJWFsCj4gLSAgICAg ICAganogICAgICAuTGNtZGxpbmVfZXhpdAo+IC0gICAgICAgIG1vdiAgICAgTUJfY21kbGluZSgl ZWJ4KSwlZWF4Cj4gKyAgICAgICAgbW92ICAgICBzeW1fcGh5cyhtYmRfcHRyKSwlZWJ4Cj4gKyAg ICAgICAgbW92ICAgICBNQkRfY21kbGluZSglZWJ4KSwlZWF4CgpGTEFHUyAmIE1CSV9DTURMSU5F IGlzIHRoZSBwcmVyZXF1aXNpdGUgZm9yIHRoZSAnY21kbGluZScgZmllbGQgYmVpbmcKdmFsaWQu ICBZb3UgY2Fubm90IGRyb3AgdGhhdCBjaGVjayAoYWx0aG91Z2ggbWFraW5nIHVzZSBvZiBzb21l IG1hbmlmZXN0CmNvbnN0YW50cyB3b3VsZCBoZWxwKQoKPiAgICAgICAgICB0ZXN0ICAgICVlYXgs JWVheAo+ICAgICAgICAgIGp6ICAgICAgLkxjbWRsaW5lX2V4aXQKPiAgCj4gICAgICAgICAgLyog Q2hlY2sgZm9yICduby1yZWFsLW1vZGUnIGNvbW1hbmQtbGluZSBvcHRpb24uICovCj4gICAgICAg ICAgcHVzaGwgICAkc3ltX3BoeXMoLkxub19ybV9vcHQpCj4gLSAgICAgICAgcHVzaGwgICBNQl9j bWRsaW5lKCVlYngpCj4gKyAgICAgICAgcHVzaGwgICBNQkRfY21kbGluZSglZWJ4KQo+ICAgICAg ICAgIGNhbGwgICAgLkxmaW5kX29wdGlvbgo+ICAgICAgICAgIHRlc3QgICAgJWVheCwlZWF4Cj4g ICAgICAgICAgc2V0bnogICAlYWwKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVh ZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCj4gaW5kZXggMTBlY2Y1MS4uNzliY2UzYyAx MDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKPiArKysgYi94ZW4vYXJjaC94 ODYvYm9vdC9oZWFkLlMKPiBAQCAtODYsMTQgKzg2LDE0IEBAIF9fc3RhcnQ6Cj4gICAgICAgICAg am5lICAgICBub3RfbXVsdGlib290Cj4gIAo+ICAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5l IHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KPiAtICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlYXgg ICAgICAgICAgLyogRUJEQSBzZWdtZW50ICovCj4gLSAgICAgICAgY21wICAgICAkMHhhMDAwLCVl YXggICAgICAgIC8qIHNhbml0eSBjaGVjayAoaGlnaCkgKi8KPiArICAgICAgICBtb3Z6d2wgIDB4 NDBlLCVlY3ggICAgICAgICAgLyogRUJEQSBzZWdtZW50ICovCj4gKyAgICAgICAgY21wICAgICAk MHhhMDAwLCVlY3ggICAgICAgIC8qIHNhbml0eSBjaGVjayAoaGlnaCkgKi8KPiAgICAgICAgICBq YWUgICAgIDBmCj4gLSAgICAgICAgY21wICAgICAkMHg0MDAwLCVlYXggICAgICAgIC8qIHNhbml0 eSBjaGVjayAobG93KSAqLwo+ICsgICAgICAgIGNtcCAgICAgJDB4NDAwMCwlZWN4ICAgICAgICAv KiBzYW5pdHkgY2hlY2sgKGxvdykgKi8KPiAgICAgICAgICBqYWUgICAgIDFmCj4gIDA6Cj4gLSAg ICAgICAgbW92endsICAweDQxMywlZWF4ICAgICAgICAgIC8qIHVzZSBiYXNlIG1lbW9yeSBzaXpl IG9uIGZhaWx1cmUgKi8KPiAtICAgICAgICBzaGwgICAgICQxMC00LCVlYXgKPiArICAgICAgICBt b3Z6d2wgIDB4NDEzLCVlY3ggICAgICAgICAgLyogdXNlIGJhc2UgbWVtb3J5IHNpemUgb24gZmFp bHVyZSAqLwo+ICsgICAgICAgIHNobCAgICAgJDEwLTQsJWVjeAo+ICAxOgo+ICAgICAgICAgIC8q Cj4gICAgICAgICAgICogQ29tcGFyZSB0aGUgdmFsdWUgaW4gdGhlIEJEQSB3aXRoIHRoZSBpbmZv cm1hdGlvbiBmcm9tIHRoZQo+IEBAIC0xMDUsMjIgKzEwNSwyMyBAQCBfX3N0YXJ0Ogo+ICAgICAg ICAgIGNtcCAgICAgJDB4MTAwLCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVl IHRvbyBzbWFsbD8gKi8KPiAgICAgICAgICBqYiAgICAgIDJmICAgICAgICAgICAgICAgICAgLyog aWYgc28sIGRvIG5vdCB1c2UgaXQgKi8KPiAgICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKPiAt ICAgICAgICBjbXAgICAgICVlYXgsJWVkeCAgICAgICAgICAgLyogY29tcGFyZSB3aXRoIEJEQSB2 YWx1ZSAqLwo+IC0gICAgICAgIGNtb3ZiICAgJWVkeCwlZWF4ICAgICAgICAgICAvKiBhbmQgdXNl IHRoZSBzbWFsbGVyICovCj4gKyAgICAgICAgY21wICAgICAlZWN4LCVlZHggICAgICAgICAgIC8q IGNvbXBhcmUgd2l0aCBCREEgdmFsdWUgKi8KPiArICAgICAgICBjbW92YiAgICVlZHgsJWVjeCAg ICAgICAgICAgLyogYW5kIHVzZSB0aGUgc21hbGxlciAqLwo+ICAKPiAgMjogICAgICAvKiBSZXNl cnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICovCj4gLSAgICAgICAgc3ViICAgICAkMHgxMDAw LCVlYXgKPiArICAgICAgICBzdWIgICAgICQweDEwMDAsJWVjeAo+ICAKPiAgICAgICAgICAvKiBG cm9tIGFyY2gveDg2L3NtcGJvb3QuYzogc3RhcnRfZWlwIGhhZCBiZXR0ZXIgYmUgcGFnZS1hbGln bmVkISAqLwo+IC0gICAgICAgIHhvciAgICAgJWFsLCAlYWwKPiAtICAgICAgICBzaGwgICAgICQ0 LCAlZWF4Cj4gLSAgICAgICAgbW92ICAgICAlZWF4LHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cykK PiArICAgICAgICB4b3IgICAgICVjbCwgJWNsCj4gKyAgICAgICAgc2hsICAgICAkNCwgJWVjeAo+ ICsgICAgICAgIG1vdiAgICAgJWVjeCxzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpCj4gIAo+IC0g ICAgICAgIC8qIFNhdmUgdGhlIE11bHRpYm9vdCBpbmZvIHN0cnVjdCAoYWZ0ZXIgcmVsb2NhdGlv bikgZm9yIGxhdGVyIHVzZS4gKi8KPiArICAgICAgICAvKiBTYXZlIHRoZSBNdWx0aWJvb3QgZGF0 YSAoYWZ0ZXIgcmVsb2NhdGlvbikgZm9yIGxhdGVyIHVzZS4gKi8KPiAgICAgICAgICBtb3YgICAg ICRzeW1fcGh5cyhjcHUwX3N0YWNrKSsxMDI0LCVlc3AKPiAtICAgICAgICBwdXNoICAgICVlYngK PiAtICAgICAgICBjYWxsICAgIHJlbG9jCj4gLSAgICAgICAgbW92ICAgICAlZWF4LHN5bV9waHlz KG11bHRpYm9vdF9wdHIpCj4gKyAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAgICAgIC8q IE11bHRpYm9vdCBtYWdpYyAqLwo+ICsgICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAg ICAvKiBNdWx0aWJvb3QgaW5mb3JtYXRpb24gYWRkcmVzcyAqLwo+ICsgICAgICAgIGNhbGwgICAg cmVsb2MgICAgICAgICAgICAgICAvKiAlZWN4IGNvbnRhaW5zIHRyYW1wb2xpbmUgYWRkcmVzcyAq Lwo+ICsgICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhtYmRfcHRyKQo+ICAKPiAgICAgICAg ICAvKiBJbml0aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkgKi8KPiAgICAgICAgICBt b3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQo+IGRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYm9vdC9yZWxvYy5jIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwo+IGluZGV4IGZh MGZiNmIuLjI5ZjQ4ODcgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwo+ ICsrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKPiBAQCAtMSw0MCArMSw1NiBAQAo+IC0v KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4gKy8qCj4gICAqIHJlbG9jLmMKPiAtICogCj4gKyAqCj4g ICAqIDMyLWJpdCBmbGF0IG1lbW9yeS1tYXAgcm91dGluZXMgZm9yIHJlbG9jYXRpbmcgTXVsdGli b290IHN0cnVjdHVyZXMKPiAgICogYW5kIG1vZHVsZXMuIFRoaXMgaXMgbW9zdCBlYXNpbHkgZG9u ZSBlYXJseSB3aXRoIHBhZ2luZyBkaXNhYmxlZC4KPiAtICogCj4gKyAqCj4gICAqIENvcHlyaWdo dCAoYykgMjAwOSwgQ2l0cml4IFN5c3RlbXMsIEluYy4KPiAtICogCj4gKyAqIENvcHlyaWdodCAo YykgMjAxMywgMjAxNCBPcmFjbGUgQ28uLCBEYW5pZWwgS2lwZXIKPiArICoKPiAgICogQXV0aG9y czoKPiAgICogICAgS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KPiArICogICAgRGFuaWVsIEtp cGVyCj4gICAqLwo+ICAKPiAtLyogZW50ZXJlZCB3aXRoICVlYXggPSBCT09UX1RSQU1QT0xJTkUg Ki8KPiArdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4Owo+ICt0eXBlZGVmIHVuc2lnbmVkIHNob3J0 IHUxNjsKPiArdHlwZWRlZiB1bnNpZ25lZCBsb25nIHUzMjsKPiArdHlwZWRlZiB1bnNpZ25lZCBs b25nIGxvbmcgdTY0Owo+ICsKPiArI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRp Ym9vdC5oIgo+ICsjaW5jbHVkZSAiLi4vLi4vLi4vaW5jbHVkZS9hc20vbWJkLmgiCj4gKwo+ICsv Kgo+ICsgKiBfX0hFUkVfXyBJUyBUUlVFIEVOVFJZIFBPSU5UISEhCj4gKyAqCj4gKyAqIEl0IGlz IGVudGVyZWQgZnJvbSB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgd2l0aDoKPiArICogICAtICVl YXggPSBNVUxUSUJPT1RfTUFHSUMsCj4gKyAqICAgLSAlZWJ4ID0gTVVMVElCT09UX0lORk9STUFU SU9OX0FERFJFU1MsCj4gKyAqICAgLSAlZWN4ID0gQk9PVF9UUkFNUE9MSU5FLgo+ICsgKi8KPiAg YXNtICgKPiAgICAgICIgICAgLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCj4gICAg ICAiICAgIC5nbG9ibCBfc3RhcnQgICAgICAgICAgICAgICAgIFxuIgo+ICAgICAgIl9zdGFydDog ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICIgICAgY2FsbCAxZiAgICAgICAg ICAgICAgICAgICAgICAgXG4iCj4gICAgICAiMTogIHBvcCAgJWVieCAgICAgICAgICAgICAgICAg ICAgIFxuIgo+IC0gICAgIiAgICBtb3YgICVlYXgsYWxsb2MtMWIoJWVieCkgICAgICBcbiIKPiAt ICAgICIgICAgam1wICByZWxvYyAgICAgICAgICAgICAgICAgICAgXG4iCj4gKyAgICAiICAgIG1v diAgJWVjeCxhbGxvYy0xYiglZWJ4KSAgICAgIFxuIgo+ICsgICAgIiAgICBqbXAgIF9fcmVsb2Mg ICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICk7Cj4gIAo+IC0vKiBUaGlzIGlzIG91ciBkYXRh LiAgQmVjYXVzZSB0aGUgY29kZSBtdXN0IGJlIHJlbG9jYXRhYmxlLCBubyBCU1MgaXMKPiAtICog YWxsb3dlZC4gIEFsbCBkYXRhIGlzIGFjY2Vzc2VkIFBDLXJlbGF0aXZlIHdpdGggaW5saW5lIGFz c2VtYmx5Lgo+ICsvKgo+ICsgKiBUaGlzIGlzIG91ciBkYXRhLiBCZWNhdXNlIHRoZSBjb2RlIG11 c3QgYmUgcmVsb2NhdGFibGUsIG5vIEJTUyBpcwo+ICsgKiBhbGxvd2VkLiBBbGwgZGF0YSBpcyBh Y2Nlc3NlZCBQQy1yZWxhdGl2ZSB3aXRoIGlubGluZSBhc3NlbWJseS4KPiAgICovCj4gIGFzbSAo Cj4gICAgICAiYWxsb2M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgo+ICAgICAgIiAg ICAubG9uZyAwICAgICAgICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICk7Cj4gIAo+IC10eXBl ZGVmIHVuc2lnbmVkIGludCB1MzI7Cj4gLSNpbmNsdWRlICIuLi8uLi8uLi9pbmNsdWRlL3hlbi9t dWx0aWJvb3QuaCIKPiAtCj4gLXN0YXRpYyB2b2lkICpyZWxvY19tYmlfc3RydWN0KHZvaWQgKm9s ZCwgdW5zaWduZWQgaW50IGJ5dGVzKQo+ICtzdGF0aWMgdTMyIGFsbG9jX3N0cnVjdCh1MzIgYnl0 ZXMpCj4gIHsKPiAtICAgIHZvaWQgKm5ldzsKPiArICAgIHUzMiBzOwo+ICsKPiAgICAgIGFzbSgK PiAgICAgICIgICAgY2FsbCAxZiAgICAgICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICIxOiAg cG9wICAlJWVkeCAgICAgICAgICAgICAgICAgICBcbiIKPiBAQCAtNDIsNTggKzU4LDEwNSBAQCBz dGF0aWMgdm9pZCAqcmVsb2NfbWJpX3N0cnVjdCh2b2lkICpvbGQsIHVuc2lnbmVkIGludCBieXRl cykKPiAgICAgICIgICAgc3ViICAlMSwlMCAgICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICIg ICAgYW5kICAkfjE1LCUwICAgICAgICAgICAgICAgICBcbiIKPiAgICAgICIgICAgbW92ICAlMCxh bGxvYy0xYiglJWVkeCkgICAgICBcbiIKPiAtICAgICIgICAgbW92ICAlMCwlJWVkaSAgICAgICAg ICAgICAgICBcbiIKPiArICAgICAgIDogIj0mciIgKHMpIDogInIiIChieXRlcykgOiAiZWR4Iik7 Cj4gKwo+ICsgICAgcmV0dXJuIHM7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHplcm9fc3RydWN0 KHUzMiBzLCB1MzIgYnl0ZXMpCj4gK3sKPiArICAgIGFzbSB2b2xhdGlsZSgKPiArICAgICIgICAg Y2xkICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKCl9fc3RhcnQgaGFzIGFscmVhZHkgcGVy Zm9ybWVkIGNsZCBmb3IgdXMuICBUaGVyZSBpcyBub3RoaW5nIHdoaWNoIHdpbGwKaGF2ZSBzZXQg aXQgYmV0d2VlbiB0aGVuIGFuZCBoZXJlLgoKPiArICAgICIgICAgeG9yICAlJWVheCwlJWVheCAg ICAgICAgICAgICBcbiIKPiArICAgICIgICAgcmVwICBzdG9zYiAgICAgICAgICAgICAgICAgICBc biIKPiArICAgICAgIDogIitEIiAocyksICIrYyIgKGJ5dGVzKSA6IDogImVheCIpOwoKV2h5IG5v dCAiYSIgKDApIGFuZCBkcm9wIHRoZSB4b3IgYW5kIGVheCBjbG9iYmVyPwoKPiArfQo+ICsKPiAr c3RhdGljIHUzMiBjb3B5X3N0cnVjdCh1MzIgc3JjLCB1MzIgYnl0ZXMpCj4gK3sKPiArICAgIHUz MiBkc3Q7Cj4gKwo+ICsgICAgZHN0ID0gYWxsb2Nfc3RydWN0KGJ5dGVzKTsKPiArCj4gKyAgICBh c20gdm9sYXRpbGUoCj4gKyAgICAiICAgIGNsZCAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Cj4gKyAgICAiICAgIG1vdiAgJTIsJSVlZGkgICAgICAgICAgICAgICAgXG4iCj4gICAgICAiICAg IHJlcCAgbW92c2IgICAgICAgICAgICAgICAgICAgXG4iCj4gLSAgICAgICA6ICI9JnIiIChuZXcp LCAiK2MiIChieXRlcyksICIrUyIgKG9sZCkKPiAtCTogOiAiZWR4IiwgImVkaSIpOwo+IC0gICAg cmV0dXJuIG5ldzsKPiArICAgICAgIDogIitTIiAoc3JjKSwgIitjIiAoYnl0ZXMpIDogInIiIChk c3QpIDogImVkaSIpOwoKQWdhaW4sIGRyb3AgdGhlIG1vdiAlMiwlJWVkaSBhbmQgdXNlIHByb3Bl ciBwYXJhbWV0ZXJzIHdpdGhvdXQgY2xvYmJlcnMKCj4gKwo+ICsgICAgcmV0dXJuIGRzdDsKPiAg fQo+ICAKPiAtc3RhdGljIGNoYXIgKnJlbG9jX21iaV9zdHJpbmcoY2hhciAqb2xkKQo+ICtzdGF0 aWMgdTMyIGNvcHlfc3RyaW5nKHUzMiBzcmMpCj4gIHsKPiAgICAgIGNoYXIgKnA7Cj4gLSAgICBm b3IgKCBwID0gb2xkOyAqcCAhPSAnXDAnOyBwKysgKQo+ICsKPiArICAgIGlmICggc3JjID09IDAg KQo+ICsgICAgICAgIHJldHVybiAwOwo+ICsKPiArICAgIGZvciAoIHAgPSAoY2hhciAqKXNyYzsg KnAgIT0gJ1wwJzsgcCsrICkKPiAgICAgICAgICBjb250aW51ZTsKPiAtICAgIHJldHVybiByZWxv Y19tYmlfc3RydWN0KG9sZCwgcCAtIG9sZCArIDEpOwo+ICsKPiArICAgIHJldHVybiBjb3B5X3N0 cnVjdChzcmMsIHAgLSAoY2hhciAqKXNyYyArIDEpOwo+ICB9Cj4gIAo+IC1tdWx0aWJvb3RfaW5m b190ICpyZWxvYyhtdWx0aWJvb3RfaW5mb190ICptYmlfb2xkKQo+ICtzdGF0aWMgbWJkX3QgKm1i X21iZChtYmRfdCAqbWJkLCBtdWx0aWJvb3RfaW5mb190ICptYmkpCj4gIHsKPiAtICAgIG11bHRp Ym9vdF9pbmZvX3QgKm1iaSA9IHJlbG9jX21iaV9zdHJ1Y3QobWJpX29sZCwgc2l6ZW9mKCptYmkp KTsKPiAgICAgIGludCBpOwo+ICsgICAgbW9kdWxlX3QgKm1iaV9tb2RzOwo+ICsgICAgYm9vdF9t b2R1bGVfdCAqbWJkX21vZHM7Cj4gKwo+ICsgICAgaWYgKCBtYmktPmZsYWdzICYgTUJJX0xPQURF Uk5BTUUgKQo+ICsgICAgICAgIG1iZC0+Ym9vdF9sb2FkZXJfbmFtZSA9IGNvcHlfc3RyaW5nKG1i aS0+Ym9vdF9sb2FkZXJfbmFtZSk7Cj4gIAo+ICAgICAgaWYgKCBtYmktPmZsYWdzICYgTUJJX0NN RExJTkUgKQo+IC0gICAgICAgIG1iaS0+Y21kbGluZSA9ICh1MzIpcmVsb2NfbWJpX3N0cmluZygo Y2hhciAqKW1iaS0+Y21kbGluZSk7Cj4gKyAgICAgICAgbWJkLT5jbWRsaW5lID0gY29weV9zdHJp bmcobWJpLT5jbWRsaW5lKTsKPiArCj4gKyAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfTUVNTElN SVRTICkKPiArICAgIHsKPiArICAgICAgICBtYmQtPm1lbV9sb3dlciA9IG1iaS0+bWVtX2xvd2Vy Owo+ICsgICAgICAgIG1iZC0+bWVtX3VwcGVyID0gbWJpLT5tZW1fdXBwZXI7Cj4gKyAgICB9Cj4g Kwo+ICsgICAgaWYgKCBtYmktPmZsYWdzICYgTUJJX01FTU1BUCApCj4gKyAgICB7Cj4gKyAgICAg ICAgbWJkLT5tbWFwX3NpemUgPSBtYmktPm1tYXBfbGVuZ3RoOwo+ICsgICAgICAgIG1iZC0+bW1h cCA9IGNvcHlfc3RydWN0KG1iaS0+bW1hcF9hZGRyLCBtYmktPm1tYXBfbGVuZ3RoKTsKPiArICAg IH0KPiAgCj4gICAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUyApCj4gICAgICB7Cj4g LSAgICAgICAgbW9kdWxlX3QgKm1vZHMgPSByZWxvY19tYmlfc3RydWN0KAo+IC0gICAgICAgICAg ICAobW9kdWxlX3QgKiltYmktPm1vZHNfYWRkciwgbWJpLT5tb2RzX2NvdW50ICogc2l6ZW9mKG1v ZHVsZV90KSk7Cj4gKyAgICAgICAgbWJkLT5tb2RzX25yID0gbWJpLT5tb2RzX2NvdW50Owo+ICsg ICAgICAgIG1iZC0+bW9kcyA9IGFsbG9jX3N0cnVjdChtYmktPm1vZHNfY291bnQgKiBzaXplb2Yo Ym9vdF9tb2R1bGVfdCkpOwo+ICAKPiAtICAgICAgICBtYmktPm1vZHNfYWRkciA9ICh1MzIpbW9k czsKPiArICAgICAgICBtYmlfbW9kcyA9IChtb2R1bGVfdCAqKW1iaS0+bW9kc19hZGRyOwo+ICsg ICAgICAgIG1iZF9tb2RzID0gKGJvb3RfbW9kdWxlX3QgKiltYmQtPm1vZHM7Cj4gIAo+ICAgICAg ICAgIGZvciAoIGkgPSAwOyBpIDwgbWJpLT5tb2RzX2NvdW50OyBpKysgKQo+ICAgICAgICAgIHsK PiAtICAgICAgICAgICAgaWYgKCBtb2RzW2ldLnN0cmluZyApCj4gLSAgICAgICAgICAgICAgICBt b2RzW2ldLnN0cmluZyA9ICh1MzIpcmVsb2NfbWJpX3N0cmluZygoY2hhciAqKW1vZHNbaV0uc3Ry aW5nKTsKPiArICAgICAgICAgICAgbWJkX21vZHNbaV0uc3RhcnQgPSBtYmlfbW9kc1tpXS5tb2Rf c3RhcnQ7Cj4gKyAgICAgICAgICAgIG1iZF9tb2RzW2ldLmVuZCA9IG1iaV9tb2RzW2ldLm1vZF9l bmQ7Cj4gKyAgICAgICAgICAgIG1iZF9tb2RzW2ldLmNtZGxpbmUgPSBjb3B5X3N0cmluZyhtYmlf bW9kc1tpXS5zdHJpbmcpOwo+ICsgICAgICAgICAgICBtYmRfbW9kc1tpXS5yZWxvY2F0ZWQgPSAw Owo+ICAgICAgICAgIH0KPiAgICAgIH0KPiAgCj4gLSAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklf TUVNTUFQICkKPiAtICAgICAgICBtYmktPm1tYXBfYWRkciA9ICh1MzIpcmVsb2NfbWJpX3N0cnVj dCgKPiAtICAgICAgICAgICAgKG1lbW9yeV9tYXBfdCAqKW1iaS0+bW1hcF9hZGRyLCBtYmktPm1t YXBfbGVuZ3RoKTsKPiArICAgIHJldHVybiBtYmQ7Cj4gK30KPiAgCj4gLSAgICBpZiAoIG1iaS0+ ZmxhZ3MgJiBNQklfTE9BREVSTkFNRSApCj4gLSAgICAgICAgbWJpLT5ib290X2xvYWRlcl9uYW1l ID0gKHUzMilyZWxvY19tYmlfc3RyaW5nKAo+IC0gICAgICAgICAgICAoY2hhciAqKW1iaS0+Ym9v dF9sb2FkZXJfbmFtZSk7Cj4gLQo+IC0gICAgLyogTWFzayBmZWF0dXJlcyB3ZSBkb24ndCB1bmRl cnN0YW5kIG9yIGRvbid0IHJlbG9jYXRlLiAqLwo+IC0gICAgbWJpLT5mbGFncyAmPSAoTUJJX01F TUxJTUlUUyB8Cj4gLSAgICAgICAgICAgICAgICAgICBNQklfQk9PVERFViB8Cj4gLSAgICAgICAg ICAgICAgICAgICBNQklfQ01ETElORSB8Cj4gLSAgICAgICAgICAgICAgICAgICBNQklfTU9EVUxF UyB8Cj4gLSAgICAgICAgICAgICAgICAgICBNQklfTUVNTUFQIHwKPiAtICAgICAgICAgICAgICAg ICAgIE1CSV9MT0FERVJOQU1FKTsKPiAtCj4gLSAgICByZXR1cm4gbWJpOwo+ICsvKgo+ICsgKiBf X1RISVNfXyBJUyBOT1QgRU5UUlkgUE9JTlQhISEKPiArICogUExFQVNFIExPT0sgQVQgVEhFIEJF R0lOTklORyBPRiBUSElTIEZJTEUhISEKCkkgZG9uJ3QgdGhpbmsgdGhpcyBuZWVkcyBzdGF0aW5n Li4uCgo+ICsgKgo+ICsgKiBJdCBjb3VsZCBiZSBhIHN0YXRpYyBidXQgdGhlbiBjb21waWxlciBj b21wbGFpbnM6Cj4gKyAqIGVycm9yOiDigJhfX3JlbG9j4oCZIGRlZmluZWQgYnV0IG5vdCB1c2Vk Lgo+ICsgKi8KPiArbWJkX3QgKl9fcmVsb2Modm9pZCAqbWJpLCB1MzIgbWJfbWFnaWMpCgpzdGF0 aWMgbWJkX3QgKl9fcmVsb2Modm9pZCAqbWJpLCB1MzIgbWJfbWFnaWMpIF9fYXR0cmlidXRlX18o KHVzZWQpKSBpcwp0aGUgY29ycmVjdCB3YXkgb2YgaW5mb3JtaW5nIGdjYyB0aGF0IGl0IGlzIHJl ZmVyZW5jZWQgZnJvbSBpbmxpbmUgYXNzZW1ibHkuCgo+ICt7Cj4gKyAgICBtYmRfdCAqbWJkOwo+ ICsKPiArICAgIG1iZCA9IChtYmRfdCAqKWFsbG9jX3N0cnVjdChzaXplb2YobWJkX3QpKTsKPiAr ICAgIHplcm9fc3RydWN0KCh1MzIpbWJkLCBzaXplb2YobWJkX3QpKTsKPiArCj4gKyAgICByZXR1 cm4gbWJfbWJkKG1iZCwgbWJpKTsKPiAgfQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9v dC94ODZfNjQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCj4gaW5kZXggYmZiYWZkMi4u ZWMzOWQzOCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQuUwo+ICsrKyBi L3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCj4gQEAgLTI5LDggKzI5LDEyIEBACj4gICAgICAg ICAgdGVzdCAgICAlZWJ4LCVlYngKPiAgICAgICAgICBqbnogICAgIHN0YXJ0X3NlY29uZGFyeQo+ ICAKPiAtICAgICAgICAvKiBQYXNzIG9mZiB0aGUgTXVsdGlib290IGluZm8gc3RydWN0dXJlIHRv IEMgbGFuZC4gKi8KPiAtICAgICAgICBtb3YgICAgIG11bHRpYm9vdF9wdHIoJXJpcCksJWVkaQo+ ICsgICAgICAgIC8qIEluaXQgWGVuIEJvb3QgSW5mby4gKi8KPiArICAgICAgICBtb3YgICAgIG1i ZF9wdHIoJXJpcCksJWVkaQo+ICsgICAgICAgIGNhbGwgICAgX19pbml0X3hiaQoKVGhpcyBpcyBh IGxhcmdlIHF1YW50aXR5IG9mIGNvZGUgc2h1ZmZsaW5nIGJpdHMgb2YgZGF0YSwgd2hpY2ggZG9l cyBub3QKc3RyaWN0bHkgbmVlZCB0byBiZSBkb25lIGF0IHRoaXMgcG9pbnQuCgpQbGVhc2UgZGVm ZXIgaXQgdW50aWwgYWZ0ZXIgZnVsbCB0cmFwIHN1cHBvcnQgaGFzIGJlZW4gc2V0IHVwIGluCl9f c3RhcnRfeGVuKCkuCgp+QW5kcmV3CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=