From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [XTF PATCH v2] Add a Live Patch privilege check test Date: Fri, 18 Nov 2016 10:25:41 -0500 Message-ID: <20161118152540.GB4028@x230.dumpdata.com> References: <1479461766-11484-1-git-send-email-ross.lagerwall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1479461766-11484-1-git-send-email-ross.lagerwall@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ross Lagerwall Cc: Andrew Cooper , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBOb3YgMTgsIDIwMTYgYXQgMDk6MzY6MDZBTSArMDAwMCwgUm9zcyBMYWdlcndhbGwg d3JvdGU6Cj4gQWRkIGEgdGVzdCB0byBjaGVjayB0aGF0IExpdmUgUGF0Y2ggb3BlcmF0aW9ucyBj YW5ub3QgYmUgY2FsbGVkIGZyb20gYW4KPiB1bnByaXZpbGVnZWQgZG9tYWluLgo+IAo+IFNpZ25l ZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgo+IC0t LQo+IAo+IEluIHYyOgo+ICogRml4ZWQgcmV2aWV3IGlzc3Vlcy4KPiAqIFJlYmFzZWQgYW5kIGFk ZGVkIGEgdGVzdF90aXRsZSBzdHJpbmcuCj4gCj4gIGNvbW1vbi9saWIuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDE1ICsrKwo+ICBkb2NzL2FsbC10ZXN0cy5kb3ggICAgICAgICAgICAgICAg ICB8ICAgMiArCj4gIGluY2x1ZGUveGVuL3N5c2N0bC5oICAgICAgICAgICAgICAgIHwgMjE4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3h0Zi9oeXBlcmNh bGwuaCAgICAgICAgICAgICB8ICAgNiArCj4gIGluY2x1ZGUveHRmL2xpYi5oICAgICAgICAgICAg ICAgICAgIHwgICAyICsKPiAgdGVzdHMvbGl2ZXBhdGNoLXByaXYtY2hlY2svTWFrZWZpbGUgfCAg IDkgKysKPiAgdGVzdHMvbGl2ZXBhdGNoLXByaXYtY2hlY2svbWFpbi5jICAgfCAxNTMgKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICA3IGZpbGVzIGNoYW5nZWQsIDQwNSBpbnNlcnRpb25zKCsp Cj4gIGNyZWF0ZSBtb2RlIDEwMDc1NSBpbmNsdWRlL3hlbi9zeXNjdGwuaAo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgdGVzdHMvbGl2ZXBhdGNoLXByaXYtY2hlY2svTWFrZWZpbGUKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2xpdmVwYXRjaC1wcml2LWNoZWNrL21haW4uYwo+IAo+IGRpZmYgLS1n aXQgYS9jb21tb24vbGliLmMgYi9jb21tb24vbGliLmMKPiBpbmRleCA5ZGNhM2UzLi5jYzg0N2Fi IDEwMDY0NAo+IC0tLSBhL2NvbW1vbi9saWIuYwo+ICsrKyBiL2NvbW1vbi9saWIuYwo+IEBAIC0x OSw2ICsxOSwyMSBAQCB2b2lkIF9fbm9yZXR1cm4gcGFuaWMoY29uc3QgY2hhciAqZm10LCAuLi4p Cj4gICAgICBhcmNoX2NyYXNoX2hhcmQoKTsKPiAgfQo+ICAKPiAraW50IHByb2JlX3N5c2N0bF9p bnRlcmZhY2VfdmVyc2lvbih2b2lkKQoKL21lIGNodWNrbGVzLgo+ICt7Cj4gKyAgICBpbnQgaTsK PiArICAgIHhlbl9zeXNjdGxfdCBvcCA9IHswfTsKPiArCj4gKyAgICBmb3IgKCBpID0gMDsgaSA8 IDEyODsgaSsrICkKPiArICAgIHsKPiArICAgICAgICBvcC5pbnRlcmZhY2VfdmVyc2lvbiA9IGk7 Cj4gKyAgICAgICAgaWYgKCBoeXBlcmNhbGxfc3lzY3RsKCZvcCkgIT0gLUVBQ0NFUyApCj4gKyAg ICAgICAgICAgIHJldHVybiBpOwo+ICsgICAgfQo+ICsKPiArICAgIHJldHVybiAtMTsKPiArfQo+ ICsKPiAgLyoKPiAgICogTG9jYWwgdmFyaWFibGVzOgo+ICAgKiBtb2RlOiBDCj4gZGlmZiAtLWdp dCBhL2RvY3MvYWxsLXRlc3RzLmRveCBiL2RvY3MvYWxsLXRlc3RzLmRveAo+IGluZGV4IDRmODYx ODIuLjI5MDliODUgMTAwNjQ0Cj4gLS0tIGEvZG9jcy9hbGwtdGVzdHMuZG94Cj4gKysrIGIvZG9j cy9hbGwtdGVzdHMuZG94Cj4gQEAgLTIyLDYgKzIyLDggQEAgYW5kIGZ1bmN0aW9uYWxpdHkuCj4g IAo+ICBAc3VicGFnZSB0ZXN0LWludmxwZyAtIGBpbnZscGdgIGluc3RydWN0aW9uIGJlaGF2aW91 ci4KPiAgCj4gK0BzdWJwYWdlIHRlc3QtbGl2ZXBhdGNoLXByaXYtY2hlY2sgLSBMaXZlIFBhdGNo IFByaXZpbGVnZSBDaGVjawo+ICsKPiAgQHN1YnBhZ2UgdGVzdC1wdi1pb3BsIC0gSU9QTCBlbXVs YXRpb24gZm9yIFBWIGd1ZXN0cy4KPiAgCj4gIEBzdWJwYWdlIHRlc3Qtc3dpbnQtZW11bGF0aW9u IC0gU29mdHdhcmUgaW50ZXJydXB0IGVtdWxhdGlvbiBmb3IgSFZNIGd1ZXN0cy4KPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS94ZW4vc3lzY3RsLmggYi9pbmNsdWRlL3hlbi9zeXNjdGwuaAo+IG5ldyBm aWxlIG1vZGUgMTAwNzU1Cj4gaW5kZXggMDAwMDAwMC4uZjQwMDZmYgo+IC0tLSAvZGV2L251bGwK PiArKysgYi9pbmNsdWRlL3hlbi9zeXNjdGwuaAo+IEBAIC0wLDAgKzEsMjE4IEBACj4gKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPiArICogc3lzY3RsLmgKPiArICoKPiArICogU3lzdGVtIG1hbmFn ZW1lbnQgb3BlcmF0aW9ucy4gRm9yIHVzZSBieSBub2RlIGNvbnRyb2wgc3RhY2suCj4gKyAqCj4g KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4gKyAqIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24gdGhlCj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+ICsgKiBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2Fy ZSBpcwo+ICsgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+ICsgKiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPiArICoKPiArICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxM IFRIRQo+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1Ig T1RIRVIKPiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBDb3B5cmln aHQgKGMpIDIwMDItMjAwNiwgSyBGcmFzZXIKPiArICovCj4gKwo+ICsjaWZuZGVmIF9fWEVOX1BV QkxJQ19TWVNDVExfSF9fCj4gKyNkZWZpbmUgX19YRU5fUFVCTElDX1NZU0NUTF9IX18KPiArCj4g KyNpbmNsdWRlICJ4ZW4uaCIKPiArI2luY2x1ZGUgInBoeXNkZXYuaCIKPiArCj4gK3R5cGVkZWYg c3RydWN0IHsKPiArICAgIHVuaW9uIHsKPiArICAgICAgICB2b2lkICpwOwo+ICsgICAgICAgIHVp bnQ2NF90IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKSBxOwo+ICsgICAgfTsKPiArfSBndWVz dF9oYW5kbGVfNjQ7Cj4gKwo+ICsvKgo+ICsgKiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9vcAo+ICsg Kgo+ICsgKiBSZWZlciB0byB0aGUgZG9jcy91bnN0YWJsZS9taXNjL2xpdmVwYXRjaC5tYXJrZG93 bgo+ICsgKiBmb3IgdGhlIGRlc2lnbiBkZXRhaWxzIG9mIHRoaXMgaHlwZXJjYWxsLgo+ICsgKgo+ ICsgKiBUaGVyZSBhcmUgZm91ciBzdWItb3BzOgo+ICsgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hf VVBMT0FEICgwKQo+ICsgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUICgxKQo+ICsgKiAgWEVO X1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAoMikKPiArICogIFhFTl9TWVNDVExfTElWRVBBVENIX0FD VElPTiAoMykKPiArICoKPiArICogVGhlIG5vcm1hbCBzZXF1ZW5jZSBvZiBzdWItb3BzIGlzIHRv Ogo+ICsgKiAgMSkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIHRvIHVwbG9hZCB0aGUgcGF5 bG9hZC4gSWYgZXJyb3JzIFNUT1AuCj4gKyAqICAyKSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQg dG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYgLVhFTl9FQUdBSU4gc3Bpbi4KPiArICogICAgIElmIHpl cm8gZ28gdG8gbmV4dCBzdGVwLgo+ICsgKiAgMykgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9O IHdpdGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUgcGF0Y2guCj4gKyAqICA0 KSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgdG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYgaW4gLVhF Tl9FQUdBSU4gc3Bpbi4KPiArICogICAgIElmIHplcm8gZXhpdCB3aXRoIHN1Y2Nlc3MuCj4gKyAq Lwo+ICsKPiArI2RlZmluZSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OIDEKPiArLyoKPiArICog U3RydWN0dXJlIGRlc2NyaWJpbmcgYW4gRUxGIHBheWxvYWQuIFVuaXF1ZWx5IGlkZW50aWZpZXMg dGhlCj4gKyAqIHBheWxvYWQuIFNob3VsZCBiZSBodW1hbiByZWFkYWJsZS4KPiArICogUmVjb21t ZW5kZWQgbGVuZ3RoIGlzIHVwdG8gWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuCj4gKyAqIEluY2x1 ZGVzIHRoZSBOVUwgdGVybWluYXRvci4KPiArICovCj4gKyNkZWZpbmUgWEVOX0xJVkVQQVRDSF9O QU1FX1NJWkUgMTI4Cj4gK3N0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgewo+ICsgICAgZ3Vlc3Rf aGFuZGxlXzY0IG5hbWU7ICAgICAgICAgICAgICAgICAgIC8qIElOOiBwb2ludGVyIHRvIG5hbWUu ICovCj4gKyAgICB1aW50MTZfdCBzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46 IHNpemUgb2YgbmFtZS4gTWF5IGJlIHVwdG8KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0laRS4gKi8KPiArICAgIHVp bnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBiZSB6ZXJv LiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgeGVuX2xpdmVw YXRjaF9uYW1lX3Q7Cj4gKwo+ICsvKgo+ICsgKiBVcGxvYWQgYSBwYXlsb2FkIHRvIHRoZSBoeXBl cnZpc29yLiBUaGUgcGF5bG9hZCBpcyB2ZXJpZmllZAo+ICsgKiBhZ2FpbnN0IGJhc2ljIGNoZWNr cyBhbmQgaWYgdGhlcmUgYXJlIGFueSBpc3N1ZXMgdGhlIHByb3BlciByZXR1cm4gY29kZQo+ICsg KiB3aWxsIGJlIHJldHVybmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRp bWUgLSB0aGF0IGlzCj4gKyAqIGNvbnRyb2xsZWQgYnkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNU SU9OLgo+ICsgKgo+ICsgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQg d2FzIHN1Y2Nlc2Z1bGx5IHVwbG9hZGVkLgo+ICsgKiBPdGhlcndpc2UgYW4gRVhYIHJldHVybiB2 YWx1ZSBpcyBwcm92aWRlZC4gRHVwbGljYXRlIGBuYW1lYCBhcmUgbm90Cj4gKyAqIHN1cHBvcnRl ZC4KPiArICoKPiArICogVGhlIHBheWxvYWQgYXQgdGhpcyBwb2ludCBpcyB2ZXJpZmllZCBhZ2Fp bnN0IGJhc2ljIGNoZWNrcy4KPiArICoKPiArICogVGhlIGBwYXlsb2FkYCBpcyB0aGUgRUxGIHBh eWxvYWQgYXMgbWVudGlvbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCj4gKyAqIHNlY3Rpb24g aW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50Lgo+ICsgKi8KPiArI2RlZmluZSBYRU5f U1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQgMAo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hf dXBsb2FkIHsKPiArICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAv KiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCj4gKyAgICB1aW50NjRfdCBzaXplOyAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgdGhlIEVMRiBmaWxlLiAqLwo+ICsgICAg Z3Vlc3RfaGFuZGxlXzY0IHBheWxvYWQ7ICAgICAgICAgICAgICAgIC8qIElOLCB0aGUgRUxGIGZp bGUuICovCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9h ZCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWRfdDsKPiArCj4gKy8qCj4gKyAqIFJldHJpZXZl IGFuIHN0YXR1cyBvZiBhbiBzcGVjaWZpYyBwYXlsb2FkLgo+ICsgKgo+ICsgKiBVcG9uIGNvbXBs ZXRpb24gdGhlIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXNgIGlzIHVwZGF0ZWQuCj4gKyAq Cj4gKyAqIFRoZSByZXR1cm4gdmFsdWUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCBYRU5fRVhYIG9u IGZhaWx1cmUuIFRoaXMgb3BlcmF0aW9uCj4gKyAqIGlzIHN5bmNocm9ub3VzIGFuZCBkb2VzIG5v dCByZXF1aXJlIHByZWVtcHRpb24uCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBB VENIX0dFVCAxCj4gKwo+ICtzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgewo+ICsjZGVmaW5l IExJVkVQQVRDSF9TVEFURV9DSEVDS0VEICAgICAgMQo+ICsjZGVmaW5lIExJVkVQQVRDSF9TVEFU RV9BUFBMSUVEICAgICAgMgo+ICsgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgIC8q IE9VVDogTElWRVBBVENIX1NUQVRFXyouICovCj4gKyAgICBpbnQzMl90IHJjOyAgICAgICAgICAg ICAgICAgICAgLyogT1VUOiAwIGlmIG5vIGVycm9yLCBvdGhlcndpc2UgLVhFTl9FWFguICovCj4g K307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzIHhlbl9saXZlcGF0Y2hf c3RhdHVzX3Q7Cj4gKwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0IHsKPiArICAg IHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0 aGUgcGF5bG9hZC4gKi8KPiArICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Qgc3RhdHVzOyAgICAg ICAgICAvKiBJTi9PVVQsIHN0YXRlIG9mIGl0LiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4 ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0X3Q7Cj4gKwo+ ICsvKgo+ICsgKiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5kIG5h bWVzIG9mIHBheWxvYWRzIHRoYXQgYXJlCj4gKyAqIGxvYWRlZCBpbiB0aGUgaHlwZXJ2aXNvci4K PiArICoKPiArICogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIGFuIHBvc2l0aXZlIG51bWJlciwg aXQgaXMgdGhlIG51bWJlciAodXAgdG8gYG5yYCkKPiArICogb2YgdGhlIHBheWxvYWRzIHJldHVy bmVkLCBhbG9uZyB3aXRoIGBucmAgdXBkYXRlZCB3aXRoIHRoZSBudW1iZXIgb2YgcmVtYWluaW5n Cj4gKyAqIHBheWxvYWRzLCBgdmVyc2lvbmAgdXBkYXRlZCAoaXQgbWF5IGJlIHRoZSBzYW1lIGFj cm9zcyBoeXBlcmNhbGxzLiBJZiBpdAo+ICsgKiB2YXJpZXMgdGhlIGRhdGEgaXMgc3RhbGUgYW5k IGZ1cnRoZXIgY2FsbHMgY291bGQgZmFpbCkuIFRoZSBgc3RhdHVzYCwKPiArICogYG5hbWVgLCBh bmQgYGxlbmAnIGFyZSB1cGRhdGVkIGF0IHRoZWlyIGRlc2lnbmVkIGluZGV4IHZhbHVlIChgaWR4 YCkgd2l0aAo+ICsgKiB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgZGF0YS4KPiArICoKPiArICogSWYg dGhlIGh5cGVyY2FsbCByZXR1cm5zIEUyQklHIHRoZSBgbnJgIGlzIHRvbyBiaWcgYW5kIHNob3Vs ZCBiZQo+ICsgKiBsb3dlcmVkLiBUaGUgdXBwZXIgbGltaXQgb2YgYG5yYCBpcyBsZWZ0IHRvIHRo ZSBpbXBsZW1lbnRpb24uCj4gKyAqCj4gKyAqIE5vdGUgdGhhdCBkdWUgdG8gdGhlIGFzeW5jaHJv bm91cyBuYXR1cmUgb2YgaHlwZXJjYWxscyB0aGUgZG9tYWluIG1pZ2h0IGhhdmUKPiArICogYWRk ZWQgb3IgcmVtb3ZlZCB0aGUgbnVtYmVyIG9mIHBheWxvYWRzIG1ha2luZyB0aGlzIGluZm9ybWF0 aW9uIHN0YWxlLiBJdCBpcwo+ICsgKiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHRvb2xzdGFj ayB0byB1c2UgdGhlIGB2ZXJzaW9uYCBmaWVsZCB0byBjaGVjawo+ICsgKiBiZXR3ZWVuIGVhY2gg aW52b2NhdGlvbi4gaWYgdGhlIHZlcnNpb24gZGlmZmVycyBpdCBzaG91bGQgZGlzY2FyZCB0aGUg c3RhbGUKPiArICogZGF0YSBhbmQgc3RhcnQgZnJvbSBzY3JhdGNoLiBJdCBpcyBPSyBmb3IgdGhl IHRvb2xzdGFjayB0byB1c2UgdGhlIG5ldwo+ICsgKiBgdmVyc2lvbmAgZmllbGQuCj4gKyAqLwo+ ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgMgo+ICtzdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfbGlzdCB7Cj4gKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgICAg ICAgICAgICAgLyogT1VUOiBIeXBlcnZpc29yIHN0YW1wcyB2YWx1ZS4KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB2YXJpZXMgYmV0d2VlbiBjYWxs cywgd2UgYXJlCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICogZ2V0dGluZyBzdGFsZSBkYXRhLiAqLwo+ICsgICAgdWludDMyX3QgaWR4OyAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIElOOiBJbmRleCBpbnRvIGh5cGVydmlzb3IgbGlzdC4gKi8KPiAr ICAgIHVpbnQzMl90IG5yOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogSG93IG1h bnkgc3RhdHVzLCBuYW1lLCBhbmQgbGVuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2hvdWxkIGZpbGwgb3V0LiBDYW4gYmUgemVybyB0byBnZXQKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgb2Yg cGF5bG9hZHMgYW5kIHZlcnNpb24uCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXlsb2FkcyBsZWZ0LiAqLwo+ICsgICAgdWlu dDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNdXN0IGJlIHplcm8u ICovCj4gKyAgICBndWVzdF9oYW5kbGVfNjQgICAgICAgICAgICAgICAgc3RhdHVzOyAgLyogT1VU LiBNdXN0IGhhdmUgZW5vdWdoCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCj4gKyAgICBndWVz dF9oYW5kbGVfNjQgbmFtZTsgICAgICAgICAgICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1l cy4gRWFjaCBtZW1iZXIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIGluIHNpemUuCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRo ZW0uICovCj4gKyAgICBndWVzdF9oYW5kbGVfNjQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyog T1VUOiBBcnJheSBvZiBsZW5ndGhzIG9mIG5hbWUncy4KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KPiArfTsK PiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB4ZW5fc3lzY3RsX2xp dmVwYXRjaF9saXN0X3Q7Cj4gKwo+ICsvKgo+ICsgKiBQZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiB0 aGUgcGF5bG9hZCBzdHJ1Y3R1cmUgcmVmZXJlbmNlZCBieSB0aGUgYG5hbWVgIGZpZWxkLgo+ICsg KiBUaGUgb3BlcmF0aW9uIHJlcXVlc3QgaXMgYXN5bmNocm9ub3VzIGFuZCB0aGUgc3RhdHVzIHNo b3VsZCBiZSByZXRyaWV2ZWQKPiArICogYnkgdXNpbmcgZWl0aGVyIFhFTl9TWVNDVExfTElWRVBB VENIX0dFVCBvciBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUIGh5cGVyY2FsbC4KPiArICovCj4g KyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIDMKPiArc3RydWN0IHhlbl9zeXNj dGxfbGl2ZXBhdGNoX2FjdGlvbiB7Cj4gKyAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBuYW1lOyAg ICAgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNoLiAqLwo+ICsjZGVmaW5lIExJVkVQ QVRDSF9BQ1RJT05fVU5MT0FEICAgICAgIDEKPiArI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JF VkVSVCAgICAgICAyCj4gKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9BUFBMWSAgICAgICAgMwo+ ICsjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fUkVQTEFDRSAgICAgIDQKPiArICAgIHVpbnQzMl90 IGNtZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTElWRVBBVENIX0FDVElPTl8q LiAqLwo+ICsgICAgdWludDMyX3QgdGltZW91dDsgICAgICAgICAgICAgICAgICAgICAgIC8qIElO OiBaZXJvIGlmIG5vIHRpbWVvdXQuICovCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogT3IgdXBwZXIgYm91bmQgb2YgdGltZSAobXMpICovCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZm9yIG9wZXJhdGlvbiB0 byB0YWtlLiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9h Y3Rpb24geGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uX3Q7Cj4gKwo+ICtzdHJ1Y3QgeGVuX3N5 c2N0bF9saXZlcGF0Y2hfb3Agewo+ICsgICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAqLwo+ICsgICAgdWludDMy X3QgcGFkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBBbHdheXMgemVyby4gKi8K PiArICAgIHVuaW9uIHsKPiArICAgICAgICB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWRfdCB1 cGxvYWQ7Cj4gKyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdF90IGxpc3Q7Cj4gKyAg ICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0X3QgZ2V0Owo+ICsgICAgICAgIHhlbl9zeXNj dGxfbGl2ZXBhdGNoX2FjdGlvbl90IGFjdGlvbjsKPiArICAgIH0gdTsKPiArfTsKPiArdHlwZWRl ZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3AgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3Bf dDsKPiArCj4gK3N0cnVjdCB4ZW5fc3lzY3RsIHsKPiArICAgIHVpbnQzMl90IGNtZDsKPiArI2Rl ZmluZSBYRU5fU1lTQ1RMX2xpdmVwYXRjaF9vcCAgICAgICAgICAgICAgICAgIDI3Cj4gKyAgICB1 aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOX1NZU0NUTF9JTlRFUkZBQ0VfVkVSU0lP TiAqLwo+ICsgICAgdW5pb24gewo+ICsgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRj aF9vcCAgICAgIGxpdmVwYXRjaDsKPiArICAgICAgICB1aW50OF90ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYWRbMTI4XTsKPiArICAgIH0gdTsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bCB4ZW5fc3lzY3RsX3Q7Cj4gKwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX1NZ U0NUTF9IX18gKi8KPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoKPiArICogbW9kZTog Qwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAq IHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsg Ki8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94dGYvaHlwZXJjYWxsLmggYi9pbmNsdWRlL3h0Zi9o eXBlcmNhbGwuaAo+IGluZGV4IGEzN2ViYzIuLmFiNDk4NmYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk ZS94dGYvaHlwZXJjYWxsLmgKPiArKysgYi9pbmNsdWRlL3h0Zi9oeXBlcmNhbGwuaAo+IEBAIC0z NCw2ICszNCw3IEBAIGV4dGVybiB1aW50OF90IGh5cGVyY2FsbF9wYWdlW1BBR0VfU0laRV07Cj4g ICNpbmNsdWRlIDx4ZW4vcGh5c2Rldi5oPgo+ICAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgo+ICAj aW5jbHVkZSA8eGVuL3ZlcnNpb24uaD4KPiArI2luY2x1ZGUgPHhlbi9zeXNjdGwuaD4KPiAgI2lu Y2x1ZGUgPHhlbi9odm0vaHZtX29wLmg+Cj4gICNpbmNsdWRlIDx4ZW4vaHZtL3BhcmFtcy5oPgo+ ICAKPiBAQCAtMTE0LDYgKzExNSwxMSBAQCBzdGF0aWMgaW5saW5lIGxvbmcgaHlwZXJjYWxsX2h2 bV9vcCh1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcpCj4gICAgICByZXR1cm4gSFlQRVJDQUxM Mihsb25nLCBfX0hZUEVSVklTT1JfaHZtX29wLCBjbWQsIGFyZyk7Cj4gIH0KPiAgCj4gK3N0YXRp YyBpbmxpbmUgbG9uZyBoeXBlcmNhbGxfc3lzY3RsKHhlbl9zeXNjdGxfdCAqYXJnKQo+ICt7Cj4g KyAgICByZXR1cm4gSFlQRVJDQUxMMShsb25nLCBfX0hZUEVSVklTT1Jfc3lzY3RsLCBhcmcpOwo+ ICt9Cj4gKwo+ICAvKgo+ICAgKiBIaWdoZXIgbGV2ZWwgaHlwZXJjYWxsIGhlbHBlcnMKPiAgICov Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveHRmL2xpYi5oIGIvaW5jbHVkZS94dGYvbGliLmgKPiBp bmRleCBiMGFlMzlkLi44ZmI0OTBhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUveHRmL2xpYi5oCj4g KysrIGIvaW5jbHVkZS94dGYvbGliLmgKPiBAQCAtNjUsNiArNjUsOCBAQCBzdGF0aWMgaW5saW5l IHZvaWQgZXhlY191c2VyX3ZvaWQodm9pZCAoKmZuKSh2b2lkKSkKPiAgICAgIGV4ZWNfdXNlcigo dm9pZCAqKWZuKTsKPiAgfQo+ICAKPiAraW50IHByb2JlX3N5c2N0bF9pbnRlcmZhY2VfdmVyc2lv bih2b2lkKTsKPiArCj4gICNlbmRpZiAvKiBYVEZfTElCX0ggKi8KPiAgCj4gIC8qCj4gZGlmZiAt LWdpdCBhL3Rlc3RzL2xpdmVwYXRjaC1wcml2LWNoZWNrL01ha2VmaWxlIGIvdGVzdHMvbGl2ZXBh dGNoLXByaXYtY2hlY2svTWFrZWZpbGUKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAuLmUyN2I5ZGEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMvbGl2ZXBhdGNoLXBy aXYtY2hlY2svTWFrZWZpbGUKPiBAQCAtMCwwICsxLDkgQEAKPiAraW5jbHVkZSAkKFJPT1QpL2J1 aWxkL2NvbW1vbi5tawo+ICsKPiArTkFNRSAgICAgIDo9IGxpdmVwYXRjaC1wcml2LWNoZWNrCj4g K0NBVEVHT1JZICA6PSBmdW5jdGlvbmFsCj4gK1RFU1QtRU5WUyA6PSAkKEFMTF9FTlZJUk9OTUVO VFMpCj4gKwo+ICtvYmotcGVyZW52ICs9IG1haW4ubwo+ICsKPiAraW5jbHVkZSAkKFJPT1QpL2J1 aWxkL2dlbi5tawo+IGRpZmYgLS1naXQgYS90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9tYWlu LmMgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9tYWluLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAuLjRkNjRkNTgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVz dHMvbGl2ZXBhdGNoLXByaXYtY2hlY2svbWFpbi5jCj4gQEAgLTAsMCArMSwxNTMgQEAKPiArLyoq Cj4gKyAqIEBmaWxlIHRlc3RzL2xpdmVwYXRjaC1wcml2LWNoZWNrL21haW4uYwo+ICsgKiBAcmVm IHRlc3QtbGl2ZXBhdGNoLXByaXYtY2hlY2sKPiArICoKPiArICogQHBhZ2UgdGVzdC1saXZlcGF0 Y2gtcHJpdi1jaGVjayBMaXZlIFBhdGNoIFByaXZpbGVnZSBDaGVjawo+ICsgKgo+ICsgKiBDaGVj a3MgdGhhdCBYZW4gcHJldmVudHMgdXNpbmcgYWxsIGxpdmUgcGF0Y2hpbmcgb3BlcmF0aW9ucyBh bmQKPiArICogc3ViLW9wZXJhdGlvbnMgZnJvbSBhbiB1bnByaXZpbGVnZWQgZ3Vlc3QuCj4gKyAq Cj4gKyAqIEBzZWUgdGVzdHMvbGl2ZXBhdGNoLWNoZWNrLXByaXYvbWFpbi5jCj4gKyAqLwo+ICsj aW5jbHVkZSA8eHRmLmg+Cj4gKwo+ICtjb25zdCBjaGFyIHRlc3RfdGl0bGVbXSA9ICJMaXZlIFBh dGNoIFByaXZpbGVnZSBDaGVjayI7Cj4gKwo+ICtzdGF0aWMgaW50IGludGVyZmFjZV92ZXJzaW9u Owo+ICsKPiArc3RhdGljIHZvaWQgY2hlY2tfcmV0KGludCByYykKCldvdWxkIGl0IG1ha2UgaXQg ZWFzaWVyICh0byB0cm91Ymxlc2hvb3QgaWYgc29tZWJvZHkgZGlkIGVuYWJsZQp0aGUgWFNNIGNo ZWNrcyBmb3Igc3BlY2lmYyBzdWItb2JzIC0gaWYgdGhhdCB3YXMgZXZlciBkb25lKSwgdG8KZXh0 ZW5kIHRoZSBmdW50aW9uIHRvIGhhdmUgJ2NvbnN0IGNoYXIgKm1zZycKPiArewo+ICsgICAgc3dp dGNoICggcmMgKQo+ICsgICAgewo+ICsgICAgY2FzZSAtRVBFUk06Cj4gKyAgICAgICAgcHJpbnRr KCJYZW4gY29ycmVjdGx5IGRlbmllZCBMaXZlIFBhdGNoIGNhbGxzXG4iKTsKCkFuZCBpbiBhbGwg b2YgdGhvc2UgcHJpbnRrIGFuZCB4dGZfKiB1c2UgdGhlICclczogLi4uICIsIG1zZy4KPiArICAg ICAgICBicmVhazsKPiArCj4gKyAgICBjYXNlIC1FTk9TWVM6Cj4gKyAgICAgICAgeHRmX3NraXAo IkxpdmUgUGF0Y2ggc3VwcG9ydCBub3QgZGV0ZWN0ZWRcbiIpOwo+ICsgICAgICAgIGJyZWFrOwo+ ICsKPiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgeHRmX2ZhaWx1cmUoIkZhaWw6IFVuZXhwZWN0 ZWQgcmV0dXJuIGNvZGUgJWRcbiIsIHJjKTsKPiArICAgICAgICBicmVhazsKPiArICAgIH0KPiAr fQo+ICsKPiArI2RlZmluZSBURVNUX05BTUUgImZvbyIKPiArCj4gK3N0YXRpYyB2b2lkIHRlc3Rf dXBsb2FkKHZvaWQpCj4gK3sKPiArICAgIHVpbnQ4X3QgcGF5bG9hZFtQQUdFX1NJWkVdOwo+ICsg ICAgeGVuX3N5c2N0bF90IG9wID0KPiArICAgIHsKPiArICAgICAgICAuY21kID0gWEVOX1NZU0NU TF9saXZlcGF0Y2hfb3AsCj4gKyAgICAgICAgLmludGVyZmFjZV92ZXJzaW9uID0gaW50ZXJmYWNl X3ZlcnNpb24sCj4gKyAgICAgICAgLnUubGl2ZXBhdGNoID0gewo+ICsgICAgICAgICAgICAuY21k ID0gWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FELAo+ICsgICAgICAgICAgICAudS51cGxvYWQg PSB7Cj4gKyAgICAgICAgICAgICAgICAubmFtZSA9IHsKPiArICAgICAgICAgICAgICAgICAgICAu bmFtZS5wID0gVEVTVF9OQU1FLAo+ICsgICAgICAgICAgICAgICAgICAgIC5zaXplID0gc2l6ZW9m KFRFU1RfTkFNRSksCj4gKyAgICAgICAgICAgICAgICB9LAo+ICsgICAgICAgICAgICAgICAgLnNp emUgPSBQQUdFX1NJWkUsCj4gKyAgICAgICAgICAgICAgICAucGF5bG9hZC5wID0gcGF5bG9hZCwK PiArICAgICAgICAgICAgfSwKPiArICAgICAgICB9LAo+ICsgICAgfTsKPiArCj4gKyAgICBjaGVj a19yZXQoaHlwZXJjYWxsX3N5c2N0bCgmb3ApKTsKCkFuZCBoZXJlIGluIHlvdSBjb3VsZCBqdXN0 IGRvIGNoZWNrX3JldChfX2Z1bmNfXywgaHlwZXJjYWxsX3N5c2N0bD8pCgpUaGFua3MgZm9yIG1h a2luZyBhIG5pY2UgdGVzdC1jYXNlIGZvciB0aGlzISEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK