From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v6 10/24] xsplice: Implement support for applying/reverting/replacing patches. Date: Fri, 8 Apr 2016 17:33:35 +0100 Message-ID: <5707DD5F.2030804@citrix.com> References: <1460000983-28170-1-git-send-email-konrad.wilk@oracle.com> <1460000983-28170-11-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoZPz-0001zC-OG for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 16:37:59 +0000 In-Reply-To: <1460000983-28170-11-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk , xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Kevin Tian , Keir Fraser , Suravee Suthikulpanit , Jan Beulich , Julien Grall , Stefano Stabellini , Jun Nakajima , Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org T24gMDcvMDQvMTYgMDQ6NDksIEtvbnJhZCBSemVzenV0ZWsgV2lsayB3cm90ZToKPiArdm9pZCBh cmNoX3hzcGxpY2VfcG9zdF9hY3Rpb24odm9pZCkKPiArewoKLyogU2VyaWFsaXNlIHRoZSBDUFUg cGlwZWxpbmUuICovCgpPdGhlcndpc2UgaXQgbWFrZXMgb25lIHdvbmRlciB3aGF0IGEgY3B1aWQg aW5zdHJ1Y3Rpb24gaGFzIHRvIGRvIHdpdGgKeHNwbGljaW5nLgoKPiBkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi94c3BsaWNlLmMgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwo+IGluZGV4IDEwYzgxNjYu LjJkZjg3OWUgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKPiArKysgYi94ZW4v Y29tbW9uL3hzcGxpY2UuYwo+IEBAIC0xMSwxNyArMTIsMjkgQEAKPiAgI2luY2x1ZGUgPHhlbi9t bS5oPgo+ICAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4gICNpbmNsdWRlIDx4ZW4vc21wLmg+Cj4g KyNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgo+ICAjaW5jbHVkZSA8eGVuL3NwaW5sb2NrLmg+Cj4g ICNpbmNsdWRlIDx4ZW4vdm1hcC5oPgo+ICsjaW5jbHVkZSA8eGVuL3dhaXQuaD4KPiAgI2luY2x1 ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgo+ICAjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KPiArI2lu Y2x1ZGUgPHhlbi94c3BsaWNlX3BhdGNoLmg+Cj4gIAo+ICAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+ Cj4gICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+Cj4gIAo+ICsvKgo+ICsgKiBQcm90ZWN0cyBh Z2FpbnN0IHBheWxvYWRfbGlzdCBvcGVyYXRpb25zIGFuZCBhbHNvIGFsbG93cyBvbmx5IG9uZQo+ ICsgKiBjYWxsZXIgaW4gc2NoZWR1bGVfd29yay4KPiArICovCgpUaGlzIGNvbW1lbnQgbG9va3Mg bGlrZSBpdCBzaG91bGQgYmUgcGFydCBvZiBhIHByZXZpb3VzIHBhdGNoLgoKPiAgc3RhdGljIERF RklORV9TUElOTE9DSyhwYXlsb2FkX2xvY2spOwo+ICBzdGF0aWMgTElTVF9IRUFEKHBheWxvYWRf bGlzdCk7Cj4gIAo+ICsvKgo+ICsgKiBQYXRjaGVzIHdoaWNoIGhhdmUgYmVlbiBhcHBsaWVkLgo+ ICsgKi8KPiArc3RhdGljIExJU1RfSEVBRChhcHBsaWVkX2xpc3QpOwo+ICsKPiAgc3RhdGljIHVu c2lnbmVkIGludCBwYXlsb2FkX2NudDsKPiAgc3RhdGljIHVuc2lnbmVkIGludCBwYXlsb2FkX3Zl cnNpb24gPSAxOwo+ICAKPiBAQCAtMzcsOSArNTAsMzUgQEAgc3RydWN0IHBheWxvYWQgewo+ICAg ICAgc2l6ZV90IHJvX3NpemU7ICAgICAgICAgICAgICAgICAgICAgIC8qIC4uIGFuZCBpdHMgc2l6 ZSAoaWYgYW55KS4gKi8KPiAgICAgIHNpemVfdCBwYWdlczsgICAgICAgICAgICAgICAgICAgICAg ICAvKiBUb3RhbCBwYWdlcyBmb3IgW3RleHQscncscm9dX2FkZHIgKi8KPiAgICAgIG1mbl90ICpt Zm47ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGUgTUZOcyBiYWNraW5nIHRoZXNlIHBh Z2VzLiAqLwo+ICsgICAgc3RydWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAgICAgIC8qIExp bmtlZCB0byAnYXBwbGllZF9saXN0Jy4gKi8KPiArICAgIHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1 bmNfaW50ZXJuYWwgKmZ1bmNzOyAgICAvKiBUaGUgYXJyYXkgb2YgZnVuY3Rpb25zIHRvIHBhdGNo LiAqLwo+ICsgICAgdW5zaWduZWQgaW50IG5mdW5jczsgICAgICAgICAgICAgICAgIC8qIE5yIG9m IGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8KPiAgICAgIGNoYXIgbmFtZVtYRU5fWFNQTElDRV9OQU1F X1NJWkVdOyAgICAvKiBOYW1lIG9mIGl0LiAqLwo+ICB9Owo+ICAKPiArLyogRGVmaW5lcyBhbiBv dXRzdGFuZGluZyBwYXRjaGluZyBhY3Rpb24uICovCj4gK3N0cnVjdCB4c3BsaWNlX3dvcmsKPiAr ewo+ICsgICAgYXRvbWljX3Qgc2VtYXBob3JlOyAgICAgICAgICAvKiBVc2VkIGZvciByZW5kZXp2 b3VzLiAqLwo+ICsgICAgYXRvbWljX3QgaXJxX3NlbWFwaG9yZTsgICAgICAvKiBVc2VkIHRvIHNp Z25hbCBhbGwgSVJRcyBkaXNhYmxlZC4gKi8KPiArICAgIHVpbnQzMl90IHRpbWVvdXQ7ICAgICAg ICAgICAgLyogVGltZW91dCB0byBkbyB0aGUgb3BlcmF0aW9uLiAqLwo+ICsgICAgc3RydWN0IHBh eWxvYWQgKmRhdGE7ICAgICAgICAvKiBUaGUgcGF5bG9hZCBvbiB3aGljaCB0byBhY3QuICovCj4g KyAgICB2b2xhdGlsZSBib29sX3QgZG9fd29yazsgICAgIC8qIFNpZ25hbHMgd29yayB0byBkby4g Ki8KPiArICAgIHZvbGF0aWxlIGJvb2xfdCByZWFkeTsgICAgICAgLyogU2lnbmFscyBhbGwgQ1BV cyBzeW5jaHJvbml6ZWQuICovCj4gKyAgICB1bnNpZ25lZCBpbnQgY21kOyAgICAgICAgICAgICAg ICAvKiBBY3Rpb24gcmVxdWVzdDogWFNQTElDRV9BQ1RJT05fKiAqLwoKQWxpZ25tZW50LgoKPiAr c3RhdGljIGludCBzY2hlZHVsZV93b3JrKHN0cnVjdCBwYXlsb2FkICpkYXRhLCB1aW50MzJfdCBj bWQsIHVpbnQzMl90IHRpbWVvdXQpCj4gK3sKPiArICAgIHVuc2lnbmVkIGludCBjcHU7Cj4gKwo+ ICsgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwYXlsb2FkX2xvY2spKTsKPiArCj4gKyAgICAv KiBGYWlsIGlmIGFuIG9wZXJhdGlvbiBpcyBhbHJlYWR5IHNjaGVkdWxlZC4gKi8KPiArICAgIGlm ICggeHNwbGljZV93b3JrLmRvX3dvcmsgKQo+ICsgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ ICsgICAgaWYgKCAhZ2V0X2NwdV9tYXBzKCkgKQo+ICsgICAgewo+ICsgICAgICAgIHByaW50ayhY RU5MT0dfRVJSIFhTUExJQ0UgIiVzOiB1bmFibGUgdG8gZ2V0IGNwdV9tYXBzIGxvY2shXG4iLAo+ ICsgICAgICAgICAgICAgICBkYXRhLT5uYW1lKTsKPiArICAgICAgICByZXR1cm4gLUVCVVNZOwo+ ICsgICAgfQo+ICsKPiArICAgIHhzcGxpY2Vfd29yay5jbWQgPSBjbWQ7Cj4gKyAgICB4c3BsaWNl X3dvcmsuZGF0YSA9IGRhdGE7Cj4gKyAgICB4c3BsaWNlX3dvcmsudGltZW91dCA9IHRpbWVvdXQg PzogTUlMTElTRUNTKDMwKTsKPiArCj4gKyAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElD RSAiJXM6IHRpbWVvdXQgaXMgJSJQUklfc3RpbWUibXNcbiIsCj4gKyAgICAgICAgICAgIGRhdGEt Pm5hbWUsIHhzcGxpY2Vfd29yay50aW1lb3V0IC8gTUlMTElTRUNTKDEpKTsKPiArCj4gKyAgICBh dG9taWNfc2V0KCZ4c3BsaWNlX3dvcmsuc2VtYXBob3JlLCAtMSk7Cj4gKyAgICBhdG9taWNfc2V0 KCZ4c3BsaWNlX3dvcmsuaXJxX3NlbWFwaG9yZSwgLTEpOwo+ICsKPiArICAgIHhzcGxpY2Vfd29y ay5yZWFkeSA9IDA7Cj4gKyAgICBzbXBfd21iKCk7Cj4gKyAgICB4c3BsaWNlX3dvcmsuZG9fd29y ayA9IDE7Cj4gKyAgICBzbXBfd21iKCk7Cj4gKyAgICAvKgo+ICsgICAgICogQWJvdmUgc21wX3dt YigpIGdpdmVzIHVzIGEgY29tcGlsZXIgYmFycmllciwgYXMgd2UgTVVTVCBkbyB0aGlzCj4gKyAg ICAgKiBhZnRlciBzZXR0aW5nIHRoZSBnbG9iYWwgc3RydWN0dXJlLgo+ICsgICAgICovCj4gKyAg ICBmb3JfZWFjaF9vbmxpbmVfY3B1ICggY3B1ICkKPiArICAgICAgICBwZXJfY3B1KHdvcmtfdG9f ZG8sIGNwdSkgPSAxOwoKVGhpcyBzaG91bGQgYmUgaW4gcmVzY2hlZHVsZV9mbigpIHRvIGF2b2lk IGRpcnR5aW5nIHRoZSBjYWNoZWxpbmVzIG9uCnRoZSBjdXJyZW50IGNwdSBhbmQgaGF2ZSB0aGVt IHJlYWQgYnkgb3RoZXIgY3B1cy4KCj4gKwo+ICsgICAgcHV0X2NwdV9tYXBzKCk7Cj4gKwo+ICsg ICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHJlc2NoZWR1bGVfZm4odm9pZCAq dW51c2VkKQo+ICt7Cj4gKyAgICBzbXBfbWIoKTsgLyogU3luY2hyb25pemUgd2l0aCBzZXR0aW5n IGRvX3dvcmsgKi8KCllvdSBkb24ndCBuZWVkIHRoZSBiYXJyaWVyIGhlcmUsIGJ1dCB5b3UgZG8g bmVlZC4uLgoKPiArICAgIHJhaXNlX3NvZnRpcnEoU0NIRURVTEVfU09GVElSUSk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgeHNwbGljZV9zcGluKGF0b21pY190ICpjb3VudGVyLCBzX3RpbWVfdCB0 aW1lb3V0LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3B1cywg Y29uc3QgY2hhciAqcykKPiArewo+ICsgICAgaW50IHJjID0gMDsKPiArCj4gKyAgICB3aGlsZSAo IGF0b21pY19yZWFkKGNvdW50ZXIpICE9IGNwdXMgJiYgTk9XKCkgPCB0aW1lb3V0ICkKPiArICAg ICAgICBjcHVfcmVsYXgoKTsKPiArCj4gKyAgICAvKiBMb2cgJiBhYm9ydC4gKi8KPiArICAgIGlm ICggYXRvbWljX3JlYWQoY291bnRlcikgIT0gY3B1cyApCj4gKyAgICB7Cj4gKyAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgWFNQTElDRSAiJXM6IFRpbWVkIG91dCBvbiAlcyBzZW1hcGhvcmUgJXUv JXVcbiIsCj4gKyAgICAgICAgICAgICAgIHhzcGxpY2Vfd29yay5kYXRhLT5uYW1lLCBzLCBhdG9t aWNfcmVhZChjb3VudGVyKSwgY3B1cyk7Cj4gKyAgICAgICAgcmMgPSAtRUJVU1k7Cj4gKyAgICAg ICAgeHNwbGljZV93b3JrLmRhdGEtPnJjID0gcmM7Cj4gKyAgICAgICAgeHNwbGljZV93b3JrLmRv X3dvcmsgPSAwOwo+ICsgICAgICAgIHNtcF93bWIoKTsKPiArICAgIH0KPiArCj4gKyAgICByZXR1 cm4gcmM7Cj4gK30KPiArCj4gKy8qCj4gKyAqIFRoZSBtYWluIGZ1bmN0aW9uIHdoaWNoIG1hbmFn ZXMgdGhlIHdvcmsgb2YgcXVpZXNjaW5nIHRoZSBzeXN0ZW0gYW5kCj4gKyAqIHBhdGNoaW5nIGNv ZGUuCj4gKyAqLwo+ICt2b2lkIGNoZWNrX2Zvcl94c3BsaWNlX3dvcmsodm9pZCkKPiArewo+ICsj ZGVmaW5lIEFDVElPTih4KSBbWFNQTElDRV9BQ1RJT05fIyN4XSA9ICN4Cj4gKyAgICBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsKPiArICAgICAgICAgICAgQUNUSU9OKEFQUExZ KSwKPiArICAgICAgICAgICAgQUNUSU9OKFJFVkVSVCksCj4gKyAgICAgICAgICAgIEFDVElPTihS RVBMQUNFKSwKPiArICAgIH07Cj4gKyAgICB1bnNpZ25lZCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nv cl9pZCgpOwo+ICsgICAgc190aW1lX3QgdGltZW91dDsKPiArICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7Cj4gKwo+ICsgICAgLyogRmFzdCBwYXRoOiBubyB3b3JrIHRvIGRvLiAqLwo+ICsgICAgaWYg KCAhcGVyX2NwdSh3b3JrX3RvX2RvLCBjcHUgKSApCj4gKyAgICAgICAgcmV0dXJuOwo+ICsKPiAr ICAgIC8qIEluIGNhc2Ugd2UgYWJvcnRlZCwgb3RoZXIgQ1BVcyBjYW4gc2tpcCByaWdodCBhd2F5 LiAqLwoKLi4uIGFuIHNtcF9ybWIoKSBoZXJlLgoKPiArICAgIGlmICggIXhzcGxpY2Vfd29yay5k b193b3JrICkKPiArICAgIHsKPiArICAgICAgICBwZXJfY3B1KHdvcmtfdG9fZG8sIGNwdSkgPSAw Owo+ICsgICAgICAgIHJldHVybjsKPiArICAgIH0KPiArCj4gKyAgICBBU1NFUlQobG9jYWxfaXJx X2lzX2VuYWJsZWQoKSk7Cj4gKwo+ICsgICAgLyogU2V0IGF0IC0xLCBzbyB3aWxsIGdvIHVwIHRv IG51bV9vbmxpbmVfY3B1cyAtIDEuICovCj4gKyAgICBpZiAoIGF0b21pY19pbmNfYW5kX3Rlc3Qo JnhzcGxpY2Vfd29yay5zZW1hcGhvcmUpICkKPiArICAgIHsKPiArICAgICAgICBzdHJ1Y3QgcGF5 bG9hZCAqcDsKPiArICAgICAgICB1bnNpZ25lZCBpbnQgY3B1czsKPiArCj4gKyAgICAgICAgcCA9 IHhzcGxpY2Vfd29yay5kYXRhOwo+ICsgICAgICAgIGlmICggIWdldF9jcHVfbWFwcygpICkKPiAr ICAgICAgICB7Cj4gKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIFhTUExJQ0UgIiVzOiBD UFUldSAtIHVuYWJsZSB0byBnZXQgY3B1X21hcHMgbG9jayFcbiIsCj4gKyAgICAgICAgICAgICAg ICAgICBwLT5uYW1lLCBjcHUpOwo+ICsgICAgICAgICAgICBwZXJfY3B1KHdvcmtfdG9fZG8sIGNw dSkgPSAwOwo+ICsgICAgICAgICAgICB4c3BsaWNlX3dvcmsuZGF0YS0+cmMgPSAtRUJVU1k7Cj4g KyAgICAgICAgICAgIHhzcGxpY2Vfd29yay5kb193b3JrID0gMDsKPiArICAgICAgICAgICAgLyoK PiArICAgICAgICAgICAgICogRG8gTk9UIGRlY3JlbWVudCBzZW1hcGhvcmUgZG93biAtIGFzIHRo YXQgbWF5IGNhdXNlIHRoZSBvdGhlcgo+ICsgICAgICAgICAgICAgKiBDUFUgKHdoaWNoIG1heSBi ZSBhdCB0aGlzIHJlYWR5IHRvIGluY3JlbWVudCBpdCkKPiArICAgICAgICAgICAgICogdG8gYXNz dW1lIHRoZSByb2xlIG9mIG1hc3RlciBhbmQgdGhlbiBuZWVkbGVzc2x5IHRpbWUgb3V0Cj4gKyAg ICAgICAgICAgICAqIG91dCAoYXMgZG9fd29yayBpcyB6ZXJvKS4KPiArICAgICAgICAgICAgICov CgpzbXBfd21iKCk7Cgo+ICsgICAgICAgICAgICByZXR1cm47Cj4gKyAgICAgICAgfQo+ICsgICAg ICAgIC8qICJNYXNrIiBOTUlzLiAqLwo+ICsgICAgICAgIGFyY2hfeHNwbGljZV9tYXNrKCk7Cj4g Kwo+ICsgICAgICAgIGJhcnJpZXIoKTsgLyogTVVTVCBkbyBpdCBhZnRlciBnZXRfY3B1X21hcHMu ICovCj4gKyAgICAgICAgY3B1cyA9IG51bV9vbmxpbmVfY3B1cygpIC0gMTsKPiArCj4gKyAgICAg ICAgaWYgKCBjcHVzICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0RFQlVHLCBYU1BMSUNFICIlczogQ1BVJXUgLSBJUElpbmcgdGhlIG90aGVyICV1IENQVXNcbiIs Cj4gKyAgICAgICAgICAgICAgICAgICAgcC0+bmFtZSwgY3B1LCBjcHVzKTsKPiArICAgICAgICAg ICAgc21wX2NhbGxfZnVuY3Rpb24ocmVzY2hlZHVsZV9mbiwgTlVMTCwgMCk7Cj4gKyAgICAgICAg fQo+ICsKPiArICAgICAgICB0aW1lb3V0ID0geHNwbGljZV93b3JrLnRpbWVvdXQgKyBOT1coKTsK PiArICAgICAgICBpZiAoIHhzcGxpY2Vfc3BpbigmeHNwbGljZV93b3JrLnNlbWFwaG9yZSwgdGlt ZW91dCwgY3B1cywgIkNQVSIpICkKPiArICAgICAgICAgICAgZ290byBhYm9ydDsKPiArCj4gKyAg ICAgICAgLyogQWxsIENQVXMgYXJlIHdhaXRpbmcsIG5vdyBzaWduYWwgdG8gZGlzYWJsZSBJUlFz LiAqLwo+ICsgICAgICAgIHhzcGxpY2Vfd29yay5yZWFkeSA9IDE7Cj4gKyAgICAgICAgc21wX3dt YigpOwo+ICsKPiArICAgICAgICBhdG9taWNfaW5jKCZ4c3BsaWNlX3dvcmsuaXJxX3NlbWFwaG9y ZSk7Cj4gKyAgICAgICAgaWYgKCAheHNwbGljZV9zcGluKCZ4c3BsaWNlX3dvcmsuaXJxX3NlbWFw aG9yZSwgdGltZW91dCwgY3B1cywgIklSUSIpICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAg IGxvY2FsX2lycV9zYXZlKGZsYWdzKTsKPiArICAgICAgICAgICAgLyogRG8gdGhlIHBhdGNoaW5n LiAqLwo+ICsgICAgICAgICAgICB4c3BsaWNlX2RvX2FjdGlvbigpOwo+ICsgICAgICAgICAgICAv KiBGbHVzaCB0aGUgQ1BVIGktY2FjaGUgdmlhIENQVUlEIGluc3RydWN0aW9uIChvbiB4ODYpLiAq Lwo+ICsgICAgICAgICAgICBhcmNoX3hzcGxpY2VfcG9zdF9hY3Rpb24oKTsKPiArICAgICAgICAg ICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwo+ICsgICAgICAgIH0KPiArICAgICAgICBhcmNo X3hzcGxpY2VfdW5tYXNrKCk7Cj4gKwo+ICsgYWJvcnQ6Cj4gKyAgICAgICAgcGVyX2NwdSh3b3Jr X3RvX2RvLCBjcHUpID0gMDsKPiArICAgICAgICB4c3BsaWNlX3dvcmsuZG9fd29yayA9IDA7Cj4g Kwo+ICsgICAgICAgIHNtcF93bWIoKTsgLyogTVVTVCBjb21wbGV0ZSB3cml0ZXMgYmVmb3JlIHB1 dF9jcHVfbWFwcygpLiAqLwo+ICsKPiArICAgICAgICBwdXRfY3B1X21hcHMoKTsKPiArCj4gKyAg ICAgICAgcHJpbnRrKFhFTkxPR19JTkZPIFhTUExJQ0UgIiVzIGZpbmlzaGVkICVzIHdpdGggcmM9 JWRcbiIsCj4gKyAgICAgICAgICAgICAgIHAtPm5hbWUsIG5hbWVzW3hzcGxpY2Vfd29yay5jbWRd LCBwLT5yYyk7Cj4gKyAgICB9Cj4gKyAgICBlbHNlCj4gKyAgICB7Cj4gKyAgICAgICAgLyogV2Fp dCBmb3IgYWxsIENQVXMgdG8gcmVuZGV6dm91cy4gKi8KPiArICAgICAgICB3aGlsZSAoIHhzcGxp Y2Vfd29yay5kb193b3JrICYmICF4c3BsaWNlX3dvcmsucmVhZHkgKQo+ICsgICAgICAgICAgICBj cHVfcmVsYXgoKTsKPiArCj4gKyAgICAgICAgLyogRGlzYWJsZSBJUlFzIGFuZCBzaWduYWwuICov Cj4gKyAgICAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwo+ICsgICAgICAgIGF0b21pY19pbmMo JnhzcGxpY2Vfd29yay5pcnFfc2VtYXBob3JlKTsKPiArCj4gKyAgICAgICAgLyogV2FpdCBmb3Ig cGF0Y2hpbmcgdG8gY29tcGxldGUuICovCj4gKyAgICAgICAgd2hpbGUgKCB4c3BsaWNlX3dvcmsu ZG9fd29yayApCj4gKyAgICAgICAgICAgIGNwdV9yZWxheCgpOwo+ICsKPiArICAgICAgICAvKiBU byBmbHVzaCBvdXQgcGlwZWxpbmUuICovCj4gKyAgICAgICAgYXJjaF94c3BsaWNlX3Bvc3RfYWN0 aW9uKCk7Cj4gKyAgICAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwo+ICsKPiArICAgICAg ICBwZXJfY3B1KHdvcmtfdG9fZG8sIGNwdSkgPSAwOwo+ICsgICAgfQo+ICt9Cj4gKwo+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oIGIveGVuL2luY2x1ZGUveGVuL3hzcGxp Y2UuaAo+IGluZGV4IGI4NDNiNWYuLjcxZDc5MzkgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUv eGVuL3hzcGxpY2UuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKPiBAQCAtMTEs MTIgKzExLDM3IEBAIHN0cnVjdCB4c3BsaWNlX2VsZl9zZWM7Cj4gIHN0cnVjdCB4c3BsaWNlX2Vs Zl9zeW07Cj4gIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3A7Cj4gIAo+ICsjaW5jbHVkZSA8 eGVuL2VsZnN0cnVjdHMuaD4KPiAgI2lmZGVmIENPTkZJR19YU1BMSUNFCj4gIAo+ICsvKgo+ICsg KiBUaGUgc3RydWN0dXJlIHdoaWNoIGRlZmluZXMgdGhlIHBhdGNoaW5nLiBUaGlzIGlzIHdoYXQg dGhlIGh5cGVydmlzb3IKPiArICogZXhwZWN0cyBpbiB0aGUgJy54c3BsaWNlLmZ1bmMnIHNlY3Rp b24gb2YgdGhlIEVMRiBmaWxlLgo+ICsgKgo+ICsgKiBUaGlzIE1VU1QgYmUgaW4gc3luYyB3aXRo IHdoYXQgdGhlIHRvb2xzIGdlbmVyYXRlLiBXZSBleHBvc2UKPiArICogZm9yIHRoZSB0b29scyB0 aGUgJ3N0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMnIHdoaWNoIGRvZXMgbm90IGhhdmUKPiArICog cGxhdGZvcm0gc3BlY2lmaWMgZW50cmllcy4KClNob3VsZG4ndCB0aGlzIGJlIHNvbWV3aGVyZSBp biB0aGUgcHVibGljIEFQSSB0aGVuPyBldmVuIGlmIGl0IGlzCmV4cGxpY2l0bHkgZGVjbGFyZWQg YXMgdW5zdGFibGUgZHVlIHRvIHhwYXRjaGVzIG5lZWRpbmcgdG8gYmUgcmVidWlsdApmcm9tIGV4 YWN0IHNvdXJjZT8KCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlX3BhdGNo LmggYi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZV9wYXRjaC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwLi5mMzA1ODI2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3hlbi9p bmNsdWRlL3hlbi94c3BsaWNlX3BhdGNoLmgKPiBAQCAtMCwwICsxLDI1IEBACj4gKy8qCj4gKyAq IENvcHlyaWdodCAoQykgMjAxNiBDaXRyaXggU3lzdGVtcyBSJkQgTHRkLgo+ICsgKi8KPiArCj4g KyNpZm5kZWYgX19YRU5fWFNQTElDRV9QQVRDSF9IX18KPiArI2RlZmluZSBfX1hFTl9YU1BMSUNF X1BBVENIX0hfXwo+ICsKPiArI2RlZmluZSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiAxCj4gKy8q Cj4gKyAqIC54c3BsaWNlLmZ1bmNzIHN0cnVjdHVyZSBsYXlvdXQgZGVmaW5lZCBpbiB0aGUgYFBh eWxvYWQgZm9ybWF0YAo+ICsgKiBzZWN0aW9uIGluIHRoZSB4U3BsaWNlIGRlc2lnbiBkb2N1bWVu dC4KPiArICoKPiArICogVGhlIHNpemUgc2hvdWxkIGJlIGV4YWN0bHkgNjQgYnl0ZXMuCj4gKyAq LwoKRGl0dG8sIHdydCB0aGUgcHVibGljIEFQSS4KCn5BbmRyZXcKCj4gK3N0cnVjdCB4c3BsaWNl X3BhdGNoX2Z1bmMgewo+ICsgICAgY29uc3QgY2hhciAqbmFtZTsgICAgICAgLyogTmFtZSBvZiBm dW5jdGlvbiB0byBiZSBwYXRjaGVkLiAqLwo+ICsgICAgdWludDY0X3QgbmV3X2FkZHI7Cj4gKyAg ICB1aW50NjRfdCBvbGRfYWRkcjsgICAgICAvKiBDYW4gYmUgemVybyBhbmQgbmFtZSB3aWxsIGJl IGxvb2tlZCB1cC4gKi8KPiArICAgIHVpbnQzMl90IG5ld19zaXplOwo+ICsgICAgdWludDMyX3Qg b2xkX3NpemU7Cj4gKyAgICB1aW50OF90IHZlcnNpb247ICAgICAgICAvKiBNVVNUIGJlIFhTUExJ Q0VfUEFZTE9BRF9WRVJTSU9OLiAqLwo+ICsgICAgdWludDhfdCBwYWRbMzFdOyAgICAgICAgLyog TVVTVCBiZSB6ZXJvIGZpbGxlZC4gKi8KPiArfTsKPiArCj4gKyNlbmRpZiAvKiBfX1hFTl9YU1BM SUNFX1BBVENIX0hfXyAqLwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==