From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v2 for 4.7] xen: Rename of xSplice to livepatch. Date: Thu, 2 Jun 2016 11:38:30 -0400 Message-ID: <20160602153830.GA1783@char.us.oracle.com> References: <1464876327-23528-1-git-send-email-konrad.wilk@oracle.com> <575063DB02000078000F1297@prv-mh.provo.novell.com> <5750499D.2020404@citrix.com> <20160602151855.GA1063@char.us.oracle.com> <57506C2302000078000F1377@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b8Uhz-0001uP-JH for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 15:38:56 +0000 Content-Disposition: inline In-Reply-To: <57506C2302000078000F1377@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Martin Pohlack , Ross Lagerwall , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBKdW4gMDIsIDIwMTYgYXQgMDk6MjU6NTVBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDAyLjA2LjE2IGF0IDE3OjE4LCA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4g d3JvdGU6Cj4gPiBPbiBUaHUsIEp1biAwMiwgMjAxNiBhdCAwMzo1ODozN1BNICswMTAwLCBBbmRy ZXcgQ29vcGVyIHdyb3RlOgo+ID4+IE9uIDAyLzA2LzE2IDE1OjUwLCBKYW4gQmV1bGljaCB3cm90 ZToKPiA+PiA+Cj4gPj4gPj4gLS0tIGEveGVuL2FyY2gvYXJtL3hzcGxpY2UuYwo+ID4+ID4+ICsr KyBiL3hlbi9hcmNoL2FybS9saXZlcGF0Y2guYwo+ID4+ID4+IEBAIC00LDY3ICs0LDY3IEBACj4g Pj4gPj4gICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KPiA+PiA+PiAgI2luY2x1ZGUgPHhlbi9pbml0 Lmg+Cj4gPj4gPj4gICNpbmNsdWRlIDx4ZW4vbGliLmg+Cj4gPj4gPj4gLSNpbmNsdWRlIDx4ZW4v eHNwbGljZV9lbGYuaD4KPiA+PiA+PiAtI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+Cj4gPj4gPj4g KyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoX2VsZi5oPgo+ID4+ID4+ICsjaW5jbHVkZSA8eGVuL2xp dmVwYXRjaC5oPgo+ID4+ID4+ICAKPiA+PiA+PiAtdm9pZCBhcmNoX3hzcGxpY2VfcGF0Y2hpbmdf ZW50ZXIodm9pZCkKPiA+PiA+PiArdm9pZCBhcmNoX2xpdmVwYXRjaGluZ19lbnRlcih2b2lkKQo+ ID4+ID4gU3RpbGwgInBhdGNoaW5nIj8KPiA+PiAKPiA+PiBUaGlzIGZ1bmN0aW9uIGNhbWUgZnJv bSBvbmUgb2YgbXkgYWRkaXRpb25zIHRvIHRoZSBzZXJpZXMuICBJdCBoYWxmIG9mIGEKPiA+PiBw YWlyIG9mIGNhbGxzIGFyb3VuZCB0aGUgY3JpdGljYWwgcmVnaW9uIHdoaWNoIGlzIHdyaXRpbmcg bmV3IGNvZGUvZGF0YSwKPiA+PiB3aGVyZSBDUjAuV1AgbmVlZHMgdHdlYWtpbmcuCj4gPj4gCj4g Pj4gQXMgc3VjaCwgJ3BhdGNoaW5nJyB3YXMgbG9naWNhbGx5IGRpc3RpbmN0IGZyb20gdGhlIG5h bWUgJ2xpdmVwYXRjaCcgYXMKPiA+PiB0aGUgZ2VuZXJhbCBuYW1lc3BhY2Ugb2YgdGhlc2UgZnVu Y3Rpb25zLCBhbmQgcmVmZXJyZWQgdG8gdGhlIGNyaXRpY2FsCj4gPj4gcmVnaW9uIG9mIGFjdHVh bGx5IGNoYW5naW5nIGxpdmUgbWVtb3J5Lgo+ID4+IAo+ID4+IEkgYW0gYXQgYSBsb3NzIHRvIHN1 Z2dlc3QgYSBiZXR0ZXIgYWx0ZXJuYXRpdmUuCj4gPiAKPiA+ICBhcmNoX3F1aWVzY2luZ19zdGFy dCBhbmQgYXJjaF9xdWllc2Npbmdfc3RvcCA/Cj4gCj4gYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSgp IC8gYXJjaF9saXZlcGF0Y2hfcmV2aXZlKCk/CgpGYW50YXN0aWMhCgpGb3IgcmVmZXJlbmNlIHRo ZSBwYXRjaC4KCkZyb20gYzE1NjU5Y2Y4MzNhNDUzYzI3Mzg2Y2IxODE3NDRlYmNmNWIwY2QxZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25y YWQud2lsa0BvcmFjbGUuY29tPgpEYXRlOiBXZWQsIDEgSnVuIDIwMTYgMjA6MTQ6NDcgLTA0MDAK U3ViamVjdDogW1BBVENIIHYzLjEgZm9yIDQuN10geGVuOiBSZW5hbWUgb2YgeFNwbGljZSB0byBs aXZlcGF0Y2guCgpTcGVjaWZpY2FsbHk6CgpzL1wueHNwbGljZS9cLmxpdmVwYXRjaC8Kcy9YU1BM SUNFL0xJVkVQQVRDSC8Kcy94c3BsaWNlL2xpdmVwYXRjaC8Kcy9saXZlcGF0Y2hfcGF0Y2hfZnVu Yy9saXZlcGF0Y2hfZnVuYy8Kcy94U3BsaWNlL1hlbiBMaXZlIFBhdGNoLwpzL2xpdmVwYXRjaGlu Zy9saXZlcGF0Y2gvCnMvYXJjaF9saXZlcGF0Y2hfZW50ZXIvYXJjaF9saXZlcGF0Y2hfcXVpZXNj ZS8Kcy9hcmNoX2xpdmVwYXRjaF9leGl0L2FyY2hfbGl2ZXBhdGNoX3Jldml2ZS8KCkFuZCB0aGVu IG1vZGlmeSBzb21lIG9mIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKdG8gaGF2ZSB0d28gbW9yZSBj aGFyYWN0ZXJzLgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQu d2lsa0BvcmFjbGUuY29tPgpBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t PgoKLS0tCkNjOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KQ2M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4g PHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IE1hcnRp biBQb2hsYWNrIDxtcG9obGFja0BhbWF6b24uZGU+Cgp2MjogRGl0Y2ggdGhlIExJVkVfUEFUQ0gg YW5kICdMaXZlIFBhdGNoaW5nJyBpbmNvbnNpdGVuY3kuCiAgICBJbmNsdWRlIFJvc3MncyBlbWFp bCBjb3JyZWN0bHkuCiAgICBEb24ndCBtb3ZlIGFscGhhYmV0aWNhbGx5IHRoZSAjaW5jbHVkZSBo ZWFkZXIgYXMgaXQgaXMKICAgIGluY29uc2lzdGVudAp2Mzogcy9saXZlcGF0Y2hpbmcvbGl2ZXBh dGNoLwogICAgQWx0ZXIgc29tZSBvZiB0aGUgImxpdmUgcGF0Y2hpbmciIG9yICJsaXZlIHBhdGNo IiB0byBzYXkKICAgICJMaXZlIFBhdGNoIgogICAgTW92ZSBpbiBjb21tb24vTWFrZWZpbGUgdGhl IGxpdmVwYXRjaCBlbnRyeSAoaXQgaXMgc29ydGVkKQogICAgTW92ZSB0aGUgTElWRVBBVENIIGlu IE1BSU5UQUlORVJTIGZpbGUgaW4gdGhlIHByb3BlciBsb2NhdGlvbgogICAgKGl0IGlzIHNvcnRl ZCkuIEFkZCBKYW4ncyBBY2suCnYzLjE6IHMvYXJjaF9saXZlcGF0Y2hfZW50ZXIvYXJjaF9saXZl cGF0Y2hfcXVpZXNjZS8KICAgIHMvYXJjaF9saXZlcGF0Y2hfZXhpdC9hcmNoX2xpdmVwYXRjaF9y ZXZpdmUvCi0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIwICstCiBkb2NzL21pc2Mve3hzcGxpY2UubWFya2Rvd24gPT4gbGl2ZXBh dGNoLm1hcmtkb3dufSB8IDE4NCArKysrKy0tLS0tCiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5 L21vZHVsZXMveGVuL3hlbi50ZSAgICAgICB8ICAgMiArLQogdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmggICAgICAgICAgICAgICAgICAgICAgfCAgMzIgKy0KIHRvb2xzL2xpYnhjL3hjX21p c2MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQyICsrKystLS0tCiB0b29scy9t aXNjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogdG9v bHMvbWlzYy97eGVuLXhzcGxpY2UuYyA9PiB4ZW4tbGl2ZXBhdGNoLmN9ICAgICAgfCAgNjIgKyst LQogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHhlbi9hcmNoL2FybS97eHNwbGljZS5jID0+IGxpdmVwYXRjaC5jfSAgICAgICAgICAg IHwgIDM4ICstLQogeGVuL2FyY2gveDg2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIHhlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDE4ICstCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArLQogeGVuL2FyY2gveDg2L2V4dGFibGUuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHhlbi9hcmNoL3g4Ni97eHNwbGljZS5jID0+IGxp dmVwYXRjaC5jfSAgICAgICAgICAgIHwgIDU2ICsrLS0KIHhlbi9hcmNoL3g4Ni90ZXN0L01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU4ICsrLS0KIHhlbi9hcmNoL3g4Ni90ZXN0 L3hlbl9ieWVfd29ybGQuYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vYXJjaC94ODYv dGVzdC94ZW5faGVsbG9fd29ybGQuYyAgICAgICAgICAgICAgICB8ICAgNiArLQogeGVuL2FyY2gv eDg2L3Rlc3QveGVuX3JlcGxhY2Vfd29ybGQuYyAgICAgICAgICAgICAgfCAgIDYgKy0KIHhlbi9h cmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB4 ZW4vY29tbW9uL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCAr LQogeGVuL2NvbW1vbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgKy0KIHhlbi9jb21tb24ve3hzcGxpY2UuYyA9PiBsaXZlcGF0Y2guY30gICAgICAgICAgICAg IHwgMzcwICsrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2NvbW1vbi97eHNwbGljZV9lbGYuYyA9 PiBsaXZlcGF0Y2hfZWxmLmN9ICAgICAgfCAxMDkgKysrLS0tCiB4ZW4vY29tbW9uL3N5c2N0bC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogeGVuL2NvbW1vbi92aXJ0 dWFsX3JlZ2lvbi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHhlbi9jb21tb24v dnNwcmludGYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB4ZW4vaW5j bHVkZS9hc20teDg2L2N1cnJlbnQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogeGVu L2luY2x1ZGUvcHVibGljL3N5c2N0bC5oICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzggKysr Ky0tLS0KIHhlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmggICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiB4ZW4vaW5jbHVkZS94ZW4ve3hzcGxpY2UuaCA9PiBsaXZlcGF0Y2guaH0gICAg ICAgICB8IDEwMCArKystLS0KIHhlbi9pbmNsdWRlL3hlbi97eHNwbGljZV9lbGYuaCA9PiBsaXZl cGF0Y2hfZWxmLmh9IHwgIDM1ICstCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMgICAgICAgICAgICAgICAgfCAgIDQgKy0KIDM0IGZpbGVzIGNoYW5nZWQsIDczMiBpbnNl cnRpb25zKCspLCA3MzEgZGVsZXRpb25zKC0pCiByZW5hbWUgZG9jcy9taXNjL3t4c3BsaWNlLm1h cmtkb3duID0+IGxpdmVwYXRjaC5tYXJrZG93bn0gKDg3JSkKIHJlbmFtZSB0b29scy9taXNjL3t4 ZW4teHNwbGljZS5jID0+IHhlbi1saXZlcGF0Y2guY30gKDg2JSkKIHJlbmFtZSB4ZW4vYXJjaC9h cm0ve3hzcGxpY2UuYyA9PiBsaXZlcGF0Y2guY30gKDI5JSkKIHJlbmFtZSB4ZW4vYXJjaC94ODYv e3hzcGxpY2UuYyA9PiBsaXZlcGF0Y2guY30gKDc0JSkKIHJlbmFtZSB4ZW4vY29tbW9uL3t4c3Bs aWNlLmMgPT4gbGl2ZXBhdGNoLmN9ICg3NSUpCiByZW5hbWUgeGVuL2NvbW1vbi97eHNwbGljZV9l bGYuYyA9PiBsaXZlcGF0Y2hfZWxmLmN9ICg3MiUpCiByZW5hbWUgeGVuL2luY2x1ZGUveGVuL3t4 c3BsaWNlLmggPT4gbGl2ZXBhdGNoLmh9ICgzNCUpCiByZW5hbWUgeGVuL2luY2x1ZGUveGVuL3t4 c3BsaWNlX2VsZi5oID0+IGxpdmVwYXRjaF9lbGYuaH0gKDU2JSkKCmRpZmYgLS1naXQgYS8uZ2l0 aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCAxYjczMjkzLi43MzQ3ODAxIDEwMDY0NAotLS0gYS8u Z2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTE4Miw3ICsxODIsNyBAQCB0b29scy9taXNj L3hlbl9jcHVwZXJmCiB0b29scy9taXNjL3hlbi1jcHVpZAogdG9vbHMvbWlzYy94ZW4tZGV0ZWN0 CiB0b29scy9taXNjL3hlbi10bWVtLWxpc3QtcGFyc2UKLXRvb2xzL21pc2MveGVuLXhzcGxpY2UK K3Rvb2xzL21pc2MveGVuLWxpdmVwYXRjaAogdG9vbHMvbWlzYy94ZW5wZXJmCiB0b29scy9taXNj L3hlbnBtCiB0b29scy9taXNjL3hlbi1odm1jdHgKQEAgLTI0Nyw5ICsyNDcsOSBAQCB4ZW4vYXJj aC94ODYvZWZpL2NoZWNrLmVmaQogeGVuL2FyY2gveDg2L2VmaS9kaXNhYmxlZAogeGVuL2FyY2gv eDg2L2VmaS9ta3JlbG9jCiB4ZW4vYXJjaC94ODYvdGVzdC9jb25maWcuaAoteGVuL2FyY2gveDg2 L3Rlc3QveGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKLXhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVf d29ybGQueHNwbGljZQoteGVuL2FyY2gveDg2L3Rlc3QveGVuX3JlcGxhY2Vfd29ybGQueHNwbGlj ZQoreGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmxpdmVwYXRjaAoreGVuL2FyY2gv eDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5saXZlcGF0Y2gKK3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9y ZXBsYWNlX3dvcmxkLmxpdmVwYXRjaAogeGVuL2FyY2gvKi9lZmkvYm9vdC5jCiB4ZW4vYXJjaC8q L2VmaS9jb21wYXQuYwogeGVuL2FyY2gvKi9lZmkvZWZpLmgKZGlmZiAtLWdpdCBhL01BSU5UQUlO RVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggNjJmNGZmZC4uOWEyMjRkNCAxMDA2NDQKLS0tIGEvTUFJ TlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTI2MSw2ICsyNjEsMTYgQEAgRjogICAgICB4 ZW4vaW5jbHVkZS97a2V4ZWMsa2ltYWdlfS5oCiBGOiAgICAgIHhlbi9hcmNoL3g4Ni9tYWNoaW5l X2tleGVjLmMKIEY6ICAgICAgeGVuL2FyY2gveDg2L3g4Nl82NC9rZXhlY19yZWxvYy5TCiAKK0xJ VkVQQVRDSAorTTogIEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNv bT4KK006ICBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KK1M6ICBT dXBwb3J0ZWQKK0Y6ICBkb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCitGOiAgdG9vbHMvbWlz Yy94ZW4tbGl2ZXBhdGNoLmMKK0Y6ICB4ZW4vYXJjaC8qL2xpdmVwYXRjaCoKK0Y6ICB4ZW4vY29t bW9uL2xpdmVwYXRjaCoKK0Y6ICB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoKgorCiBNQUNISU5F IENIRUNLIChNQ0EpICYgUkFTCiBNOglDaHJpc3RvcGggRWdnZXIgPGNoZWdnZXJAYW1hem9uLmRl PgogTToJTGl1IEppbnNvbmcgPGppbnNvbmcubGl1QGFsaWJhYmEtaW5jLmNvbT4KQEAgLTQ3MCwx NiArNDgwLDYgQEAgRjogIHhlbi9pbmNsdWRlL3hzbS8KIEY6ICB4ZW4veHNtLwogRjogIGRvY3Mv bWlzYy94c20tZmxhc2sudHh0CiAKLVhTUExJQ0UKLU06ICBLb25yYWQgUnplc3p1dGVrIFdpbGsg PGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci1NOiAgUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3 YWxsQGNpdHJpeC5jb20+Ci1TOiAgU3VwcG9ydGVkCi1GOiAgZG9jcy9taXNjL3hzcGxpY2UubWFy a2Rvd24KLUY6ICB0b29scy9taXNjL3hlbi14c3BsaWNlLmMKLUY6ICB4ZW4vYXJjaC8qL3hzcGxp Y2UqCi1GOiAgeGVuL2NvbW1vbi94c3BsaWNlKgotRjogIHhlbi9pbmNsdWRlL3hlbi94c3BsaWNl KgotCiBUSEUgUkVTVAogTToJQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KIE06CUdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KZGlmZiAt LWdpdCBhL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duIGIvZG9jcy9taXNjL2xpdmVwYXRjaC5t YXJrZG93bgpzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSBkb2NzL21pc2MveHNwbGlj ZS5tYXJrZG93bgpyZW5hbWUgdG8gZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgppbmRleCAw NWMxYTU1Li5lZmRhOGNmIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93bgor KysgYi9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCkBAIC0xLDQgKzEsNCBAQAotIyB4U3Bs aWNlIERlc2lnbiB2MQorIyBYZW4gTGl2ZSBQYXRjaGluZyBEZXNpZ24gdjEKIAogIyMgUmF0aW9u YWxlCiAKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdHJ1Y3R1cmVzIHVzaW5nIEVsZiB0eXBlcywgZXRj KS4gVGhpcyBkZXNpZ24gd2lsbCBleHBsYWluIHRoZSBzdHJ1Y3R1cmVzCiBhbmQgaG93IHRoZXkg YXJlIHVzZWQgdG9nZXRoZXIgYW5kIG5vdCBkaWcgaW4gdGhlIEVMRiBmb3JtYXQgLSBleGNlcHQg bWVudGlvbgogdGhhdCB0aGUgc2VjdGlvbiBuYW1lcyBzaG91bGQgbWF0Y2ggdGhlIHN0cnVjdHVy ZSBuYW1lcy4KIAotVGhlIHhTcGxpY2UgcGF5bG9hZCBpcyBhIHJlbG9jYXRhYmxlIEVMRiBiaW5h cnkuIEEgdHlwaWNhbCBiaW5hcnkgd291bGQgaGF2ZToKK1RoZSBYZW4gTGl2ZSBQYXRjaCBwYXls b2FkIGlzIGEgcmVsb2NhdGFibGUgRUxGIGJpbmFyeS4gQSB0eXBpY2FsIGJpbmFyeSB3b3VsZCBo YXZlOgogCiAgKiBPbmUgb3IgbW9yZSAudGV4dCBzZWN0aW9ucy4KICAqIFplcm8gb3IgbW9yZSBy ZWFkLW9ubHkgZGF0YSBzZWN0aW9ucy4KQEAgLTI3OSwyNCArMjc5LDI0IEBAIEl0IG1heSBhbHNv IGhhdmUgc29tZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc2VjdGlvbnMuIEZvciBleGFtcGxlOgog ICogRXhjZXB0aW9uIHRhYmxlcy4KICAqIFJlbG9jYXRpb25zIGZvciBlYWNoIG9mIHRoZXNlIHNl Y3Rpb25zLgogCi1UaGUgeFNwbGljZSBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBz dGFuZGFyZCBFTEYgYmluYXJ5LCByZWxvY2F0ZXMgaXQKK1RoZSBYZW4gTGl2ZSBQYXRjaCBjb3Jl IGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFuZGFyZCBFTEYgYmluYXJ5LCByZWxvY2F0 ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmYyBzZWN0aW9ucyBhcyBu ZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtlIHdoYXQgdGhlIExpbnV4IGtlcm5lbCBt b2R1bGUgbG9hZGVyIGRvZXMuCiAKIFRoZSBwYXlsb2FkIGNvbnRhaW5zIGF0IGxlYXN0IHRocmVl IHNlY3Rpb25zOgogCi0gKiBgLnhzcGxpY2UuZnVuY3NgIC0gd2hpY2ggaXMgYW4gYXJyYXkgb2Yg eHNwbGljZV9wYXRjaF9mdW5jIHN0cnVjdHVyZXMuCi0gKiBgLnhzcGxpY2UuZGVwZW5kc2AgLSB3 aGljaCBpcyBhbiBFTEYgTm90ZSB0aGF0IGRlc2NyaWJlcyB3aGF0IHRoZSBwYXlsb2FkCisgKiBg LmxpdmVwYXRjaC5mdW5jc2AgLSB3aGljaCBpcyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hfZnVuYyBz dHJ1Y3R1cmVzLgorICogYC5saXZlcGF0Y2guZGVwZW5kc2AgLSB3aGljaCBpcyBhbiBFTEYgTm90 ZSB0aGF0IGRlc2NyaWJlcyB3aGF0IHRoZSBwYXlsb2FkCiAgICAgZGVwZW5kcyBvbi4gKipNVVNU KiogaGF2ZSBvbmUuCiAgKiAgYC5ub3RlLmdudS5idWlsZC1pZGAgLSB0aGUgYnVpbGQtaWQgb2Yg dGhpcyBwYXlsb2FkLiAqKk1VU1QqKiBoYXZlIG9uZS4KIAotIyMjIC54c3BsaWNlLmZ1bmNzCisj IyMgLmxpdmVwYXRjaC5mdW5jcwogCi1UaGUgYC54c3BsaWNlLmZ1bmNzYCBjb250YWlucyBhbiBh cnJheSBvZiB4c3BsaWNlX3BhdGNoX2Z1bmMgc3RydWN0dXJlcworVGhlIGAubGl2ZXBhdGNoLmZ1 bmNzYCBjb250YWlucyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hfZnVuYyBzdHJ1Y3R1cmVzCiB3aGlj aCBkZXNjcmliZSB0aGUgZnVuY3Rpb25zIHRvIGJlIHBhdGNoZWQ6CiAKIDxwcmU+Ci1zdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jIHsgIAorc3RydWN0IGxpdmVwYXRjaF9mdW5jIHsgIAogICAgIGNv bnN0IGNoYXIgKm5hbWU7ICAKICAgICB2b2lkICpuZXdfYWRkcjsgIAogICAgIHZvaWQgKm9sZF9h ZGRyOyAgCkBAIC0zMjksMjQgKzMyOSwyNCBAQCBUaGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGlz IDY0IGJ5dGVzIG9uIDY0LWJpdCBoeXBlcnZpc29ycy4gSXQgd2lsbCBiZQogCiAqIGBvcGFxdWVg ICoqTVVTVCoqIGJlIHplcm8uCiAKLVRoZSBzaXplIG9mIHRoZSBgeHNwbGljZV9wYXRjaF9mdW5j YCBhcnJheSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIEVMRiBzZWN0aW9uCitUaGUgc2l6ZSBvZiB0 aGUgYGxpdmVwYXRjaF9mdW5jYCBhcnJheSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIEVMRiBzZWN0 aW9uCiBzaXplLgogCi1XaGVuIGFwcGx5aW5nIHRoZSBwYXRjaCB0aGUgaHlwZXJ2aXNvciBpdGVy YXRlcyBvdmVyIGVhY2ggYHhzcGxpY2VfcGF0Y2hfZnVuY2AKK1doZW4gYXBwbHlpbmcgdGhlIHBh dGNoIHRoZSBoeXBlcnZpc29yIGl0ZXJhdGVzIG92ZXIgZWFjaCBgbGl2ZXBhdGNoX2Z1bmNgCiBz dHJ1Y3R1cmUgYW5kIHRoZSBjb3JlIGNvZGUgaW5zZXJ0cyBhIHRyYW1wb2xpbmUgYXQgYG9sZF9h ZGRyYCB0byBgbmV3X2FkZHJgLgogVGhlIGBuZXdfYWRkcmAgaXMgYWx0ZXJlZCB3aGVuIHRoZSBF TEYgcGF5bG9hZCBpcyBsb2FkZWQuCiAKLVdoZW4gcmV2ZXJ0aW5nIGEgcGF0Y2gsIHRoZSBoeXBl cnZpc29yIGl0ZXJhdGVzIG92ZXIgZWFjaCBgeHNwbGljZV9wYXRjaF9mdW5jYAorV2hlbiByZXZl cnRpbmcgYSBwYXRjaCwgdGhlIGh5cGVydmlzb3IgaXRlcmF0ZXMgb3ZlciBlYWNoIGBsaXZlcGF0 Y2hfZnVuY2AKIGFuZCB0aGUgY29yZSBjb2RlIGNvcGllcyB0aGUgZGF0YSBmcm9tIHRoZSB1bmRv IGJ1ZmZlciAocHJpdmF0ZSBpbnRlcm5hbCBjb3B5KQogdG8gYG9sZF9hZGRyYC4KIAotIyMjIEV4 YW1wbGUgb2YgLnhzcGxpY2UuZnVuY3MKKyMjIyBFeGFtcGxlIG9mIC5saXZlcGF0Y2guZnVuY3MK IAogQSBzaW1wbGUgZXhhbXBsZSBvZiB3aGF0IGEgcGF5bG9hZCBmaWxlIGNhbiBiZToKIAogPHBy ZT4KIC8qIE1VU1QgYmUgaW4gc3luYyB3aXRoIGh5cGVydmlzb3IuICovICAKLXN0cnVjdCB4c3Bs aWNlX3BhdGNoX2Z1bmMgeyAgCitzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgeyAgCiAgICAgY29uc3Qg Y2hhciAqbmFtZTsgIAogICAgIHZvaWQgKm5ld19hZGRyOyAgCiAgICAgdm9pZCAqb2xkX2FkZHI7 ICAKQEAgLTM2NCwyNiArMzY0LDI2IEBAIGNvbnN0IGNoYXIgKnhlbl9oZWxsb193b3JsZCh2b2lk KQogCiBzdGF0aWMgdW5zaWduZWQgY2hhciBwYXRjaF90aGlzX2ZuY1tdID0gInhlbl9leHRyYV92 ZXJzaW9uIjsgIAogCi1zdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfaGVsbG9fd29y bGQgPSB7ICAKLSAgICAudmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLAorc3RydWN0 IGxpdmVwYXRjaF9mdW5jIGxpdmVwYXRjaF9oZWxsb193b3JsZCA9IHsgIAorICAgIC52ZXJzaW9u ID0gTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTiwKICAgICAubmFtZSA9IHBhdGNoX3RoaXNfZm5j LCAgCiAgICAgLm5ld19hZGRyID0geGVuX2hlbGxvX3dvcmxkLCAgCiAgICAgLm9sZF9hZGRyID0g KHZvaWQgKikweGZmZmY4MmQwODAxMzk2M2MsIC8qIEV4dHJhY3RlZCBmcm9tIHhlbi1zeW1zLiAq LyAgCiAgICAgLm5ld19zaXplID0gMTMsIC8qIFRvIGJlIGJlIGNvbXB1dGVkIGJ5IHNjcmlwdHMu ICovICAKICAgICAub2xkX3NpemUgPSAxMywgLyogLS0tLS0tLS0tLS0iIi0tLS0tLS0tLS0tLS0t LSAgKi8gIAotfSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnhzcGxpY2UuZnVuY3MiKSkp OyAgCit9IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIubGl2ZXBhdGNoLmZ1bmNzIikpKTsg IAogCiA8L3ByZT4KIAogQ29kZSBtdXN0IGJlIGNvbXBpbGVkIHdpdGggLWZQSUMuCiAKLSMjIyAu eHNwbGljZS5kZXBlbmRzIGFuZCAubm90ZS5nbnUuYnVpbGQtaWQKKyMjIyAubGl2ZXBhdGNoLmRl cGVuZHMgYW5kIC5ub3RlLmdudS5idWlsZC1pZAogCiBUbyBzdXBwb3J0IGRlcGVuZGVuY2llcyBj aGVja2luZyBhbmQgc2FmZSBsb2FkaW5nICh0byBsb2FkIHRoZQogYXBwcm9waWF0ZSBwYXlsb2Fk IGFnYWluc3QgdGhlIHJpZ2h0IGh5cGVydmlzb3IpIHRoZXJlIGlzIGEgbmVlZAogdG8gZW1iYmVk IGFuIGJ1aWxkLWlkIGRlcGVuZGVuY3kuCiAKLVRoaXMgaXMgZG9uZSBieSB0aGUgcGF5bG9hZCBj b250YWluaW5nIGFuIHNlY3Rpb24gYC54c3BsaWNlLmRlcGVuZHNgCitUaGlzIGlzIGRvbmUgYnkg dGhlIHBheWxvYWQgY29udGFpbmluZyBhbiBzZWN0aW9uIGAubGl2ZXBhdGNoLmRlcGVuZHNgCiB3 aGljaCBmb2xsb3dzIHRoZSBmb3JtYXQgb2YgYW4gRUxGIE5vdGUuIFRoZSBjb250ZW50cyBvZiB0 aGlzCiAobmFtZSwgYW5kIGRlc2NyaXB0aW9uKSBhcmUgc3BlY2lmaWMgdG8gdGhlIGxpbmtlciB1 dGlsaXplZCB0bwogYnVpbGQgdGhlIGh5cGV2aXNvciBhbmQgcGF5bG9hZC4KQEAgLTQyNCw4ICs0 MjQsOCBAQCBvbmUgdWludDMyX3QgdG8gZGV0ZXJtaW5lIHRoZSBzdWItb3BlcmF0aW9ucyBhbmQg b25lIHBhZGRpbmcgZmllbGQgd2hpY2gKICpNVVNUKiBhbHdheXMgYmUgemVyby4KIAogPHByZT4K LXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgeyAgCi0gICAgdWludDMyX3QgY21kOyAgICAg ICAgICAgICAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9YU1BMSUNFXyouICovICAKK3N0cnVjdCB4 ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7ICAKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAg ICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAqLyAgCiAgICAgdWludDMyX3Qg cGFkOyAgICAgICAgICAgICAgICAgICAvKiBJTjogQWx3YXlzIHplcm8uICovICAKIAl1bmlvbiB7 ICAKICAgICAgICAgICAuLi4gc2VlIGJlbG93IC4uLiAgCkBAIC00MzUsOSArNDM1LDkgQEAgc3Ry dWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCB7CiA8L3ByZT4KIHdoaWxlIHRoZSByZXN0IG9mIGh5 cGVyY2FsbCBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGFyZSBwYXJ0IG9mIHRoZSB0aGlzIHN0cnVjdHVy ZS4KIAotIyMjIEJhc2ljIHR5cGU6IHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lCisjIyMgQmFzaWMg dHlwZTogc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZQogCi1Nb3N0IG9mIHRoZSBoeXBlcmNhbGxz IGVtcGxveSBhbiBzaGFyZWQgc3RydWN0dXJlIGNhbGxlZCBgc3RydWN0IHhlbl94c3BsaWNlX25h bWVgCitNb3N0IG9mIHRoZSBoeXBlcmNhbGxzIGVtcGxveSBhbiBzaGFyZWQgc3RydWN0dXJlIGNh bGxlZCBgc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZWAKIHdoaWNoIGNvbnRhaW5zOgogCiAgKiBg bmFtZWAgLSBwb2ludGVyIHdoZXJlIHRoZSBzdHJpbmcgZm9yIHRoZSBuYW1lIGlzIGxvY2F0ZWQu CkBAIC00NTEsMjUgKzQ1MSwyNSBAQCBUaGUgc3RydWN0dXJlIGlzIGFzIGZvbGxvdzoKICAqICBV bmlxdWVseSBpZGVudGlmaWVzIHRoZSBwYXlsb2FkLiAgU2hvdWxkIGJlIGh1bWFuIHJlYWRhYmxl LiAgCiAgKiBJbmNsdWRlcyB0aGUgTlVMIHRlcm1pbmF0b3IgIAogICovICAKLSNkZWZpbmUgWEVO X1hTUExJQ0VfTkFNRV9TSVpFIDEyOCAgCi1zdHJ1Y3QgeGVuX3hzcGxpY2VfbmFtZSB7ICAKKyNk ZWZpbmUgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgMTI4ICAKK3N0cnVjdCB4ZW5fbGl2ZXBhdGNo X25hbWUgeyAgCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8q IElOLCBwb2ludGVyIHRvIG5hbWUuICovICAKICAgICB1aW50MTZfdCBzaXplOyAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgbmFtZS4gTWF5IGJlIHVwdG8gICAKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1hTUExJQ0VfTkFN RV9TSVpFLiAqLyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFLiAqLyAgCiAgICAgdWludDE2X3QgcGFkWzNdOyAg ICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNVVNUIGJlIHplcm8uICovIAogfTsgIAogPC9w cmU+CiAKLSMjIyBYRU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FEICgwKQorIyMjIFhFTl9TWVNDVExf TElWRVBBVENIX1VQTE9BRCAoMCkKIAogVXBsb2FkIGEgcGF5bG9hZCB0byB0aGUgaHlwZXJ2aXNv ci4gVGhlIHBheWxvYWQgaXMgdmVyaWZpZWQKIGFnYWluc3QgYmFzaWMgY2hlY2tzIGFuZCBpZiB0 aGVyZSBhcmUgYW55IGlzc3VlcyB0aGUgcHJvcGVyIHJldHVybiBjb2RlCiB3aWxsIGJlIHJldHVy bmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRpbWUgLSB0aGF0IGlzCi1j b250cm9sbGVkIGJ5ICpYRU5fU1lTQ1RMX1hTUExJQ0VfQUNUSU9OKi4KK2NvbnRyb2xsZWQgYnkg KlhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiouCiAKIFRoZSBjYWxsZXIgcHJvdmlkZXM6CiAK LSAqIEEgYHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBjYWxsZWQgYG5hbWVgIHdoaWNoIGhhcyB0 aGUgdW5pcXVlIG5hbWUuCisgKiBBIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lYCBjYWxsZWQg YG5hbWVgIHdoaWNoIGhhcyB0aGUgdW5pcXVlIG5hbWUuCiAgKiBgc2l6ZWAgdGhlIHNpemUgb2Yg dGhlIEVMRiBwYXlsb2FkIChpbiBieXRlcykuCiAgKiBgcGF5bG9hZGAgdGhlIHZpcnR1YWwgYWRk cmVzcyBvZiB3aGVyZSB0aGUgRUxGIHBheWxvYWQgaXMuCiAKQEAgLTQ4NSwyOSArNDg1LDI5IEBA IFRoZSBgcGF5bG9hZGAgaXMgdGhlIEVMRiBwYXlsb2FkIGFzIG1lbnRpb25lZCBpbiB0aGUgYFBh eWxvYWQgZm9ybWF0YCBzZWN0aW9uLgogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAKIDxw cmU+Ci1zdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZCB7ICAKLSAgICB4ZW5feHNwbGlj ZV9uYW1lX3QgbmFtZTsgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovICAK K3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgeyAgCisgICAgeGVuX2xpdmVwYXRj aF9uYW1lX3QgbmFtZTsgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNoLiAqLyAgCiAg ICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgdGhl IEVMRiBmaWxlLiAqLyAgCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgcGF5bG9hZDsg LyogSU46IEVMRiBmaWxlLiAqLyAgCiB9OyAgCiA8L3ByZT4KIAotIyMjIFhFTl9TWVNDVExfWFNQ TElDRV9HRVQgKDEpCisjIyMgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUICgxKQogCiBSZXRyaWV2 ZSBhbiBzdGF0dXMgb2YgYW4gc3BlY2lmaWMgcGF5bG9hZC4gVGhpcyBjYWxsZXIgcHJvdmlkZXM6 CiAKLSAqIEEgYHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBjYWxsZWQgYG5hbWVgIHdoaWNoIGhh cyB0aGUgdW5pcXVlIG5hbWUuCi0gKiBBIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzYCBzdHJ1 Y3R1cmUuIFRoZSBtZW1iZXIgdmFsdWVzIHdpbGwKKyAqIEEgYHN0cnVjdCB4ZW5fbGl2ZXBhdGNo X25hbWVgIGNhbGxlZCBgbmFtZWAgd2hpY2ggaGFzIHRoZSB1bmlxdWUgbmFtZS4KKyAqIEEgYHN0 cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2Agc3RydWN0dXJlLiBUaGUgbWVtYmVyIHZhbHVlcyB3 aWxsCiAgICBiZSBvdmVyLXdyaXR0ZW4gdXBvbiBjb21wbGV0aW9uLgogCi1VcG9uIGNvbXBsZXRp b24gdGhlIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzYCBpcyB1cGRhdGVkLgorVXBvbiBjb21w bGV0aW9uIHRoZSBgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzYCBpcyB1cGRhdGVkLgogCiAg KiBgc3RhdHVzYCAtIGluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBheWxvYWQ6 Ci0gICAqICpYU1BMSUNFX1NUQVRVU19DSEVDS0VEKiAgKDEpIGxvYWRlZCBhbmQgdGhlIEVMRiBw YXlsb2FkIHNhZmV0eSBjaGVja3MgcGFzc2VkLgotICAgKiAqWFNQTElDRV9TVEFUVVNfQVBQTElF RCogKDIpIGxvYWRlZCwgY2hlY2tlZCwgYW5kIGFwcGxpZWQuCisgICAqICpMSVZFUEFUQ0hfU1RB VFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUgRUxGIHBheWxvYWQgc2FmZXR5IGNoZWNr cyBwYXNzZWQuCisgICAqICpMSVZFUEFUQ0hfU1RBVFVTX0FQUExJRUQqICgyKSBsb2FkZWQsIGNo ZWNrZWQsIGFuZCBhcHBsaWVkLgogICAgKiAgTm8gb3RoZXIgdmFsdWUgaXMgcG9zc2libGUuCiAg KiBgcmNgIC0gLVhFTl9FWFggdHlwZSBlcnJvcnMgZW5jb3VudGVyZWQgd2hpbGUgcGVyZm9ybWlu ZyB0aGUgbGFzdAotICAgWFNQTElDRV9BQ1RJT05fKiBvcGVyYXRpb24uIFRoZSBub3JtYWwgdmFs dWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5fRUFHQUlOIHdoaWNoCisgICBMSVZFUEFUQ0hfQUNUSU9O Xyogb3BlcmF0aW9uLiBUaGUgbm9ybWFsIHZhbHVlcyBjYW4gYmUgemVybyBvciAtWEVOX0VBR0FJ TiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1lYW46IHN1Y2Nlc3Mgb3Igb3BlcmF0aW9uIGluIHBy b2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGltcGx5IGFuIGVycm9yIG9jY3VycmVkLiBJZiB0aGVy ZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3RhdHVzYCB3aWxsICoqTk9UKioKICAgIGhhdmUgY2hh bmdlZC4KQEAgLTUxOSwxNSArNTE5LDE1IEBAIHJjPS1YRU5fRUFHQUlOIGFuZCByZXR1cm4gdmFs dWUgY2FuIGJlIDApLgogRm9yIGV4YW1wbGUsIHN1cHBvc2luZyB0aGVyZSBpcyBhbiBwYXlsb2Fk OgogCiA8cHJlPgotIHN0YXR1czogWFNQTElDRV9TVEFUVVNfQ0hFQ0tFRAorIHN0YXR1czogTElW RVBBVENIX1NUQVRVU19DSEVDS0VECiAgcmM6IDAKIDwvcHJlPgogCi1XZSBhcHBseSBhbiBhY3Rp b24gLSBYU1BMSUNFX0FDVElPTl9SRVZFUlQgLSB0byByZXZlcnQgaXQgKHdoaWNoIHdvbid0IHdv cmsKK1dlIGFwcGx5IGFuIGFjdGlvbiAtIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUIC0gdG8gcmV2 ZXJ0IGl0ICh3aGljaCB3b24ndCB3b3JrCiBhcyB3ZSBoYXZlIG5vdCBldmVuIGFwcGxpZWQgaXQu IEFmdGVyd2FyZHMgd2Ugd2lsbCBoYXZlOgogCiA8cHJlPgotIHN0YXR1czogWFNQTElDRV9TVEFU VVNfQ0hFQ0tFRAorIHN0YXR1czogTElWRVBBVENIX1NUQVRVU19DSEVDS0VECiAgcmM6IC1YRU5f RUlOVkFMCiA8L3ByZT4KIApAQCAtNTM4LDIwICs1MzgsMjAgQEAgVGhpcyBvcGVyYXRpb24gaXMg c3luY2hyb25vdXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgcHJlZW1wdGlvbi4KIFRoZSBzdHJ1Y3R1 cmUgaXMgYXMgZm9sbG93OgogCiA8cHJlPgotc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1cyB7ICAK LSNkZWZpbmUgWFNQTElDRV9TVEFUVVNfQ0hFQ0tFRCAgICAgIDEgIAotI2RlZmluZSBYU1BMSUNF X1NUQVRVU19BUFBMSUVEICAgICAgMiAgCi0gICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAg ICAgICAvKiBPVVQ6IFhTUExJQ0VfU1RBVEVfKi4gKi8gIAorc3RydWN0IHhlbl9saXZlcGF0Y2hf c3RhdHVzIHsgIAorI2RlZmluZSBMSVZFUEFUQ0hfU1RBVFVTX0NIRUNLRUQgICAgICAxICAKKyNk ZWZpbmUgTElWRVBBVENIX1NUQVRVU19BUFBMSUVEICAgICAgMiAgCisgICAgdWludDMyX3Qgc3Rh dGU7ICAgICAgICAgICAgICAgICAvKiBPVVQ6IExJVkVQQVRDSF9TVEFURV8qLiAqLyAgCiAgICAg aW50MzJfdCByYzsgICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IDAgaWYgbm8gZXJyb3IsIG90 aGVyd2lzZSAtWEVOX0VYWC4gKi8gIAogfTsgIAogCi1zdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNl X2dldCB7ICAKLSAgICB4ZW5feHNwbGljZV9uYW1lX3QgbmFtZTsgICAgICAgIC8qIElOLCB0aGUg bmFtZSBvZiB0aGUgcGF5bG9hZC4gKi8gIAotICAgIHhlbl94c3BsaWNlX3N0YXR1c190IHN0YXR1 czsgICAgLyogSU4vT1VUOiBzdGF0dXMgb2YgdGhlIHBheWxvYWQuICovICAKK3N0cnVjdCB4ZW5f c3lzY3RsX2xpdmVwYXRjaF9nZXQgeyAgCisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsg ICAgICAvKiBJTiwgdGhlIG5hbWUgb2YgdGhlIHBheWxvYWQuICovICAKKyAgICB4ZW5fbGl2ZXBh dGNoX3N0YXR1c190IHN0YXR1czsgIC8qIElOL09VVDogc3RhdHVzIG9mIHRoZSBwYXlsb2FkLiAq LyAgCiB9OyAgCiA8L3ByZT4KIAotIyMjIFhFTl9TWVNDVExfWFNQTElDRV9MSVNUICgyKQorIyMj IFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgKDIpCiAKIFJldHJpZXZlIGFuIGFycmF5IG9mIGFi YnJldmlhdGVkIHN0YXR1cyBhbmQgbmFtZXMgb2YgcGF5bG9hZHMgdGhhdCBhcmUgbG9hZGVkIGlu IHRoZQogaHlwZXJ2aXNvci4KQEAgLTU2OCwxMSArNTY4LDExIEBAIFRoZSBjYWxsZXIgcHJvdmlk ZXM6CiAgICAgaW4gdGhlIGh5cGVyY2FsbCBiZWluZyBhIHByb2Jpbmcgb25lIGFuZCByZXR1cm4g dGhlIG51bWJlciBvZiBwYXlsb2FkcwogICAgIChhbmQgdXBkYXRlIHRoZSBgdmVyc2lvbmApLgog ICogYHBhZGAgLSAqTVVTVCogYmUgemVyby4KLSAqIGBzdGF0dXNgIHZpcnR1YWwgYWRkcmVzcyBv ZiB3aGVyZSB0byB3cml0ZSBgc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1c2AKKyAqIGBzdGF0dXNg IHZpcnR1YWwgYWRkcmVzcyBvZiB3aGVyZSB0byB3cml0ZSBgc3RydWN0IHhlbl9saXZlcGF0Y2hf c3RhdHVzYAogICAgc3RydWN0dXJlcy4gQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJg IG9mIHRoZW0uCiAgKiBgbmFtZWAgLSB2aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUg dGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBwYXlsb2FkLgogICAgQ2FsbGVyICpNVVNUKiBhbGxvY2F0 ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1VU1QqIGJlIG9mCi0gICAqKlhFTl9YU1BMSUNF X05BTUVfU0laRSoqIHNpemUuIE5vdGUgdGhhdCAqKlhFTl9YU1BMSUNFX05BTUVfU0laRSoqIGlu Y2x1ZGVzCisgICAqKlhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFKiogc2l6ZS4gTm90ZSB0aGF0ICoq WEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUqKiBpbmNsdWRlcwogICAgdGhlIE5VTCB0ZXJtaW5hdG9y LgogICogYGxlbmAgLSB2aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUgdGhlIGxlbmd0 aCBvZiBlYWNoIHVuaXF1ZSBuYW1lCiAgICBvZiB0aGUgcGF5bG9hZC4gQ2FsbGVyICpNVVNUKiBh bGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1VU1QqIGJlCkBAIC01OTcsMTQgKzU5 NywxNCBAQCBiZXR3ZWVuIGVhY2ggaW52b2NhdGlvbi4gaWYgdGhlIHZlcnNpb24gZGlmZmVycyBp dCBzaG91bGQgZGlzY2FyZCB0aGUgc3RhbGUKIGRhdGEgYW5kIHN0YXJ0IGZyb20gc2NyYXRjaC4g SXQgaXMgT0sgZm9yIHRoZSB0b29sc3RhY2sgdG8gdXNlIHRoZSBuZXcKIGB2ZXJzaW9uYCBmaWVs ZC4KIAotVGhlIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzYCBzdHJ1Y3R1cmUgY29udGFpbnMg YW4gc3RhdHVzIG9mIHBheWxvYWQgd2hpY2ggaW5jbHVkZXM6CitUaGUgYHN0cnVjdCB4ZW5fbGl2 ZXBhdGNoX3N0YXR1c2Agc3RydWN0dXJlIGNvbnRhaW5zIGFuIHN0YXR1cyBvZiBwYXlsb2FkIHdo aWNoIGluY2x1ZGVzOgogCiAgKiBgc3RhdHVzYCAtIGluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0 dXMgb2YgdGhlIHBheWxvYWQ6Ci0gICAqICpYU1BMSUNFX1NUQVRVU19DSEVDS0VEKiAgKDEpIGxv YWRlZCBhbmQgdGhlIEVMRiBwYXlsb2FkIHNhZmV0eSBjaGVja3MgcGFzc2VkLgotICAgKiAqWFNQ TElDRV9TVEFUVVNfQVBQTElFRCogKDIpIGxvYWRlZCwgY2hlY2tlZCwgYW5kIGFwcGxpZWQuCisg ICAqICpMSVZFUEFUQ0hfU1RBVFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUgRUxGIHBh eWxvYWQgc2FmZXR5IGNoZWNrcyBwYXNzZWQuCisgICAqICpMSVZFUEFUQ0hfU1RBVFVTX0FQUExJ RUQqICgyKSBsb2FkZWQsIGNoZWNrZWQsIGFuZCBhcHBsaWVkLgogICAgKiAgTm8gb3RoZXIgdmFs dWUgaXMgcG9zc2libGUuCiAgKiBgcmNgIC0gLVhFTl9FWFggdHlwZSBlcnJvcnMgZW5jb3VudGVy ZWQgd2hpbGUgcGVyZm9ybWluZyB0aGUgbGFzdAotICAgWFNQTElDRV9BQ1RJT05fKiBvcGVyYXRp b24uIFRoZSBub3JtYWwgdmFsdWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5fRUFHQUlOIHdoaWNoCisg ICBMSVZFUEFUQ0hfQUNUSU9OXyogb3BlcmF0aW9uLiBUaGUgbm9ybWFsIHZhbHVlcyBjYW4gYmUg emVybyBvciAtWEVOX0VBR0FJTiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1lYW46IHN1Y2Nlc3Mg b3Igb3BlcmF0aW9uIGluIHByb2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGltcGx5IGFuIGVycm9y IG9jY3VycmVkLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3RhdHVzYCB3aWxsICoq Tk9UKioKICAgIGhhdmUgY2hhbmdlZC4KQEAgLTYxMiw3ICs2MTIsNyBAQCBUaGUgYHN0cnVjdCB4 ZW5feHNwbGljZV9zdGF0dXNgIHN0cnVjdHVyZSBjb250YWlucyBhbiBzdGF0dXMgb2YgcGF5bG9h ZCB3aGljaCBpbgogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAKIDxwcmU+Ci1zdHJ1Y3Qg eGVuX3N5c2N0bF94c3BsaWNlX2xpc3QgeyAgCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hf bGlzdCB7ICAKICAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgICAgICAgICAgICAgLyog T1VUOiBIeXBlcnZpc29yIHN0YW1wcyB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgdmFyaWVzIGJldHdlZW4gY2FsbHMsIHdlIGFyZSAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHRpbmcgc3Rh bGUgZGF0YS4gKi8gIApAQCAtNjIyLDM4ICs2MjIsMzggQEAgc3RydWN0IHhlbl9zeXNjdGxfeHNw bGljZV9saXN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW1vdW50IG9mIHBheWxvYWRzIGFuZCB2ZXJzaW9uLiAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9VVDogSG93IG1hbnkgcGF5bG9hZHMgbGVmdC4g Ki8gIAogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjog TXVzdCBiZSB6ZXJvLiAqLyAgCi0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5feHNwbGljZV9z dGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0IGhhdmUgZW5vdWdoICAKKyAgICBYRU5fR1VF U1RfSEFORExFXzY0KHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QpIHN0YXR1czsgIC8qIE9VVC4gTXVz dCBoYXZlIGVub3VnaCAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwYWNlIGFsbG9jYXRlIGZvciBuciBvZiB0aGVtLiAqLyAgCiAgICAgWEVOX0dVRVNU X0hBTkRMRV82NChjaGFyKSBpZDsgICAgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbmFtZXMuIEVh Y2ggbWVtYmVyICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTVVTVCBYRU5fWFNQTElDRV9OQU1FX1NJWkUgaW4gc2l6ZS4gIAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9T SVpFIGluIHNpemUuICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovICAKICAgICBYRU5fR1VFU1RfSEFORExFXzY0 KHVpbnQzMikgbGVuOyAgICAgICAgLyogT1VUOiBBcnJheSBvZiBsZW5ndGhzIG9mIG5hbWUncy4g IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhh dmUgbnIgb2YgdGhlbS4gKi8gIAogfTsgIAogPC9wcmU+CiAKLSMjIyBYRU5fU1lTQ1RMX1hTUExJ Q0VfQUNUSU9OICgzKQorIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiAoMykKIAogUGVy Zm9ybSBhbiBvcGVyYXRpb24gb24gdGhlIHBheWxvYWQgc3RydWN0dXJlIHJlZmVyZW5jZWQgYnkg dGhlIGBuYW1lYCBmaWVsZC4KIFRoZSBvcGVyYXRpb24gcmVxdWVzdCBpcyBhc3luY2hyb25vdXMg YW5kIHRoZSBzdGF0dXMgc2hvdWxkIGJlIHJldHJpZXZlZAotYnkgdXNpbmcgZWl0aGVyICoqWEVO X1NZU0NUTF9YU1BMSUNFX0dFVCoqIG9yICoqWEVOX1NZU0NUTF9YU1BMSUNFX0xJU1QqKiBoeXBl cmNhbGwuCitieSB1c2luZyBlaXRoZXIgKipYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQqKiBvciAq KlhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QqKiBoeXBlcmNhbGwuCiAKIFRoZSBjYWxsZXIgcHJv dmlkZXM6CiAKLSAqIEEgJ3N0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBgbmFtZWAgY29udGFpbmlu ZyB0aGUgdW5pcXVlIG5hbWUuCisgKiBBICdzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lYCBgbmFt ZWAgY29udGFpbmluZyB0aGUgdW5pcXVlIG5hbWUuCiAgKiBgY21kYCB0aGUgY29tbWFuZCByZXF1 ZXN0ZWQ6Ci0gICogKlhTUExJQ0VfQUNUSU9OX1VOTE9BRCogKDEpIHVubG9hZCB0aGUgcGF5bG9h ZC4KKyAgKiAqTElWRVBBVENIX0FDVElPTl9VTkxPQUQqICgxKSB1bmxvYWQgdGhlIHBheWxvYWQu CiAgICBBbnkgZnVydGhlciBoeXBlcmNhbGxzIGFnYWluc3QgdGhlIGBuYW1lYCB3aWxsIHJlc3Vs dCBpbiBmYWlsdXJlIHVubGVzcwotICAgKipYRU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FEKiogaHlw ZXJjYWxsIGlzIHBlcmZvbWVkIHdpdGggc2FtZSBgbmFtZWAuCi0gICogKlhTUExJQ0VfQUNUSU9O X1JFVkVSVCogKDIpIHJldmVydCB0aGUgcGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0YWtlcwot ICBtb3JlIHRpbWUgdGhhbiB0aGUgdXBwZXIgYm91bmQgb2YgdGltZSB0aGUgYHJjYCBpbiBgeGVu X3hzcGxpY2Vfc3RhdHVzJwotICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dF VCoqIHdpbGwgYmUgLVhFTl9FQlVTWS4KLSAgKiAqWFNQTElDRV9BQ1RJT05fQVBQTFkqICgzKSBh cHBseSB0aGUgcGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0YWtlcwotICBtb3JlIHRpbWUgdGhh biB0aGUgdXBwZXIgYm91bmQgb2YgdGltZSB0aGUgYHJjYCBpbiBgeGVuX3hzcGxpY2Vfc3RhdHVz JwotICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCoqIHdpbGwgYmUgLVhF Tl9FQlVTWS4KLSAgKiAqWFNQTElDRV9BQ1RJT05fUkVQTEFDRSogKDQpIHJldmVydCBhbGwgYXBw bGllZCBwYXlsb2FkcyBhbmQgYXBwbHkgdGhpcworICAgKipYRU5fU1lTQ1RMX0xJVkVQQVRDSF9V UExPQUQqKiBoeXBlcmNhbGwgaXMgcGVyZm9tZWQgd2l0aCBzYW1lIGBuYW1lYC4KKyAgKiAqTElW RVBBVENIX0FDVElPTl9SRVZFUlQqICgyKSByZXZlcnQgdGhlIHBheWxvYWQuIElmIHRoZSBvcGVy YXRpb24gdGFrZXMKKyAgbW9yZSB0aW1lIHRoYW4gdGhlIHVwcGVyIGJvdW5kIG9mIHRpbWUgdGhl IGByY2AgaW4gYHhlbl9saXZlcGF0Y2hfc3RhdHVzJworICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZ U0NUTF9MSVZFUEFUQ0hfR0VUKiogd2lsbCBiZSAtWEVOX0VCVVNZLgorICAqICpMSVZFUEFUQ0hf QUNUSU9OX0FQUExZKiAoMykgYXBwbHkgdGhlIHBheWxvYWQuIElmIHRoZSBvcGVyYXRpb24gdGFr ZXMKKyAgbW9yZSB0aW1lIHRoYW4gdGhlIHVwcGVyIGJvdW5kIG9mIHRpbWUgdGhlIGByY2AgaW4g YHhlbl9saXZlcGF0Y2hfc3RhdHVzJworICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9MSVZF UEFUQ0hfR0VUKiogd2lsbCBiZSAtWEVOX0VCVVNZLgorICAqICpMSVZFUEFUQ0hfQUNUSU9OX1JF UExBQ0UqICg0KSByZXZlcnQgYWxsIGFwcGxpZWQgcGF5bG9hZHMgYW5kIGFwcGx5IHRoaXMKICAg cGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0YWtlcyBtb3JlIHRpbWUgdGhhbiB0aGUgdXBwZXIg Ym91bmQgb2YgdGltZQotICB0aGUgYHJjYCBpbiBgeGVuX3hzcGxpY2Vfc3RhdHVzJyByZXRyaWV2 ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCoqCisgIHRoZSBgcmNgIGluIGB4ZW5fbGl2 ZXBhdGNoX3N0YXR1cycgcmV0cmlldmVkIHZpYSAqKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCoq CiAgIHdpbGwgYmUgLVhFTl9FQlVTWS4KICAqIGB0aW1lYCB0aGUgdXBwZXIgYm91bmQgb2YgdGlt ZSAobXMpIHRoZSBjbWQgc2hvdWxkIHRha2UuIFplcm8gbWVhbnMgaW5maW5pdGUuCiAgICBJZiB3 aXRoaW4gdGhlIHRpbWUgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBzdWNjZWVkIHRoZSBvcGVyYXRp b24gd291bGQgZ28gaW4KQEAgLTY2NSwxMyArNjY1LDEzIEBAIFRoZSByZXR1cm4gdmFsdWUgd2ls bCBiZSB6ZXJvIHVubGVzcyB0aGUgcHJvdmlkZWQgZmllbGRzIGFyZSBpbmNvcnJlY3QuCiBUaGUg c3RydWN0dXJlIGlzIGFzIGZvbGxvdzoKIAogPHByZT4KLSNkZWZpbmUgWFNQTElDRV9BQ1RJT05f VU5MT0FEICAxICAKLSNkZWZpbmUgWFNQTElDRV9BQ1RJT05fUkVWRVJUICAyICAKLSNkZWZpbmUg WFNQTElDRV9BQ1RJT05fQVBQTFkgICAzICAKLSNkZWZpbmUgWFNQTElDRV9BQ1RJT05fUkVQTEFD RSA0ICAKLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uIHsgIAotICAgIHhlbl94c3Bs aWNlX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2gu ICovICAKLSAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46 IFhTUExJQ0VfQUNUSU9OXyogKi8gIAorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1VOTE9BRCAg MSAgCisjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUICAyICAKKyNkZWZpbmUgTElWRVBB VENIX0FDVElPTl9BUFBMWSAgIDMgIAorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0Ug NCAgCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uIHsgIAorICAgIHhlbl9saXZl cGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2gu ICovICAKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46 IExJVkVQQVRDSF9BQ1RJT05fKiAqLyAgCiAgICAgdWludDMyX3QgdGltZTsgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIElOOiBaZXJvIGlmIG5vIHRpbWVvdXQuICovICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9yIHVwcGVyIGJvdW5kIG9mIHRp bWUgKG1zKSAqLyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBmb3Igb3BlcmF0aW9uIHRvIHRha2UuICovICAKQEAgLTY3OSwxMSArNjc5LDExIEBAIHN0 cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uIHsKIAogPC9wcmU+CiAKLSMjIFN0YXRlIGRp YWdyYW1zIG9mIFhTUExJQ0VfQUNUSU9OIGNvbW1hbmRzLgorIyMgU3RhdGUgZGlhZ3JhbXMgb2Yg TElWRVBBVENIX0FDVElPTiBjb21tYW5kcy4KIAogVGhlcmUgaXMgYSBzdHJpY3Qgb3JkZXJpbmcg c3RhdGUgb2Ygd2hhdCB0aGUgY29tbWFuZHMgY2FuIGJlLgotVGhlIFhTUExJQ0VfQUNUSU9OIHBy ZWZpeCBoYXMgYmVlbiBkcm9wcGVkIHRvIGVhc3kgcmVhZGluZyBhbmQKLWRvZXMgbm90IGluY2x1 ZGUgdGhlIFhTUExJQ0VfU1RBVEVTOgorVGhlIExJVkVQQVRDSF9BQ1RJT04gcHJlZml4IGhhcyBi ZWVuIGRyb3BwZWQgdG8gZWFzeSByZWFkaW5nIGFuZAorZG9lcyBub3QgaW5jbHVkZSB0aGUgTElW RVBBVENIX1NUQVRFUzoKIAogPHByZT4KICAgICAgICAgICAgICAgLy0+XCAgCkBAIC02OTMsMTEg KzY5MywxMSBAQCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBYU1BMSUNFX1NUQVRFUzoKICAgICAgICAg ICAgICAgICAgXC0tLS0tLS0tLS0tLS0tLS0tLS08LS0tLS0tLS0tLS0tLS8gIAogCiA8L3ByZT4K LSMjIFN0YXRlIHRyYW5zaXRpb24gdGFibGUgb2YgWFNQTElDRV9BQ1RJT04gY29tbWFuZHMgYW5k IFhTUExJQ0VfU1RBVFVTLgorIyMgU3RhdGUgdHJhbnNpdGlvbiB0YWJsZSBvZiBMSVZFUEFUQ0hf QUNUSU9OIGNvbW1hbmRzIGFuZCBMSVZFUEFUQ0hfU1RBVFVTLgogCiBOb3RlIHRoYXQ6CiAKLSAt IFRoZSBDSEVDS0VEIHN0YXRlIGlzIHRoZSBzdGFydGluZyBvbmUgYWNoaWV2ZWQgd2l0aCAqWEVO X1NZU0NUTF9YU1BMSUNFX1VQTE9BRCogaHlwZXJjYWxsLgorIC0gVGhlIENIRUNLRUQgc3RhdGUg aXMgdGhlIHN0YXJ0aW5nIG9uZSBhY2hpZXZlZCB3aXRoICpYRU5fU1lTQ1RMX0xJVkVQQVRDSF9V UExPQUQqIGh5cGVyY2FsbC4KICAtIFRoZSBSRVZFUlQgb3BlcmF0aW9uIG9uIHN1Y2Nlc3Mgd2ls bCBhdXRvbWF0aWNhbGx5IG1vdmUgdG8gdGhlIENIRUNLRUQgc3RhdGUuCiAgLSBUaGVyZSBhcmUg dHdvIFNUQVRFUzogQ0hFQ0tFRCBhbmQgQVBQTElFRC4KICAtIFRoZXJlIGFyZSBmb3VyIGFjdGlv bnMgKGFrYSBjb21tYW5kcyk6IEFQUExZLCBSRVBMQUNFLCBSRVZFUlQsIGFuZCBVTkxPQUQuCkBA IC03MzUsMTAgKzczNSwxMCBAQCBBbGwgdGhlIG90aGVyIHN0YXRlIHRyYW5zaXRpb25zIGFyZSBp bnZhbGlkLgogCiBUaGUgbm9ybWFsIHNlcXVlbmNlIG9mIGV2ZW50cyBpcyB0bzoKIAotIDEuICpY RU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FEKiB0byB1cGxvYWQgdGhlIHBheWxvYWQuIElmIHRoZXJl IGFyZSBlcnJvcnMgKlNUT1AqIGhlcmUuCi0gMi4gKlhFTl9TWVNDVExfWFNQTElDRV9HRVQqIHRv IGNoZWNrIHRoZSBgLT5yY2AuIElmICotWEVOX0VBR0FJTiogc3Bpbi4gSWYgemVybyBnbyB0byBu ZXh0IHN0ZXAuCi0gMy4gKlhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT04qIHdpdGggKlhTUExJQ0Vf QUNUSU9OX0FQUExZKiB0byBhcHBseSB0aGUgcGF0Y2guCi0gNC4gKlhFTl9TWVNDVExfWFNQTElD RV9HRVQqIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluICotWEVOX0VBR0FJTiogc3Bpbi4gSWYg emVybyBleGl0IHdpdGggc3VjY2Vzcy4KKyAxLiAqWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FE KiB0byB1cGxvYWQgdGhlIHBheWxvYWQuIElmIHRoZXJlIGFyZSBlcnJvcnMgKlNUT1AqIGhlcmUu CisgMi4gKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCogdG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYg Ki1YRU5fRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGdvIHRvIG5leHQgc3RlcC4KKyAzLiAqWEVOX1NZ U0NUTF9MSVZFUEFUQ0hfQUNUSU9OKiB3aXRoICpMSVZFUEFUQ0hfQUNUSU9OX0FQUExZKiB0byBh cHBseSB0aGUgcGF0Y2guCisgNC4gKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCogdG8gY2hlY2sg dGhlIGAtPnJjYC4gSWYgaW4gKi1YRU5fRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGV4aXQgd2l0aCBz dWNjZXNzLgogCiAKICMjIEFkZGVuZHVtCkBAIC04MDksMTQgKzgwOSwxNCBAQCBIb3RwYXRjaCBn ZW5lcmF0aW9uIG9mdGVuIHJlcXVpcmVzIHN1cHBvcnQgZm9yIGNvbXBpbGluZyB0aGUgdGFyZ2V0 CiB3aXRoIC1mZnVuY3Rpb24tc2VjdGlvbnMgLyAtZmRhdGEtc2VjdGlvbnMuICBDaGFuZ2VzIHdv dWxkIGhhdmUgdG8KIGJlIGRvbmUgdG8gdGhlIGxpbmtlciBzY3JpcHRzIHRvIHN1cHBvcnQgdGhp cy4KIAotIyMjIEdlbmVyYXRpb24gb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMKKyMjIyBHZW5lcmF0 aW9uIG9mIExpdmUgUGF0Y2ggRUxGIHBheWxvYWRzCiAKIFRoZSBkZXNpZ24gb2YgdGhhdCBpcyBu b3QgZGlzY3Vzc2VkIGluIHRoaXMgZGVzaWduLgogCiBUaGlzIGlzIGltcGxlbWVudGVkIGluIGEg c2VwZXJhdGUgdG9vbCB3aGljaCBsaXZlcyBpbiBhIHNlcGVyYXRlCiBHSVQgcmVwby4KIAotQ3Vy cmVudGx5IGl0IHJlc2lkZXMgYXQgaHR0cHM6Ly9naXRodWIuY29tL3Jvc3NsYWdlcndhbGwveHNw bGljZS1idWlsZAorQ3VycmVudGx5IGl0IHJlc2lkZXMgYXQgaHR0cHM6Ly9naXRodWIuY29tL3Jv c3NsYWdlcndhbGwvbGl2ZXBhdGNoLWJ1aWxkCiAKICMjIyBFeGNlcHRpb24gdGFibGVzIGFuZCBz eW1ib2wgdGFibGVzIGdyb3d0aAogCkBAIC04NzksOSArODc5LDkgQEAgVGhpcyBpcyBpbXBsZW1l bnRlZCBpbiB0aGUgWGVuIFByb2plY3QgaHlwZXJ2aXNvci4KIAogT25seSB0aGUgcHJpdmlsZWdl ZCBkb21haW4gc2hvdWxkIGJlIGFsbG93ZWQgdG8gZG8gdGhpcyBvcGVyYXRpb24uCiAKLSMjIyB4 U3BsaWNlIGludGVyZGVwZW5kZW5jaWVzCisjIyMgTGl2ZSBwYXRjaCBpbnRlcmRlcGVuZGVuY2ll cwogCi14U3BsaWNlIHBhdGNoZXMgaW50ZXJkZXBlbmRlbmNpZXMgYXJlIHRyaWNreS4KK0xpdmUg cGF0Y2ggcGF0Y2hlcyBpbnRlcmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5LgogCiBUaGVyZSBhcmUg dGhlIHdheXMgdGhpcyBjYW4gYmUgYWRkcmVzc2VkOgogICogQSBzaW5nbGUgbGFyZ2UgcGF0Y2gg dGhhdCBzdWJzdW1lcyBhbmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMuCkBAIC05MTgsNyAr OTE4LDcgQEAgYnVpbGQtaWQuCiAKICMgTm90IFlldCBEb25lCiAKLVRoaXMgaXMgZm9yIGZ1cnRo ZXIgZGV2ZWxvcG1lbnQgb2YgeFNwbGljZS4KK1RoaXMgaXMgZm9yIGZ1cnRoZXIgZGV2ZWxvcG1l bnQgb2YgbGl2ZSBwYXRjaGluZy4KIAogIyMgVE9ETyBHb2FscwogCkBAIC05MzAsNyArOTMwLDcg QEAgVGhlIGltcGxlbWVudGF0aW9uIG11c3QgYWxzbyBoYXZlIGEgbWVjaGFuaXNtIGZvciAoaW4g bm8gcGFydGljdWxhciBvcmRlcik6CiAgKiBEZWFsIHdpdGggTk1JL01DRSBjaGVja3MgZHVyaW5n IHBhdGNoaW5nIGluc3RlYWQgb2YgaWdub3JpbmcgdGhlbS4KICAqIEZ1cnRoZXIgc2FmZXR5IGNo ZWNrcyAoYmxhY2tsaXN0IG9mIHdoaWNoIGZ1bmN0aW9ucyBjYW5ub3QgYmUgcGF0Y2hlZCwgY2hl Y2sKICAgIHRoZSBzdGFjaywgbWFrZSBzdXJlIHRoZSBwYXlsb2FkIGlzIGJ1aWx0IHdpdGggc2Ft ZSBjb21waWxlciBhcyBoeXBlcnZpc29yKS4KLSAgIFNwZWNpZmljYWxseSB3ZSB3YW50IHRvIG1h a2Ugc3VyZSB0aGF0IHhTcGxpY2UgY29kZXBhdGhzIGNhbm5vdCBiZSBwYXRjaGVkLgorICAgU3Bl Y2lmaWNhbGx5IHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgbGl2ZSBwYXRjaGluZyBjb2RlcGF0 aHMgY2Fubm90IGJlIHBhdGNoZWQuCiAgKiBOT1Agb3V0IHRoZSBjb2RlIHNlcXVlbmNlIGlmIGBu ZXdfc2l6ZWAgaXMgemVyby4KICAqIERlYWwgd2l0aCBvdGhlciByZWxvY2F0aW9uIHR5cGVzOiAg Ul9YODZfNjRfWzgsMTYsMzIsMzJTXSwgUl9YODZfNjRfUENbOCwxNiw2NF0KICAgIGluIHBheWxv YWQgZmlsZS4KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94 ZW4veGVuLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUK aW5kZXggMGIxYzk1NS4uNTBhYTYwMiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L3Bv bGljeS9tb2R1bGVzL3hlbi94ZW4udGUKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9t b2R1bGVzL3hlbi94ZW4udGUKQEAgLTc0LDcgKzc0LDcgQEAgYWxsb3cgZG9tMF90IHhlbl90Onhl bjIgewogICAgIGdldF9zeW1ib2wKICAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCiAgICAgZ2V0 X2NwdV9mZWF0dXJlc2V0Ci0gICAgeHNwbGljZV9vcAorICAgIGxpdmVwYXRjaF9vcAogfTsKIAog IyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4K ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMv aW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggZGM1NDYxMi4uNmFlMWEyYiAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5j dHJsLmgKQEAgLTI2MTAsMTUgKzI2MTAsMTUgQEAgY29uc3QgdWludDMyX3QgKnhjX2dldF9mZWF0 dXJlX2RlZXBfZGVwcyh1aW50MzJfdCBmZWF0dXJlKTsKIAogI2VuZGlmCiAKLWludCB4Y194c3Bs aWNlX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAgICAgICAgICAgICBjaGFy ICpuYW1lLCB1bnNpZ25lZCBjaGFyICpwYXlsb2FkLCB1aW50MzJfdCBzaXplKTsKK2ludCB4Y19s aXZlcGF0Y2hfdXBsb2FkKHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAgICAgICAgICAgICAgICAg ICAgY2hhciAqbmFtZSwgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwgdWludDMyX3Qgc2l6ZSk7CiAK LWludCB4Y194c3BsaWNlX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAgICAgICAg ICBjaGFyICpuYW1lLAotICAgICAgICAgICAgICAgICAgIHhlbl94c3BsaWNlX3N0YXR1c190ICpz dGF0dXMpOworaW50IHhjX2xpdmVwYXRjaF9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAg ICAgICAgICAgICAgICBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgeGVuX2xpdmVw YXRjaF9zdGF0dXNfdCAqc3RhdHVzKTsKIAogLyoKLSAqIFRoZSBoZWFydCBvZiB0aGlzIGZ1bmN0 aW9uIGlzIHRvIGdldCBhbiBhcnJheSBvZiB4ZW5feHNwbGljZV9zdGF0dXNfdC4KKyAqIFRoZSBo ZWFydCBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGdldCBhbiBhcnJheSBvZiB4ZW5fbGl2ZXBhdGNo X3N0YXR1c190LgogICoKICAqIEhvd2V2ZXIgaXQgaXMgY29tcGxleCBiZWNhdXNlIGl0IGhhcyB0 byBkZWFsIHdpdGggdGhlIGh5cGVydmlzb3IKICAqIHJldHVybmluZyBzb21lIG9mIHRoZSByZXF1 ZXN0ZWQgZGF0YSBvciBkYXRhIGJlaW5nIHN0YWxlCkBAIC0yNjM4LDEwICsyNjM4LDEwIEBAIGlu dCB4Y194c3BsaWNlX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKICAqIG51bWJlciBvZiBlbnRyaWVz IHRoYXQgJ2luZm8nLCAnbmFtZScsIGFuZCAnbGVuJyBhcnJheXMgY2FuCiAgKiBiZSBmaWxsZWQg dXAgd2l0aC4KICAqCi0gKiBFYWNoIGVudHJ5IGluIHRoZSAnbmFtZScgYXJyYXkgaXMgZXhwZWN0 ZWQgdG8gYmUgb2YgWEVOX1hTUExJQ0VfTkFNRV9TSVpFCisgKiBFYWNoIGVudHJ5IGluIHRoZSAn bmFtZScgYXJyYXkgaXMgZXhwZWN0ZWQgdG8gYmUgb2YgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUK ICAqIGxlbmd0aC4KICAqCi0gKiBFYWNoIGVudHJ5IGluIHRoZSAnaW5mbycgYXJyYXkgaXMgZXhw ZWN0ZWQgdG8gYmUgb2YgeGVuX3hzcGxpY2Vfc3RhdHVzX3QKKyAqIEVhY2ggZW50cnkgaW4gdGhl ICdpbmZvJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190 CiAgKiBzdHJ1Y3R1cmUgc2l6ZS4KICAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnbGVuJyBhcnJh eSBpcyBleHBlY3RlZCB0byBiZSBvZiB1aW50MzJfdCBzaXplLgpAQCAtMjY1NSwxMCArMjY1NSwx MCBAQCBpbnQgeGNfeHNwbGljZV9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCiAgKiB3aWxsIGNvbnRh aW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaGFkIGJlZW4gc3VjY2VzZnVsbHkKICAqIHJl dHJpZXZlZCAoaWYgYW55KS4KICAqLwotaW50IHhjX3hzcGxpY2VfbGlzdCh4Y19pbnRlcmZhY2Ug KnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50IHN0YXJ0LAotICAgICAgICAgICAg ICAgICAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCAqaW5mbywgY2hhciAqbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgKmxlbiwgdW5zaWduZWQgaW50ICpkb25lLAotICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmxlZnQpOworaW50IHhjX2xpdmVwYXRjaF9saXN0KHhj X2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCisg ICAgICAgICAgICAgICAgICAgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCAqaW5mbywgY2hhciAq bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbGVuLCB1bnNpZ25lZCBpbnQg KmRvbmUsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpsZWZ0KTsKIAogLyoK ICAqIFRoZSBvcGVyYXRpb25zIGFyZSBhc3luY2hyb25vdXMgYW5kIHRoZSBoeXBlcnZpc29yIG1h eSB0YWtlIGEgd2hpbGUKQEAgLTI2NjYsMTAgKzI2NjYsMTAgQEAgaW50IHhjX3hzcGxpY2VfbGlz dCh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50IHN0YXJ0 LAogICogb3BlcmF0aW9uIGlmIGl0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQgd2l0aGluIHRoZSBz cGVjaWZpZWQgdGltZQogICogKGluIG1zKS4gVmFsdWUgb2YgMCBtZWFucyBsZXQgaHlwZXJ2aXNv ciBkZWNpZGUgdGhlIGJlc3QgdGltZW91dC4KICAqLwotaW50IHhjX3hzcGxpY2VfYXBwbHkoeGNf aW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOwotaW50IHhjX3hz cGxpY2VfcmV2ZXJ0KHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1l b3V0KTsKLWludCB4Y194c3BsaWNlX3VubG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFt ZSwgdWludDMyX3QgdGltZW91dCk7Ci1pbnQgeGNfeHNwbGljZV9yZXBsYWNlKHhjX2ludGVyZmFj ZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KTsKK2ludCB4Y19saXZlcGF0Y2hf YXBwbHkoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOwor aW50IHhjX2xpdmVwYXRjaF9yZXZlcnQoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVp bnQzMl90IHRpbWVvdXQpOworaW50IHhjX2xpdmVwYXRjaF91bmxvYWQoeGNfaW50ZXJmYWNlICp4 Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOworaW50IHhjX2xpdmVwYXRjaF9yZXBs YWNlKHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KTsKIAog LyogQ29tcGF0IHNoaW1zICovCiAjaW5jbHVkZSAieGVuY3RybF9jb21wYXQuaCIKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCBk NzNmNjIyLi4wNmU5MGRlIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIv dG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC02OTYsMTYgKzY5NiwxNiBAQCBpbnQgeGNfaHZtX2lu amVjdF90cmFwKAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHhjX3hzcGxpY2VfdXBsb2FkKHhj X2ludGVyZmFjZSAqeGNoLAotICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwKLSAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBzaXplKQoraW50IHhjX2xpdmVwYXRjaF91cGxvYWQoeGNfaW50ZXJm YWNlICp4Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IHNpemUpCiB7CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVfU1lTQ1RM OwogICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihjaGFyLCBsb2NhbCk7CiAgICAgREVDTEFS RV9IWVBFUkNBTExfQk9VTkNFKG5hbWUsIDAgLyogbGF0ZXIgKi8sIFhDX0hZUEVSQ0FMTF9CVUZG RVJfQk9VTkNFX0lOKTsKLSAgICB4ZW5feHNwbGljZV9uYW1lX3QgZGVmX25hbWUgPSB7IC5wYWQg PSB7IDAsIDAsIDAgfSB9OworICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IGRlZl9uYW1lID0geyAu cGFkID0geyAwLCAwLCAwIH0gfTsKIAogICAgIGlmICggIW5hbWUgfHwgIXBheWxvYWQgKQogICAg IHsKQEAgLTcxNCw3ICs3MTQsNyBAQCBpbnQgeGNfeHNwbGljZV91cGxvYWQoeGNfaW50ZXJmYWNl ICp4Y2gsCiAgICAgfQogCiAgICAgZGVmX25hbWUuc2l6ZSA9IHN0cmxlbihuYW1lKSArIDE7Ci0g ICAgaWYgKCBkZWZfbmFtZS5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9TSVpFICkKKyAgICBpZiAo IGRlZl9uYW1lLnNpemUgPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewogICAgICAg ICBlcnJubyA9IEVJTlZBTDsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNzMzLDE0ICs3MzMsMTQg QEAgaW50IHhjX3hzcGxpY2VfdXBsb2FkKHhjX2ludGVyZmFjZSAqeGNoLAogICAgIH0KICAgICBt ZW1jcHkobG9jYWwsIHBheWxvYWQsIHNpemUpOwogCi0gICAgc3lzY3RsLmNtZCA9IFhFTl9TWVND VExfeHNwbGljZV9vcDsKLSAgICBzeXNjdGwudS54c3BsaWNlLmNtZCA9IFhFTl9TWVNDVExfWFNQ TElDRV9VUExPQUQ7Ci0gICAgc3lzY3RsLnUueHNwbGljZS5wYWQgPSAwOwotICAgIHN5c2N0bC51 LnhzcGxpY2UudS51cGxvYWQuc2l6ZSA9IHNpemU7Ci0gICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUo c3lzY3RsLnUueHNwbGljZS51LnVwbG9hZC5wYXlsb2FkLCBsb2NhbCk7CisgICAgc3lzY3RsLmNt ZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC5jbWQg PSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQ7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnBh ZCA9IDA7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUudXBsb2FkLnNpemUgPSBzaXplOworICAg IHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51LnVwbG9hZC5wYXlsb2Fk LCBsb2NhbCk7CiAKLSAgICBzeXNjdGwudS54c3BsaWNlLnUudXBsb2FkLm5hbWUgPSBkZWZfbmFt ZTsKLSAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS54c3BsaWNlLnUudXBsb2FkLm5h bWUubmFtZSwgbmFtZSk7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUudXBsb2FkLm5hbWUgPSBk ZWZfbmFtZTsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS5saXZlcGF0Y2gudS51 cGxvYWQubmFtZS5uYW1lLCBuYW1lKTsKIAogICAgIHJjID0gZG9fc3lzY3RsKHhjaCwgJnN5c2N0 bCk7CiAKQEAgLTc1MCwxNCArNzUwLDE0IEBAIGludCB4Y194c3BsaWNlX3VwbG9hZCh4Y19pbnRl cmZhY2UgKnhjaCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4Y194c3BsaWNlX2dldCh4Y19p bnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAotICAgICAgICAg ICAgICAgICAgIHhlbl94c3BsaWNlX3N0YXR1c190ICpzdGF0dXMpCitpbnQgeGNfbGl2ZXBhdGNo X2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUs CisgICAgICAgICAgICAgICAgICAgICB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190ICpzdGF0dXMpCiB7 CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVfU1lTQ1RMOwogICAgIERFQ0xBUkVfSFlQRVJDQUxM X0JPVU5DRShuYW1lLCAwIC8qYWRqdXN0IGxhdGVyICovLCBYQ19IWVBFUkNBTExfQlVGRkVSX0JP VU5DRV9JTik7Ci0gICAgeGVuX3hzcGxpY2VfbmFtZV90IGRlZl9uYW1lID0geyAucGFkID0geyAw LCAwLCAwIH0gfTsKKyAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBkZWZfbmFtZSA9IHsgLnBhZCA9 IHsgMCwgMCwgMCB9IH07CiAKICAgICBpZiAoICFuYW1lICkKICAgICB7CkBAIC03NjYsNyArNzY2 LDcgQEAgaW50IHhjX3hzcGxpY2VfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICAgIH0KIAogICAg IGRlZl9uYW1lLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwotICAgIGlmICggZGVmX25hbWUuc2l6 ZSA+IFhFTl9YU1BMSUNFX05BTUVfU0laRSApCisgICAgaWYgKCBkZWZfbmFtZS5zaXplID4gWEVO X0xJVkVQQVRDSF9OQU1FX1NJWkUgKQogICAgIHsKICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAg ICAgICAgIHJldHVybiAtMTsKQEAgLTc3NywyNyArNzc3LDI3IEBAIGludCB4Y194c3BsaWNlX2dl dCh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICBpZiAoIHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhj aCwgbmFtZSkgKQogICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBzeXNjdGwuY21kID0gWEVOX1NZ U0NUTF94c3BsaWNlX29wOwotICAgIHN5c2N0bC51LnhzcGxpY2UuY21kID0gWEVOX1NZU0NUTF9Y U1BMSUNFX0dFVDsKLSAgICBzeXNjdGwudS54c3BsaWNlLnBhZCA9IDA7CisgICAgc3lzY3RsLmNt ZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC5jbWQg PSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQ7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnBhZCA9 IDA7CiAKLSAgICBzeXNjdGwudS54c3BsaWNlLnUuZ2V0LnN0YXR1cy5zdGF0ZSA9IDA7Ci0gICAg c3lzY3RsLnUueHNwbGljZS51LmdldC5zdGF0dXMucmMgPSAwOworICAgIHN5c2N0bC51LmxpdmVw YXRjaC51LmdldC5zdGF0dXMuc3RhdGUgPSAwOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51Lmdl dC5zdGF0dXMucmMgPSAwOwogCi0gICAgc3lzY3RsLnUueHNwbGljZS51LmdldC5uYW1lID0gZGVm X25hbWU7Ci0gICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUueHNwbGljZS51LmdldC5u YW1lLm5hbWUsIG5hbWUpOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51LmdldC5uYW1lID0gZGVm X25hbWU7CisgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUubGl2ZXBhdGNoLnUuZ2V0 Lm5hbWUubmFtZSwgbmFtZSk7CiAKICAgICByYyA9IGRvX3N5c2N0bCh4Y2gsICZzeXNjdGwpOwog CiAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgbmFtZSk7CiAKLSAgICBtZW1jcHko c3RhdHVzLCAmc3lzY3RsLnUueHNwbGljZS51LmdldC5zdGF0dXMsIHNpemVvZigqc3RhdHVzKSk7 CisgICAgbWVtY3B5KHN0YXR1cywgJnN5c2N0bC51LmxpdmVwYXRjaC51LmdldC5zdGF0dXMsIHNp emVvZigqc3RhdHVzKSk7CiAKICAgICByZXR1cm4gcmM7CiB9CiAKIC8qCi0gKiBUaGUgaGVhcnQg b2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZXQgYW4gYXJyYXkgb2YgeGVuX3hzcGxpY2Vfc3RhdHVz X3QuCisgKiBUaGUgaGVhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZXQgYW4gYXJyYXkgb2Yg eGVuX2xpdmVwYXRjaF9zdGF0dXNfdC4KICAqCiAgKiBIb3dldmVyIGl0IGlzIGNvbXBsZXggYmVj YXVzZSBpdCBoYXMgdG8gZGVhbCB3aXRoIHRoZSBoeXBlcnZpc29yCiAgKiByZXR1cm5pbmcgc29t ZSBvZiB0aGUgcmVxdWVzdGVkIGRhdGEgb3IgZGF0YSBiZWluZyBzdGFsZQpAQCAtODE3LDEwICs4 MTcsMTAgQEAgaW50IHhjX3hzcGxpY2VfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICogbnVtYmVy IG9mIGVudHJpZXMgdGhhdCAnaW5mbycsICduYW1lJywgYW5kICdsZW4nIGFycmF5cyBjYW4KICAq IGJlIGZpbGxlZCB1cCB3aXRoLgogICoKLSAqIEVhY2ggZW50cnkgaW4gdGhlICduYW1lJyBhcnJh eSBpcyBleHBlY3RlZCB0byBiZSBvZiBYRU5fWFNQTElDRV9OQU1FX1NJWkUKKyAqIEVhY2ggZW50 cnkgaW4gdGhlICduYW1lJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiBYRU5fTElWRVBBVENI X05BTUVfU0laRQogICogbGVuZ3RoLgogICoKLSAqIEVhY2ggZW50cnkgaW4gdGhlICdpbmZvJyBh cnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB4ZW5feHNwbGljZV9zdGF0dXNfdAorICogRWFjaCBl bnRyeSBpbiB0aGUgJ2luZm8nIGFycmF5IGlzIGV4cGVjdGVkIHRvIGJlIG9mIHhlbl9saXZlcGF0 Y2hfc3RhdHVzX3QKICAqIHN0cnVjdHVyZSBzaXplLgogICoKICAqIEVhY2ggZW50cnkgaW4gdGhl ICdsZW4nIGFycmF5IGlzIGV4cGVjdGVkIHRvIGJlIG9mIHVpbnQzMl90IHNpemUuCkBAIC04MzQs MTEgKzgzNCwxMSBAQCBpbnQgeGNfeHNwbGljZV9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCiAgKiB3 aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaGFkIGJlZW4gc3VjY2VzZnVs bHkKICAqIHJldHJpZXZlZCAoaWYgYW55KS4KICAqLwotaW50IHhjX3hzcGxpY2VfbGlzdCh4Y19p bnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50IHN0YXJ0LAotICAg ICAgICAgICAgICAgICAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCAqaW5mbywKLSAgICAgICAgICAg ICAgICAgICAgY2hhciAqbmFtZSwgdWludDMyX3QgKmxlbiwKLSAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50ICpkb25lLAotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmxl ZnQpCitpbnQgeGNfbGl2ZXBhdGNoX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGlu dCBtYXgsIHVuc2lnbmVkIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICB4ZW5fbGl2 ZXBhdGNoX3N0YXR1c190ICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUs IHVpbnQzMl90ICpsZW4sCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpkb25l LAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbGVmdCkKIHsKICAgICBpbnQg cmM7CiAgICAgREVDTEFSRV9TWVNDVEw7CkBAIC04NTcsMTYgKzg1NywxNiBAQCBpbnQgeGNfeHNw bGljZV9saXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBp bnQgc3RhcnQsCiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBzeXNjdGwuY21kID0g WEVOX1NZU0NUTF94c3BsaWNlX29wOwotICAgIHN5c2N0bC51LnhzcGxpY2UuY21kID0gWEVOX1NZ U0NUTF9YU1BMSUNFX0xJU1Q7Ci0gICAgc3lzY3RsLnUueHNwbGljZS5wYWQgPSAwOwotICAgIHN5 c2N0bC51LnhzcGxpY2UudS5saXN0LnZlcnNpb24gPSAwOwotICAgIHN5c2N0bC51LnhzcGxpY2Uu dS5saXN0LmlkeCA9IHN0YXJ0OwotICAgIHN5c2N0bC51LnhzcGxpY2UudS5saXN0LnBhZCA9IDA7 CisgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5c2N0bC51 LmxpdmVwYXRjaC5jbWQgPSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUOworICAgIHN5c2N0bC51 LmxpdmVwYXRjaC5wYWQgPSAwOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QudmVyc2lv biA9IDA7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUubGlzdC5pZHggPSBzdGFydDsKKyAgICBz eXNjdGwudS5saXZlcGF0Y2gudS5saXN0LnBhZCA9IDA7CiAKICAgICBtYXhfYmF0Y2hfc3ogPSBt YXg7CiAgICAgLyogQ29udmllbmNlIHZhbHVlLiAqLwotICAgIHN6ID0gc2l6ZW9mKCpuYW1lKSAq IFhFTl9YU1BMSUNFX05BTUVfU0laRTsKKyAgICBzeiA9IHNpemVvZigqbmFtZSkgKiBYRU5fTElW RVBBVENIX05BTUVfU0laRTsKICAgICAqZG9uZSA9IDA7CiAgICAgKmxlZnQgPSAwOwogICAgIGRv IHsKQEAgLTg4Niw3ICs4ODYsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhjX2ludGVyZmFjZSAq eGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAKICAgICAgICAgbnIg PSBtaW4obWF4IC0gKmRvbmUsIG1heF9iYXRjaF9zeik7CiAKLSAgICAgICAgc3lzY3RsLnUueHNw bGljZS51Lmxpc3QubnIgPSBucjsKKyAgICAgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUubGlzdC5u ciA9IG5yOwogICAgICAgICAvKiBGaXggdGhlIHNpemUgKG1heSB2YXJ5IGJldHdlZW4gaHlwZXJj YWxscykuICovCiAgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUoaW5mbywgbnIgKiBz aXplb2YoKmluZm8pKTsKICAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShuYW1lLCBu ciAqIG5yKTsKQEAgLTkwOCw5ICs5MDgsOSBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhjX2ludGVy ZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAgICAgICAg IGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUoc3lzY3RsLnUueHNwbGljZS51Lmxpc3Quc3RhdHVzLCBpbmZvKTsKLSAgICAgICAgc2V0 X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUueHNwbGljZS51Lmxpc3QubmFtZSwgbmFtZSk7Ci0g ICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LnhzcGxpY2UudS5saXN0Lmxlbiwg bGVuKTsKKyAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUubGl2ZXBhdGNoLnUu bGlzdC5zdGF0dXMsIGluZm8pOworICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwu dS5saXZlcGF0Y2gudS5saXN0Lm5hbWUsIG5hbWUpOworICAgICAgICBzZXRfeGVuX2d1ZXN0X2hh bmRsZShzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LmxlbiwgbGVuKTsKIAogICAgICAgICByYyA9 IGRvX3N5c2N0bCh4Y2gsICZzeXNjdGwpOwogICAgICAgICAvKgpAQCAtOTMzLDkgKzkzMyw5IEBA IGludCB4Y194c3BsaWNlX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGludCBtYXgs IHVuc2lnbmVkIGludCBzdGFydCwKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmICgg IXZlcnNpb24gKQotICAgICAgICAgICAgdmVyc2lvbiA9IHN5c2N0bC51LnhzcGxpY2UudS5saXN0 LnZlcnNpb247CisgICAgICAgICAgICB2ZXJzaW9uID0gc3lzY3RsLnUubGl2ZXBhdGNoLnUubGlz dC52ZXJzaW9uOwogCi0gICAgICAgIGlmICggc3lzY3RsLnUueHNwbGljZS51Lmxpc3QudmVyc2lv biAhPSB2ZXJzaW9uICkKKyAgICAgICAgaWYgKCBzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LnZl cnNpb24gIT0gdmVyc2lvbiApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIFdlIGNvdWxkIG1h a2UgdGhpcyBjb25maWd1cmFibGUgYXMgcGFyYW1ldGVyPyAqLwogICAgICAgICAgICAgaWYgKCBy ZXRyaWVzKysgPiAzICkKQEAgLTk0NSw3ICs5NDUsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhj X2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAqZG9uZSA9 IDA7IC8qIFJldHJ5IGZyb20gc2NyYXRjaC4gKi8KLSAgICAgICAgICAgIHZlcnNpb24gPSBzeXNj dGwudS54c3BsaWNlLnUubGlzdC52ZXJzaW9uOworICAgICAgICAgICAgdmVyc2lvbiA9IHN5c2N0 bC51LmxpdmVwYXRjaC51Lmxpc3QudmVyc2lvbjsKICAgICAgICAgICAgIGFkanVzdCA9IDE7IC8q IEFuZCBtYWtlIHN1cmUgd2UgY29udGludWUgaW4gdGhlIGxvb3AuICovCiAgICAgICAgICAgICAv KiBObyBtZW1vcnkgbGVha3MuICovCiAgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bv c3QoeGNoLCBpbmZvKTsKQEAgLTk2MSw3ICs5NjEsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhj X2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAg ICAgICAgICAgICByYyA9IC0xOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAg ICAgKmxlZnQgPSBzeXNjdGwudS54c3BsaWNlLnUubGlzdC5ucjsgLyogVG90YWwgcmVtYWluaW5n IGNvdW50LiAqLworICAgICAgICAqbGVmdCA9IHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QubnI7 IC8qIFRvdGFsIHJlbWFpbmluZyBjb3VudC4gKi8KICAgICAgICAgLyogQ29weSBvbmx5IHVwICdy Yycgb2YgZGF0YScgLSB3ZSBjb3VsZCBhZGQgJ21pbihyYyxucikgaWYgZGVzaXJlZC4gKi8KICAg ICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShpbmZvLCAocmMgKiBzaXplb2YoKmluZm8p KSk7CiAgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUobmFtZSwgKHJjICogc3opKTsK QEAgLTk3Myw3ICs5NzMsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhjX2ludGVyZmFjZSAqeGNo LCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAgICAgICAgIC8qIEFuZCB1 cGRhdGUgaG93IG1hbnkgZWxlbWVudHMgb2YgaW5mbyB3ZSBoYXZlIGNvcGllZCBpbnRvLiAqLwog ICAgICAgICAqZG9uZSArPSByYzsKICAgICAgICAgLyogVXBkYXRlIGlkeC4gKi8KLSAgICAgICAg c3lzY3RsLnUueHNwbGljZS51Lmxpc3QuaWR4ID0gKmRvbmU7CisgICAgICAgIHN5c2N0bC51Lmxp dmVwYXRjaC51Lmxpc3QuaWR4ID0gKmRvbmU7CiAgICAgfSB3aGlsZSAoIGFkanVzdCB8fCAoKmRv bmUgPCBtYXggJiYgKmxlZnQgIT0gMCkgKTsKIAogICAgIGlmICggcmMgPCAwICkKQEAgLTk4Niwy MCArOTg2LDIwIEBAIGludCB4Y194c3BsaWNlX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2ln bmVkIGludCBtYXgsIHVuc2lnbmVkIGludCBzdGFydCwKICAgICByZXR1cm4gcmMgPiAwID8gMCA6 IHJjOwogfQogCi1zdGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlvbih4Y19pbnRlcmZhY2UgKnhj aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYWN0aW9uLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgdGltZW91dCkKK3N0YXRpYyBpbnQgX3hjX2xpdmVwYXRj aF9hY3Rpb24oeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRp bWVvdXQpCiB7CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVfU1lTQ1RMOwogICAgIC8qIFRoZSBz aXplIGlzIGZpZ3VyZWQgb3V0IHdoZW4gd2Ugc3RybGVuKG5hbWUpICovCiAgICAgREVDTEFSRV9I WVBFUkNBTExfQk9VTkNFKG5hbWUsIDAsIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX0lOKTsK LSAgICB4ZW5feHNwbGljZV9uYW1lX3QgZGVmX25hbWUgPSB7IC5wYWQgPSB7IDAsIDAsIDAgfSB9 OworICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IGRlZl9uYW1lID0geyAucGFkID0geyAwLCAwLCAw IH0gfTsKIAogICAgIGRlZl9uYW1lLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwogCi0gICAgaWYg KCBkZWZfbmFtZS5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9TSVpFICkKKyAgICBpZiAoIGRlZl9u YW1lLnNpemUgPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewogICAgICAgICBlcnJu byA9IEVJTlZBTDsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTAxMCwxNCArMTAxMCwxNCBAQCBz dGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlvbih4Y19pbnRlcmZhY2UgKnhjaCwKICAgICBpZiAo IHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgbmFtZSkgKQogICAgICAgICByZXR1cm4gLTE7 CiAKLSAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF94c3BsaWNlX29wOwotICAgIHN5c2N0bC51 LnhzcGxpY2UuY21kID0gWEVOX1NZU0NUTF9YU1BMSUNFX0FDVElPTjsKLSAgICBzeXNjdGwudS54 c3BsaWNlLnBhZCA9IDA7Ci0gICAgc3lzY3RsLnUueHNwbGljZS51LmFjdGlvbi5jbWQgPSBhY3Rp b247Ci0gICAgc3lzY3RsLnUueHNwbGljZS51LmFjdGlvbi50aW1lb3V0ID0gdGltZW91dDsKKyAg ICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3A7CisgICAgc3lzY3RsLnUubGl2 ZXBhdGNoLmNtZCA9IFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTjsKKyAgICBzeXNjdGwudS5s aXZlcGF0Y2gucGFkID0gMDsKKyAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5hY3Rpb24uY21kID0g YWN0aW9uOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51LmFjdGlvbi50aW1lb3V0ID0gdGltZW91 dDsKIAotICAgIHN5c2N0bC51LnhzcGxpY2UudS5hY3Rpb24ubmFtZSA9IGRlZl9uYW1lOwotICAg IHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LnhzcGxpY2UudS5hY3Rpb24ubmFtZS5uYW1l LCBuYW1lKTsKKyAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5hY3Rpb24ubmFtZSA9IGRlZl9uYW1l OworICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51LmFjdGlvbi5u YW1lLm5hbWUsIG5hbWUpOwogCiAgICAgcmMgPSBkb19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKIApA QCAtMTAyNiwyNCArMTAyNiwyNCBAQCBzdGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlvbih4Y19p bnRlcmZhY2UgKnhjaCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4Y194c3BsaWNlX2FwcGx5 KHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KQoraW50IHhj X2xpdmVwYXRjaF9hcHBseSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3Qg dGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hzcGxpY2VfYWN0aW9uKHhjaCwgbmFtZSwgWFNQ TElDRV9BQ1RJT05fQVBQTFksIHRpbWVvdXQpOworICAgIHJldHVybiBfeGNfbGl2ZXBhdGNoX2Fj dGlvbih4Y2gsIG5hbWUsIExJVkVQQVRDSF9BQ1RJT05fQVBQTFksIHRpbWVvdXQpOwogfQogCi1p bnQgeGNfeHNwbGljZV9yZXZlcnQoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQz Ml90IHRpbWVvdXQpCitpbnQgeGNfbGl2ZXBhdGNoX3JldmVydCh4Y19pbnRlcmZhY2UgKnhjaCwg Y2hhciAqbmFtZSwgdWludDMyX3QgdGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hzcGxpY2Vf YWN0aW9uKHhjaCwgbmFtZSwgWFNQTElDRV9BQ1RJT05fUkVWRVJULCB0aW1lb3V0KTsKKyAgICBy ZXR1cm4gX3hjX2xpdmVwYXRjaF9hY3Rpb24oeGNoLCBuYW1lLCBMSVZFUEFUQ0hfQUNUSU9OX1JF VkVSVCwgdGltZW91dCk7CiB9CiAKLWludCB4Y194c3BsaWNlX3VubG9hZCh4Y19pbnRlcmZhY2Ug KnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3QgdGltZW91dCkKK2ludCB4Y19saXZlcGF0Y2hfdW5s b2FkKHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KQogewot ICAgIHJldHVybiBfeGNfeHNwbGljZV9hY3Rpb24oeGNoLCBuYW1lLCBYU1BMSUNFX0FDVElPTl9V TkxPQUQsIHRpbWVvdXQpOworICAgIHJldHVybiBfeGNfbGl2ZXBhdGNoX2FjdGlvbih4Y2gsIG5h bWUsIExJVkVQQVRDSF9BQ1RJT05fVU5MT0FELCB0aW1lb3V0KTsKIH0KIAotaW50IHhjX3hzcGxp Y2VfcmVwbGFjZSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3QgdGltZW91 dCkKK2ludCB4Y19saXZlcGF0Y2hfcmVwbGFjZSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFt ZSwgdWludDMyX3QgdGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hzcGxpY2VfYWN0aW9uKHhj aCwgbmFtZSwgWFNQTElDRV9BQ1RJT05fUkVQTEFDRSwgdGltZW91dCk7CisgICAgcmV0dXJuIF94 Y19saXZlcGF0Y2hfYWN0aW9uKHhjaCwgbmFtZSwgTElWRVBBVENIX0FDVElPTl9SRVBMQUNFLCB0 aW1lb3V0KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2MvTWFrZWZpbGUgYi90b29s cy9taXNjL01ha2VmaWxlCmluZGV4IDNhNWY4NDIuLmNlZTJiOTkgMTAwNjQ0Ci0tLSBhL3Rvb2xz L21pc2MvTWFrZWZpbGUKKysrIGIvdG9vbHMvbWlzYy9NYWtlZmlsZQpAQCAtMzIsNyArMzIsNyBA QCBJTlNUQUxMX1NCSU4gICAgICAgICAgICAgICAgICAgKz0geGVubG9ja3Byb2YKIElOU1RBTExf U0JJTiAgICAgICAgICAgICAgICAgICArPSB4ZW5wZXJmCiBJTlNUQUxMX1NCSU4gICAgICAgICAg ICAgICAgICAgKz0geGVucG0KIElOU1RBTExfU0JJTiAgICAgICAgICAgICAgICAgICArPSB4ZW53 YXRjaGRvZ2QKLUlOU1RBTExfU0JJTiAgICAgICAgICAgICAgICAgICArPSB4ZW4teHNwbGljZQor SU5TVEFMTF9TQklOICAgICAgICAgICAgICAgICAgICs9IHhlbi1saXZlcGF0Y2gKIElOU1RBTExf U0JJTiArPSAkKElOU1RBTExfU0JJTi15KQogCiAjIEV2ZXJ5dGhpbmcgdG8gYmUgaW5zdGFsbGVk IGluIGEgcHJpdmF0ZSBiaW4vCkBAIC0xMDQsNyArMTA0LDcgQEAgeGVuLW1mbmR1bXA6IHhlbi1t Zm5kdW1wLm8KIHhlbndhdGNoZG9nZDogeGVud2F0Y2hkb2dkLm8KIAkkKENDKSAkKExERkxBR1Mp IC1vICRAICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1MpCiAKLXhlbi14 c3BsaWNlOiB4ZW4teHNwbGljZS5vCit4ZW4tbGl2ZXBhdGNoOiB4ZW4tbGl2ZXBhdGNoLm8KIAkk KENDKSAkKExERkxBR1MpIC1vICRAICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xE RkxBR1MpCiAKIHhlbi1sb3dtZW1kOiB4ZW4tbG93bWVtZC5vCmRpZmYgLS1naXQgYS90b29scy9t aXNjL3hlbi14c3BsaWNlLmMgYi90b29scy9taXNjL3hlbi1saXZlcGF0Y2guYwpzaW1pbGFyaXR5 IGluZGV4IDg2JQpyZW5hbWUgZnJvbSB0b29scy9taXNjL3hlbi14c3BsaWNlLmMKcmVuYW1lIHRv IHRvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jCmluZGV4IGRkYWEwNzkuLjI4ZjMzOWEgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL21pc2MveGVuLXhzcGxpY2UuYworKysgYi90b29scy9taXNjL3hlbi1saXZl cGF0Y2guYwpAQCAtMjAsOCArMjAsOCBAQCBzdGF0aWMgeGNfaW50ZXJmYWNlICp4Y2g7CiB2b2lk IHNob3dfaGVscCh2b2lkKQogewogICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgInhl bi14c3BsaWNlOiBYc3BsaWNlIHRlc3QgdG9vbFxuIgotICAgICAgICAgICAgIlVzYWdlOiB4ZW4t eHNwbGljZSA8Y29tbWFuZD4gW2FyZ3NdXG4iCisgICAgICAgICAgICAieGVuLWxpdmVwYXRjaDog bGl2ZSBwYXRjaGluZyB0ZXN0IHRvb2xcbiIKKyAgICAgICAgICAgICJVc2FnZTogeGVuLWxpdmVw YXRjaCA8Y29tbWFuZD4gW2FyZ3NdXG4iCiAgICAgICAgICAgICAiIDxuYW1lPiBBbiB1bmlxdWUg bmFtZSBvZiBwYXlsb2FkLiBVcCB0byAlZCBjaGFyYWN0ZXJzLlxuIgogICAgICAgICAgICAgIkNv bW1hbmRzOlxuIgogICAgICAgICAgICAgIiAgaGVscCAgICAgICAgICAgICAgICAgICBkaXNwbGF5 IHRoaXMgaGVscFxuIgpAQCAtMzMsNyArMzMsNyBAQCB2b2lkIHNob3dfaGVscCh2b2lkKQogICAg ICAgICAgICAgIiAgdW5sb2FkIDxuYW1lPiAgICAgICAgICB1bmxvYWQgbmFtZSA8bmFtZT4gcGF0 Y2guXG4iCiAgICAgICAgICAgICAiICBsb2FkICA8ZmlsZT4gICAgICAgICAgIHVwbG9hZCBhbmQg YXBwbHkgPGZpbGU+LlxuIgogICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lIGlzIHRoZSA8ZmlsZT4gbmFtZVxuIiwKLSAgICAgICAgICAgIFhFTl9YU1BMSUNFX05BTUVf U0laRSk7CisgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0laRSk7CiB9CiAKIC8qIHdy YXBwZXIgZnVuY3Rpb24gKi8KQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGludCBoZWxwX2Z1bmMo aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlMnN0cih1 bnNpZ25lZCBpbnQgc3RhdGUpCiB7Ci0jZGVmaW5lIFNUQVRFKHgpIFtYU1BMSUNFX1NUQVRFXyMj eF0gPSAjeAorI2RlZmluZSBTVEFURSh4KSBbTElWRVBBVENIX1NUQVRFXyMjeF0gPSAjeAogICAg IHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0gewogICAgICAgICAgICAgU1RBVEUo Q0hFQ0tFRCksCiAgICAgICAgICAgICBTVEFURShBUFBMSUVEKSwKQEAgLTY0LDcgKzY0LDcgQEAg c3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlMnN0cih1bnNpZ25lZCBpbnQgc3RhdGUpCiBzdGF0aWMg aW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogICAgIHVuc2lnbmVkIGlu dCBpZHgsIGRvbmUsIGxlZnQsIGk7Ci0gICAgeGVuX3hzcGxpY2Vfc3RhdHVzX3QgKmluZm8gPSBO VUxMOworICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QgKmluZm8gPSBOVUxMOwogICAgIGNoYXIg Km5hbWUgPSBOVUxMOwogICAgIHVpbnQzMl90ICpsZW4gPSBOVUxMOwogICAgIGludCByYyA9IEVO T01FTTsKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGludCBsaXN0X2Z1bmMoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICBpbmZvID0gbWFsbG9jKHNpemVvZigqaW5mbykgKiBNQVhfTEVOKTsK ICAgICBpZiAoICFpbmZvICkKICAgICAgICAgcmV0dXJuIHJjOwotICAgIG5hbWUgPSBtYWxsb2Mo c2l6ZW9mKCpuYW1lKSAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSAqIE1BWF9MRU4pOworICAgIG5h bWUgPSBtYWxsb2Moc2l6ZW9mKCpuYW1lKSAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFICogTUFY X0xFTik7CiAgICAgaWYgKCAhbmFtZSApCiAgICAgewogICAgICAgICBmcmVlKGluZm8pOwpAQCAt OTcsOSArOTcsOSBAQCBzdGF0aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltd KQogICAgICAgICBkb25lID0gMDsKICAgICAgICAgLyogVGhlIG1lbXNldCBpcyBkb25lIHRvIGNh dGNoIGVycm9ycy4gKi8KICAgICAgICAgbWVtc2V0KGluZm8sICdBJywgc2l6ZW9mKCppbmZvKSAq IE1BWF9MRU4pOwotICAgICAgICBtZW1zZXQobmFtZSwgJ0InLCBzaXplb2YoKm5hbWUpICogTUFY X0xFTiAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSk7CisgICAgICAgIG1lbXNldChuYW1lLCAnQics IHNpemVvZigqbmFtZSkgKiBNQVhfTEVOICogWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUpOwogICAg ICAgICBtZW1zZXQobGVuLCAnQycsIHNpemVvZigqbGVuKSAqIE1BWF9MRU4pOwotICAgICAgICBy YyA9IHhjX3hzcGxpY2VfbGlzdCh4Y2gsIE1BWF9MRU4sIGlkeCwgaW5mbywgbmFtZSwgbGVuLCAm ZG9uZSwgJmxlZnQpOworICAgICAgICByYyA9IHhjX2xpdmVwYXRjaF9saXN0KHhjaCwgTUFYX0xF TiwgaWR4LCBpbmZvLCBuYW1lLCBsZW4sICZkb25lLCAmbGVmdCk7CiAgICAgICAgIGlmICggcmMg KQogICAgICAgICB7CiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBsaXN0 ICVkLyVkOiAlZCglcykhXG4iLApAQCAtMTEzLDggKzExMyw4IEBAIHN0YXRpYyBpbnQgbGlzdF9m dW5jKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICBjaGFyICpzdHI7CiAKICAg ICAgICAgICAgIHN6ID0gbGVuW2ldOwotICAgICAgICAgICAgc3RyID0gbmFtZSArIChpICogWEVO X1hTUExJQ0VfTkFNRV9TSVpFKTsKLSAgICAgICAgICAgIGZvciAoIGogPSBzejsgaiA8IFhFTl9Y U1BMSUNFX05BTUVfU0laRTsgaisrICkKKyAgICAgICAgICAgIHN0ciA9IG5hbWUgKyAoaSAqIFhF Tl9MSVZFUEFUQ0hfTkFNRV9TSVpFKTsKKyAgICAgICAgICAgIGZvciAoIGogPSBzejsgaiA8IFhF Tl9MSVZFUEFUQ0hfTkFNRV9TSVpFOyBqKysgKQogICAgICAgICAgICAgICAgIHN0cltqXSA9ICdc MCc7CiAKICAgICAgICAgICAgIHByaW50ZigiJS00MHN8ICVzIiwgc3RyLCBzdGF0ZTJzdHIoaW5m b1tpXS5zdGF0ZSkpOwpAQCAtMTM2LDE0ICsxMzYsMTQgQEAgc3RhdGljIGludCBsaXN0X2Z1bmMo aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHN0YXRpYyBpbnQgZ2V0X25hbWUoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSwgY2hhciAqbmFtZSkKIHsKICAgICBzc2l6ZV90IGxlbiA9IHN0cmxlbihhcmd2 WzBdKTsKLSAgICBpZiAoIGxlbiA+IFhFTl9YU1BMSUNFX05BTUVfU0laRSApCisgICAgaWYgKCBs ZW4gPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewotICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIklEIE1VU1QgYmUgJWQgY2hhcmFjdGVycyFcbiIsIFhFTl9YU1BMSUNFX05BTUVfU0la RSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSUQgTVVTVCBiZSAlZCBjaGFyYWN0ZXJzIVxu IiwgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUpOwogICAgICAgICBlcnJubyA9IEVJTlZBTDsKICAg ICAgICAgcmV0dXJuIGVycm5vOwogICAgIH0KICAgICAvKiBEb24ndCB3YW50IGFueSBmdW5ueSBz dHJpbmdzIGZyb20gdGhlIHN0YWNrLiAqLwotICAgIG1lbXNldChuYW1lLCAwLCBYRU5fWFNQTElD RV9OQU1FX1NJWkUpOworICAgIG1lbXNldChuYW1lLCAwLCBYRU5fTElWRVBBVENIX05BTUVfU0la RSk7CiAgICAgc3RybmNweShuYW1lLCBhcmd2WzBdLCBsZW4pOwogICAgIHJldHVybiAwOwogfQpA QCAtMTUxLDcgKzE1MSw3IEBAIHN0YXRpYyBpbnQgZ2V0X25hbWUoaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSwgY2hhciAqbmFtZSkKIHN0YXRpYyBpbnQgdXBsb2FkX2Z1bmMoaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKIHsKICAgICBjaGFyICpmaWxlbmFtZTsKLSAgICBjaGFyIG5hbWVbWEVOX1hTUExJ Q0VfTkFNRV9TSVpFXTsKKyAgICBjaGFyIG5hbWVbWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkVdOwog ICAgIGludCBmZCA9IDAsIHJjOwogICAgIHN0cnVjdCBzdGF0IGJ1ZjsKICAgICB1bnNpZ25lZCBj aGFyICpmYnVmOwpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQgdXBsb2FkX2Z1bmMoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgcmV0dXJuIGVycm5vOwogICAgIH0KICAgICBw cmludGYoIlVwbG9hZGluZyAlcyAoJXp1IGJ5dGVzKVxuIiwgZmlsZW5hbWUsIGxlbik7Ci0gICAg cmMgPSB4Y194c3BsaWNlX3VwbG9hZCh4Y2gsIG5hbWUsIGZidWYsIGxlbik7CisgICAgcmMgPSB4 Y19saXZlcGF0Y2hfdXBsb2FkKHhjaCwgbmFtZSwgZmJ1ZiwgbGVuKTsKICAgICBpZiAoIHJjICkK ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVcGxvYWQgZmFpbGVkOiAlcywgZXJyb3I6ICVkKCVz KSFcbiIsCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGVycm5vLCBzdHJlcnJvcihlcnJubykp OwpAQCAtMjI0LDI1ICsyMjQsMjUgQEAgc3RydWN0IHsKICAgICBpbnQgKCpmdW5jdGlvbikoeGNf aW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOwogICAgIHVuc2ln bmVkIGludCBleGVjdXRlZDsgLyogSGFzIHRoZSBmdW5jdGlvbiBiZWVuIGNhbGxlZD8uICovCiB9 IGFjdGlvbl9vcHRpb25zW10gPSB7Ci0gICAgeyAgIC5hbGxvdyA9IFhTUExJQ0VfU1RBVEVfQ0hF Q0tFRCwKLSAgICAgICAgLmV4cGVjdGVkID0gWFNQTElDRV9TVEFURV9BUFBMSUVELAorICAgIHsg ICAuYWxsb3cgPSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCwKKyAgICAgICAgLmV4cGVjdGVkID0g TElWRVBBVENIX1NUQVRFX0FQUExJRUQsCiAgICAgICAgIC5uYW1lID0gImFwcGx5IiwKLSAgICAg ICAgLmZ1bmN0aW9uID0geGNfeHNwbGljZV9hcHBseSwKKyAgICAgICAgLmZ1bmN0aW9uID0geGNf bGl2ZXBhdGNoX2FwcGx5LAogICAgIH0sCi0gICAgeyAgIC5hbGxvdyA9IFhTUExJQ0VfU1RBVEVf QVBQTElFRCwKLSAgICAgICAgLmV4cGVjdGVkID0gWFNQTElDRV9TVEFURV9DSEVDS0VELAorICAg IHsgICAuYWxsb3cgPSBMSVZFUEFUQ0hfU1RBVEVfQVBQTElFRCwKKyAgICAgICAgLmV4cGVjdGVk ID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQsCiAgICAgICAgIC5uYW1lID0gInJldmVydCIsCi0g ICAgICAgIC5mdW5jdGlvbiA9IHhjX3hzcGxpY2VfcmV2ZXJ0LAorICAgICAgICAuZnVuY3Rpb24g PSB4Y19saXZlcGF0Y2hfcmV2ZXJ0LAogICAgIH0sCi0gICAgeyAgIC5hbGxvdyA9IFhTUExJQ0Vf U1RBVEVfQ0hFQ0tFRCwKKyAgICB7ICAgLmFsbG93ID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQs CiAgICAgICAgIC5leHBlY3RlZCA9IC1YRU5fRU5PRU5ULAogICAgICAgICAubmFtZSA9ICJ1bmxv YWQiLAotICAgICAgICAuZnVuY3Rpb24gPSB4Y194c3BsaWNlX3VubG9hZCwKKyAgICAgICAgLmZ1 bmN0aW9uID0geGNfbGl2ZXBhdGNoX3VubG9hZCwKICAgICB9LAotICAgIHsgICAuYWxsb3cgPSBY U1BMSUNFX1NUQVRFX0NIRUNLRUQsCi0gICAgICAgIC5leHBlY3RlZCA9IFhTUExJQ0VfU1RBVEVf QVBQTElFRCwKKyAgICB7ICAgLmFsbG93ID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQsCisgICAg ICAgIC5leHBlY3RlZCA9IExJVkVQQVRDSF9TVEFURV9BUFBMSUVELAogICAgICAgICAubmFtZSA9 ICJyZXBsYWNlIiwKLSAgICAgICAgLmZ1bmN0aW9uID0geGNfeHNwbGljZV9yZXBsYWNlLAorICAg ICAgICAuZnVuY3Rpb24gPSB4Y19saXZlcGF0Y2hfcmVwbGFjZSwKICAgICB9LAogfTsKIApAQCAt MjUzLDkgKzI1Myw5IEBAIHN0cnVjdCB7CiAKIGludCBhY3Rpb25fZnVuYyhpbnQgYXJnYywgY2hh ciAqYXJndltdLCB1bnNpZ25lZCBpbnQgaWR4KQogewotICAgIGNoYXIgbmFtZVtYRU5fWFNQTElD RV9OQU1FX1NJWkVdOworICAgIGNoYXIgbmFtZVtYRU5fTElWRVBBVENIX05BTUVfU0laRV07CiAg ICAgaW50IHJjLCBvcmlnaW5hbF9zdGF0ZTsKLSAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCBzdGF0 dXM7CisgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCBzdGF0dXM7CiAgICAgdW5zaWduZWQgaW50 IHJldHJ5ID0gMDsKIAogICAgIGlmICggYXJnYyAhPSAxICkKQEAgLTI3MSw3ICsyNzEsNyBAQCBp bnQgYWN0aW9uX2Z1bmMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgdW5zaWduZWQgaW50IGlkeCkK ICAgICAgICAgcmV0dXJuIEVJTlZBTDsKIAogICAgIC8qIENoZWNrIGluaXRpYWwgc3RhdHVzLiAq LwotICAgIHJjID0geGNfeHNwbGljZV9nZXQoeGNoLCBuYW1lLCAmc3RhdHVzKTsKKyAgICByYyA9 IHhjX2xpdmVwYXRjaF9nZXQoeGNoLCBuYW1lLCAmc3RhdHVzKTsKICAgICBpZiAoIHJjICkKICAg ICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZmFpbGVkIHRvIGdldCBzdGF0dXMgJWQo JXMpIVxuIiwKQEAgLTMxMiw3ICszMTIsNyBAQCBpbnQgYWN0aW9uX2Z1bmMoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIG9yaWdpbmFsX3N0YXRlID0gc3Rh dHVzLnN0YXRlOwogICAgIGRvIHsKLSAgICAgICAgcmMgPSB4Y194c3BsaWNlX2dldCh4Y2gsIG5h bWUsICZzdGF0dXMpOworICAgICAgICByYyA9IHhjX2xpdmVwYXRjaF9nZXQoeGNoLCBuYW1lLCAm c3RhdHVzKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJjID0g LWVycm5vOwpAQCAtNDMyLDcgKzQzMiw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAgICAgICAgIGlmICggaiA9PSBBUlJBWV9TSVpFKGFjdGlvbl9vcHRpb25zKSApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5yZWNvZ25pc2VkIGNvbW1hbmQg JyVzJyAtLSB0cnkgIgotICAgICAgICAgICAgICAgICAgICIneGVuLXhzcGxpY2UgaGVscCdcbiIs IGFyZ3ZbMV0pOworICAgICAgICAgICAgICAgICAgICIneGVuLWxpdmVwYXRjaCBoZWxwJ1xuIiwg YXJndlsxXSk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgIH0gZWxzZQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxl CmluZGV4IGVhZDBjYzAuLmFmNGQwZTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmls ZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTQwLDcgKzQwLDcgQEAgb2JqLXkgKz0g ZGV2aWNlLm8KIG9iai15ICs9IGRlY29kZS5vCiBvYmoteSArPSBwcm9jZXNzb3Iubwogb2JqLXkg Kz0gc21jLm8KLW9iai0kKENPTkZJR19YU1BMSUNFKSArPSB4c3BsaWNlLm8KK29iai0kKENPTkZJ R19MSVZFUEFUQ0gpICs9IGxpdmVwYXRjaC5vCiAKICNvYmotYmluLXkgKz0gLi4uLm8KIApkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3hzcGxpY2UuYyBiL3hlbi9hcmNoL2FybS9saXZlcGF0Y2gu YwpzaW1pbGFyaXR5IGluZGV4IDI5JQpyZW5hbWUgZnJvbSB4ZW4vYXJjaC9hcm0veHNwbGljZS5j CnJlbmFtZSB0byB4ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKaW5kZXggZGIwZGNlMi4uYWJhMTMy MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3hzcGxpY2UuYworKysgYi94ZW4vYXJjaC9hcm0v bGl2ZXBhdGNoLmMKQEAgLTQsNjcgKzQsNjcgQEAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNp bmNsdWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KLSNpbmNsdWRlIDx4ZW4v eHNwbGljZV9lbGYuaD4KLSNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUgPHhlbi9s aXZlcGF0Y2hfZWxmLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgogCi12b2lkIGFyY2hf eHNwbGljZV9wYXRjaGluZ19lbnRlcih2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaF9xdWllc2Nl KHZvaWQpCiB7CiB9CiAKLXZvaWQgYXJjaF94c3BsaWNlX3BhdGNoaW5nX2xlYXZlKHZvaWQpCit2 b2lkIGFyY2hfbGl2ZXBhdGNoX3Jldml2ZSh2b2lkKQogewogfQogCi1pbnQgYXJjaF94c3BsaWNl X3ZlcmlmeV9mdW5jKGNvbnN0IHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMpCitpbnQg YXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpm dW5jKQogewogICAgIHJldHVybiAtRU5PU1lTOwogfQogCi12b2lkIGFyY2hfeHNwbGljZV9hcHBs eV9qbXAoc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykKK3ZvaWQgYXJjaF9saXZlcGF0 Y2hfYXBwbHlfam1wKHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKIH0KIAotdm9pZCBh cmNoX3hzcGxpY2VfcmV2ZXJ0X2ptcChjb25zdCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpm dW5jKQordm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCBsaXZlcGF0 Y2hfZnVuYyAqZnVuYykKIHsKIH0KIAotdm9pZCBhcmNoX3hzcGxpY2VfcG9zdF9hY3Rpb24odm9p ZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcG9zdF9hY3Rpb24odm9pZCkKIHsKIH0KIAotdm9pZCBh cmNoX3hzcGxpY2VfbWFzayh2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaF9tYXNrKHZvaWQpCiB7 CiB9CiAKLXZvaWQgYXJjaF94c3BsaWNlX3VubWFzayh2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRj aF91bm1hc2sodm9pZCkKIHsKIH0KIAotaW50IGFyY2hfeHNwbGljZV92ZXJpZnlfZWxmKGNvbnN0 IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQoraW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9lbGYo Y29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsKICAgICByZXR1cm4gLUVOT1NZUzsK IH0KIAotaW50IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbChzdHJ1Y3QgeHNwbGljZV9lbGYgKmVs ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxm X3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhz cGxpY2VfZWxmX3NlYyAqcmVsYSkKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbChzdHJ1 Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpCiB7CiAgICAg cmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVj dCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnJlbGEpCitpbnQgYXJjaF9saXZlcGF0 Y2hfcGVyZm9ybV9yZWxhKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9l bGZfc2VjICpyZWxhKQogewogICAgIHJldHVybiAtRU5PU1lTOwogfQogCi1pbnQgYXJjaF94c3Bs aWNlX3NlY3VyZShjb25zdCB2b2lkICp2YSwgdW5zaWduZWQgaW50IHBhZ2VzLCBlbnVtIHZhX3R5 cGUgdHlwZSkKK2ludCBhcmNoX2xpdmVwYXRjaF9zZWN1cmUoY29uc3Qgdm9pZCAqdmEsIHVuc2ln bmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIC1FTk9TWVM7 CiB9CiAKLXZvaWQgX19pbml0IGFyY2hfeHNwbGljZV9pbml0KHZvaWQpCit2b2lkIF9faW5pdCBh cmNoX2xpdmVwYXRjaF9pbml0KHZvaWQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCA0NjY1YTY4Li5iMzc3Yzkx IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01h a2VmaWxlCkBAIC03LDcgKzcsNyBAQCBzdWJkaXItJChDT05GSUdfWEVOT1BST0YpICs9IG9wcm9m aWxlCiBzdWJkaXIteSArPSB4ODZfNjQKIAogYWx0ZXJuYXRpdmUteSA6PSBhbHRlcm5hdGl2ZS5p bml0Lm8KLWFsdGVybmF0aXZlLSQoQ09ORklHX1hTUExJQ0UpIDo9CithbHRlcm5hdGl2ZS0kKENP TkZJR19MSVZFUEFUQ0gpIDo9CiBvYmotYmluLXkgKz0gJChhbHRlcm5hdGl2ZS15KQogb2JqLXkg Kz0gYXBpYy5vCiBvYmoteSArPSBiaXRvcHMubwpAQCAtMzAsNiArMzAsNyBAQCBvYmoteSArPSBm bHVzaHRsYi5vCiBvYmoteSArPSBpMzg3Lm8KIG9iai15ICs9IGk4MjU5Lm8KIG9iai15ICs9IGlv X2FwaWMubworb2JqLSQoQ09ORklHX0xJVkVQQVRDSCkgKz0gYWx0ZXJuYXRpdmUubyBsaXZlcGF0 Y2gubwogb2JqLXkgKz0gbXNpLm8KIG9iai15ICs9IGlvcG9ydF9lbXVsYXRlLm8KIG9iai15ICs9 IGlycS5vCkBAIC02Myw3ICs2NCw2IEBAIG9iai15ICs9IHg4Nl9lbXVsYXRlLm8KIG9iai15ICs9 IHRib290Lm8KIG9iai15ICs9IGhwZXQubwogb2JqLXkgKz0gdm1fZXZlbnQubwotb2JqLSQoQ09O RklHX1hTUExJQ0UpICs9IGFsdGVybmF0aXZlLm8geHNwbGljZS5vCiBvYmoteSArPSB4c3RhdGUu bwogCiBvYmotJChjcmFzaF9kZWJ1ZykgKz0gZ2Ric3R1Yi5vCkBAIC04MCw3ICs4MCw3IEBAIGVs c2UKIG5vdGVzX3BoZHJzID0KIGVuZGlmCiAKLWlmZGVmIENPTkZJR19YU1BMSUNFCitpZmRlZiBD T05GSUdfTElWRVBBVENICiBhbGxfc3ltYm9scyA9IC0tYWxsLXN5bWJvbHMKIGlmZGVmIENPTkZJ R19GQVNUX1NZTUJPTF9MT09LVVAKIGFsbF9zeW1ib2xzID0gLS1hbGwtc3ltYm9scyAtLXNvcnQt YnktbmFtZQpAQCAtOTUsNyArOTUsNyBAQCAkKFRBUkdFVCk6ICQoVEFSR0VUKS1zeW1zICQoZWZp LXkpIGJvb3QvbWtlbGYzMgogCiAuUEhPTlk6IHRlc3RzCiB0ZXN0czoKLQkkKE1BS0UpIC1mICQo QkFTRURJUikvUnVsZXMubWsgLUMgdGVzdCB4c3BsaWNlCisJJChNQUtFKSAtZiAkKEJBU0VESVIp L1J1bGVzLm1rIC1DIHRlc3QgbGl2ZXBhdGNoCiAKIEFMTF9PQkpTIDo9ICQoQkFTRURJUikvYXJj aC94ODYvYm9vdC9idWlsdF9pbi5vICQoQkFTRURJUikvYXJjaC94ODYvZWZpL2J1aWx0X2luLm8g JChBTExfT0JKUykKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMgYi94 ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwppbmRleCBjMTg4YTE1Li5iZTQwYjEzIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYworKysgYi94ZW4vYXJjaC94ODYvYWx0ZXJu YXRpdmUuYwpAQCAtMjIsMTQgKzIyLDE0IEBACiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2lu Y2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1ZGUgPGFzbS9ubWkuaD4KLSNpbmNsdWRlIDx4ZW4v eHNwbGljZS5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KIAogI2RlZmluZSBNQVhfUEFU Q0hfTEVOICgyNTUtMSkKIAogZXh0ZXJuIHN0cnVjdCBhbHRfaW5zdHIgX19hbHRfaW5zdHJ1Y3Rp b25zW10sIF9fYWx0X2luc3RydWN0aW9uc19lbmRbXTsKIAogI2lmZGVmIEs4X05PUDEKLXN0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIGluaXRfb3JfeHNwbGljZV9jb25zdCA9IHsK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIGluaXRfb3JfbGl2ZXBhdGNoX2Nv bnN0ID0gewogICAgIEs4X05PUDEsCiAgICAgSzhfTk9QMiwKICAgICBLOF9OT1AzLApAQCAtMzks NyArMzksNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrOG5vcHNbXSBpbml0X29yX3hz cGxpY2VfY29uc3QgPSB7CiAgICAgSzhfTk9QNywKICAgICBLOF9OT1A4CiB9Owotc3RhdGljIGNv bnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBrOF9ub3BzW0FTTV9OT1BfTUFYKzFdIGluaXRfb3Jf eHNwbGljZV9jb25zdHJlbCA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3Qg azhfbm9wc1tBU01fTk9QX01BWCsxXSBpbml0X29yX2xpdmVwYXRjaF9jb25zdHJlbCA9IHsKICAg ICBOVUxMLAogICAgIGs4bm9wcywKICAgICBrOG5vcHMgKyAxLApAQCAtNTMsNyArNTMsNyBAQCBz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0IGs4X25vcHNbQVNNX05PUF9NQVgrMV0g aW5pdF9vcl94c3BsaWNlX2NvbnN0cgogI2VuZGlmCiAKICNpZmRlZiBQNl9OT1AxCi1zdGF0aWMg Y29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0X29yX3hzcGxpY2VfY29uc3QgPSB7Citz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0X29yX2xpdmVwYXRjaF9jb25z dCA9IHsKICAgICBQNl9OT1AxLAogICAgIFA2X05PUDIsCiAgICAgUDZfTk9QMywKQEAgLTYzLDcg KzYzLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcDZub3BzW10gaW5pdF9vcl94c3Bs aWNlX2NvbnN0ID0gewogICAgIFA2X05PUDcsCiAgICAgUDZfTk9QOAogfTsKLXN0YXRpYyBjb25z dCB1bnNpZ25lZCBjaGFyICogY29uc3QgcDZfbm9wc1tBU01fTk9QX01BWCsxXSBpbml0X29yX3hz cGxpY2VfY29uc3RyZWwgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0IHA2 X25vcHNbQVNNX05PUF9NQVgrMV0gaW5pdF9vcl9saXZlcGF0Y2hfY29uc3RyZWwgPSB7CiAgICAg TlVMTCwKICAgICBwNm5vcHMsCiAgICAgcDZub3BzICsgMSwKQEAgLTc2LDcgKzc2LDcgQEAgc3Rh dGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBwNl9ub3BzW0FTTV9OT1BfTUFYKzFdIGlu aXRfb3JfeHNwbGljZV9jb25zdHIKIH07CiAjZW5kaWYKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVk IGNoYXIgKiBjb25zdCAqaWRlYWxfbm9wcyBpbml0X29yX3hzcGxpY2VfZGF0YSA9IGs4X25vcHM7 CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0ICppZGVhbF9ub3BzIGluaXRfb3Jf bGl2ZXBhdGNoX2RhdGEgPSBrOF9ub3BzOwogCiBzdGF0aWMgaW50IF9faW5pdCBtYXNrX25taV9j YWxsYmFjayhjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNwdSkKIHsKQEAg LTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJjaF9pbml0X2lkZWFsX25vcHMo dm9pZCkKIH0KIAogLyogVXNlIHRoaXMgdG8gYWRkIG5vcHMgdG8gYSBidWZmZXIsIHRoZW4gdGV4 dF9wb2tlIHRoZSB3aG9sZSBidWZmZXIuICovCi1zdGF0aWMgdm9pZCBpbml0X29yX3hzcGxpY2Ug YWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgdm9pZCBpbml0 X29yX2xpdmVwYXRjaCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50IGxlbikKIHsK ICAgICB3aGlsZSAoIGxlbiA+IDAgKQogICAgIHsKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMg dm9pZCBpbml0X29yX3hzcGxpY2UgYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVkIGludCBs ZW4pCiAgKiBZb3Ugc2hvdWxkIHJ1biB0aGlzIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCBvciBv biBjb2RlIHRoYXQgaXMgbm90CiAgKiBleGVjdXRpbmcuCiAgKi8KLXN0YXRpYyB2b2lkICppbml0 X29yX3hzcGxpY2UgdGV4dF9wb2tlKHZvaWQgKmFkZHIsIGNvbnN0IHZvaWQgKm9wY29kZSwgc2l6 ZV90IGxlbikKK3N0YXRpYyB2b2lkICppbml0X29yX2xpdmVwYXRjaCB0ZXh0X3Bva2Uodm9pZCAq YWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQogewogICAgIG1lbWNweShhZGRy LCBvcGNvZGUsIGxlbik7CiAgICAgc3luY19jb3JlKCk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3Rh dGljIHZvaWQgKmluaXRfb3JfeHNwbGljZSB0ZXh0X3Bva2Uodm9pZCAqYWRkciwgY29uc3Qgdm9p ZCAqb3Bjb2RlLCBzaXplX3QgbGUKICAqIEFQcyBoYXZlIGxlc3MgY2FwYWJpbGl0aWVzIHRoYW4g dGhlIGJvb3QgcHJvY2Vzc29yIGFyZSBub3QgaGFuZGxlZC4KICAqIFRvdWdoLiBNYWtlIHN1cmUg eW91IGRpc2FibGUgc3VjaCBmZWF0dXJlcyBieSBoYW5kLgogICovCi12b2lkIGluaXRfb3JfeHNw bGljZSBhcHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwg c3RydWN0IGFsdF9pbnN0ciAqZW5kKQordm9pZCBpbml0X29yX2xpdmVwYXRjaCBhcHBseV9hbHRl cm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0 ciAqZW5kKQogewogICAgIHN0cnVjdCBhbHRfaW5zdHIgKmE7CiAgICAgdTggKmluc3RyLCAqcmVw bGFjZW1lbnQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94 ODYvZG9tYWluLmMKaW5kZXggNWFmMmNjNS4uZjJkN2Y0NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMzYsNyArMzYsNyBA QAogI2luY2x1ZGUgPHhlbi9jcHUuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgogI2luY2x1ZGUg PHhlbi9ndWVzdF9hY2Nlc3MuaD4KLSNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUg PHhlbi9saXZlcGF0Y2guaD4KICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAjaW5jbHVkZSA8 cHVibGljL2h2bS9odm1fdmNwdS5oPgogI2luY2x1ZGUgPGFzbS9yZWdzLmg+CkBAIC0xMjUsNyAr MTI1LDcgQEAgc3RhdGljIHZvaWQgaWRsZV9sb29wKHZvaWQpCiAgICAgICAgICAqIFdlIE1VU1Qg YmUgbGFzdCAob3IgYmVmb3JlIHBtX2lkbGUpLiBPdGhlcndpc2UgYWZ0ZXIgd2UgZ2V0IHRoZQog ICAgICAgICAgKiBzb2Z0aXJxIHdlIHdvdWxkIGV4ZWN1dGUgcG1faWRsZSAoYW5kIHNsZWVwKSBh bmQgbm90IHBhdGNoLgogICAgICAgICAgKi8KLSAgICAgICAgY2hlY2tfZm9yX3hzcGxpY2Vfd29y aygpOworICAgICAgICBjaGVja19mb3JfbGl2ZXBhdGNoX3dvcmsoKTsKICAgICB9CiB9CiAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9leHRhYmxlLmMgYi94ZW4vYXJjaC94ODYvZXh0YWJsZS5j CmluZGV4IDM0OWRmNzkuLjcwMTQ0MWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9leHRhYmxl LmMKKysrIGIveGVuL2FyY2gveDg2L2V4dGFibGUuYwpAQCAtNyw3ICs3LDcgQEAKICNpbmNsdWRl IDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPHhl bi92aXJ0dWFsX3JlZ2lvbi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+CisjaW5jbHVkZSA8 eGVuL2xpdmVwYXRjaC5oPgogCiAjZGVmaW5lIEVYX0ZJRUxEKHB0ciwgZmllbGQpICgodW5zaWdu ZWQgbG9uZykmKHB0ciktPmZpZWxkICsgKHB0ciktPmZpZWxkKQogCkBAIC0yMSw3ICsyMSw3IEBA IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBleF9jb250KGNvbnN0IHN0cnVjdCBleGNlcHRp b25fdGFibGVfZW50cnkgKngpCiAJcmV0dXJuIEVYX0ZJRUxEKHgsIGNvbnQpOwogfQogCi1zdGF0 aWMgaW50IGluaXRfb3JfeHNwbGljZSBjbXBfZXgoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAq YikKK3N0YXRpYyBpbnQgaW5pdF9vcl9saXZlcGF0Y2ggY21wX2V4KGNvbnN0IHZvaWQgKmEsIGNv bnN0IHZvaWQgKmIpCiB7CiAJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqbCA9 IGEsICpyID0gYjsKIAl1bnNpZ25lZCBsb25nIGxpcCA9IGV4X2FkZHIobCk7CkBAIC0zNiw3ICsz Niw3IEBAIHN0YXRpYyBpbnQgaW5pdF9vcl94c3BsaWNlIGNtcF9leChjb25zdCB2b2lkICphLCBj b25zdCB2b2lkICpiKQogfQogCiAjaWZuZGVmIHN3YXBfZXgKLXN0YXRpYyB2b2lkIGluaXRfb3Jf eHNwbGljZSBzd2FwX2V4KHZvaWQgKmEsIHZvaWQgKmIsIGludCBzaXplKQorc3RhdGljIHZvaWQg aW5pdF9vcl9saXZlcGF0Y2ggc3dhcF9leCh2b2lkICphLCB2b2lkICpiLCBpbnQgc2l6ZSkKIHsK IAlzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpsID0gYSwgKnIgPSBiLCB0bXA7CiAJbG9u ZyBkZWx0YSA9IGIgLSBhOwpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgdm9pZCBpbml0X29yX3hz cGxpY2Ugc3dhcF9leCh2b2lkICphLCB2b2lkICpiLCBpbnQgc2l6ZSkKIH0KICNlbmRpZgogCi12 b2lkIGluaXRfb3JfeHNwbGljZSBzb3J0X2V4Y2VwdGlvbl90YWJsZShzdHJ1Y3QgZXhjZXB0aW9u X3RhYmxlX2VudHJ5ICpzdGFydCwKK3ZvaWQgaW5pdF9vcl9saXZlcGF0Y2ggc29ydF9leGNlcHRp b25fdGFibGUoc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqc3RhcnQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5 ICpzdG9wKQogewogICAgIHNvcnQoc3RhcnQsIHN0b3AgLSBzdGFydCwKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni94c3BsaWNlLmMgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKc2ltaWxhcml0 eSBpbmRleCA3NCUKcmVuYW1lIGZyb20geGVuL2FyY2gveDg2L3hzcGxpY2UuYwpyZW5hbWUgdG8g eGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCmluZGV4IGZmMTM0NmMuLjEwMjNmYWIgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni94c3BsaWNlLmMKKysrIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5j CkBAIC04LDI2ICs4LDI2IEBACiAjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8eGVuL3Bm bi5oPgogI2luY2x1ZGUgPHhlbi92bWFwLmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2VfZWxmLmg+ Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoX2VsZi5o PgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KIAogI2luY2x1ZGUgPGFzbS9ubWkuaD4KIAog I2RlZmluZSBQQVRDSF9JTlNOX1NJWkUgNQogCi12b2lkIGFyY2hfeHNwbGljZV9wYXRjaGluZ19l bnRlcih2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKHZvaWQpCiB7CiAgICAgLyog RGlzYWJsZSBXUCB0byBhbGxvdyBjaGFuZ2VzIHRvIHJlYWQtb25seSBwYWdlcy4gKi8KICAgICB3 cml0ZV9jcjAocmVhZF9jcjAoKSAmIH5YODZfQ1IwX1dQKTsKIH0KIAotdm9pZCBhcmNoX3hzcGxp Y2VfcGF0Y2hpbmdfbGVhdmUodm9pZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2aXZlKHZvaWQp CiB7CiAgICAgLyogUmVpbnN0YXRlIFdQLiAqLwogICAgIHdyaXRlX2NyMChyZWFkX2NyMCgpIHwg WDg2X0NSMF9XUCk7CiB9CiAKLWludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2Z1bmMoY29uc3Qgc3Ry dWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykKK2ludCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlf ZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCiB7CiAgICAgLyogTm8gTk9Q IHBhdGNoaW5nIHlldC4gKi8KICAgICBpZiAoICFmdW5jLT5uZXdfc2l6ZSApCkBAIC0zOSw3ICsz OSw3IEBAIGludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IHhzcGxpY2Vf cGF0Y2hfZnVuYyAqZnVuYykKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBhcmNoX3hzcGxpY2Vf YXBwbHlfam1wKHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMpCit2b2lkIGFyY2hfbGl2 ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCiB7CiAgICAgaW50 MzJfdCB2YWw7CiAgICAgdWludDhfdCAqb2xkX3B0cjsKQEAgLTU1LDEzICs1NSwxMyBAQCB2b2lk IGFyY2hfeHNwbGljZV9hcHBseV9qbXAoc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykK ICAgICBtZW1jcHkob2xkX3B0ciwgJnZhbCwgc2l6ZW9mKHZhbCkpOwogfQogCi12b2lkIGFyY2hf eHNwbGljZV9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMp Cit2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9m dW5jICpmdW5jKQogewogICAgIG1lbWNweShmdW5jLT5vbGRfYWRkciwgZnVuYy0+b3BhcXVlLCBQ QVRDSF9JTlNOX1NJWkUpOwogfQogCiAvKiBTZXJpYWxpc2UgdGhlIENQVSBwaXBlbGluZS4gKi8K LXZvaWQgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9uKHZvaWQpCit2b2lkIGFyY2hfbGl2ZXBhdGNo X3Bvc3RfYWN0aW9uKHZvaWQpCiB7CiAgICAgY3B1aWRfZWF4KDApOwogfQpAQCAtNzcsMTcgKzc3 LDE3IEBAIHN0YXRpYyBpbnQgbWFza19ubWlfY2FsbGJhY2soY29uc3Qgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MsIGludCBjcHUpCiAgICAgcmV0dXJuIDE7CiB9CiAKLXZvaWQgYXJjaF94c3Bs aWNlX21hc2sodm9pZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfbWFzayh2b2lkKQogewogICAgIHNh dmVkX25taV9jYWxsYmFjayA9IHNldF9ubWlfY2FsbGJhY2sobWFza19ubWlfY2FsbGJhY2spOwog fQogCi12b2lkIGFyY2hfeHNwbGljZV91bm1hc2sodm9pZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hf dW5tYXNrKHZvaWQpCiB7CiAgICAgc2V0X25taV9jYWxsYmFjayhzYXZlZF9ubWlfY2FsbGJhY2sp OwogfQogCi1pbnQgYXJjaF94c3BsaWNlX3ZlcmlmeV9lbGYoY29uc3Qgc3RydWN0IHhzcGxpY2Vf ZWxmICplbGYpCitpbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2VsZihjb25zdCBzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZiAqZWxmKQogewogCiAgICAgY29uc3QgRWxmX0VoZHIgKmhkciA9IGVsZi0+aGRy OwpAQCAtOTYsNyArOTYsNyBAQCBpbnQgYXJjaF94c3BsaWNlX3ZlcmlmeV9lbGYoY29uc3Qgc3Ry dWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgICAgICBoZHItPmVfaWRlbnRbRUlfQ0xBU1NdICE9 IEVMRkNMQVNTNjQgfHwKICAgICAgICAgIGhkci0+ZV9pZGVudFtFSV9EQVRBXSAhPSBFTEZEQVRB MkxTQiApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBV bnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0eXBlIVxuIiwKKyAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0eXBlIVxuIiwKICAg ICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAg ICAgfQpAQCAtMTA0LDE4ICsxMDQsMTggQEAgaW50IGFyY2hfeHNwbGljZV92ZXJpZnlfZWxmKGNv bnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIHJldHVybiAwOwogfQogCi1pbnQgYXJj aF94c3BsaWNlX3BlcmZvcm1fcmVsKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpiYXNlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2Vj ICpyZWxhKQoraW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsKHN0cnVjdCBsaXZlcGF0Y2hf ZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxp dmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKIHsKLSAgICBkcHJpbnRrKFhFTkxP R19FUlIsIFhTUExJQ0UgIiVzOiBTSFRfUkVMIHJlbG9jYXRpb24gdW5zdXBwb3J0ZWRcbiIsCisg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTSFRfUkVMIHJlbG9jYXRpb24g dW5zdXBwb3J0ZWRcbiIsCiAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgIHJldHVybiAtRU9Q Tk9UU1VQUDsKIH0KIAotaW50IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbGEoc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg eHNwbGljZV9lbGZfc2VjICpiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqcmVsYSkKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJm b3JtX3JlbGEoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KnJlbGEpCiB7CiAgICAgY29uc3QgRWxmX1JlbEEgKnI7CiAgICAgdW5zaWduZWQgaW50IHN5bW5k eCwgaTsKQEAgLTEyOSw3ICsxMjksNyBAQCBpbnQgYXJjaF94c3BsaWNlX3BlcmZvcm1fcmVsYShz dHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwKICAgICBpZiAoIHJlbGEtPnNlYy0+c2hfZW50c2l6ZSA8 IHNpemVvZihFbGZfUmVsQSkgfHwKICAgICAgICAgIHJlbGEtPnNlYy0+c2hfc2l6ZSAlIHJlbGEt PnNlYy0+c2hfZW50c2l6ZSApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhT UExJQ0UgIiVzOiBTZWN0aW9uIHJlbGF0aXZlIGhlYWRlciBpcyBjb3JydXB0ZWQhXG4iLAorICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rpb24gcmVsYXRpdmUg aGVhZGVyIGlzIGNvcnJ1cHRlZCFcbiIsCiAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQpAQCAtMTQyLDcgKzE0Miw3IEBAIGludCBhcmNo X3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAogCiAgICAgICAg IGlmICggc3ltbmR4ID4gZWxmLT5uc3ltICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogUmVsYXRpdmUgcmVsb2NhdGlvbiB3YW50cyBzeW1i b2xAJXUgd2hpY2ggaXMgcGFzdCBlbmQhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBMSVZFUEFUQ0ggIiVzOiBSZWxhdGl2ZSByZWxvY2F0aW9uIHdhbnRzIHN5bWJvbEAldSB3 aGljaCBpcyBwYXN0IGVuZCFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc3lt bmR4KTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CkBAIC0xODEsMTQg KzE4MSwxNCBAQCBpbnQgYXJjaF94c3BsaWNlX3BlcmZvcm1fcmVsYShzdHJ1Y3QgeHNwbGljZV9l bGYgKmVsZiwKICAgICAgICAgICAgICooaW50MzJfdCAqKWRlc3QgPSB2YWw7CiAgICAgICAgICAg ICBpZiAoIChpbnQ2NF90KXZhbCAhPSAqKGludDMyX3QgKilkZXN0ICkKICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBPdmVyZmxv dyBpbiByZWxvY2F0aW9uICV1IGluICVzIGZvciAlcyFcbiIsCisgICAgICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBPdmVyZmxvdyBpbiByZWxvY2F0aW9uICV1 IGluICVzIGZvciAlcyFcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGks IHJlbGEtPm5hbWUsIGJhc2UtPm5hbWUpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRU9WRVJG TE9XOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVs dDoKLSAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFVuaGFuZGxl ZCByZWxvY2F0aW9uICVsdVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElW RVBBVENIICIlczogVW5oYW5kbGVkIHJlbG9jYXRpb24gJWx1XG4iLAogICAgICAgICAgICAgICAg ICAgICBlbGYtPm5hbWUsIEVMRjY0X1JfVFlQRShyLT5yX2luZm8pKTsKICAgICAgICAgICAgIHJl dHVybiAtRU9QTk9UU1VQUDsKICAgICAgICAgfQpAQCAtMTk3LDcgKzE5Nyw3IEBAIGludCBhcmNo X3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAogICAgIHJldHVy biAwOwogCiAgYmFkX29mZnNldDoKLSAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVz OiBSZWxhdGl2ZSByZWxvY2F0aW9uIG9mZnNldCBpcyBwYXN0ICVzIHNlY3Rpb24hXG4iLAorICAg IGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogUmVsYXRpdmUgcmVsb2NhdGlvbiBv ZmZzZXQgaXMgcGFzdCAlcyBzZWN0aW9uIVxuIiwKICAgICAgICAgICAgIGVsZi0+bmFtZSwgYmFz ZS0+bmFtZSk7CiAgICAgcmV0dXJuIC1FSU5WQUw7CiB9CkBAIC0yMDcsNyArMjA3LDcgQEAgaW50 IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbGEoc3RydWN0IHhzcGxpY2VfZWxmICplbGYsCiAgKiB3 ZSBzZWN1cmUgdGhlIG1lbW9yeSBieSBwdXR0aW5nIGluIHRoZSBwcm9wZXIgcGFnZSB0YWJsZSBh dHRyaWJ1dGVzCiAgKiBmb3IgdGhlIGRlc2lyZWQgdHlwZS4KICAqLwotaW50IGFyY2hfeHNwbGlj ZV9zZWN1cmUoY29uc3Qgdm9pZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBl IHR5cGUpCitpbnQgYXJjaF9saXZlcGF0Y2hfc2VjdXJlKGNvbnN0IHZvaWQgKnZhLCB1bnNpZ25l ZCBpbnQgcGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlKQogewogICAgIHVuc2lnbmVkIGxvbmcgc3Rh cnQgPSAodW5zaWduZWQgbG9uZyl2YTsKICAgICB1bnNpZ25lZCBpbnQgZmxhZzsKQEAgLTIxNSw5 ICsyMTUsOSBAQCBpbnQgYXJjaF94c3BsaWNlX3NlY3VyZShjb25zdCB2b2lkICp2YSwgdW5zaWdu ZWQgaW50IHBhZ2VzLCBlbnVtIHZhX3R5cGUgdHlwZSkKICAgICBBU1NFUlQodmEpOwogICAgIEFT U0VSVChwYWdlcyk7CiAKLSAgICBpZiAoIHR5cGUgPT0gWFNQTElDRV9WQV9SWCApCisgICAgaWYg KCB0eXBlID09IExJVkVQQVRDSF9WQV9SWCApCiAgICAgICAgIGZsYWcgPSBQQUdFX0hZUEVSVklT T1JfUlg7Ci0gICAgZWxzZSBpZiAoIHR5cGUgPT0gWFNQTElDRV9WQV9SVyApCisgICAgZWxzZSBp ZiAoIHR5cGUgPT0gTElWRVBBVENIX1ZBX1JXICkKICAgICAgICAgZmxhZyA9IFBBR0VfSFlQRVJW SVNPUl9SVzsKICAgICBlbHNlCiAgICAgICAgIGZsYWcgPSBQQUdFX0hZUEVSVklTT1JfUk87CkBA IC0yMjcsNyArMjI3LDcgQEAgaW50IGFyY2hfeHNwbGljZV9zZWN1cmUoY29uc3Qgdm9pZCAqdmEs IHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUpCiAgICAgcmV0dXJuIDA7CiB9 CiAKLXZvaWQgX19pbml0IGFyY2hfeHNwbGljZV9pbml0KHZvaWQpCit2b2lkIF9faW5pdCBhcmNo X2xpdmVwYXRjaF9pbml0KHZvaWQpCiB7CiAgICAgdm9pZCAqc3RhcnQsICplbmQ7CiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFr ZWZpbGUKaW5kZXggYTlkNDNhMS4uMjNkZmYxZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rl c3QvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKQEAgLTUsMjQgKzUs MjQgQEAgQ09ERV9TWj0kKHNoZWxsIG5tIC0tZGVmaW5lZCAtUyAkKDEpIHwgZ3JlcCAkKDIpIHwg YXdrICd7IHByaW50ICIweCIkJDJ9JykKIAogLlBIT05ZOiBkZWZhdWx0CiAKLVhTUExJQ0UgOj0g eGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKLVhTUExJQ0VfQllFIDo9IHhlbl9ieWVfd29ybGQueHNw bGljZQotWFNQTElDRV9SRVBMQUNFIDo9IHhlbl9yZXBsYWNlX3dvcmxkLnhzcGxpY2UKK0xJVkVQ QVRDSCA6PSB4ZW5faGVsbG9fd29ybGQubGl2ZXBhdGNoCitMSVZFUEFUQ0hfQllFIDo9IHhlbl9i eWVfd29ybGQubGl2ZXBhdGNoCitMSVZFUEFUQ0hfUkVQTEFDRSA6PSB4ZW5fcmVwbGFjZV93b3Js ZC5saXZlcGF0Y2gKIAotZGVmYXVsdDogeHNwbGljZQorZGVmYXVsdDogbGl2ZXBhdGNoCiAKLWlu c3RhbGw6IHhzcGxpY2UKLQkkKElOU1RBTExfREFUQSkgJChYU1BMSUNFKSAkKERFU1RESVIpJChE RUJVR19ESVIpLyQoWFNQTElDRSkKLQkkKElOU1RBTExfREFUQSkgJChYU1BMSUNFX0JZRSkgJChE RVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0VfQllFKQotCSQoSU5TVEFMTF9EQVRBKSAkKFhT UExJQ0VfUkVQTEFDRSkgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0VfUkVQTEFDRSkK K2luc3RhbGw6IGxpdmVwYXRjaAorCSQoSU5TVEFMTF9EQVRBKSAkKExJVkVQQVRDSCkgJChERVNU RElSKSQoREVCVUdfRElSKS8kKExJVkVQQVRDSCkKKwkkKElOU1RBTExfREFUQSkgJChMSVZFUEFU Q0hfQllFKSAkKERFU1RESVIpJChERUJVR19ESVIpLyQoTElWRVBBVENIX0JZRSkKKwkkKElOU1RB TExfREFUQSkgJChMSVZFUEFUQ0hfUkVQTEFDRSkgJChERVNURElSKSQoREVCVUdfRElSKS8kKExJ VkVQQVRDSF9SRVBMQUNFKQogdW5pbnN0YWxsOgotCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJ UikvJChYU1BMSUNFKQotCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJUikvJChYU1BMSUNFX0JZ RSkKLQlybSAtZiAkKERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRV9SRVBMQUNFKQorCXJt IC1mICQoREVTVERJUikkKERFQlVHX0RJUikvJChMSVZFUEFUQ0gpCisJcm0gLWYgJChERVNURElS KSQoREVCVUdfRElSKS8kKExJVkVQQVRDSF9CWUUpCisJcm0gLWYgJChERVNURElSKSQoREVCVUdf RElSKS8kKExJVkVQQVRDSF9SRVBMQUNFKQogCiAuUEhPTlk6IGNsZWFuCiBjbGVhbjo6Ci0Jcm0g LWYgKi5vIC4qLm8uZCAqLnhzcGxpY2UgY29uZmlnLmgKKwlybSAtZiAqLm8gLiouby5kICoubGl2 ZXBhdGNoIGNvbmZpZy5oCiAKICMKICMgVG8gY29tcHV0ZSB0aGVzZSB2YWx1ZXMgd2UgbmVlZCB0 aGUgYmluYXJ5IGZpbGVzOiB4ZW4tc3ltcwpAQCAtMzgsMTIgKzM4LDEyIEBAIGNvbmZpZy5oOiB4 ZW5faGVsbG9fd29ybGRfZnVuYy5vCiAKIHhlbl9oZWxsb193b3JsZC5vOiBjb25maWcuaAogCi0u UEhPTlk6ICQoWFNQTElDRSkKLSQoWFNQTElDRSk6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8geGVu X2hlbGxvX3dvcmxkLm8gbm90ZS5vCi0JJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtl cikgLXIgLW8gJChYU1BMSUNFKSAkXgorLlBIT05ZOiAkKExJVkVQQVRDSCkKKyQoTElWRVBBVENI KTogeGVuX2hlbGxvX3dvcmxkX2Z1bmMubyB4ZW5faGVsbG9fd29ybGQubyBub3RlLm8KKwkkKExE KSAkKExERkxBR1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKExJVkVQQVRDSCkgJF4KIAog IwotIyBUaGlzIHRhcmdldCBpcyBvbmx5IGFjY2Vzc2libGUgaWYgQ09ORklHX1hTUExJQ0UgaXMg ZGVmaW5lZCwgd2hpY2gKKyMgVGhpcyB0YXJnZXQgaXMgb25seSBhY2Nlc3NpYmxlIGlmIENPTkZJ R19MSVZFUEFUQ0ggaXMgZGVmaW5lZCwgd2hpY2gKICMgZGVwZW5kcyBvbiAkKGJ1aWxkX2lkX2xp bmtlcikgYmVpbmcgYXZhaWxhYmxlLiBIZW5jZSB3ZSBkbyBub3QKICMgbmVlZCBhbnkgY2hlY2tz LgogIwpAQCAtNTUsMzEgKzU1LDMxIEBAICQoWFNQTElDRSk6IHhlbl9oZWxsb193b3JsZF9mdW5j Lm8geGVuX2hlbGxvX3dvcmxkLm8gbm90ZS5vCiBub3RlLm86CiAJJChPQkpDT1BZKSAtTyBiaW5h cnkgLS1vbmx5LXNlY3Rpb249Lm5vdGUuZ251LmJ1aWxkLWlkICQoQkFTRURJUikveGVuLXN5bXMg JEAuYmluCiAJJChPQkpDT1BZKSAtSSBiaW5hcnkgLU8gZWxmNjQteDg2LTY0IC1CIGkzODY6eDg2 LTY0IFwKLQkJICAgLS1yZW5hbWUtc2VjdGlvbj0uZGF0YT0ueHNwbGljZS5kZXBlbmRzIC1TICRA LmJpbiAkQAorCQkgICAtLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS5saXZlcGF0Y2guZGVwZW5kcyAt UyAkQC5iaW4gJEAKIAlybSAtZiAkQC5iaW4KIAogIwotIyBFeHRyYWN0IHRoZSBidWlsZC1pZCBv ZiB0aGUgeGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKKyMgRXh0cmFjdCB0aGUgYnVpbGQtaWQgb2Yg dGhlIHhlbl9oZWxsb193b3JsZC5saXZlcGF0Y2gKICMgKHdoaWNoIHhlbl9ieWVfd29ybGQgd2ls bCBkZXBlbmQgb24pLgogIwogLlBIT05ZOiBoZWxsb193b3JsZF9ub3RlLm8KLWhlbGxvX3dvcmxk X25vdGUubzogJChYU1BMSUNFKQotCSQoT0JKQ09QWSkgLU8gYmluYXJ5IC0tb25seS1zZWN0aW9u PS5ub3RlLmdudS5idWlsZC1pZCAkKFhTUExJQ0UpICRALmJpbgoraGVsbG9fd29ybGRfbm90ZS5v OiAkKExJVkVQQVRDSCkKKwkkKE9CSkNPUFkpIC1PIGJpbmFyeSAtLW9ubHktc2VjdGlvbj0ubm90 ZS5nbnUuYnVpbGQtaWQgJChMSVZFUEFUQ0gpICRALmJpbgogCSQoT0JKQ09QWSkgIC1JIGJpbmFy eSAtTyBlbGY2NC14ODYtNjQgLUIgaTM4Njp4ODYtNjQgXAotCQkgICAtLXJlbmFtZS1zZWN0aW9u PS5kYXRhPS54c3BsaWNlLmRlcGVuZHMgLVMgJEAuYmluICRACisJCSAgIC0tcmVuYW1lLXNlY3Rp b249LmRhdGE9LmxpdmVwYXRjaC5kZXBlbmRzIC1TICRALmJpbiAkQAogCXJtIC1mICRALmJpbgog CiB4ZW5fYnllX3dvcmxkLm86IGNvbmZpZy5oCiAKLS5QSE9OWTogJChYU1BMSUNFX0JZRSkKLSQo WFNQTElDRV9CWUUpOiB4ZW5fYnllX3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dvcmxkLm8gaGVsbG9f d29ybGRfbm90ZS5vCi0JJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIgLW8g JChYU1BMSUNFX0JZRSkgJF4KKy5QSE9OWTogJChMSVZFUEFUQ0hfQllFKQorJChMSVZFUEFUQ0hf QllFKTogeGVuX2J5ZV93b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZC5vIGhlbGxvX3dvcmxkX25v dGUubworCSQoTEQpICQoTERGTEFHUykgJChidWlsZF9pZF9saW5rZXIpIC1yIC1vICQoTElWRVBB VENIX0JZRSkgJF4KIAogeGVuX3JlcGxhY2Vfd29ybGQubzogY29uZmlnLmgKIAotLlBIT05ZOiAk KFhTUExJQ0VfUkVQTEFDRSkKLSQoWFNQTElDRV9SRVBMQUNFKTogeGVuX3JlcGxhY2Vfd29ybGRf ZnVuYy5vIHhlbl9yZXBsYWNlX3dvcmxkLm8gbm90ZS5vCi0JJChMRCkgJChMREZMQUdTKSAkKGJ1 aWxkX2lkX2xpbmtlcikgLXIgLW8gJChYU1BMSUNFX1JFUExBQ0UpICReCisuUEhPTlk6ICQoTElW RVBBVENIX1JFUExBQ0UpCiskKExJVkVQQVRDSF9SRVBMQUNFKTogeGVuX3JlcGxhY2Vfd29ybGRf ZnVuYy5vIHhlbl9yZXBsYWNlX3dvcmxkLm8gbm90ZS5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1 aWxkX2lkX2xpbmtlcikgLXIgLW8gJChMSVZFUEFUQ0hfUkVQTEFDRSkgJF4KIAotLlBIT05ZOiB4 c3BsaWNlCi14c3BsaWNlOiAkKFhTUExJQ0UpICQoWFNQTElDRV9CWUUpICQoWFNQTElDRV9SRVBM QUNFKQorLlBIT05ZOiBsaXZlcGF0Y2gKK2xpdmVwYXRjaDogJChMSVZFUEFUQ0gpICQoTElWRVBB VENIX0JZRSkgJChMSVZFUEFUQ0hfUkVQTEFDRSkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90 ZXN0L3hlbl9ieWVfd29ybGQuYyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYwpp bmRleCBmOTNmOTY5Li5iNzVlMGIxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5f YnllX3dvcmxkLmMKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jCkBAIC03 LDE1ICs3LDE1IEBACiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPHhlbi90eXBlcy5o PgogI2luY2x1ZGUgPHhlbi92ZXJzaW9uLmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNp bmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAKICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAK IHN0YXRpYyBjaGFyIGJ5ZV93b3JsZF9wYXRjaF90aGlzX2ZuY1tdID0gInhlbl9leHRyYV92ZXJz aW9uIjsKIGV4dGVybiBjb25zdCBjaGFyICp4ZW5fYnllX3dvcmxkKHZvaWQpOwogCi1zdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2UuZnVuY3MiKSB4c3BsaWNlX3hl bl9ieWVfd29ybGQgPSB7Ci0gICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiwK K3N0cnVjdCBsaXZlcGF0Y2hfZnVuYyBfX3NlY3Rpb24oIi5saXZlcGF0Y2guZnVuY3MiKSBsaXZl cGF0Y2hfeGVuX2J5ZV93b3JsZCA9IHsKKyAgICAudmVyc2lvbiA9IExJVkVQQVRDSF9QQVlMT0FE X1ZFUlNJT04sCiAgICAgLm5hbWUgPSBieWVfd29ybGRfcGF0Y2hfdGhpc19mbmMsCiAgICAgLm5l d19hZGRyID0geGVuX2J5ZV93b3JsZCwKICAgICAub2xkX2FkZHIgPSB4ZW5fZXh0cmFfdmVyc2lv biwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIGIveGVu L2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggOGFmZDY2ZS4uNDIyYmRmMSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKKysrIGIveGVu L2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTYsMTUgKzYsMTUgQEAKICNpbmNs dWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNpbmNsdWRlIDx4ZW4vdmVy c2lvbi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRj aC5oPgogCiAjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5oPgogCiBzdGF0aWMgY2hhciBoZWxsb193 b3JsZF9wYXRjaF90aGlzX2ZuY1tdID0gInhlbl9leHRyYV92ZXJzaW9uIjsKIGV4dGVybiBjb25z dCBjaGFyICp4ZW5faGVsbG9fd29ybGQodm9pZCk7CiAKLXN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1 bmMgX19zZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX2hlbGxvX3dvcmxkID0g ewotICAgIC52ZXJzaW9uID0gWFNQTElDRV9QQVlMT0FEX1ZFUlNJT04sCitzdHJ1Y3QgbGl2ZXBh dGNoX2Z1bmMgX19zZWN0aW9uKCIubGl2ZXBhdGNoLmZ1bmNzIikgbGl2ZXBhdGNoX3hlbl9oZWxs b193b3JsZCA9IHsKKyAgICAudmVyc2lvbiA9IExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04sCiAg ICAgLm5hbWUgPSBoZWxsb193b3JsZF9wYXRjaF90aGlzX2ZuYywKICAgICAubmV3X2FkZHIgPSB4 ZW5faGVsbG9fd29ybGQsCiAgICAgLm9sZF9hZGRyID0geGVuX2V4dHJhX3ZlcnNpb24sCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZC5jIGIveGVuL2FyY2gv eDg2L3Rlc3QveGVuX3JlcGxhY2Vfd29ybGQuYwppbmRleCBmYWIyODQxLi5hMmEyMjFhIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZC5jCisrKyBiL3hlbi9h cmNoL3g4Ni90ZXN0L3hlbl9yZXBsYWNlX3dvcmxkLmMKQEAgLTYsMTUgKzYsMTUgQEAKICNpbmNs dWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVz Lmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+ CiAKICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAKIHN0YXRpYyBjaGFyIHhlbl9yZXBsYWNl X3dvcmxkX25hbWVbXSA9ICJ4ZW5fZXh0cmFfdmVyc2lvbiI7CiBleHRlcm4gY29uc3QgY2hhciAq eGVuX3JlcGxhY2Vfd29ybGQodm9pZCk7CiAKLXN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgX19z ZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX3JlcGxhY2Vfd29ybGQgPSB7Ci0g ICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiwKK3N0cnVjdCBsaXZlcGF0Y2hf ZnVuYyBfX3NlY3Rpb24oIi5saXZlcGF0Y2guZnVuY3MiKSBsaXZlcGF0Y2hfeGVuX3JlcGxhY2Vf d29ybGQgPSB7CisgICAgLnZlcnNpb24gPSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OLAogICAg IC5uYW1lID0geGVuX3JlcGxhY2Vfd29ybGRfbmFtZSwKICAgICAub2xkX2FkZHIgPSAwLCAvKiBG b3JjZXMgdGhlIGh5cGVydmlzb3IgdG8gbG9va3VwIC5uYW1lICovCiAgICAgLm5ld19hZGRyID0g eGVuX3JlcGxhY2Vfd29ybGQsCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hl bi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDVkNzIzMmQuLmM0ZTBlNmYgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC01MCw3ICs1 MCw3IEBACiAjaW5jbHVkZSA8eGVuL3BhZ2luZy5oPgogI2luY2x1ZGUgPHhlbi92aXJ0dWFsX3Jl Z2lvbi5oPgogI2luY2x1ZGUgPHhlbi93YXRjaGRvZy5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNl Lmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4K ICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL0tjb25maWcgYi94ZW4vY29tbW9uL0tjb25maWcKaW5kZXggOTFlYTkwNC4u Y2Q1OTU3NCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9LY29uZmlnCisrKyBiL3hlbi9jb21tb24v S2NvbmZpZwpAQCAtMTkyLDkgKzE5Miw5IEBAIGNvbmZpZyBTQ0hFRF9ERUZBVUxUCiAKIGVuZG1l bnUKIAotIyBFbmFibGUvRGlzYWJsZSB4c3BsaWNlIHN1cHBvcnQKLWNvbmZpZyBYU1BMSUNFCi0J Ym9vbCAieFNwbGljZSBsaXZlIHBhdGNoaW5nIHN1cHBvcnQgKFRFQ0ggUFJFVklFVykiCisjIEVu YWJsZS9EaXNhYmxlIGxpdmUgcGF0Y2hpbmcgc3VwcG9ydAorY29uZmlnIExJVkVQQVRDSAorCWJv b2wgIkxpdmUgcGF0Y2hpbmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVXKSIKIAlkZWZhdWx0IG4KIAlk ZXBlbmRzIG9uIFg4NiAmJiBIQVNfQlVJTERfSUQgPSAieSIKIAktLS1oZWxwLS0tCkBAIC0yMDcs MTMgKzIwNywxMyBAQCBjb25maWcgWFNQTElDRQogY29uZmlnIEZBU1RfU1lNQk9MX0xPT0tVUAog CWJvb2wgIkZhc3Qgc3ltYm9sIGxvb2t1cCAoYmlnZ2VyIGJpbmFyeSkiCiAJZGVmYXVsdCB5Ci0J ZGVwZW5kcyBvbiBYU1BMSUNFCisJZGVwZW5kcyBvbiBMSVZFUEFUQ0gKIAktLS1oZWxwLS0tCiAJ ICBXaGVuIHNlYXJjaGluZyBmb3Igc3ltYm9sIGFkZHJlc3NlcyB3ZSBjYW4gdXNlIHRoZSBidWls dC1pbiBzeXN0ZW0KIAkgIHRoYXQgaXMgb3B0aW1pemVkIGZvciBzZWFyY2hpbmcgc3ltYm9scyB1 c2luZyBhZGRyZXNzZXMgYXMgdGhlIGtleS4KIAkgIEhvd2V2ZXIgdXNpbmcgaXQgZm9yIHRoZSBp bnZlcnNlIChmaW5kIGFkZHJlc3MgdXNpbmcgdGhlIHN5bWJvbCBuYW1lKQogCSAgaXQgaXMgc2xv dy4gVGhpcyBleHRyYSBkYXRhIGFuZCBjb2RlICh+NTVrQikgc3BlZWRzIHVwIHRoZSBzZWFyY2gu Ci0JICBUaGUgb25seSB1c2VyIG9mIHRoaXMgaXMgeFNwbGljZS4KKwkgIFRoZSBvbmx5IHVzZXIg b2YgdGhpcyBpcyBMaXZlIHBhdGNoaW5nLgogCiAJICBJZiB1bnN1cmUsIHNheSBZLgogZW5kbWVu dQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9NYWtlZmlsZSBiL3hlbi9jb21tb24vTWFrZWZpbGUK aW5kZXggYWZkODRiNi4uZGRhOTkyNSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9NYWtlZmlsZQor KysgYi94ZW4vY29tbW9uL01ha2VmaWxlCkBAIC0xNyw2ICsxNyw3IEBAIG9iai15ICs9IGtleWhh bmRsZXIubwogb2JqLSQoQ09ORklHX0tFWEVDKSArPSBrZXhlYy5vCiBvYmotJChDT05GSUdfS0VY RUMpICs9IGtpbWFnZS5vCiBvYmoteSArPSBsaWIubworb2JqLSQoQ09ORklHX0xJVkVQQVRDSCkg Kz0gbGl2ZXBhdGNoLm8gbGl2ZXBhdGNoX2VsZi5vCiBvYmoteSArPSBsem8ubwogb2JqLSQoQ09O RklHX0hBU19NRU1fQUNDRVNTKSArPSBtZW1fYWNjZXNzLm8KIG9iai15ICs9IG1lbW9yeS5vCkBA IC01OCw4ICs1OSw2IEBAIG9iai15ICs9IHZzcHJpbnRmLm8KIG9iai15ICs9IHdhaXQubwogb2Jq LSQoQ09ORklHX1hFTk9QUk9GKSArPSB4ZW5vcHJvZi5vCiBvYmoteSArPSB4bWFsbG9jX3Rsc2Yu bwotb2JqLSQoQ09ORklHX1hTUExJQ0UpICs9IHhzcGxpY2Uubwotb2JqLSQoQ09ORklHX1hTUExJ Q0UpICs9IHhzcGxpY2VfZWxmLm8KIAogb2JqLWJpbi0kKENPTkZJR19YODYpICs9ICQoZm9yZWFj aCBuLGRlY29tcHJlc3MgYnVuemlwMiB1bnh6IHVubHptYSB1bmx6byB1bmx6NCBlYXJseWNwaW8s JChuKS5pbml0Lm8pCiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIveGVuL2Nv bW1vbi9saXZlcGF0Y2guYwpzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSB4ZW4vY29t bW9uL3hzcGxpY2UuYwpyZW5hbWUgdG8geGVuL2NvbW1vbi9saXZlcGF0Y2guYwppbmRleCBiNjg4 NzViLi41ZGEyOGEzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4v Y29tbW9uL2xpdmVwYXRjaC5jCkBAIC0yMSw4ICsyMSw4IEBACiAjaW5jbHVkZSA8eGVuL3ZpcnR1 YWxfcmVnaW9uLmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5o PgotI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+ CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaF9lbGYuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNo Lmg+CiAKICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KIApAQCAtNDQsMTMgKzQ0LDEzIEBAIHN0YXRp YyB1bnNpZ25lZCBpbnQgcGF5bG9hZF9jbnQ7CiBzdGF0aWMgdW5zaWduZWQgaW50IHBheWxvYWRf dmVyc2lvbiA9IDE7CiAKIC8qIFRvIGNvbnRhaW4gdGhlIEVMRiBOb3RlIGhlYWRlci4gKi8KLXN0 cnVjdCB4c3BsaWNlX2J1aWxkX2lkIHsKK3N0cnVjdCBsaXZlcGF0Y2hfYnVpbGRfaWQgewogICAg Y29uc3Qgdm9pZCAqcDsKICAgIHVuc2lnbmVkIGludCBsZW47CiB9OwogCiBzdHJ1Y3QgcGF5bG9h ZCB7Ci0gICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgICAgICAgIC8qIE9uZSBvZiB0 aGUgWFNQTElDRV9TVEFURV8qLiAqLworICAgIHVpbnQzMl90IHN0YXRlOyAgICAgICAgICAgICAg ICAgICAgICAvKiBPbmUgb2YgdGhlIExJVkVQQVRDSF9TVEFURV8qLiAqLwogICAgIGludDMyX3Qg cmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwIG9yIC1YRU5fRVhYLiAqLwogICAgIHN0 cnVjdCBsaXN0X2hlYWQgbGlzdDsgICAgICAgICAgICAgICAvKiBMaW5rZWQgdG8gJ3BheWxvYWRf bGlzdCcuICovCiAgICAgY29uc3Qgdm9pZCAqdGV4dF9hZGRyOyAgICAgICAgICAgICAgIC8qIFZp cnR1YWwgYWRkcmVzcyBvZiAudGV4dC4gKi8KQEAgLTYxLDQ0ICs2MSw0NCBAQCBzdHJ1Y3QgcGF5 bG9hZCB7CiAgICAgc2l6ZV90IHJvX3NpemU7ICAgICAgICAgICAgICAgICAgICAgIC8qIC4uIGFu ZCBpdHMgc2l6ZSAoaWYgYW55KS4gKi8KICAgICB1bnNpZ25lZCBpbnQgcGFnZXM7ICAgICAgICAg ICAgICAgICAgLyogVG90YWwgcGFnZXMgZm9yIFt0ZXh0LHJ3LHJvXV9hZGRyICovCiAgICAgc3Ry dWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAgICAgIC8qIExpbmtlZCB0byAnYXBwbGllZF9s aXN0Jy4gKi8KLSAgICBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jczsgICAgLyogVGhl IGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8KKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1 bmMgKmZ1bmNzOyAgICAgICAgLyogVGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8K ICAgICB1bnNpZ25lZCBpbnQgbmZ1bmNzOyAgICAgICAgICAgICAgICAgLyogTnIgb2YgZnVuY3Rp b25zIHRvIHBhdGNoLiAqLwotICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAqc3ltdGFi OyAvKiBBbGwgc3ltYm9scy4gKi8KKyAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX3N5bWJvbCAq c3ltdGFiOyAvKiBBbGwgc3ltYm9scy4gKi8KICAgICBjb25zdCBjaGFyICpzdHJ0YWI7ICAgICAg ICAgICAgICAgICAgLyogUG9pbnRlciB0byAuc3RydGFiLiAqLwogICAgIHN0cnVjdCB2aXJ0dWFs X3JlZ2lvbiByZWdpb247ICAgICAgICAvKiBzeW1ib2wsIGJ1Zy5mcmFtZSBwYXRjaGluZyBhbmQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uIHRh YmxlICh4ODYpLiAqLwogICAgIHVuc2lnbmVkIGludCBuc3ltczsgICAgICAgICAgICAgICAgICAv KiBOciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIgYW5kIHN5bWJvbHMuICovCi0gICAgc3RydWN0IHhz cGxpY2VfYnVpbGRfaWQgaWQ7ICAgICAgICAgIC8qIEVMRk5PVEVfREVTQygubm90ZS5nbnUuYnVp bGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLwotICAgIHN0cnVjdCB4c3BsaWNlX2J1aWxkX2lkIGRl cDsgICAgICAgICAvKiBFTEZOT1RFX0RFU0MoLnhzcGxpY2UuZGVwZW5kcykuICovCi0gICAgY2hh ciBuYW1lW1hFTl9YU1BMSUNFX05BTUVfU0laRV07ICAgIC8qIE5hbWUgb2YgaXQuICovCisgICAg c3RydWN0IGxpdmVwYXRjaF9idWlsZF9pZCBpZDsgICAgICAgIC8qIEVMRk5PVEVfREVTQygubm90 ZS5nbnUuYnVpbGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHN0cnVjdCBsaXZlcGF0Y2hf YnVpbGRfaWQgZGVwOyAgICAgICAvKiBFTEZOT1RFX0RFU0MoLmxpdmVwYXRjaC5kZXBlbmRzKS4g Ki8KKyAgICBjaGFyIG5hbWVbWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkVdOyAvKiBOYW1lIG9mIGl0 LiAqLwogfTsKIAogLyogRGVmaW5lcyBhbiBvdXRzdGFuZGluZyBwYXRjaGluZyBhY3Rpb24uICov Ci1zdHJ1Y3QgeHNwbGljZV93b3JrCitzdHJ1Y3QgbGl2ZXBhdGNoX3dvcmsKIHsKICAgICBhdG9t aWNfdCBzZW1hcGhvcmU7ICAgICAgICAgIC8qIFVzZWQgdG8gcmVuZGV6dm91cyBDUFVzIGluCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19mb3JfeHNwbGljZV93b3Jr LiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfZm9yX2xpdmVw YXRjaF93b3JrLiAqLwogICAgIHVpbnQzMl90IHRpbWVvdXQ7ICAgICAgICAgICAgLyogVGltZW91 dCB0byBkbyB0aGUgb3BlcmF0aW9uLiAqLwogICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhOyAgICAg ICAgLyogVGhlIHBheWxvYWQgb24gd2hpY2ggdG8gYWN0LiAqLwogICAgIHZvbGF0aWxlIGJvb2xf dCBkb193b3JrOyAgICAgLyogU2lnbmFscyB3b3JrIHRvIGRvLiAqLwogICAgIHZvbGF0aWxlIGJv b2xfdCByZWFkeTsgICAgICAgLyogU2lnbmFscyBhbGwgQ1BVcyBzeW5jaHJvbml6ZWQuICovCi0g ICAgdW5zaWduZWQgaW50IGNtZDsgICAgICAgICAgICAvKiBBY3Rpb24gcmVxdWVzdDogWFNQTElD RV9BQ1RJT05fKiAqLworICAgIHVuc2lnbmVkIGludCBjbWQ7ICAgICAgICAgICAgLyogQWN0aW9u IHJlcXVlc3Q6IExJVkVQQVRDSF9BQ1RJT05fKiAqLwogfTsKIAogLyogVGhlcmUgY2FuIGJlIG9u bHkgb25lIG91dHN0YW5kaW5nIHBhdGNoaW5nIGFjdGlvbi4gKi8KLXN0YXRpYyBzdHJ1Y3QgeHNw bGljZV93b3JrIHhzcGxpY2Vfd29yazsKK3N0YXRpYyBzdHJ1Y3QgbGl2ZXBhdGNoX3dvcmsgbGl2 ZXBhdGNoX3dvcms7CiAKIC8qCi0gKiBJbmRpY2F0ZSB3aGV0aGVyIHRoZSBDUFUgbmVlZHMgdG8g Y29uc3VsdCB4c3BsaWNlX3dvcmsgc3RydWN0dXJlLgotICogV2Ugd2FudCBhbiBwZXItY3B1IGRh dGEgc3RydWN0dXJlIG90aGVyd2lzZSB0aGUgY2hlY2tfZm9yX3hzcGxpY2Vfd29yawotICogd291 bGQgaGFtbWVyIGEgZ2xvYmFsIHhzcGxpY2Vfd29yayBzdHJ1Y3R1cmUgb24gZXZlcnkgZ3Vlc3Qg Vk1FWElULgorICogSW5kaWNhdGUgd2hldGhlciB0aGUgQ1BVIG5lZWRzIHRvIGNvbnN1bHQgbGl2 ZXBhdGNoX3dvcmsgc3RydWN0dXJlLgorICogV2Ugd2FudCBhbiBwZXItY3B1IGRhdGEgc3RydWN0 dXJlIG90aGVyd2lzZSB0aGUgY2hlY2tfZm9yX2xpdmVwYXRjaF93b3JrCisgKiB3b3VsZCBoYW1t ZXIgYSBnbG9iYWwgbGl2ZXBhdGNoX3dvcmsgc3RydWN0dXJlIG9uIGV2ZXJ5IGd1ZXN0IFZNRVhJ VC4KICAqIEhhdmluZyBhbiBwZXItY3B1IGxlc3NlbnMgdGhlIGxvYWQuCiAgKi8KIHN0YXRpYyBE RUZJTkVfUEVSX0NQVShib29sX3QsIHdvcmtfdG9fZG8pOwogCi1zdGF0aWMgaW50IGdldF9uYW1l KGNvbnN0IHhlbl94c3BsaWNlX25hbWVfdCAqbmFtZSwgY2hhciAqbikKK3N0YXRpYyBpbnQgZ2V0 X25hbWUoY29uc3QgeGVuX2xpdmVwYXRjaF9uYW1lX3QgKm5hbWUsIGNoYXIgKm4pCiB7Ci0gICAg aWYgKCAhbmFtZS0+c2l6ZSB8fCBuYW1lLT5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9TSVpFICkK KyAgICBpZiAoICFuYW1lLT5zaXplIHx8IG5hbWUtPnNpemUgPiBYRU5fTElWRVBBVENIX05BTUVf U0laRSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgaWYgKCBuYW1lLT5wYWRbMF0g fHwgbmFtZS0+cGFkWzFdIHx8IG5hbWUtPnBhZFsyXSApCkBAIC0xMTMsNyArMTEzLDcgQEAgc3Rh dGljIGludCBnZXRfbmFtZShjb25zdCB4ZW5feHNwbGljZV9uYW1lX3QgKm5hbWUsIGNoYXIgKm4p CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X3BheWxvYWQoY29uc3QgeGVu X3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQsIGNoYXIgKm4pCitzdGF0aWMgaW50IHZl cmlmeV9wYXlsb2FkKGNvbnN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZF90ICp1cGxvYWQs IGNoYXIgKm4pCiB7CiAgICAgaWYgKCBnZXRfbmFtZSgmdXBsb2FkLT5uYW1lLCBuKSApCiAgICAg ICAgIHJldHVybiAtRUlOVkFMOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2xfdCBpc19wYXRjaChj b25zdCB2b2lkICpwdHIpCiAgICAgcmV0dXJuIHI7CiB9CiAKLXVuc2lnbmVkIGxvbmcgeHNwbGlj ZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpCit1bnNpZ25lZCBs b25nIGxpdmVwYXRjaF9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUp CiB7CiAgICAgY29uc3Qgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAKQEAgLTE4MSwxMCArMTgxLDEw IEBAIHVuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNo YXIgKnN5bW5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICp4c3Bs aWNlX3N5bWJvbHNfbG9va3VwKHVuc2lnbmVkIGxvbmcgYWRkciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKnN5bWJvbHNpemUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpvZmZz ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1l YnVmKQorc3RhdGljIGNvbnN0IGNoYXIgKmxpdmVwYXRjaF9zeW1ib2xzX2xvb2t1cCh1bnNpZ25l ZCBsb25nIGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgKnN5bWJvbHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZWJ1ZikKIHsKICAgICBjb25zdCBz dHJ1Y3QgcGF5bG9hZCAqZGF0YTsKICAgICB1bnNpZ25lZCBpbnQgaSwgYmVzdDsKQEAgLTI0OCw4 ICsyNDgsOCBAQCBzdGF0aWMgc3RydWN0IHBheWxvYWQgKmZpbmRfcGF5bG9hZChjb25zdCBjaGFy ICpuYW1lKQogfQogCiAvKgotICogRnVuY3Rpb25zIHJlbGF0ZWQgdG8gWEVOX1NZU0NUTF9YU1BM SUNFX1VQTE9BRCAoc2VlIHhzcGxpY2VfdXBsb2FkKSwgYW5kCi0gKiBmcmVlaW5nIHBheWxvYWQg KFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT046WFNQTElDRV9BQ1RJT05fVU5MT0FEKS4KKyAqIEZ1 bmN0aW9ucyByZWxhdGVkIHRvIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9BRCAoc2VlIGxpdmVw YXRjaF91cGxvYWQpLCBhbmQKKyAqIGZyZWVpbmcgcGF5bG9hZCAoWEVOX1NZU0NUTF9MSVZFUEFU Q0hfQUNUSU9OOkxJVkVQQVRDSF9BQ1RJT05fVU5MT0FEKS4KICAqLwogCiBzdGF0aWMgdm9pZCBm cmVlX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCkKQEAgLTI3MCw3ICsyNzAs NyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9h ZCkKICogYWRkcmVzcyBzcGFjZSBmb3IgdGhlIHBheWxvYWQgKHVzaW5nIHBhc3NlZCBpbiBzaXpl KS4gVGhpcyBpcyB1c2VkIGluCiAqIG1vdmVfcGF5bG9hZCB0byBmaWd1cmUgb3V0IHRoZSBkZXN0 aW5hdGlvbiBsb2NhdGlvbiAobG9hZF9hZGRyKS4KICovCi1zdGF0aWMgdm9pZCBjYWxjX3NlY3Rp b24oY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjLCBzaXplX3QgKnNpemUsCitzdGF0 aWMgdm9pZCBjYWxjX3NlY3Rpb24oY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpzZWMs IHNpemVfdCAqc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm9m ZnNldCkKIHsKICAgICBjb25zdCBFbGZfU2hkciAqcyA9IHNlYy0+c2VjOwpAQCAtMjgxLDcgKzI4 MSw3IEBAIHN0YXRpYyB2b2lkIGNhbGNfc2VjdGlvbihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZf c2VjICpzZWMsIHNpemVfdCAqc2l6ZSwKICAgICAqc2l6ZSA9IHMtPnNoX3NpemUgKyBhbGlnbl9z aXplOwogfQogCi1zdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9h ZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCitzdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1 Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsKICAgICB2 b2lkICp0ZXh0X2J1ZiwgKnJvX2J1ZiwgKnJ3X2J1ZjsKICAgICB1bnNpZ25lZCBpbnQgaTsKQEAg LTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgICAgICAgICBjYWxjX3NlY3Rp b24oJmVsZi0+c2VjW2ldLCAmcGF5bG9hZC0+cm9fc2l6ZSwgJm9mZnNldFtpXSk7CiAgICAgICAg IGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJ Q0UgIiVzOiBOb3Qgc3VwcG9ydGluZyAlcyBzZWN0aW9uIVxuIiwKKyAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBOb3Qgc3VwcG9ydGluZyAlcyBzZWN0aW9u IVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnNlY1tpXS5uYW1lKTsK ICAgICAgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgICAgICBnb3RvIG91dDsKQEAg LTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgdGV4dF9idWYgPSB2bWFsbG9j X3hlbihzaXplICogUEFHRV9TSVpFKTsKICAgICBpZiAoICF0ZXh0X2J1ZiApCiAgICAgewotICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBDb3VsZCBub3QgYWxsb2NhdGUg bWVtb3J5IGZvciBwYXlsb2FkIVxuIiwKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZF UEFUQ0ggIiVzOiBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBwYXlsb2FkIVxuIiwKICAg ICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByYyA9IC1FTk9NRU07CiAgICAgICAg IGdvdG8gb3V0OwpAQCAtMzcwLDcgKzM3MCw3IEBAIHN0YXRpYyBpbnQgbW92ZV9wYXlsb2FkKHN0 cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICBtZW1jcHkoZWxmLT5zZWNbaV0ubG9hZF9hZGRyLCBlbGYt PnNlY1tpXS5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBlbGYtPnNlY1tpXS5zZWMtPnNo X3NpemUpOwotICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIl czogTG9hZGVkICVzIGF0ICVwXG4iLAorICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RF QlVHLCBMSVZFUEFUQ0ggIiVzOiBMb2FkZWQgJXMgYXQgJXBcbiIsCiAgICAgICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIGVsZi0+c2VjW2ldLm5hbWUsIGVsZi0+c2VjW2ldLmxvYWRfYWRk cik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCkBAIC0zODQsNyArMzg0LDcgQEAg c3RhdGljIGludCBtb3ZlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHN0cnVjdCB4 c3BsaWNlX2VsZiAqZWxmKQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBzZWN1cmVf cGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYp CitzdGF0aWMgaW50IHNlY3VyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1 Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogewogICAgIGludCByYzsKICAgICB1bnNpZ25lZCBpbnQg dGV4dF9wYWdlcywgcndfcGFnZXMsIHJvX3BhZ2VzOwpAQCAtMzkyLDU3ICszOTIsNTcgQEAgc3Rh dGljIGludCBzZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhz cGxpY2VfZWxmICplbGYpCiAgICAgdGV4dF9wYWdlcyA9IFBGTl9VUChwYXlsb2FkLT50ZXh0X3Np emUpOwogICAgIEFTU0VSVCh0ZXh0X3BhZ2VzKTsKIAotICAgIHJjID0gYXJjaF94c3BsaWNlX3Nl Y3VyZShwYXlsb2FkLT50ZXh0X2FkZHIsIHRleHRfcGFnZXMsIFhTUExJQ0VfVkFfUlgpOworICAg IHJjID0gYXJjaF9saXZlcGF0Y2hfc2VjdXJlKHBheWxvYWQtPnRleHRfYWRkciwgdGV4dF9wYWdl cywgTElWRVBBVENIX1ZBX1JYKTsKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJuIHJjOwog CiAgICAgcndfcGFnZXMgPSBQRk5fVVAocGF5bG9hZC0+cndfc2l6ZSk7CiAgICAgaWYgKCByd19w YWdlcyApCiAgICAgewotICAgICAgICByYyA9IGFyY2hfeHNwbGljZV9zZWN1cmUocGF5bG9hZC0+ cndfYWRkciwgcndfcGFnZXMsIFhTUExJQ0VfVkFfUlcpOworICAgICAgICByYyA9IGFyY2hfbGl2 ZXBhdGNoX3NlY3VyZShwYXlsb2FkLT5yd19hZGRyLCByd19wYWdlcywgTElWRVBBVENIX1ZBX1JX KTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCiAg ICAgcm9fcGFnZXMgPSBQRk5fVVAocGF5bG9hZC0+cm9fc2l6ZSk7CiAgICAgaWYgKCByb19wYWdl cyApCi0gICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3NlY3VyZShwYXlsb2FkLT5yb19hZGRyLCBy b19wYWdlcywgWFNQTElDRV9WQV9STyk7CisgICAgICAgIHJjID0gYXJjaF9saXZlcGF0Y2hfc2Vj dXJlKHBheWxvYWQtPnJvX2FkZHIsIHJvX3BhZ2VzLCBMSVZFUEFUQ0hfVkFfUk8pOwogCiAgICAg QVNTRVJUKHJvX3BhZ2VzICsgcndfcGFnZXMgKyB0ZXh0X3BhZ2VzID09IHBheWxvYWQtPnBhZ2Vz KTsKIAogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBjaGVja19zcGVjaWFsX3NlY3Rp b25zKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQorc3RhdGljIGludCBjaGVja19zcGVj aWFsX3NlY3Rpb25zKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7CiAgICAgdW5z aWduZWQgaW50IGk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7IEVM Rl9YU1BMSUNFX0ZVTkMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVMRl9YU1BMSUNFX0RFUEVORFMsCisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVz W10gPSB7IEVMRl9MSVZFUEFUQ0hfRlVOQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRUxGX0xJVkVQQVRDSF9ERVBFTkRTLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFTEZfQlVJTERfSURfTk9URX07CiAgICAgREVDTEFSRV9CSVRN QVAoZm91bmQsIEFSUkFZX1NJWkUobmFtZXMpKSA9IHsgMCB9OwogCiAgICAgZm9yICggaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKG5hbWVzKTsgaSsrICkKICAgICB7Ci0gICAgICAgIGNvbnN0IHN0cnVj dCB4c3BsaWNlX2VsZl9zZWMgKnNlYzsKKyAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9l bGZfc2VjICpzZWM7CiAKLSAgICAgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxm LCBuYW1lc1tpXSk7CisgICAgICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxm LCBuYW1lc1tpXSk7CiAgICAgICAgIGlmICggIXNlYyApCiAgICAgICAgIHsKLSAgICAgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6ICVzIGlzIG1pc3NpbmchXG4iLAorICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiAlcyBpcyBtaXNzaW5n IVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBuYW1lc1tpXSk7CiAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICggIXNlYy0+c2Vj LT5zaF9zaXplICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBY U1BMSUNFICIlczogJXMgaXMgZW1wdHkhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBMSVZFUEFUQ0ggIiVzOiAlcyBpcyBlbXB0eSFcbiIsCiAgICAgICAgICAgICAgICAgICAg IGVsZi0+bmFtZSwgbmFtZXNbaV0pOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAg ICAgIH0KIAogICAgICAgICBpZiAoIHRlc3RfYW5kX3NldF9iaXQoaSwgZm91bmQpICkKICAgICAg ICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogJXMgd2Fz IHNlZW4gbW9yZSB0aGFuIG9uY2UhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBMSVZFUEFUQ0ggIiVzOiAlcyB3YXMgc2VlbiBtb3JlIHRoYW4gb25jZSFcbiIsCiAgICAgICAg ICAgICAgICAgICAgIGVsZi0+bmFtZSwgbmFtZXNbaV0pOwogICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAgICAgICAgIH0KQEAgLTQ1MiwxOSArNDUyLDE5IEBAIHN0YXRpYyBpbnQgY2hlY2tf c3BlY2lhbF9zZWN0aW9ucyhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIH0KIAogc3Rh dGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7Ci0gICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjOworICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hf ZWxmX3NlYyAqc2VjOwogICAgIHVuc2lnbmVkIGludCBpOwotICAgIHN0cnVjdCB4c3BsaWNlX3Bh dGNoX2Z1bmMgKmY7CisgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmOwogICAgIHN0cnVjdCB2 aXJ0dWFsX3JlZ2lvbiAqcmVnaW9uOwogICAgIGNvbnN0IEVsZl9Ob3RlICpuOwogCi0gICAgc2Vj ID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZfWFNQTElDRV9GVU5DKTsKKyAgICBz ZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX0xJVkVQQVRDSF9GVU5DKTsK ICAgICBBU1NFUlQoc2VjKTsKICAgICBpZiAoIHNlYy0+c2VjLT5zaF9zaXplICUgc2l6ZW9mKCpw YXlsb2FkLT5mdW5jcykgKQogICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BM SUNFICIlczogV3Jvbmcgc2l6ZSBvZiAiRUxGX1hTUExJQ0VfRlVOQyIhXG4iLAorICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFdyb25nIHNpemUgb2YgIkVMRl9MSVZF UEFUQ0hfRlVOQyIhXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJl dHVybiAtRUlOVkFMOwogICAgIH0KQEAgLTQ3OCwyMSArNDc4LDIxIEBAIHN0YXRpYyBpbnQgcHJl cGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogCiAgICAgICAgIGYgPSAmKHBh eWxvYWQtPmZ1bmNzW2ldKTsKIAotICAgICAgICBpZiAoIGYtPnZlcnNpb24gIT0gWFNQTElDRV9Q QVlMT0FEX1ZFUlNJT04gKQorICAgICAgICBpZiAoIGYtPnZlcnNpb24gIT0gTElWRVBBVENIX1BB WUxPQURfVkVSU0lPTiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VS UiwgWFNQTElDRSAiJXM6IFdyb25nIHZlcnNpb24gKCV1KS4gRXhwZWN0ZWQgJWQhXG4iLAotICAg ICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGYtPnZlcnNpb24sIFhTUExJQ0VfUEFZTE9BRF9W RVJTSU9OKTsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczog V3JvbmcgdmVyc2lvbiAoJXUpLiBFeHBlY3RlZCAlZCFcbiIsCisgICAgICAgICAgICAgICAgICAg IGVsZi0+bmFtZSwgZi0+dmVyc2lvbiwgTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTik7CiAgICAg ICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoICFm LT5uZXdfYWRkciB8fCAhZi0+bmV3X3NpemUgKQogICAgICAgICB7Ci0gICAgICAgICAgICBkcHJp bnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBBZGRyZXNzIG9yIHNpemUgZmllbGRzIGFyZSB6 ZXJvIVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczog QWRkcmVzcyBvciBzaXplIGZpZWxkcyBhcmUgemVybyFcbiIsCiAgICAgICAgICAgICAgICAgICAg IGVsZi0+bmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQogCi0g ICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3ZlcmlmeV9mdW5jKGYpOworICAgICAgICByYyA9IGFy Y2hfbGl2ZXBhdGNoX3ZlcmlmeV9mdW5jKGYpOwogICAgICAgICBpZiAoIHJjICkKICAgICAgICAg ICAgIHJldHVybiByYzsKIApAQCAtNTAyLDIwICs1MDIsMjAgQEAgc3RhdGljIGludCBwcmVwYXJl X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAgICAgICBmLT5vbGRfYWRk ciA9ICh2b2lkICopc3ltYm9sc19sb29rdXBfYnlfbmFtZShmLT5uYW1lKTsKICAgICAgICAgICAg IGlmICggIWYtPm9sZF9hZGRyICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmLT5v bGRfYWRkciA9ICh2b2lkICopeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGYtPm5hbWUp OworICAgICAgICAgICAgICAgIGYtPm9sZF9hZGRyID0gKHZvaWQgKilsaXZlcGF0Y2hfc3ltYm9s c19sb29rdXBfYnlfbmFtZShmLT5uYW1lKTsKICAgICAgICAgICAgICAgICBpZiAoICFmLT5vbGRf YWRkciApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIFhTUExJQ0UgIiVzOiBDb3VsZCBub3QgcmVzb2x2ZSBvbGQgYWRkcmVzcyBvZiAl c1xuIiwKKyAgICAgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0gg IiVzOiBDb3VsZCBub3QgcmVzb2x2ZSBvbGQgYWRkcmVzcyBvZiAlc1xuIiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGYtPm5hbWUpOwogICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT0VOVDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IFJlc29sdmVkIG9sZCBh ZGRyZXNzICVzID0+ICVwXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIExJ VkVQQVRDSCAiJXM6IFJlc29sdmVkIG9sZCBhZGRyZXNzICVzID0+ICVwXG4iLAogICAgICAgICAg ICAgICAgICAgICBlbGYtPm5hbWUsIGYtPm5hbWUsIGYtPm9sZF9hZGRyKTsKICAgICAgICAgfQog ICAgIH0KIAotICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX0JVSUxE X0lEX05PVEUpOworICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZf QlVJTERfSURfTk9URSk7CiAgICAgaWYgKCBzZWMgKQogICAgIHsKICAgICAgICAgY29uc3Qgc3Ry dWN0IHBheWxvYWQgKmRhdGE7CkBAIC01NDAsMTQgKzU0MCwxNCBAQCBzdGF0aWMgaW50IHByZXBh cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICAgICAgICAgIGlmICggZGF0 YS0+aWQubGVuID09IHBheWxvYWQtPmlkLmxlbiAmJgogICAgICAgICAgICAgICAgICAhbWVtY21w KGRhdGEtPmlkLnAsIHBheWxvYWQtPmlkLnAsIGRhdGEtPmlkLmxlbikgKQogICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIlczogQWxy ZWFkeSBsb2FkZWQgYXMgJXMhXG4iLAorICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RF QlVHLCBMSVZFUEFUQ0ggIiVzOiBBbHJlYWR5IGxvYWRlZCBhcyAlcyFcbiIsCiAgICAgICAgICAg ICAgICAgICAgICAgICBlbGYtPm5hbWUsIGRhdGEtPm5hbWUpOwogICAgICAgICAgICAgICAgIHJl dHVybiAtRUVYSVNUOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0gICAgc2Vj ID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZfWFNQTElDRV9ERVBFTkRTKTsKKyAg ICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX0xJVkVQQVRDSF9ERVBF TkRTKTsKICAgICBpZiAoIHNlYyApCiAgICAgewogICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7 CkBAIC01NjYsNyArNTY2LDcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBh eWxvYWQgKnBheWxvYWQsCiAgICAgLyogU2V0dXAgdGhlIHZpcnR1YWwgcmVnaW9uIHdpdGggcHJv cGVyIGRhdGEuICovCiAgICAgcmVnaW9uID0gJnBheWxvYWQtPnJlZ2lvbjsKIAotICAgIHJlZ2lv bi0+c3ltYm9sc19sb29rdXAgPSB4c3BsaWNlX3N5bWJvbHNfbG9va3VwOworICAgIHJlZ2lvbi0+ c3ltYm9sc19sb29rdXAgPSBsaXZlcGF0Y2hfc3ltYm9sc19sb29rdXA7CiAgICAgcmVnaW9uLT5z dGFydCA9IHBheWxvYWQtPnRleHRfYWRkcjsKICAgICByZWdpb24tPmVuZCA9IHBheWxvYWQtPnRl eHRfYWRkciArIHBheWxvYWQtPnRleHRfc2l6ZTsKIApAQCAtNTc2LDEzICs1NzYsMTMgQEAgc3Rh dGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAg IGNoYXIgc3RyWzE0XTsKIAogICAgICAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIpLCAiLmJ1 Z19mcmFtZXMuJXUiLCBpKTsKLSAgICAgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUo ZWxmLCBzdHIpOworICAgICAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwg c3RyKTsKICAgICAgICAgaWYgKCAhc2VjICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg ICAgIGlmICggc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKnJlZ2lvbi0+ZnJhbWVbaV0uYnVn cykgKQogICAgICAgICB7Ci0gICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0Ug IiVzOiBXcm9uZyBzaXplIG9mIC5idWdfZnJhbWVzLiV1IVxuIiwKKyAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogV3Jvbmcgc2l6ZSBvZiAuYnVnX2ZyYW1lcy4l dSFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgaSk7CiAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtNTkzLDE0ICs1OTMsMTQgQEAgc3RhdGljIGlu dCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgfQogCiAjaWZu ZGVmIENPTkZJR19BUk0KLSAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIu YWx0aW5zdHJ1Y3Rpb25zIik7CisgICAgc2VjID0gbGl2ZXBhdGNoX2VsZl9zZWNfYnlfbmFtZShl bGYsICIuYWx0aW5zdHJ1Y3Rpb25zIik7CiAgICAgaWYgKCBzZWMgKQogICAgIHsKICAgICAgICAg c3RydWN0IGFsdF9pbnN0ciAqYSwgKnN0YXJ0LCAqZW5kOwogCiAgICAgICAgIGlmICggc2VjLT5z ZWMtPnNoX3NpemUgJSBzaXplb2YoKmEpICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2l6ZSBvZiAuYWx0X2luc3RyIGlzIG5vdCBtdWx0 aXBsZSBvZiAlenUhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzOiBTaXplIG9mIC5hbHRfaW5zdHIgaXMgbm90IG11bHRpcGxlIG9mICV6dSFcbiIsCiAg ICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc2l6ZW9mKCphKSk7CiAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtNjE2LDcgKzYxNiw3IEBAIHN0YXRpYyBpbnQg cHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICAgICAgaWYg KCAoaW5zdHIgPCByZWdpb24tPnN0YXJ0ICYmIGluc3RyID49IHJlZ2lvbi0+ZW5kKSB8fAogICAg ICAgICAgICAgICAgICAocmVwbGFjZW1lbnQgPCByZWdpb24tPnN0YXJ0ICYmIHJlcGxhY2VtZW50 ID49IHJlZ2lvbi0+ZW5kKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlcyBBbHQgcGF0Y2hpbmcgb3V0c2lkZSBwYXlsb2FkOiAl cCFcbiIsCisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVz IEFsdCBwYXRjaGluZyBvdXRzaWRlIHBheWxvYWQ6ICVwIVxuIiwKICAgICAgICAgICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSwgaW5zdHIpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OwogICAgICAgICAgICAgfQpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9w YXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICBhcHBseV9hbHRlcm5hdGl2 ZXNfbm9jaGVjayhzdGFydCwgZW5kKTsKICAgICB9CiAKLSAgICBzZWMgPSB4c3BsaWNlX2VsZl9z ZWNfYnlfbmFtZShlbGYsICIuZXhfdGFibGUiKTsKKyAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3Nl Y19ieV9uYW1lKGVsZiwgIi5leF90YWJsZSIpOwogICAgIGlmICggc2VjICkKICAgICB7CiAgICAg ICAgIHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKnMsICplOwpAQCAtNjMyLDcgKzYzMiw3 IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAog ICAgICAgICBpZiAoICFzZWMtPnNlYy0+c2hfc2l6ZSB8fAogICAgICAgICAgICAgIChzZWMtPnNl Yy0+c2hfc2l6ZSAlIHNpemVvZigqcmVnaW9uLT5leCkpICkKICAgICAgICAgewotICAgICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogV3Jvbmcgc2l6ZSBvZiAuZXhfdGFi bGUgKGV4cDolbHUgdnMgJWx1KSFcbiIsCisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIs IExJVkVQQVRDSCAiJXM6IFdyb25nIHNpemUgb2YgLmV4X3RhYmxlIChleHA6JWx1IHZzICVsdSkh XG4iLAogICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHNpemVvZigqcmVnaW9uLT5leCks CiAgICAgICAgICAgICAgICAgICAgIHNlYy0+c2VjLT5zaF9zaXplKTsKICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwpAQCAtNjUxLDggKzY1MSw4IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXls b2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMg Ym9vbF90IGlzX3BheWxvYWRfc3ltYm9sKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZf c3ltICpzeW0pCitzdGF0aWMgYm9vbF90IGlzX3BheWxvYWRfc3ltYm9sKGNvbnN0IHN0cnVjdCBs aXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3N5bSAqc3ltKQogewogICAgIGlmICggc3ltLT5zeW0tPnN0 X3NobmR4ID09IFNITl9VTkRFRiB8fAogICAgICAgICAgc3ltLT5zeW0tPnN0X3NobmR4ID49IGVs Zi0+aGRyLT5lX3NobnVtICkKQEAgLTY4OCwxMSArNjg4LDExIEBAIHN0YXRpYyBib29sX3QgaXNf cGF5bG9hZF9zeW1ib2woY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYsCiB9CiAKIHN0YXRp YyBpbnQgYnVpbGRfc3ltYm9sX3RhYmxlKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAq ZWxmKQogewogICAgIHVuc2lnbmVkIGludCBpLCBqLCBuc3ltcyA9IDA7CiAgICAgc2l6ZV90IHN0 cnRhYl9sZW4gPSAwOwotICAgIHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAqc3ltdGFiOworICAgIHN0 cnVjdCBsaXZlcGF0Y2hfc3ltYm9sICpzeW10YWI7CiAgICAgY2hhciAqc3RydGFiOwogCiAgICAg QVNTRVJUKHBheWxvYWQtPm5mdW5jcyk7CkBAIC03MDcsNyArNzA3LDcgQEAgc3RhdGljIGludCBi dWlsZF9zeW1ib2xfdGFibGUoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAgIH0KICAg ICB9CiAKLSAgICBzeW10YWIgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCB4c3BsaWNlX3N5bWJvbCwg bnN5bXMpOworICAgIHN5bXRhYiA9IHhtYWxsb2NfYXJyYXkoc3RydWN0IGxpdmVwYXRjaF9zeW1i b2wsIG5zeW1zKTsKICAgICBzdHJ0YWIgPSB4bWFsbG9jX2FycmF5KGNoYXIsIHN0cnRhYl9sZW4p OwogCiAgICAgaWYgKCAhc3RydGFiIHx8ICFzeW10YWIgKQpAQCAtNzQ5LDIyICs3NDksMjIgQEAg c3RhdGljIGludCBidWlsZF9zeW1ib2xfdGFibGUoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAg ICAgICAgIGlmICggIWZvdW5kICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBzeW1ib2xz X2xvb2t1cF9ieV9uYW1lKHN5bXRhYltpXS5uYW1lKSB8fAotICAgICAgICAgICAgICAgICB4c3Bs aWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoc3ltdGFiW2ldLm5hbWUpICkKKyAgICAgICAgICAg ICAgICAgbGl2ZXBhdGNoX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoc3ltdGFiW2ldLm5hbWUpICkK ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJ Q0UgIiVzOiBkdXBsaWNhdGUgbmV3IHN5bWJvbDogJXNcbiIsCisgICAgICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBkdXBsaWNhdGUgbmV3IHN5bWJvbDogJXNc biIsCiAgICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHN5bXRhYltpXS5uYW1lKTsK ICAgICAgICAgICAgICAgICB4ZnJlZShzeW10YWIpOwogICAgICAgICAgICAgICAgIHhmcmVlKHN0 cnRhYik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7CiAgICAgICAgICAgICB9CiAg ICAgICAgICAgICBzeW10YWJbaV0ubmV3X3N5bWJvbCA9IDE7Ci0gICAgICAgICAgICBkcHJpbnRr KFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IG5ldyBzeW1ib2wgJXNcbiIsCisgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19ERUJVRywgTElWRVBBVENIICIlczogbmV3IHN5bWJvbCAlc1xuIiwK ICAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOwogICAgICAg ICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgLyogbmV3X3N5bWJvbCBp cyBub3Qgc2V0LiAqLwotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJQ0Ug IiVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKICAgICAgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CiAgICAgICAgIH0KICAgICB9 CkBAIC03OTAsMTAgKzc5MCwxMCBAQCBzdGF0aWMgdm9pZCBmcmVlX3BheWxvYWQoc3RydWN0IHBh eWxvYWQgKmRhdGEpCiAKIHN0YXRpYyBpbnQgbG9hZF9wYXlsb2FkX2RhdGEoc3RydWN0IHBheWxv YWQgKnBheWxvYWQsIHZvaWQgKnJhdywgc2l6ZV90IGxlbikKIHsKLSAgICBzdHJ1Y3QgeHNwbGlj ZV9lbGYgZWxmID0geyAubmFtZSA9IHBheWxvYWQtPm5hbWUsIC5sZW4gPSBsZW4gfTsKKyAgICBz dHJ1Y3QgbGl2ZXBhdGNoX2VsZiBlbGYgPSB7IC5uYW1lID0gcGF5bG9hZC0+bmFtZSwgLmxlbiA9 IGxlbiB9OwogICAgIGludCByYyA9IDA7CiAKLSAgICByYyA9IHhzcGxpY2VfZWxmX2xvYWQoJmVs ZiwgcmF3KTsKKyAgICByYyA9IGxpdmVwYXRjaF9lbGZfbG9hZCgmZWxmLCByYXcpOwogICAgIGlm ICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIApAQCAtODAxLDExICs4MDEsMTEgQEAgc3RhdGlj IGludCBsb2FkX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgdm9pZCAqcmF3 LCBzaXplX3QgbGVuKQogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIAotICAgIHJj ID0geHNwbGljZV9lbGZfcmVzb2x2ZV9zeW1ib2xzKCZlbGYpOworICAgIHJjID0gbGl2ZXBhdGNo X2VsZl9yZXNvbHZlX3N5bWJvbHMoJmVsZik7CiAgICAgaWYgKCByYyApCiAgICAgICAgIGdvdG8g b3V0OwogCi0gICAgcmMgPSB4c3BsaWNlX2VsZl9wZXJmb3JtX3JlbG9jcygmZWxmKTsKKyAgICBy YyA9IGxpdmVwYXRjaF9lbGZfcGVyZm9ybV9yZWxvY3MoJmVsZik7CiAgICAgaWYgKCByYyApCiAg ICAgICAgIGdvdG8gb3V0OwogCkBAIC04MjgsMTUgKzgyOCwxNSBAQCBzdGF0aWMgaW50IGxvYWRf cGF5bG9hZF9kYXRhKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCB2b2lkICpyYXcsIHNpemVfdCBs ZW4pCiAgICAgICAgIGZyZWVfcGF5bG9hZF9kYXRhKHBheWxvYWQpOwogCiAgICAgLyogRnJlZSBv dXIgdGVtcG9yYXJ5IGRhdGEgc3RydWN0dXJlLiAqLwotICAgIHhzcGxpY2VfZWxmX2ZyZWUoJmVs Zik7CisgICAgbGl2ZXBhdGNoX2VsZl9mcmVlKCZlbGYpOwogCiAgICAgcmV0dXJuIHJjOwogfQog Ci1zdGF0aWMgaW50IHhzcGxpY2VfdXBsb2FkKHhlbl9zeXNjdGxfeHNwbGljZV91cGxvYWRfdCAq dXBsb2FkKQorc3RhdGljIGludCBsaXZlcGF0Y2hfdXBsb2FkKHhlbl9zeXNjdGxfbGl2ZXBhdGNo X3VwbG9hZF90ICp1cGxvYWQpCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGEsICpmb3VuZDsK LSAgICBjaGFyIG5bWEVOX1hTUExJQ0VfTkFNRV9TSVpFXTsKKyAgICBjaGFyIG5bWEVOX0xJVkVQ QVRDSF9OQU1FX1NJWkVdOwogICAgIHZvaWQgKnJhd19kYXRhOwogICAgIGludCByYzsKIApAQCAt ODY2LDcgKzg2Niw3IEBAIHN0YXRpYyBpbnQgeHNwbGljZV91cGxvYWQoeGVuX3N5c2N0bF94c3Bs aWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgZ290 byBvdXQ7CiAKLSAgICAgICAgZGF0YS0+c3RhdGUgPSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQ7Cisg ICAgICAgIGRhdGEtPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQ7CiAgICAgICAgIElO SVRfTElTVF9IRUFEKCZkYXRhLT5saXN0KTsKICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJmRhdGEt PmFwcGxpZWRfbGlzdCk7CiAKQEAgLTg5MCwxMSArODkwLDExIEBAIHN0YXRpYyBpbnQgeHNwbGlj ZV91cGxvYWQoeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgICAgcmV0dXJu IHJjOwogfQogCi1zdGF0aWMgaW50IHhzcGxpY2VfZ2V0KHhlbl9zeXNjdGxfeHNwbGljZV9nZXRf dCAqZ2V0KQorc3RhdGljIGludCBsaXZlcGF0Y2hfZ2V0KHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dl dF90ICpnZXQpCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAgICAgaW50IHJjOwotICAg IGNoYXIgbltYRU5fWFNQTElDRV9OQU1FX1NJWkVdOworICAgIGNoYXIgbltYRU5fTElWRVBBVENI X05BTUVfU0laRV07CiAKICAgICByYyA9IGdldF9uYW1lKCZnZXQtPm5hbWUsIG4pOwogICAgIGlm ICggcmMgKQpAQCAtOTIxLDkgKzkyMSw5IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9nZXQoeGVuX3N5 c2N0bF94c3BsaWNlX2dldF90ICpnZXQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg eHNwbGljZV9saXN0KHhlbl9zeXNjdGxfeHNwbGljZV9saXN0X3QgKmxpc3QpCitzdGF0aWMgaW50 IGxpdmVwYXRjaF9saXN0KHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3RfdCAqbGlzdCkKIHsKLSAg ICB4ZW5feHNwbGljZV9zdGF0dXNfdCBzdGF0dXM7CisgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNf dCBzdGF0dXM7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAgICAgdW5zaWduZWQgaW50IGlk eCA9IDAsIGkgPSAwOwogICAgIGludCByYyA9IDA7CkBAIC05MzYsNyArOTM2LDcgQEAgc3RhdGlj IGludCB4c3BsaWNlX2xpc3QoeGVuX3N5c2N0bF94c3BsaWNlX2xpc3RfdCAqbGlzdCkKIAogICAg IGlmICggbGlzdC0+bnIgJiYKICAgICAgICAgICghZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+c3Rh dHVzLCBsaXN0LT5ucikgfHwKLSAgICAgICAgICAhZ3Vlc3RfaGFuZGxlX29rYXkobGlzdC0+bmFt ZSwgWEVOX1hTUExJQ0VfTkFNRV9TSVpFICogbGlzdC0+bnIpIHx8CisgICAgICAgICAgIWd1ZXN0 X2hhbmRsZV9va2F5KGxpc3QtPm5hbWUsIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFICogbGlzdC0+ bnIpIHx8CiAgICAgICAgICAgIWd1ZXN0X2hhbmRsZV9va2F5KGxpc3QtPmxlbiwgbGlzdC0+bnIp KSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCkBAIC05NjEsNyArOTYxLDcgQEAgc3RhdGlj IGludCB4c3BsaWNlX2xpc3QoeGVuX3N5c2N0bF94c3BsaWNlX2xpc3RfdCAqbGlzdCkKICAgICAg ICAgICAgIGxlbiA9IHN0cmxlbihkYXRhLT5uYW1lKSArIDE7CiAKICAgICAgICAgICAgIC8qIE4u Qi4gJ2lkeCcgIT0gJ2knLiAqLwotICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fZ3Vlc3Rfb2Zm c2V0KGxpc3QtPm5hbWUsIGlkeCAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSwKKyAgICAgICAgICAg IGlmICggX19jb3B5X3RvX2d1ZXN0X29mZnNldChsaXN0LT5uYW1lLCBpZHggKiBYRU5fTElWRVBB VENIX05BTUVfU0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhLT5uYW1lLCBsZW4pIHx8CiAgICAgICAgICAgICAgICAgX19jb3B5X3RvX2d1ZXN0X29mZnNl dChsaXN0LT5sZW4sIGlkeCwgJmxlbiwgMSkgfHwKICAgICAgICAgICAgICAgICBfX2NvcHlfdG9f Z3Vlc3Rfb2Zmc2V0KGxpc3QtPnN0YXR1cywgaWR4LCAmc3RhdHVzLCAxKSApCkBAIC05ODcsMjIg Kzk4NywyMiBAQCBzdGF0aWMgaW50IHhzcGxpY2VfbGlzdCh4ZW5fc3lzY3RsX3hzcGxpY2VfbGlz dF90ICpsaXN0KQogLyoKICAqIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGdldCB0aGUgQ1BVcyBp bnRvIGFuIGFwcHJvcHJpYXRlIHN0YXRlIGFuZAogICogYXBwbHkgKG9yIHJldmVydCkgZWFjaCBv ZiB0aGUgcGF5bG9hZCdzIGZ1bmN0aW9ucy4gVGhpcyBpcyBuZWVkZWQKLSAqIGZvciBYRU5fU1lT Q1RMX1hTUExJQ0VfQUNUSU9OIG9wZXJhdGlvbiAoc2VlIHhzcGxpY2VfYWN0aW9uKS4KKyAqIGZv ciBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gb3BlcmF0aW9uIChzZWUgbGl2ZXBhdGNoX2Fj dGlvbikuCiAgKi8KIAogc3RhdGljIGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpk YXRhKQogewogICAgIHVuc2lnbmVkIGludCBpOwogCi0gICAgcHJpbnRrKFhFTkxPR19JTkZPIFhT UExJQ0UgIiVzOiBBcHBseWluZyAldSBmdW5jdGlvbnNcbiIsCisgICAgcHJpbnRrKFhFTkxPR19J TkZPIExJVkVQQVRDSCAiJXM6IEFwcGx5aW5nICV1IGZ1bmN0aW9uc1xuIiwKICAgICAgICAgICAg IGRhdGEtPm5hbWUsIGRhdGEtPm5mdW5jcyk7CiAKLSAgICBhcmNoX3hzcGxpY2VfcGF0Y2hpbmdf ZW50ZXIoKTsKKyAgICBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7CiAKICAgICBmb3IgKCBpID0g MDsgaSA8IGRhdGEtPm5mdW5jczsgaSsrICkKLSAgICAgICAgYXJjaF94c3BsaWNlX2FwcGx5X2pt cCgmZGF0YS0+ZnVuY3NbaV0pOworICAgICAgICBhcmNoX2xpdmVwYXRjaF9hcHBseV9qbXAoJmRh dGEtPmZ1bmNzW2ldKTsKIAotICAgIGFyY2hfeHNwbGljZV9wYXRjaGluZ19sZWF2ZSgpOworICAg IGFyY2hfbGl2ZXBhdGNoX3Jldml2ZSgpOwogCiAgICAgLyoKICAgICAgKiBXZSBuZWVkIFJDVSB2 YXJpYW50ICh3aGljaCBoYXMgYmFycmllcnMpIGluIGNhc2Ugd2UgY3Jhc2ggaGVyZS4KQEAgLTEw MTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIGludCByZXZlcnRfcGF5bG9hZChzdHJ1Y3QgcGF5bG9h ZCAqZGF0YSkKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIHByaW50ayhYRU5MT0dfSU5G TyBYU1BMSUNFICIlczogUmV2ZXJ0aW5nXG4iLCBkYXRhLT5uYW1lKTsKKyAgICBwcmludGsoWEVO TE9HX0lORk8gTElWRVBBVENIICIlczogUmV2ZXJ0aW5nXG4iLCBkYXRhLT5uYW1lKTsKIAotICAg IGFyY2hfeHNwbGljZV9wYXRjaGluZ19lbnRlcigpOworICAgIGFyY2hfbGl2ZXBhdGNoX3F1aWVz Y2UoKTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgZGF0YS0+bmZ1bmNzOyBpKysgKQotICAgICAg ICBhcmNoX3hzcGxpY2VfcmV2ZXJ0X2ptcCgmZGF0YS0+ZnVuY3NbaV0pOworICAgICAgICBhcmNo X2xpdmVwYXRjaF9yZXZlcnRfam1wKCZkYXRhLT5mdW5jc1tpXSk7CiAKLSAgICBhcmNoX3hzcGxp Y2VfcGF0Y2hpbmdfbGVhdmUoKTsKKyAgICBhcmNoX2xpdmVwYXRjaF9yZXZpdmUoKTsKIAogICAg IC8qCiAgICAgICogV2UgbmVlZCBSQ1UgdmFyaWFudCAod2hpY2ggaGFzIGJhcnJpZXJzKSBpbiBj YXNlIHdlIGNyYXNoIGhlcmUuCkBAIC0xMDQxLDMxICsxMDQxLDMxIEBAIHN0YXRpYyBpbnQgcmV2 ZXJ0X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGV4 ZWN1dGVkIGhhdmluZyBhbGwgb3RoZXIgQ1BVcyB3aXRoIG5vIGRlZXAgc3RhY2sgKHdlIG1heQog ICogaGF2ZSBjcHVfaWRsZSBvbiBpdCkgYW5kIElSUXMgZGlzYWJsZWQuCiAgKi8KLXN0YXRpYyB2 b2lkIHhzcGxpY2VfZG9fYWN0aW9uKHZvaWQpCitzdGF0aWMgdm9pZCBsaXZlcGF0Y2hfZG9fYWN0 aW9uKHZvaWQpCiB7CiAgICAgaW50IHJjOwogICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhLCAqb3Ro ZXIsICp0bXA7CiAKLSAgICBkYXRhID0geHNwbGljZV93b3JrLmRhdGE7CisgICAgZGF0YSA9IGxp dmVwYXRjaF93b3JrLmRhdGE7CiAgICAgLyoKICAgICAgKiBUaGlzIGZ1bmN0aW9uIGFuZCB0aGUg dHJhbnNpdGlvbiBmcm9tIGFzbSB0byBDIGNvZGUgc2hvdWxkIGJlIHRoZSBvbmx5CiAgICAgICog b25lIG9uIGFueSBzdGFjay4gTm8gbmVlZCB0byBsb2NrIHRoZSBwYXlsb2FkIGxpc3Qgb3IgYXBw bGllZCBsaXN0LgogICAgICAqLwotICAgIHN3aXRjaCAoIHhzcGxpY2Vfd29yay5jbWQgKQorICAg IHN3aXRjaCAoIGxpdmVwYXRjaF93b3JrLmNtZCApCiAgICAgewotICAgIGNhc2UgWFNQTElDRV9B Q1RJT05fQVBQTFk6CisgICAgY2FzZSBMSVZFUEFUQ0hfQUNUSU9OX0FQUExZOgogICAgICAgICBy YyA9IGFwcGx5X3BheWxvYWQoZGF0YSk7CiAgICAgICAgIGlmICggcmMgPT0gMCApCi0gICAgICAg ICAgICBkYXRhLT5zdGF0ZSA9IFhTUExJQ0VfU1RBVEVfQVBQTElFRDsKKyAgICAgICAgICAgIGRh dGEtPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0FQUExJRUQ7CiAgICAgICAgIGJyZWFrOwogCi0g ICAgY2FzZSBYU1BMSUNFX0FDVElPTl9SRVZFUlQ6CisgICAgY2FzZSBMSVZFUEFUQ0hfQUNUSU9O X1JFVkVSVDoKICAgICAgICAgcmMgPSByZXZlcnRfcGF5bG9hZChkYXRhKTsKICAgICAgICAgaWYg KCByYyA9PSAwICkKLSAgICAgICAgICAgIGRhdGEtPnN0YXRlID0gWFNQTElDRV9TVEFURV9DSEVD S0VEOworICAgICAgICAgICAgZGF0YS0+c3RhdGUgPSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRDsK ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0U6CisgICAg Y2FzZSBMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0U6CiAgICAgICAgIHJjID0gMDsKICAgICAgICAg LyoKIAkgKiBOLkI6IFVzZSAnYXBwbGllZF9saXN0JyBtZW1iZXIsIG5vdCAnbGlzdCcuIFdlIGFs c28gYWJ1c2UgdGhlCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBzdGF0aWMgdm9pZCB4c3BsaWNlX2Rv X2FjdGlvbih2b2lkKQogICAgICAgICB7CiAgICAgICAgICAgICBvdGhlci0+cmMgPSByZXZlcnRf cGF5bG9hZChvdGhlcik7CiAgICAgICAgICAgICBpZiAoIG90aGVyLT5yYyA9PSAwICkKLSAgICAg ICAgICAgICAgICBvdGhlci0+c3RhdGUgPSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQ7CisgICAgICAg ICAgICAgICAgb3RoZXItPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQ7CiAgICAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwpA QCAtMTA4Nyw3ICsxMDg3LDcgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9kb19hY3Rpb24odm9pZCkK ICAgICAgICAgewogICAgICAgICAgICAgcmMgPSBhcHBseV9wYXlsb2FkKGRhdGEpOwogICAgICAg ICAgICAgaWYgKCByYyA9PSAwICkKLSAgICAgICAgICAgICAgICBkYXRhLT5zdGF0ZSA9IFhTUExJ Q0VfU1RBVEVfQVBQTElFRDsKKyAgICAgICAgICAgICAgICBkYXRhLT5zdGF0ZSA9IExJVkVQQVRD SF9TVEFURV9BUFBMSUVEOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCkBAIC0xMDk3LDcg KzEwOTcsNyBAQCBzdGF0aWMgdm9pZCB4c3BsaWNlX2RvX2FjdGlvbih2b2lkKQogICAgICAgICBi cmVhazsKICAgICB9CiAKLSAgICAvKiBXZSBtdXN0IHNldCByYyBhcyB4c3BsaWNlX2FjdGlvbiBz ZXRzIGl0IHRvIC1FQUdBSU4gd2hlbiBraWNraW5nIG9mLiAqLworICAgIC8qIFdlIG11c3Qgc2V0 IHJjIGFzIGxpdmVwYXRjaF9hY3Rpb24gc2V0cyBpdCB0byAtRUFHQUlOIHdoZW4ga2lja2luZyBv Zi4gKi8KICAgICBkYXRhLT5yYyA9IHJjOwogfQogCkBAIC0xMTA1LDcgKzExMDUsNyBAQCBzdGF0 aWMgYm9vbF90IGlzX3dvcmtfc2NoZWR1bGVkKGNvbnN0IHN0cnVjdCBwYXlsb2FkICpkYXRhKQog ewogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGF5bG9hZF9sb2NrKSk7CiAKLSAgICByZXR1 cm4geHNwbGljZV93b3JrLmRvX3dvcmsgJiYgeHNwbGljZV93b3JrLmRhdGEgPT0gZGF0YTsKKyAg ICByZXR1cm4gbGl2ZXBhdGNoX3dvcmsuZG9fd29yayAmJiBsaXZlcGF0Y2hfd29yay5kYXRhID09 IGRhdGE7CiB9CiAKIHN0YXRpYyBpbnQgc2NoZWR1bGVfd29yayhzdHJ1Y3QgcGF5bG9hZCAqZGF0 YSwgdWludDMyX3QgY21kLCB1aW50MzJfdCB0aW1lb3V0KQpAQCAtMTExMywzMCArMTExMywzMCBA QCBzdGF0aWMgaW50IHNjaGVkdWxlX3dvcmsoc3RydWN0IHBheWxvYWQgKmRhdGEsIHVpbnQzMl90 IGNtZCwgdWludDMyX3QgdGltZW91dCkKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBheWxv YWRfbG9jaykpOwogCiAgICAgLyogRmFpbCBpZiBhbiBvcGVyYXRpb24gaXMgYWxyZWFkeSBzY2hl ZHVsZWQuICovCi0gICAgaWYgKCB4c3BsaWNlX3dvcmsuZG9fd29yayApCisgICAgaWYgKCBsaXZl cGF0Y2hfd29yay5kb193b3JrICkKICAgICAgICAgcmV0dXJuIC1FQlVTWTsKIAogICAgIGlmICgg IWdldF9jcHVfbWFwcygpICkKICAgICB7Ci0gICAgICAgIHByaW50ayhYRU5MT0dfRVJSIFhTUExJ Q0UgIiVzOiB1bmFibGUgdG8gZ2V0IGNwdV9tYXBzIGxvY2shXG4iLAorICAgICAgICBwcmludGso WEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiB1bmFibGUgdG8gZ2V0IGNwdV9tYXBzIGxvY2shXG4i LAogICAgICAgICAgICAgICAgZGF0YS0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUJVU1k7CiAg ICAgfQogCi0gICAgeHNwbGljZV93b3JrLmNtZCA9IGNtZDsKLSAgICB4c3BsaWNlX3dvcmsuZGF0 YSA9IGRhdGE7Ci0gICAgeHNwbGljZV93b3JrLnRpbWVvdXQgPSB0aW1lb3V0ID86IE1JTExJU0VD UygzMCk7CisgICAgbGl2ZXBhdGNoX3dvcmsuY21kID0gY21kOworICAgIGxpdmVwYXRjaF93b3Jr LmRhdGEgPSBkYXRhOworICAgIGxpdmVwYXRjaF93b3JrLnRpbWVvdXQgPSB0aW1lb3V0ID86IE1J TExJU0VDUygzMCk7CiAKLSAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IHRp bWVvdXQgaXMgJSJQUklfc3RpbWUibXNcbiIsCi0gICAgICAgICAgICBkYXRhLT5uYW1lLCB4c3Bs aWNlX3dvcmsudGltZW91dCAvIE1JTExJU0VDUygxKSk7CisgICAgZHByaW50ayhYRU5MT0dfREVC VUcsIExJVkVQQVRDSCAiJXM6IHRpbWVvdXQgaXMgJSJQUklfc3RpbWUibXNcbiIsCisgICAgICAg ICAgICBkYXRhLT5uYW1lLCBsaXZlcGF0Y2hfd29yay50aW1lb3V0IC8gTUlMTElTRUNTKDEpKTsK IAotICAgIGF0b21pY19zZXQoJnhzcGxpY2Vfd29yay5zZW1hcGhvcmUsIC0xKTsKKyAgICBhdG9t aWNfc2V0KCZsaXZlcGF0Y2hfd29yay5zZW1hcGhvcmUsIC0xKTsKIAotICAgIHhzcGxpY2Vfd29y ay5yZWFkeSA9IDA7CisgICAgbGl2ZXBhdGNoX3dvcmsucmVhZHkgPSAwOwogCiAgICAgc21wX3dt YigpOwogCi0gICAgeHNwbGljZV93b3JrLmRvX3dvcmsgPSAxOworICAgIGxpdmVwYXRjaF93b3Jr LmRvX3dvcmsgPSAxOwogICAgIHRoaXNfY3B1KHdvcmtfdG9fZG8pID0gMTsKIAogICAgIHB1dF9j cHVfbWFwcygpOwpAQCAtMTE1MCw4ICsxMTUwLDggQEAgc3RhdGljIHZvaWQgcmVzY2hlZHVsZV9m bih2b2lkICp1bnVzZWQpCiAgICAgcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9TT0ZUSVJRKTsKIH0K IAotc3RhdGljIGludCB4c3BsaWNlX3NwaW4oYXRvbWljX3QgKmNvdW50ZXIsIHNfdGltZV90IHRp bWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3B1cywgY29u c3QgY2hhciAqcykKK3N0YXRpYyBpbnQgbGl2ZXBhdGNoX3NwaW4oYXRvbWljX3QgKmNvdW50ZXIs IHNfdGltZV90IHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBjcHVzLCBjb25zdCBjaGFyICpzKQogewogICAgIGludCByYyA9IDA7CiAKQEAgLTExNjEsMTIg KzExNjEsMTIgQEAgc3RhdGljIGludCB4c3BsaWNlX3NwaW4oYXRvbWljX3QgKmNvdW50ZXIsIHNf dGltZV90IHRpbWVvdXQsCiAgICAgLyogTG9nICYgYWJvcnQuICovCiAgICAgaWYgKCBhdG9taWNf cmVhZChjb3VudGVyKSAhPSBjcHVzICkKICAgICB7Ci0gICAgICAgIHByaW50ayhYRU5MT0dfRVJS IFhTUExJQ0UgIiVzOiBUaW1lZCBvdXQgb24gc2VtYXBob3JlIGluICVzIHF1aWVzY2UgcGhhc2Ug JXUvJXVcbiIsCi0gICAgICAgICAgICAgICB4c3BsaWNlX3dvcmsuZGF0YS0+bmFtZSwgcywgYXRv bWljX3JlYWQoY291bnRlciksIGNwdXMpOworICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZF UEFUQ0ggIiVzOiBUaW1lZCBvdXQgb24gc2VtYXBob3JlIGluICVzIHF1aWVzY2UgcGhhc2UgJXUv JXVcbiIsCisgICAgICAgICAgICAgICBsaXZlcGF0Y2hfd29yay5kYXRhLT5uYW1lLCBzLCBhdG9t aWNfcmVhZChjb3VudGVyKSwgY3B1cyk7CiAgICAgICAgIHJjID0gLUVCVVNZOwotICAgICAgICB4 c3BsaWNlX3dvcmsuZGF0YS0+cmMgPSByYzsKKyAgICAgICAgbGl2ZXBhdGNoX3dvcmsuZGF0YS0+ cmMgPSByYzsKICAgICAgICAgc21wX3dtYigpOwotICAgICAgICB4c3BsaWNlX3dvcmsuZG9fd29y ayA9IDA7CisgICAgICAgIGxpdmVwYXRjaF93b3JrLmRvX3dvcmsgPSAwOwogICAgIH0KIAogICAg IHJldHVybiByYzsKQEAgLTExNzYsOSArMTE3Niw5IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9zcGlu KGF0b21pY190ICpjb3VudGVyLCBzX3RpbWVfdCB0aW1lb3V0LAogICogVGhlIG1haW4gZnVuY3Rp b24gd2hpY2ggbWFuYWdlcyB0aGUgd29yayBvZiBxdWllc2NpbmcgdGhlIHN5c3RlbSBhbmQKICAq IHBhdGNoaW5nIGNvZGUuCiAgKi8KLXZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2b2lkKQor dm9pZCBjaGVja19mb3JfbGl2ZXBhdGNoX3dvcmsodm9pZCkKIHsKLSNkZWZpbmUgQUNUSU9OKHgp IFtYU1BMSUNFX0FDVElPTl8jI3hdID0gI3gKKyNkZWZpbmUgQUNUSU9OKHgpIFtMSVZFUEFUQ0hf QUNUSU9OXyMjeF0gPSAjeAogICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0g ewogICAgICAgICAgICAgQUNUSU9OKEFQUExZKSwKICAgICAgICAgICAgIEFDVElPTihSRVZFUlQp LApAQCAtMTE5NSw3ICsxMTk1LDcgQEAgdm9pZCBjaGVja19mb3JfeHNwbGljZV93b3JrKHZvaWQp CiAKICAgICBzbXBfcm1iKCk7CiAgICAgLyogSW4gY2FzZSB3ZSBhYm9ydGVkLCBvdGhlciBDUFVz IGNhbiBza2lwIHJpZ2h0IGF3YXkuICovCi0gICAgaWYgKCAheHNwbGljZV93b3JrLmRvX3dvcmsg KQorICAgIGlmICggIWxpdmVwYXRjaF93b3JrLmRvX3dvcmsgKQogICAgIHsKICAgICAgICAgcGVy X2NwdSh3b3JrX3RvX2RvLCBjcHUpID0gMDsKICAgICAgICAgcmV0dXJuOwpAQCAtMTIwNCwyMiAr MTIwNCwyMiBAQCB2b2lkIGNoZWNrX2Zvcl94c3BsaWNlX3dvcmsodm9pZCkKICAgICBBU1NFUlQo bG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7CiAKICAgICAvKiBTZXQgYXQgLTEsIHNvIHdpbGwgZ28g dXAgdG8gbnVtX29ubGluZV9jcHVzIC0gMS4gKi8KLSAgICBpZiAoIGF0b21pY19pbmNfYW5kX3Rl c3QoJnhzcGxpY2Vfd29yay5zZW1hcGhvcmUpICkKKyAgICBpZiAoIGF0b21pY19pbmNfYW5kX3Rl c3QoJmxpdmVwYXRjaF93b3JrLnNlbWFwaG9yZSkgKQogICAgIHsKICAgICAgICAgc3RydWN0IHBh eWxvYWQgKnA7CiAgICAgICAgIHVuc2lnbmVkIGludCBjcHVzOwogCi0gICAgICAgIHAgPSB4c3Bs aWNlX3dvcmsuZGF0YTsKKyAgICAgICAgcCA9IGxpdmVwYXRjaF93b3JrLmRhdGE7CiAgICAgICAg IGlmICggIWdldF9jcHVfbWFwcygpICkKICAgICAgICAgewotICAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIgWFNQTElDRSAiJXM6IENQVSV1IC0gdW5hYmxlIHRvIGdldCBjcHVfbWFwcyBsb2Nr IVxuIiwKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJVkVQQVRDSCAiJXM6IENQVSV1 IC0gdW5hYmxlIHRvIGdldCBjcHVfbWFwcyBsb2NrIVxuIiwKICAgICAgICAgICAgICAgICAgICBw LT5uYW1lLCBjcHUpOwogICAgICAgICAgICAgcGVyX2NwdSh3b3JrX3RvX2RvLCBjcHUpID0gMDsK LSAgICAgICAgICAgIHhzcGxpY2Vfd29yay5kYXRhLT5yYyA9IC1FQlVTWTsKKyAgICAgICAgICAg IGxpdmVwYXRjaF93b3JrLmRhdGEtPnJjID0gLUVCVVNZOwogICAgICAgICAgICAgc21wX3dtYigp OwotICAgICAgICAgICAgeHNwbGljZV93b3JrLmRvX3dvcmsgPSAwOworICAgICAgICAgICAgbGl2 ZXBhdGNoX3dvcmsuZG9fd29yayA9IDA7CiAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICog RG8gTk9UIGRlY3JlbWVudCB4c3BsaWNlX3dvcmsuc2VtYXBob3JlIGRvd24gLSBhcyB0aGF0IG1h eSBjYXVzZQorICAgICAgICAgICAgICogRG8gTk9UIGRlY3JlbWVudCBsaXZlcGF0Y2hfd29yay5z ZW1hcGhvcmUgZG93biAtIGFzIHRoYXQgbWF5IGNhdXNlCiAgICAgICAgICAgICAgKiB0aGUgb3Ro ZXIgQ1BVICh3aGljaCBtYXkgYmUgYXQgdGhpcyBwb2ludCByZWFkeSB0byBpbmNyZW1lbnQgaXQp CiAgICAgICAgICAgICAgKiB0byBhc3N1bWUgdGhlIHJvbGUgb2YgbWFzdGVyIGFuZCB0aGVuIG5l ZWRsZXNzbHkgdGltZSBvdXQKICAgICAgICAgICAgICAqIG91dCAoYXMgZG9fd29yayBpcyB6ZXJv KS4KQEAgLTEyMjcsNTggKzEyMjcsNTggQEAgdm9pZCBjaGVja19mb3JfeHNwbGljZV93b3JrKHZv aWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLyogIk1hc2siIE5N SXMuICovCi0gICAgICAgIGFyY2hfeHNwbGljZV9tYXNrKCk7CisgICAgICAgIGFyY2hfbGl2ZXBh dGNoX21hc2soKTsKIAogICAgICAgICBiYXJyaWVyKCk7IC8qIE1VU1QgZG8gaXQgYWZ0ZXIgZ2V0 X2NwdV9tYXBzLiAqLwogICAgICAgICBjcHVzID0gbnVtX29ubGluZV9jcHVzKCkgLSAxOwogCiAg ICAgICAgIGlmICggY3B1cyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0RFQlVHLCBYU1BMSUNFICIlczogQ1BVJXUgLSBJUElpbmcgdGhlIG90aGVyICV1IENQVXNcbiIs CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgTElWRVBBVENIICIlczogQ1BVJXUg LSBJUElpbmcgdGhlIG90aGVyICV1IENQVXNcbiIsCiAgICAgICAgICAgICAgICAgICAgIHAtPm5h bWUsIGNwdSwgY3B1cyk7CiAgICAgICAgICAgICBzbXBfY2FsbF9mdW5jdGlvbihyZXNjaGVkdWxl X2ZuLCBOVUxMLCAwKTsKICAgICAgICAgfQogCi0gICAgICAgIHRpbWVvdXQgPSB4c3BsaWNlX3dv cmsudGltZW91dCArIE5PVygpOwotICAgICAgICBpZiAoIHhzcGxpY2Vfc3BpbigmeHNwbGljZV93 b3JrLnNlbWFwaG9yZSwgdGltZW91dCwgY3B1cywgIkNQVSIpICkKKyAgICAgICAgdGltZW91dCA9 IGxpdmVwYXRjaF93b3JrLnRpbWVvdXQgKyBOT1coKTsKKyAgICAgICAgaWYgKCBsaXZlcGF0Y2hf c3BpbigmbGl2ZXBhdGNoX3dvcmsuc2VtYXBob3JlLCB0aW1lb3V0LCBjcHVzLCAiQ1BVIikgKQog ICAgICAgICAgICAgZ290byBhYm9ydDsKIAogICAgICAgICAvKiBBbGwgQ1BVcyBhcmUgd2FpdGlu Zywgbm93IHNpZ25hbCB0byBkaXNhYmxlIElSUXMuICovCi0gICAgICAgIGF0b21pY19zZXQoJnhz cGxpY2Vfd29yay5zZW1hcGhvcmUsIDApOworICAgICAgICBhdG9taWNfc2V0KCZsaXZlcGF0Y2hf d29yay5zZW1hcGhvcmUsIDApOwogICAgICAgICAvKgogICAgICAgICAgKiBNVVNUIGhhdmUgYSBi YXJyaWVyIGFmdGVyIHNlbWFwaG9yZSBzbyB0aGF0IHRoZSBvdGhlciBDUFVzIGRvbid0CiAgICAg ICAgICAqIGxlYWsgb3V0IG9mIHRoZSAnV2FpdCBmb3IgYWxsIENQVXMgdG8gcmVuZGV6dm91cycg bG9vcCBhbmQgaW5jcmVtZW50CiAgICAgICAgICAqICdzZW1hcGhvcmUnIGJlZm9yZSB3ZSBzZXQg aXQgdG8gemVyby4KICAgICAgICAgICovCiAgICAgICAgIHNtcF93bWIoKTsKLSAgICAgICAgeHNw bGljZV93b3JrLnJlYWR5ID0gMTsKKyAgICAgICAgbGl2ZXBhdGNoX3dvcmsucmVhZHkgPSAxOwog Ci0gICAgICAgIGlmICggIXhzcGxpY2Vfc3BpbigmeHNwbGljZV93b3JrLnNlbWFwaG9yZSwgdGlt ZW91dCwgY3B1cywgIklSUSIpICkKKyAgICAgICAgaWYgKCAhbGl2ZXBhdGNoX3NwaW4oJmxpdmVw YXRjaF93b3JrLnNlbWFwaG9yZSwgdGltZW91dCwgY3B1cywgIklSUSIpICkKICAgICAgICAgewog ICAgICAgICAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogICAgICAgICAgICAgLyogRG8gdGhl IHBhdGNoaW5nLiAqLwotICAgICAgICAgICAgeHNwbGljZV9kb19hY3Rpb24oKTsKKyAgICAgICAg ICAgIGxpdmVwYXRjaF9kb19hY3Rpb24oKTsKICAgICAgICAgICAgIC8qIFNlcmlhbGl6ZSBhbmQg Zmx1c2ggb3V0IHRoZSBDUFUgdmlhIENQVUlEIGluc3RydWN0aW9uIChvbiB4ODYpLiAqLwotICAg ICAgICAgICAgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9uKCk7CisgICAgICAgICAgICBhcmNoX2xp dmVwYXRjaF9wb3N0X2FjdGlvbigpOwogICAgICAgICAgICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxh Z3MpOwogICAgICAgICB9CiAKICBhYm9ydDoKLSAgICAgICAgYXJjaF94c3BsaWNlX3VubWFzaygp OworICAgICAgICBhcmNoX2xpdmVwYXRjaF91bm1hc2soKTsKIAogICAgICAgICBwZXJfY3B1KHdv cmtfdG9fZG8sIGNwdSkgPSAwOwotICAgICAgICB4c3BsaWNlX3dvcmsuZG9fd29yayA9IDA7Cisg ICAgICAgIGxpdmVwYXRjaF93b3JrLmRvX3dvcmsgPSAwOwogCiAgICAgICAgIC8qIHB1dF9jcHVf bWFwcyBoYXMgYW4gYmFycmllcigpLiAqLwogICAgICAgICBwdXRfY3B1X21hcHMoKTsKIAotICAg ICAgICBwcmludGsoWEVOTE9HX0lORk8gWFNQTElDRSAiJXMgZmluaXNoZWQgJXMgd2l0aCByYz0l ZFxuIiwKLSAgICAgICAgICAgICAgIHAtPm5hbWUsIG5hbWVzW3hzcGxpY2Vfd29yay5jbWRdLCBw LT5yYyk7CisgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyBMSVZFUEFUQ0ggIiVzIGZpbmlzaGVk ICVzIHdpdGggcmM9JWRcbiIsCisgICAgICAgICAgICAgICBwLT5uYW1lLCBuYW1lc1tsaXZlcGF0 Y2hfd29yay5jbWRdLCBwLT5yYyk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICAgIC8q IFdhaXQgZm9yIGFsbCBDUFVzIHRvIHJlbmRlenZvdXMuICovCi0gICAgICAgIHdoaWxlICggeHNw bGljZV93b3JrLmRvX3dvcmsgJiYgIXhzcGxpY2Vfd29yay5yZWFkeSApCisgICAgICAgIHdoaWxl ICggbGl2ZXBhdGNoX3dvcmsuZG9fd29yayAmJiAhbGl2ZXBhdGNoX3dvcmsucmVhZHkgKQogICAg ICAgICAgICAgY3B1X3JlbGF4KCk7CiAKICAgICAgICAgLyogRGlzYWJsZSBJUlFzIGFuZCBzaWdu YWwuICovCkBAIC0xMjg3LDE0ICsxMjg3LDE0IEBAIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29y ayh2b2lkKQogICAgICAgICAgKiBXZSByZS11c2UgdGhlIHNlbXBhaG9yZSwgc28gTVVTVCBoYXZl IGl0IHJlc2V0IGJ5IG1hc3RlciBiZWZvcmUKICAgICAgICAgICogd2UgZXhpdCB0aGUgbG9vcCBh Ym92ZS4KICAgICAgICAgICovCi0gICAgICAgIGF0b21pY19pbmMoJnhzcGxpY2Vfd29yay5zZW1h cGhvcmUpOworICAgICAgICBhdG9taWNfaW5jKCZsaXZlcGF0Y2hfd29yay5zZW1hcGhvcmUpOwog CiAgICAgICAgIC8qIFdhaXQgZm9yIHBhdGNoaW5nIHRvIGNvbXBsZXRlLiAqLwotICAgICAgICB3 aGlsZSAoIHhzcGxpY2Vfd29yay5kb193b3JrICkKKyAgICAgICAgd2hpbGUgKCBsaXZlcGF0Y2hf d29yay5kb193b3JrICkKICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogCiAgICAgICAgIC8qIFRv IGZsdXNoIG91dCBwaXBlbGluZS4gKi8KLSAgICAgICAgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9u KCk7CisgICAgICAgIGFyY2hfbGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKCk7CiAgICAgICAgIGxvY2Fs X2lycV9yZXN0b3JlKGZsYWdzKTsKIAogICAgICAgICBwZXJfY3B1KHdvcmtfdG9fZG8sIGNwdSkg PSAwOwpAQCAtMTM0MywxNyArMTM0MywxNyBAQCBzdGF0aWMgaW50IGJ1aWxkX2lkX2RlcChzdHJ1 Y3QgcGF5bG9hZCAqcGF5bG9hZCwgYm9vbF90IGludGVybmFsKQogICAgICAgICAgbWVtY21wKGlk LCBwYXlsb2FkLT5kZXAucCwgbGVuKSApCiAgICAgewogICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIsICIlcyVzOiBjaGVjayBhZ2FpbnN0ICVzIGJ1aWxkLWlkIGZhaWxlZCFcbiIsCi0gICAgICAg ICAgICAgICAgWFNQTElDRSwgcGF5bG9hZC0+bmFtZSwgbmFtZSk7CisgICAgICAgICAgICAgICAg TElWRVBBVENILCBwYXlsb2FkLT5uYW1lLCBuYW1lKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24o eGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCitzdGF0aWMgaW50IGxpdmVwYXRj aF9hY3Rpb24oeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uX3QgKmFjdGlvbikKIHsKICAgICBz dHJ1Y3QgcGF5bG9hZCAqZGF0YTsKLSAgICBjaGFyIG5bWEVOX1hTUExJQ0VfTkFNRV9TSVpFXTsK KyAgICBjaGFyIG5bWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkVdOwogICAgIGludCByYzsKIAogICAg IHJjID0gZ2V0X25hbWUoJmFjdGlvbi0+bmFtZSwgbik7CkBAIC0xMzgxLDggKzEzODEsOCBAQCBz dGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb25fdCAqYWN0 aW9uKQogCiAgICAgc3dpdGNoICggYWN0aW9uLT5jbWQgKQogICAgIHsKLSAgICBjYXNlIFhTUExJ Q0VfQUNUSU9OX1VOTE9BRDoKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NU QVRFX0NIRUNLRUQgKQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9VTkxPQUQ6CisgICAgICAg IGlmICggZGF0YS0+c3RhdGUgPT0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQgKQogICAgICAgICB7 CiAgICAgICAgICAgICBmcmVlX3BheWxvYWQoZGF0YSk7CiAgICAgICAgICAgICAvKiBObyB0b3Vj aGluZyAnZGF0YScgZnJvbSBoZXJlIG9uISAqLwpAQCAtMTM5Miw4ICsxMzkyLDggQEAgc3RhdGlj IGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikK ICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhT UExJQ0VfQUNUSU9OX1JFVkVSVDoKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNF X1NUQVRFX0FQUExJRUQgKQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9SRVZFUlQ6CisgICAg ICAgIGlmICggZGF0YS0+c3RhdGUgPT0gTElWRVBBVENIX1NUQVRFX0FQUExJRUQgKQogICAgICAg ICB7CiAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGF5bG9hZCAqcDsKIApAQCAtMTQwMyw3ICsx NDAzLDcgQEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0 aW9uX3QgKmFjdGlvbikKICAgICAgICAgICAgIGlmICggcCAhPSBkYXRhICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICIlcyVzOiBjYW4ndCB1bmxv YWQuIFRvcCBpcyAlcyFcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBkYXRh LT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExJVkVQQVRDSCwgZGF0 YS0+bmFtZSwgcC0+bmFtZSk7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUJVU1k7CiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNDEyLDggKzE0MTIsOCBAQCBzdGF0 aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb25fdCAqYWN0aW9u KQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBYU1BMSUNFX0FDVElPTl9B UFBMWToKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQg KQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9BUFBMWToKKyAgICAgICAgaWYgKCBkYXRhLT5z dGF0ZSA9PSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKICAgICAgICAgICAg IHJjID0gYnVpbGRfaWRfZGVwKGRhdGEsICEhbGlzdF9lbXB0eSgmYXBwbGllZF9saXN0KSk7CiAg ICAgICAgICAgICBpZiAoIHJjICkKQEAgLTE0MjMsOCArMTQyMyw4IEBAIHN0YXRpYyBpbnQgeHNw bGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCiAgICAgICAg IH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0U6Ci0g ICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9DSEVDS0VEICkKKyAgICBj YXNlIExJVkVQQVRDSF9BQ1RJT05fUkVQTEFDRToKKyAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9 PSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJjID0g YnVpbGRfaWRfZGVwKGRhdGEsIDEgLyogYWdhaW5zdCBoeXBlcnZpc29yLiAqLyk7CiAgICAgICAg ICAgICBpZiAoIHJjICkKQEAgLTE0NDUsMjkgKzE0NDUsMjkgQEAgc3RhdGljIGludCB4c3BsaWNl X2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikKICAgICByZXR1cm4g cmM7CiB9CiAKLWludCB4c3BsaWNlX29wKHhlbl9zeXNjdGxfeHNwbGljZV9vcF90ICp4c3BsaWNl KQoraW50IGxpdmVwYXRjaF9vcCh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90ICpsaXZlcGF0Y2gp CiB7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCB4c3BsaWNlLT5wYWQgKQorICAgIGlmICggbGl2 ZXBhdGNoLT5wYWQgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHN3aXRjaCAoIHhz cGxpY2UtPmNtZCApCisgICAgc3dpdGNoICggbGl2ZXBhdGNoLT5jbWQgKQogICAgIHsKLSAgICBj YXNlIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQ6Ci0gICAgICAgIHJjID0geHNwbGljZV91cGxv YWQoJnhzcGxpY2UtPnUudXBsb2FkKTsKKyAgICBjYXNlIFhFTl9TWVNDVExfTElWRVBBVENIX1VQ TE9BRDoKKyAgICAgICAgcmMgPSBsaXZlcGF0Y2hfdXBsb2FkKCZsaXZlcGF0Y2gtPnUudXBsb2Fk KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhFTl9TWVNDVExfWFNQTElDRV9HRVQ6Ci0g ICAgICAgIHJjID0geHNwbGljZV9nZXQoJnhzcGxpY2UtPnUuZ2V0KTsKKyAgICBjYXNlIFhFTl9T WVNDVExfTElWRVBBVENIX0dFVDoKKyAgICAgICAgcmMgPSBsaXZlcGF0Y2hfZ2V0KCZsaXZlcGF0 Y2gtPnUuZ2V0KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhFTl9TWVNDVExfWFNQTElD RV9MSVNUOgotICAgICAgICByYyA9IHhzcGxpY2VfbGlzdCgmeHNwbGljZS0+dS5saXN0KTsKKyAg ICBjYXNlIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1Q6CisgICAgICAgIHJjID0gbGl2ZXBhdGNo X2xpc3QoJmxpdmVwYXRjaC0+dS5saXN0KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhF Tl9TWVNDVExfWFNQTElDRV9BQ1RJT046Ci0gICAgICAgIHJjID0geHNwbGljZV9hY3Rpb24oJnhz cGxpY2UtPnUuYWN0aW9uKTsKKyAgICBjYXNlIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTjoK KyAgICAgICAgcmMgPSBsaXZlcGF0Y2hfYWN0aW9uKCZsaXZlcGF0Y2gtPnUuYWN0aW9uKTsKICAg ICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMTQ4MCw3ICsxNDgwLDcgQEAgaW50IHhz cGxpY2Vfb3AoeGVuX3N5c2N0bF94c3BsaWNlX29wX3QgKnhzcGxpY2UpCiAKIHN0YXRpYyBjb25z dCBjaGFyICpzdGF0ZTJzdHIodW5zaWduZWQgaW50IHN0YXRlKQogewotI2RlZmluZSBTVEFURSh4 KSBbWFNQTElDRV9TVEFURV8jI3hdID0gI3gKKyNkZWZpbmUgU1RBVEUoeCkgW0xJVkVQQVRDSF9T VEFURV8jI3hdID0gI3gKICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsK ICAgICAgICAgICAgIFNUQVRFKENIRUNLRUQpLAogICAgICAgICAgICAgU1RBVEUoQVBQTElFRCks CkBAIC0xNDkzLDE0ICsxNDkzLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpzdGF0ZTJzdHIodW5z aWduZWQgaW50IHN0YXRlKQogICAgIHJldHVybiBuYW1lc1tzdGF0ZV07CiB9CiAKLXN0YXRpYyB2 b2lkIHhzcGxpY2VfcHJpbnRhbGwodW5zaWduZWQgY2hhciBrZXkpCitzdGF0aWMgdm9pZCBsaXZl cGF0Y2hfcHJpbnRhbGwodW5zaWduZWQgY2hhciBrZXkpCiB7CiAgICAgc3RydWN0IHBheWxvYWQg KmRhdGE7CiAgICAgY29uc3Qgdm9pZCAqYmluYXJ5X2lkID0gTlVMTDsKICAgICB1bnNpZ25lZCBp bnQgbGVuID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIHByaW50aygiJyVjJyBwcmVz c2VkIC0gRHVtcGluZyBhbGwgeHNwbGljZSBwYXRjaGVzXG4iLCBrZXkpOworICAgIHByaW50aygi JyVjJyBwcmVzc2VkIC0gRHVtcGluZyBhbGwgbGl2ZXBhdGNoIHBhdGNoZXNcbiIsIGtleSk7CiAK ICAgICBpZiAoICF4ZW5fYnVpbGRfaWQoJmJpbmFyeV9pZCwgJmxlbikgKQogICAgICAgICBwcmlu dGsoImJ1aWxkLWlkOiAlKnBoTlxuIiwgbGVuLCBiaW5hcnlfaWQpOwpAQCAtMTUxOSw3ICsxNTE5 LDcgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9wcmludGFsbCh1bnNpZ25lZCBjaGFyIGtleSkKIAog ICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5mdW5jczsgaSsrICkKICAgICAgICAgewot ICAgICAgICAgICAgc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZiA9ICYoZGF0YS0+ZnVuY3Nb aV0pOworICAgICAgICAgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmID0gJihkYXRhLT5mdW5j c1tpXSk7CiAgICAgICAgICAgICBwcmludGsoIiAgICAlcyBwYXRjaCAlcCgldSkgd2l0aCAlcCAo JXUpXG4iLAogICAgICAgICAgICAgICAgICAgIGYtPm5hbWUsIGYtPm9sZF9hZGRyLCBmLT5vbGRf c2l6ZSwgZi0+bmV3X2FkZHIsIGYtPm5ld19zaXplKTsKIApAQCAtMTU0NCwyMCArMTU0NCwyMCBA QCBzdGF0aWMgdm9pZCB4c3BsaWNlX3ByaW50YWxsKHVuc2lnbmVkIGNoYXIga2V5KQogICAgIHNw aW5fdW5sb2NrKCZwYXlsb2FkX2xvY2spOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCB4c3BsaWNl X2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGxpdmVwYXRjaF9pbml0KHZvaWQpCiB7CiAg ICAgY29uc3Qgdm9pZCAqYmluYXJ5X2lkOwogICAgIHVuc2lnbmVkIGludCBsZW47CiAKICAgICBp ZiAoICF4ZW5fYnVpbGRfaWQoJmJpbmFyeV9pZCwgJmxlbikgKQotICAgICAgICBwcmludGsoWEVO TE9HX0lORk8gWFNQTElDRSAiOiBidWlsZC1pZDogJSpwaE5cbiIsIGxlbiwgYmluYXJ5X2lkKTsK KyAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPIExJVkVQQVRDSCAiOiBidWlsZC1pZDogJSpwaE5c biIsIGxlbiwgYmluYXJ5X2lkKTsKIAotICAgIHJlZ2lzdGVyX2tleWhhbmRsZXIoJ3gnLCB4c3Bs aWNlX3ByaW50YWxsLCAicHJpbnQgeHNwbGljaW5nIGluZm8iLCAxKTsKKyAgICByZWdpc3Rlcl9r ZXloYW5kbGVyKCd4JywgbGl2ZXBhdGNoX3ByaW50YWxsLCAicHJpbnQgbGl2ZXBhdGNoIGluZm8i LCAxKTsKIAotICAgIGFyY2hfeHNwbGljZV9pbml0KCk7CisgICAgYXJjaF9saXZlcGF0Y2hfaW5p dCgpOwogICAgIHJldHVybiAwOwogfQotX19pbml0Y2FsbCh4c3BsaWNlX2luaXQpOworX19pbml0 Y2FsbChsaXZlcGF0Y2hfaW5pdCk7CiAKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaF9lbGYu YwpzaW1pbGFyaXR5IGluZGV4IDcyJQpyZW5hbWUgZnJvbSB4ZW4vY29tbW9uL3hzcGxpY2VfZWxm LmMKcmVuYW1lIHRvIHhlbi9jb21tb24vbGl2ZXBhdGNoX2VsZi5jCmluZGV4IGQ1OTc1OWYuLjc4 OWU4ZmMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24veHNwbGljZV9lbGYuYworKysgYi94ZW4vY29t bW9uL2xpdmVwYXRjaF9lbGYuYwpAQCAtNSwxMSArNSwxMiBAQAogI2luY2x1ZGUgPHhlbi9lcnJu by5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc3ltYm9scy5oPgotI2lu Y2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+CisjaW5j bHVkZSA8eGVuL2xpdmVwYXRjaF9lbGYuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAK LWNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGNv bnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK2NvbnN0IHN0cnVj dCBsaXZlcGF0Y2hfZWxmX3NlYyAqCitsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGNvbnN0IHN0 cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKQEAgLTIyLDcgKzIzLDcgQEAg Y29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqeHNwbGljZV9lbGZfc2VjX2J5X25hbWUoY29u c3Qgc3RydWN0IHhzcGxpY2VfZWxmICoKICAgICByZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGlu dCBlbGZfdmVyaWZ5X3N0cnRhYihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpzZWMpCitz dGF0aWMgaW50IGVsZl92ZXJpZnlfc3RydGFiKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3Nl YyAqc2VjKQogewogICAgIGNvbnN0IEVsZl9TaGRyICpzOwogICAgIGNvbnN0IGNoYXIgKmNvbnRl bnRzOwpAQCAtNDMsMjUgKzQ0LDI1IEBAIHN0YXRpYyBpbnQgZWxmX3ZlcmlmeV9zdHJ0YWIoY29u c3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjKQogICAgIHJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25zKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25z dCB2b2lkICpkYXRhKQorc3RhdGljIGludCBlbGZfcmVzb2x2ZV9zZWN0aW9ucyhzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQogewotICAgIHN0cnVjdCB4c3BsaWNl X2VsZl9zZWMgKnNlYzsKKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnNlYzsKICAgICB1 bnNpZ25lZCBpbnQgaTsKICAgICBFbGZfT2ZmIGRlbHRhOwogICAgIGludCByYzsKIAotICAgIC8q IHhzcGxpY2VfZWxmX2xvYWQgc2FuaXR5IGNoZWNrZWQgZV9zaG51bS4gKi8KLSAgICBzZWMgPSB4 bWFsbG9jX2FycmF5KHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMsIGVsZi0+aGRyLT5lX3NobnVtKTsK KyAgICAvKiBsaXZlcGF0Y2hfZWxmX2xvYWQgc2FuaXR5IGNoZWNrZWQgZV9zaG51bS4gKi8KKyAg ICBzZWMgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYywgZWxmLT5oZHIt PmVfc2hudW0pOwogICAgIGlmICggIXNlYyApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxP R19FUlIsIFhTUExJQ0UiJXM6IENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHNlY3Rpb24g dGFibGUhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCIlczogQ291 bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc2VjdGlvbiB0YWJsZSFcbiIsCiAgICAgICAgICAg ICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICB9CiAKICAgICBl bGYtPnNlYyA9IHNlYzsKIAotICAgIC8qIGVfc2hvZmYgYW5kIGVfc2hudW0gb3ZlcmZsb3cgY2hl Y2tzIGFyZSBkb25lIGluIHhzcGxpY2VfaGVhZGVyX2NoZWNrLiAqLworICAgIC8qIGVfc2hvZmYg YW5kIGVfc2hudW0gb3ZlcmZsb3cgY2hlY2tzIGFyZSBkb25lIGluIGxpdmVwYXRjaF9oZWFkZXJf Y2hlY2suICovCiAgICAgZGVsdGEgPSBlbGYtPmhkci0+ZV9zaG9mZiArIGVsZi0+aGRyLT5lX3No bnVtICogZWxmLT5oZHItPmVfc2hlbnRzaXplOwogICAgIEFTU0VSVChkZWx0YSA8PSBlbGYtPmxl bik7CiAKQEAgLTgwLDcgKzgxLDcgQEAgc3RhdGljIGludCBlbGZfcmVzb2x2ZV9zZWN0aW9ucyhz dHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKICAgICAgICAgICAgICAo c2VjW2ldLnNlYy0+c2hfdHlwZSAhPSBTSFRfTk9CSVRTICYmIC8qIFNraXAgU0hUX05PQklUUyAq LwogICAgICAgICAgICAgICAoZGVsdGEgPiBlbGYtPmxlbiB8fCAoZGVsdGEgKyBzZWNbaV0uc2Vj LT5zaF9zaXplID4gZWxmLT5sZW4pKSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBkcHJpbnRr KFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTZWN0aW9uIFsldV0gZGF0YSAlcyBvZiBwYXlsb2Fk IVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogU2Vj dGlvbiBbJXVdIGRhdGEgJXMgb2YgcGF5bG9hZCFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVs Zi0+bmFtZSwgaSwKICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPCBzaXplb2YoRWxmX0VoZHIp ID8gImF0IEVMRiBoZWFkZXIiIDogImlzIHBhc3QgZW5kIik7CiAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKQEAgLTk0LDcgKzk1LDcgQEAgc3RhdGljIGludCBlbGZfcmVzb2x2ZV9zZWN0aW9u cyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKICAgICAgICAgewog ICAgICAgICAgICAgaWYgKCBlbGYtPnN5bXRhYiApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogVW5zdXBwb3J0ZWQgbXVsdGlw bGUgc3ltYm9sIHRhYmxlcyFcbiIsCisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBtdWx0aXBsZSBzeW1ib2wgdGFibGVzIVxuIiwK ICAgICAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FT1BOT1RTVVBQOwogICAgICAgICAgICAgfQpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRp YyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0 IHZvaWQgKmRhdGEpCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlmICggZWxmLT5zeW10 YWItPnNlYy0+c2hfbGluayA+PSBlbGYtPmhkci0+ZV9zaG51bSApCiAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFCisgICAgICAgICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0gKICAgICAgICAgICAgICAgICAgICAgICAg ICIlczogU3ltYm9sIHRhYmxlIGlkeCAoJXUpIHRvIHN0cnRhYiBwYXN0IGVuZCAoJXUpXG4iLAog ICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnN5bXRhYi0+c2VjLT5zaF9s aW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5oZHItPmVfc2hudW0pOwpAQCAtMTE5 LDcgKzEyMCw3IEBAIHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAKICAgICBpZiAoICFlbGYtPnN5bXRhYiAp CiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBObyBzeW1i b2wgdGFibGUgZm91bmQhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRD SCAiJXM6IE5vIHN5bWJvbCB0YWJsZSBmb3VuZCFcbiIsCiAgICAgICAgICAgICAgICAgZWxmLT5u YW1lKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQpAQCAtMTI4LDcgKzEyOSw3IEBA IHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYs IGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgICAgICBlbGYtPnN5bXRhYi0+c2VjLT5zaF9lbnRzaXpl IDwgc2l6ZW9mKEVsZl9TeW0pIHx8CiAgICAgICAgICBlbGYtPnN5bXRhYi0+c2VjLT5zaF9zaXpl ICUgZWxmLT5zeW10YWItPnNlYy0+c2hfZW50c2l6ZSApCiAgICAgewotICAgICAgICBkcHJpbnRr KFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTeW1ib2wgdGFibGUgaGVhZGVyIGlzIGNvcnJ1cHRl ZCFcbiIsCisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogU3ltYm9s IHRhYmxlIGhlYWRlciBpcyBjb3JydXB0ZWQhXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFt ZSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KQEAgLTE0MiwxOSArMTQzLDE5IEBA IHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYs IGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgcmMgPSBlbGZfdmVyaWZ5X3N0cnRhYihlbGYtPnN0cnRh Yik7CiAgICAgaWYgKCByYyApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhT UExJQ0UgIiVzOiBTdHJpbmcgdGFibGUgc2VjdGlvbiBpcyBjb3JydXB0ZWRcbiIsCisgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogU3RyaW5nIHRhYmxlIHNlY3Rpb24g aXMgY29ycnVwdGVkXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgfQogCiAg ICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMo c3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGVs Zl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwgY29uc3Qg dm9pZCAqZGF0YSkKIHsKICAgICBjb25zdCBjaGFyICpzaHN0cnRhYjsKICAgICB1bnNpZ25lZCBp bnQgaTsKICAgICBFbGZfT2ZmIG9mZnNldCwgZGVsdGE7Ci0gICAgc3RydWN0IHhzcGxpY2VfZWxm X3NlYyAqc2VjOworICAgIHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2VjOwogICAgIGludCBy YzsKIAogICAgIC8qCkBAIC0xNjcsNyArMTY4LDcgQEAgc3RhdGljIGludCBlbGZfcmVzb2x2ZV9z ZWN0aW9uX25hbWVzKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQog ICAgIHJjID0gZWxmX3ZlcmlmeV9zdHJ0YWIoc2VjKTsKICAgICBpZiAoIHJjICkKICAgICB7Ci0g ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFNlY3Rpb24gc3RyaW5nIHRh YmxlIGlzIGNvcnJ1cHRlZFxuIiwKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzOiBTZWN0aW9uIHN0cmluZyB0YWJsZSBpcyBjb3JydXB0ZWRcbiIsCiAgICAgICAgICAg ICAgICAgZWxmLT5uYW1lKTsKICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KQEAgLTE4NSw3ICsx ODYsNyBAQCBzdGF0aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMoc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgICAgIC8qIEJvdW5kYXJ5IGNoZWNr IG9uIG9mZnNldCBvZiBuYW1lIHdpdGhpbiB0aGUgLnNoc3RydGFiLiAqLwogICAgICAgICBpZiAo IGRlbHRhID49IHNlYy0+c2VjLT5zaF9zaXplICkKICAgICAgICAgewotICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2VjdGlvbiAldSBuYW1lIGlzIG5vdCB3aXRo aW4gLnNoc3RydGFiIVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogU2VjdGlvbiAldSBuYW1lIGlzIG5vdCB3aXRoaW4gLnNoc3RydGFiIVxuIiwKICAg ICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBpKTsKICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwogICAgICAgICB9CkBAIC0xOTYsMTAgKzE5NywxMCBAQCBzdGF0aWMgaW50IGVsZl9yZXNv bHZlX3NlY3Rpb25fbmFtZXMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRh dGEpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZWxmX2dldF9zeW0oc3RydWN0IHhz cGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGVsZl9nZXRfc3lt KHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiB7Ci0gICAgY29u c3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc3ltdGFiX3NlYywgKnN0cnRhYl9zZWM7Ci0gICAg c3RydWN0IHhzcGxpY2VfZWxmX3N5bSAqc3ltOworICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hf ZWxmX3NlYyAqc3ltdGFiX3NlYywgKnN0cnRhYl9zZWM7CisgICAgc3RydWN0IGxpdmVwYXRjaF9l bGZfc3ltICpzeW07CiAgICAgdW5zaWduZWQgaW50IGksIG5zeW07CiAgICAgRWxmX09mZiBvZmZz ZXQ7CiAgICAgRWxmX1dvcmQgZGVsdGE7CkBAIC0yMjAsMTAgKzIyMSwxMCBAQCBzdGF0aWMgaW50 IGVsZl9nZXRfc3ltKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQog ICAgIC8qIE5vIG5lZWQgdG8gY2hlY2sgdmFsdWVzIGFzIGVsZl9yZXNvbHZlX3NlY3Rpb25zIGRp ZCBpdC4gKi8KICAgICBuc3ltID0gc3ltdGFiX3NlYy0+c2VjLT5zaF9zaXplIC8gc3ltdGFiX3Nl Yy0+c2VjLT5zaF9lbnRzaXplOwogCi0gICAgc3ltID0geG1hbGxvY19hcnJheShzdHJ1Y3QgeHNw bGljZV9lbGZfc3ltLCBuc3ltKTsKKyAgICBzeW0gPSB4bWFsbG9jX2FycmF5KHN0cnVjdCBsaXZl cGF0Y2hfZWxmX3N5bSwgbnN5bSk7CiAgICAgaWYgKCAhc3ltICkKICAgICB7Ci0gICAgICAgIGRw cmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkg Zm9yIHN5bWJvbHNcbiIsCisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIl czogQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc3ltYm9sc1xuIiwKICAgICAgICAgICAg ICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgIH0KQEAgLTIzOSw3 ICsyNDAsNyBAQCBzdGF0aWMgaW50IGVsZl9nZXRfc3ltKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LCBjb25zdCB2b2lkICpkYXRhKQogICAgICAgICAvKiBCb3VuZGFyeSBjaGVjayB3aXRoaW4gdGhl IC5zdHJ0YWIuICovCiAgICAgICAgIGlmICggZGVsdGEgPj0gc3RydGFiX3NlYy0+c2VjLT5zaF9z aXplICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNF ICIlczogU3ltYm9sIFsldV0gbmFtZSBpcyBub3Qgd2l0aGluIC5zdHJ0YWIhXG4iLAorICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTeW1ib2wgWyV1XSBuYW1l IGlzIG5vdCB3aXRoaW4gLnN0cnRhYiFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFt ZSwgaSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtMjUyLDcg KzI1Myw3IEBAIHN0YXRpYyBpbnQgZWxmX2dldF9zeW0oc3RydWN0IHhzcGxpY2VfZWxmICplbGYs IGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCB4c3BsaWNlX2VsZl9y ZXNvbHZlX3N5bWJvbHMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCitpbnQgbGl2ZXBhdGNoX2Vs Zl9yZXNvbHZlX3N5bWJvbHMoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsKICAgICB1bnNp Z25lZCBpbnQgaTsKICAgICBpbnQgcmMgPSAwOwpAQCAtMjY4LDcgKzI2OSw3IEBAIGludCB4c3Bs aWNlX2VsZl9yZXNvbHZlX3N5bWJvbHMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgICAg IHN3aXRjaCAoIGlkeCApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBTSE5fQ09NTU9OOgotICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogVW5leHBlY3RlZCBjb21t b24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogVW5leHBlY3RlZCBjb21tb24gc3ltYm9sOiAlc1xuIiwKICAgICAgICAgICAgICAg ICAgICAgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lKTsKICAgICAgICAgICAgIHJjID0gLUVJ TlZBTDsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjc3LDIxICsyNzgsMjEgQEAgaW50IHhzcGxp Y2VfZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAg ICAgIHN0X3ZhbHVlID0gc3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5bVtpXS5uYW1lKTsK ICAgICAgICAgICAgIGlmICggIXN0X3ZhbHVlICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICBzdF92YWx1ZSA9IHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5bVtp XS5uYW1lKTsKKyAgICAgICAgICAgICAgICBzdF92YWx1ZSA9IGxpdmVwYXRjaF9zeW1ib2xzX2xv b2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ldLm5hbWUpOwogICAgICAgICAgICAgICAgIGlmICggIXN0 X3ZhbHVlICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAg ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbmtub3duIHN5 bWJvbDogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYt PnN5bVtpXS5uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgcmMgPSAtRU5PRU5UOwogICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IFVuZGVmaW5lZCBz eW1ib2wgcmVzb2x2ZWQ6ICVzID0+ICUjIlBSSXhFbGZBZGRyIlxuIiwKKyAgICAgICAgICAgIGRw cmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBVbmRlZmluZWQgc3ltYm9sIHJlc29s dmVkOiAlcyA9PiAlIyJQUkl4RWxmQWRkciJcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+ bmFtZSwgZWxmLT5zeW1baV0ubmFtZSwgc3RfdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAK ICAgICAgICAgY2FzZSBTSE5fQUJTOgotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcs IFhTUExJQ0UgIiVzOiBBYnNvbHV0ZSBzeW1ib2w6ICVzID0+ICUjIlBSSXhFbGZBZGRyIlxuIiwK KyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBBYnNvbHV0 ZSBzeW1ib2w6ICVzID0+ICUjIlBSSXhFbGZBZGRyIlxuIiwKICAgICAgICAgICAgICAgICAgICAg ZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lLCBzeW0tPnN0X3ZhbHVlKTsKICAgICAgICAgICAg IGJyZWFrOwogCkBAIC0zMDQsNyArMzA1LDcgQEAgaW50IHhzcGxpY2VfZWxmX3Jlc29sdmVfc3lt Ym9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIAogICAgICAgICAgICAgaWYgKCByYyApCiAg ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNF ICIlczogT3V0IG9mIGJvdW5kcyBzeW1ib2wgc2VjdGlvbiAlI3hcbiIsCisgICAgICAgICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBPdXQgb2YgYm91bmRzIHN5bWJv bCBzZWN0aW9uICUjeFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgaWR4 KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTMxNSw3ICszMTYs NyBAQCBpbnQgeHNwbGljZV9lbGZfcmVzb2x2ZV9zeW1ib2xzKHN0cnVjdCB4c3BsaWNlX2VsZiAq ZWxmKQogCiAgICAgICAgICAgICBzdF92YWx1ZSArPSAodW5zaWduZWQgbG9uZyllbGYtPnNlY1tp ZHhdLmxvYWRfYWRkcjsKICAgICAgICAgICAgIGlmICggZWxmLT5zeW1baV0ubmFtZSApCi0gICAg ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJQ0UgIiVzOiBTeW1ib2wgcmVz b2x2ZWQ6ICVzID0+ICUjIlBSSXhFbGZBZGRyIiAoJXMpXG4iLAorICAgICAgICAgICAgICAgIGRw cmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBTeW1ib2wgcmVzb2x2ZWQ6ICVzID0+ ICUjIlBSSXhFbGZBZGRyIiAoJXMpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5h bWUsIGVsZi0+c3ltW2ldLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0X3ZhbHVlLCBl bGYtPnNlY1tpZHhdLm5hbWUpOwogICAgICAgICB9CkBAIC0zMjksOSArMzMwLDkgQEAgaW50IHhz cGxpY2VfZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICBy ZXR1cm4gcmM7CiB9CiAKLWludCB4c3BsaWNlX2VsZl9wZXJmb3JtX3JlbG9jcyhzdHJ1Y3QgeHNw bGljZV9lbGYgKmVsZikKK2ludCBsaXZlcGF0Y2hfZWxmX3BlcmZvcm1fcmVsb2NzKHN0cnVjdCBs aXZlcGF0Y2hfZWxmICplbGYpCiB7Ci0gICAgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqciwgKmJh c2U7CisgICAgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyLCAqYmFzZTsKICAgICB1bnNpZ25l ZCBpbnQgaTsKICAgICBpbnQgcmMgPSAwOwogCkBAIC0zNTcsMTYgKzM1OCwxNiBAQCBpbnQgeHNw bGljZV9lbGZfcGVyZm9ybV9yZWxvY3Moc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAKICAgICAg ICAgaWYgKCByLT5zZWMtPnNoX2xpbmsgIT0gZWxmLT5zeW10YWJfaWR4ICkKICAgICAgICAgewot ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogUmVsYXRpdmUgbGlu ayBvZiAlcyBpcyBpbmNvcnJlY3QgKCVkLCBleHBlY3RlZD0lZClcbiIsCisgICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFJlbGF0aXZlIGxpbmsgb2YgJXMgaXMg aW5jb3JyZWN0ICglZCwgZXhwZWN0ZWQ9JWQpXG4iLAogICAgICAgICAgICAgICAgICAgICBlbGYt Pm5hbWUsIHItPm5hbWUsIHItPnNlYy0+c2hfbGluaywgZWxmLT5zeW10YWJfaWR4KTsKICAgICAg ICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAg ICAgICAgaWYgKCByLT5zZWMtPnNoX3R5cGUgPT0gU0hUX1JFTEEgKQotICAgICAgICAgICAgcmMg PSBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKGVsZiwgYmFzZSwgcik7CisgICAgICAgICAgICBy YyA9IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShlbGYsIGJhc2UsIHIpOwogICAgICAgICBl bHNlIC8qIFNIVF9SRUwgKi8KLSAgICAgICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3BlcmZvcm1f cmVsKGVsZiwgYmFzZSwgcik7CisgICAgICAgICAgICByYyA9IGFyY2hfbGl2ZXBhdGNoX3BlcmZv cm1fcmVsKGVsZiwgYmFzZSwgcik7CiAKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBi cmVhazsKQEAgLTM3NSwyMSArMzc2LDIxIEBAIGludCB4c3BsaWNlX2VsZl9wZXJmb3JtX3JlbG9j cyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICByZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBp bnQgeHNwbGljZV9oZWFkZXJfY2hlY2soY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCitz dGF0aWMgaW50IGxpdmVwYXRjaF9oZWFkZXJfY2hlY2soY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9l bGYgKmVsZikKIHsKICAgICBjb25zdCBFbGZfRWhkciAqaGRyID0gZWxmLT5oZHI7CiAgICAgaW50 IHJjOwogCiAgICAgaWYgKCBzaXplb2YoKmVsZi0+aGRyKSA+IGVsZi0+bGVuICkKICAgICB7Ci0g ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFNlY3Rpb24gaGVhZGVyIGlz IGJpZ2dlciB0aGFuIHBheWxvYWQhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJ VkVQQVRDSCAiJXM6IFNlY3Rpb24gaGVhZGVyIGlzIGJpZ2dlciB0aGFuIHBheWxvYWQhXG4iLAog ICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAg IH0KIAogICAgIGlmICggIUlTX0VMRigqaGRyKSApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIFhTUExJQ0UgIiVzOiBOb3QgYW4gRUxGIHBheWxvYWQhXG4iLCBlbGYtPm5hbWUp OworICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IE5vdCBhbiBFTEYg cGF5bG9hZCFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0K IApAQCAtNDAyLDE3ICs0MDMsMTcgQEAgc3RhdGljIGludCB4c3BsaWNlX2hlYWRlcl9jaGVjayhj b25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgIGhkci0+ZV90eXBlICE9IEVU X1JFTCB8fAogICAgICAgICAgaGRyLT5lX3BobnVtICE9IDAgKQogICAgIHsKLSAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogSW52YWxpZCBFTEYgcGF5bG9hZCFcbiIsIGVs Zi0+bmFtZSk7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogSW52 YWxpZCBFTEYgcGF5bG9hZCFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRU9QTk9U U1VQUDsKICAgICB9CiAKLSAgICByYyA9IGFyY2hfeHNwbGljZV92ZXJpZnlfZWxmKGVsZik7Cisg ICAgcmMgPSBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZWxmKGVsZik7CiAgICAgaWYgKCByYyApCiAg ICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggZWxmLT5oZHItPmVfc2hzdHJuZHggPT0gU0hO X1VOREVGICkKICAgICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6 IFNlY3Rpb24gbmFtZSBpZHggaXMgdW5kZWZpbmVkIT9cbiIsCisgICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiwgTElWRVBBVENIICIlczogU2VjdGlvbiBuYW1lIGlkeCBpcyB1bmRlZmluZWQhP1xu IiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsK ICAgICB9CkBAIC00MjAsNyArNDIxLDcgQEAgc3RhdGljIGludCB4c3BsaWNlX2hlYWRlcl9jaGVj ayhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAvKiBBcmJpdHJhcnkgYm91bmRh cnkgbGltaXQuICovCiAgICAgaWYgKCBlbGYtPmhkci0+ZV9zaG51bSA+PSAxMDI0ICkKICAgICB7 Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFRvbyBtYW55ICgldSkg c2VjdGlvbnMhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6 IFRvbyBtYW55ICgldSkgc2VjdGlvbnMhXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwg ZWxmLT5oZHItPmVfc2hudW0pOwogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAgICAgfQpA QCAtNDI4LDIwICs0MjksMjAgQEAgc3RhdGljIGludCB4c3BsaWNlX2hlYWRlcl9jaGVjayhjb25z dCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAvKiBDaGVjayB0aGF0IHNlY3Rpb24gbmFt ZSBpbmRleCBpcyB3aXRoaW4gdGhlIHNlY3Rpb25zLiAqLwogICAgIGlmICggZWxmLT5oZHItPmVf c2hzdHJuZHggPj0gZWxmLT5oZHItPmVfc2hudW0gKQogICAgIHsKLSAgICAgICAgZHByaW50ayhY RU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2VjdGlvbiBuYW1lIGlkeCAoJXUpIGlzIHBhc3QgZW5k IG9mIHNlY3Rpb25zICgldSkhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQ QVRDSCAiJXM6IFNlY3Rpb24gbmFtZSBpZHggKCV1KSBpcyBwYXN0IGVuZCBvZiBzZWN0aW9ucyAo JXUpIVxuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+aGRyLT5lX3Noc3RybmR4 LCBlbGYtPmhkci0+ZV9zaG51bSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAog ICAgIGlmICggZWxmLT5oZHItPmVfc2hvZmYgPj0gZWxmLT5sZW4gKQogICAgIHsKLSAgICAgICAg ZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogQm9ndXMgZV9zaG9mZiFcbiIsIGVsZi0+ bmFtZSk7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogQm9ndXMg ZV9zaG9mZiFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0K IAogICAgIGlmICggZWxmLT5oZHItPmVfc2hlbnRzaXplIDwgc2l6ZW9mKEVsZl9TaGRyKSApCiAg ICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTZWN0aW9uIGhl YWRlciBzaXplIGlzICV1ISBFeHBlY3RlZCAlenUhP1xuIiwKKyAgICAgICAgZHByaW50ayhYRU5M T0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTZWN0aW9uIGhlYWRlciBzaXplIGlzICV1ISBFeHBlY3Rl ZCAlenUhP1xuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+aGRyLT5lX3NoZW50 c2l6ZSwgc2l6ZW9mKEVsZl9TaGRyKSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0K QEAgLTQ0OSw3ICs0NTAsNyBAQCBzdGF0aWMgaW50IHhzcGxpY2VfaGVhZGVyX2NoZWNrKGNvbnN0 IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIGlmICggKChlbGYtPmxlbiAtIGVsZi0+aGRy LT5lX3Nob2ZmKSAvIGVsZi0+aGRyLT5lX3NoZW50c2l6ZSkgPAogICAgICAgICAgZWxmLT5oZHIt PmVfc2hudW0gKQogICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIl czogU2VjdGlvbiBoZWFkZXIgc2l6ZSBpcyBjb3JydXB0ZWQhXG4iLAorICAgICAgICBkcHJpbnRr KFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rpb24gaGVhZGVyIHNpemUgaXMgY29ycnVw dGVkIVxuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVJ TlZBTDsKICAgICB9CkBAIC00NTcsMTMgKzQ1OCwxMyBAQCBzdGF0aWMgaW50IHhzcGxpY2VfaGVh ZGVyX2NoZWNrKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIHJldHVybiAwOwog fQogCi1pbnQgeHNwbGljZV9lbGZfbG9hZChzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgY29uc3Qg dm9pZCAqZGF0YSkKK2ludCBsaXZlcGF0Y2hfZWxmX2xvYWQoc3RydWN0IGxpdmVwYXRjaF9lbGYg KmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKIHsKICAgICBpbnQgcmM7CiAKICAgICBlbGYtPmhkciA9 IGRhdGE7CiAKLSAgICByYyA9IHhzcGxpY2VfaGVhZGVyX2NoZWNrKGVsZik7CisgICAgcmMgPSBs aXZlcGF0Y2hfaGVhZGVyX2NoZWNrKGVsZik7CiAgICAgaWYgKCByYyApCiAgICAgICAgIHJldHVy biByYzsKIApAQCAtNDgyLDcgKzQ4Myw3IEBAIGludCB4c3BsaWNlX2VsZl9sb2FkKHN0cnVjdCB4 c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQogICAgIHJldHVybiAwOwogfQogCi12 b2lkIHhzcGxpY2VfZWxmX2ZyZWUoc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCit2b2lkIGxpdmVw YXRjaF9lbGZfZnJlZShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogewogICAgIHhmcmVlKGVs Zi0+c2VjKTsKICAgICBlbGYtPnNlYyA9IE5VTEw7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3N5 c2N0bC5jIGIveGVuL2NvbW1vbi9zeXNjdGwuYwppbmRleCA5YTRjYzFmLi43NWY0YzA1IDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3N5c2N0bC5jCisrKyBiL3hlbi9jb21tb24vc3lzY3RsLmMKQEAg LTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5jbHVkZSA8eGVuL3Btc3Rh dC5oPgogI2luY2x1ZGUgPHhlbi9nY292Lmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNp bmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAKIGxvbmcgZG9fc3lzY3RsKFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeGVuX3N5c2N0bF90KSB1X3N5c2N0bCkKIHsKQEAgLTQ2MSw4ICs0NjEsOCBAQCBs b25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNjdGxfdCkgdV9zeXNj dGwpCiAgICAgICAgIHJldCA9IHRtZW1fY29udHJvbCgmb3AtPnUudG1lbV9vcCk7CiAgICAgICAg IGJyZWFrOwogCi0gICAgY2FzZSBYRU5fU1lTQ1RMX3hzcGxpY2Vfb3A6Ci0gICAgICAgIHJldCA9 IHhzcGxpY2Vfb3AoJm9wLT51LnhzcGxpY2UpOworICAgIGNhc2UgWEVOX1NZU0NUTF9saXZlcGF0 Y2hfb3A6CisgICAgICAgIHJldCA9IGxpdmVwYXRjaF9vcCgmb3AtPnUubGl2ZXBhdGNoKTsKICAg ICAgICAgaWYgKCByZXQgIT0gLUVOT1NZUyAmJiByZXQgIT0gLUVPUE5PVFNVUFAgKQogICAgICAg ICAgICAgY29weWJhY2sgPSAxOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vdmlydHVhbF9yZWdpb24uYyBiL3hlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYwppbmRleCA0 MjZkZmEwLi5hYTIzOTE4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZpcnR1YWxfcmVnaW9uLmMK KysrIGIveGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jCkBAIC0yNSw3ICsyNSw3IEBAIHN0YXRp YyBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gY29yZV9pbml0IF9faW5pdGRhdGEgPSB7CiAgKiBSQ1Ug bG9ja2luZy4gQWRkaXRpb25zIGFyZSBkb25lIGVpdGhlciBhdCBzdGFydHVwICh3aGVuIHRoZXJl IGlzIG9ubHkKICAqIG9uZSBDUFUpIG9yIHdoZW4gYWxsIENQVXMgYXJlIHJ1bm5pbmcgd2l0aG91 dCBJUlFzLgogICoKLSAqIERlbGV0aW9ucyBhcmUgYml0IHRyaWNreS4gV2UgZG8gaXQgd2hlbiB4 U3BsaWNpbmcgKGFsbCBDUFVzIHJ1bm5pbmcKKyAqIERlbGV0aW9ucyBhcmUgYml0IHRyaWNreS4g V2UgZG8gaXQgd2hlbiBMaXZlIFBhdGNoIChhbGwgQ1BVcyBydW5uaW5nCiAgKiB3aXRob3V0IElS UXMpIG9yIGR1cmluZyBib290dXAgKHdoZW4gY2xlYXJpbmcgdGhlIGluaXQpLgogICoKICAqIEhl bmNlIHdlIHVzZSBsaXN0X2RlbF9yY3UgKHdoaWNoIHNwb3J0cyBhbiBtZW1vcnkgZmVuY2UpIGFu ZCBhIHNwaW5sb2NrCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZV92aXJ0dWFs X3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIpCiAKIHZvaWQgdW5yZWdpc3Rlcl92aXJ0 dWFsX3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIpCiB7Ci0gICAgLyogRXhwZWN0ZWQg dG8gYmUgY2FsbGVkIGZyb20geFNwbGljZSAtIHdoaWNoIGhhcyBJUlFzIGRpc2FibGVkLiAqLwor ICAgIC8qIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmcm9tIExpdmUgUGF0Y2ggLSB3aGljaCBoYXMg SVJRcyBkaXNhYmxlZC4gKi8KICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOwog CiAgICAgcmVtb3ZlX3ZpcnR1YWxfcmVnaW9uKHIpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92 c3ByaW50Zi5jIGIveGVuL2NvbW1vbi92c3ByaW50Zi5jCmluZGV4IDcwZTFlZGYuLmIwNTBlYTMg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdnNwcmludGYuYworKysgYi94ZW4vY29tbW9uL3ZzcHJp bnRmLmMKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlIDx4ZW4vc3ltYm9scy5oPgogI2luY2x1 ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNpbmNsdWRlIDx4ZW4veHNw bGljZS5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KICNpbmNsdWRlIDxhc20vZGl2NjQu aD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIGNo YXIgKnBvaW50ZXIoY2hhciAqc3RyLCBjaGFyICplbmQsIGNvbnN0IGNoYXIgKipmbXRfcHRyLAog ICAgICAgICB9CiAKICAgICAgICAgLyoKLSAgICAgICAgICogbmFtZWJ1ZiBjb250ZW50cyBhbmQg cyBmb3IgY29yZSBoeXBlcnZpc29yIGFyZSBzYW1lIGJ1dCBmb3IgeFNwbGljZQorICAgICAgICAg KiBuYW1lYnVmIGNvbnRlbnRzIGFuZCBzIGZvciBjb3JlIGh5cGVydmlzb3IgYXJlIHNhbWUgYnV0 IGZvciBMaXZlIFBhdGNoCiAgICAgICAgICAqIHBheWxvYWRzIHRoZXkgZGlmZmVyIChuYW1lYnVm IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBwYXlsb2FkKS4KICAgICAgICAgICovCiAgICAgICAg IGlmICggbmFtZWJ1ZiAhPSBzICkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3Vy cmVudC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKaW5kZXggZmE1NTYwMi4uZTY1 ODdlNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKKysrIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKQEAgLTg2LDE3ICs4NiwxNyBAQCBzdGF0aWMgaW5s aW5lIHN0cnVjdCBjcHVfaW5mbyAqZ2V0X2NwdV9pbmZvKHZvaWQpCiB1bnNpZ25lZCBsb25nIGdl dF9zdGFja190cmFjZV9ib3R0b20odW5zaWduZWQgbG9uZyBzcCk7CiB1bnNpZ25lZCBsb25nIGdl dF9zdGFja19kdW1wX2JvdHRvbSAodW5zaWduZWQgbG9uZyBzcCk7CiAKLSNpZmRlZiBDT05GSUdf WFNQTElDRQotIyBkZWZpbmUgQ0hFQ0tfRk9SX1hTUExJQ0VfV09SSyAiY2FsbCBjaGVja19mb3Jf eHNwbGljZV93b3JrOyIKKyNpZmRlZiBDT05GSUdfTElWRVBBVENICisjIGRlZmluZSBDSEVDS19G T1JfTElWRVBBVENIX1dPUksgImNhbGwgY2hlY2tfZm9yX2xpdmVwYXRjaF93b3JrOyIKICNlbHNl Ci0jIGRlZmluZSBDSEVDS19GT1JfWFNQTElDRV9XT1JLICIiCisjIGRlZmluZSBDSEVDS19GT1Jf TElWRVBBVENIX1dPUksgIiIKICNlbmRpZgogCiAjZGVmaW5lIHJlc2V0X3N0YWNrX2FuZF9qdW1w KF9fZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAibW92ICUwLCUlIl9fT1Aic3A7 IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBD SEVDS19GT1JfWFNQTElDRV9XT1JLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICBDSEVDS19GT1JfTElWRVBBVENIX1dPUksgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAiam1wICVjMSIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIDog OiAiciIgKGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSksICJpIiAoX19mbikgOiAibWVtb3J5IiApOyAg IFwKICAgICAgICAgdW5yZWFjaGFibGUoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNj dGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAppbmRleCBiMmIzMTJiLi44MTk3YzE0 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgKKysrIGIveGVuL2luY2x1 ZGUvcHVibGljL3N5c2N0bC5oCkBAIC04NDksNjcgKzg0OSw2NyBAQCB0eXBlZGVmIHN0cnVjdCB4 ZW5fc3lzY3RsX2ZlYXR1cmVzZXQgeGVuX3N5c2N0bF9mZWF0dXJlc2V0X3Q7CiBERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2ZlYXR1cmVzZXRfdCk7CiAKIC8qCi0gKiBYRU5fU1lT Q1RMX1hTUExJQ0Vfb3AKKyAqIFhFTl9TWVNDVExfTElWRVBBVENIX29wCiAgKgotICogUmVmZXIg dG8gdGhlIGRvY3MvdW5zdGFibGUvbWlzYy94c3BsaWNlLm1hcmtkb3duCisgKiBSZWZlciB0byB0 aGUgZG9jcy91bnN0YWJsZS9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgogICogZm9yIHRoZSBkZXNp Z24gZGV0YWlscyBvZiB0aGlzIGh5cGVyY2FsbC4KICAqCiAgKiBUaGVyZSBhcmUgZm91ciBzdWIt b3BzOgotICogIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQgKDApCi0gKiAgWEVOX1NZU0NUTF9Y U1BMSUNFX0dFVCAoMSkKLSAqICBYRU5fU1lTQ1RMX1hTUExJQ0VfTElTVCAoMikKLSAqICBYRU5f U1lTQ1RMX1hTUExJQ0VfQUNUSU9OICgzKQorICogIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9B RCAoMCkKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgKDEpCisgKiAgWEVOX1NZU0NUTF9M SVZFUEFUQ0hfTElTVCAoMikKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gKDMpCiAg KgogICogVGhlIG5vcm1hbCBzZXF1ZW5jZSBvZiBzdWItb3BzIGlzIHRvOgotICogIDEpIFhFTl9T WVNDVExfWFNQTElDRV9VUExPQUQgdG8gdXBsb2FkIHRoZSBwYXlsb2FkLiBJZiBlcnJvcnMgU1RP UC4KLSAqICAyKSBYRU5fU1lTQ1RMX1hTUExJQ0VfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElm IC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgMSkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIHRv IHVwbG9hZCB0aGUgcGF5bG9hZC4gSWYgZXJyb3JzIFNUT1AuCisgKiAgMikgWEVOX1NZU0NUTF9M SVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1YRU5fRUFHQUlOIHNwaW4uCiAg KiAgICAgSWYgemVybyBnbyB0byBuZXh0IHN0ZXAuCi0gKiAgMykgWEVOX1NZU0NUTF9YU1BMSUNF X0FDVElPTiB3aXRoIFhTUExJQ0VfQUNUSU9OX0FQUExZIHRvIGFwcGx5IHRoZSBwYXRjaC4KLSAq ICA0KSBYRU5fU1lTQ1RMX1hTUExJQ0VfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluIC1Y RU5fRUFHQUlOIHNwaW4uCisgKiAgMykgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OIHdpdGgg TElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUgcGF0Y2guCisgKiAgNCkgWEVOX1NZ U0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluIC1YRU5fRUFHQUlO IHNwaW4uCiAgKiAgICAgSWYgemVybyBleGl0IHdpdGggc3VjY2Vzcy4KICAqLwogCi0jZGVmaW5l IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OIDEKKyNkZWZpbmUgTElWRVBBVENIX1BBWUxPQURfVkVS U0lPTiAxCiAvKgotICogLnhzcGxpY2UuZnVuY3Mgc3RydWN0dXJlIGxheW91dCBkZWZpbmVkIGlu IHRoZSBgUGF5bG9hZCBmb3JtYXRgCi0gKiBzZWN0aW9uIGluIHRoZSB4U3BsaWNlIGRlc2lnbiBk b2N1bWVudC4KKyAqIC5saXZlcGF0Y2guZnVuY3Mgc3RydWN0dXJlIGxheW91dCBkZWZpbmVkIGlu IHRoZSBgUGF5bG9hZCBmb3JtYXRgCisgKiBzZWN0aW9uIGluIHRoZSBMaXZlIFBhdGNoIGRlc2ln biBkb2N1bWVudC4KICAqCiAgKiBXZSBndWFyZCB0aGlzIHdpdGggX19YRU5fXyBhcyB0b29sc3Rh Y2tzIFNIT1VMRCBub3QgdXNlIGl0LgogICovCiAjaWZkZWYgX19YRU5fXwotc3RydWN0IHhzcGxp Y2VfcGF0Y2hfZnVuYyB7CitzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgewogICAgIGNvbnN0IGNoYXIg Km5hbWU7ICAgICAgIC8qIE5hbWUgb2YgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZC4gKi8KICAgICB2 b2lkICpuZXdfYWRkcjsKICAgICB2b2lkICpvbGRfYWRkcjsKICAgICB1aW50MzJfdCBuZXdfc2l6 ZTsKICAgICB1aW50MzJfdCBvbGRfc2l6ZTsKLSAgICB1aW50OF90IHZlcnNpb247ICAgICAgICAv KiBNVVNUIGJlIFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLiAqLworICAgIHVpbnQ4X3QgdmVyc2lv bjsgICAgICAgIC8qIE1VU1QgYmUgTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTi4gKi8KICAgICB1 aW50OF90IG9wYXF1ZVszMV07CiB9OwotdHlwZWRlZiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5j IHhzcGxpY2VfcGF0Y2hfZnVuY190OwordHlwZWRlZiBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgbGl2 ZXBhdGNoX2Z1bmNfdDsKICNlbmRpZgogCiAvKgogICogU3RydWN0dXJlIGRlc2NyaWJpbmcgYW4g RUxGIHBheWxvYWQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlCiAgKiBwYXlsb2FkLiBTaG91bGQg YmUgaHVtYW4gcmVhZGFibGUuCi0gKiBSZWNvbW1lbmRlZCBsZW5ndGggaXMgdXB0byBYRU5fWFNQ TElDRV9OQU1FX1NJWkUuCisgKiBSZWNvbW1lbmRlZCBsZW5ndGggaXMgdXB0byBYRU5fTElWRVBB VENIX05BTUVfU0laRS4KICAqIEluY2x1ZGVzIHRoZSBOVUwgdGVybWluYXRvci4KICAqLwotI2Rl ZmluZSBYRU5fWFNQTElDRV9OQU1FX1NJWkUgMTI4Ci1zdHJ1Y3QgeGVuX3hzcGxpY2VfbmFtZSB7 CisjZGVmaW5lIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIDEyOAorc3RydWN0IHhlbl9saXZlcGF0 Y2hfbmFtZSB7CiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8q IElOOiBwb2ludGVyIHRvIG5hbWUuICovCiAgICAgdWludDE2X3Qgc2l6ZTsgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIElOOiBzaXplIG9mIG5hbWUuIE1heSBiZSB1cHRvCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9YU1BMSUNFX05BTUVfU0la RS4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVO X0xJVkVQQVRDSF9OQU1FX1NJWkUuICovCiAgICAgdWludDE2X3QgcGFkWzNdOyAgICAgICAgICAg ICAgICAgICAgICAgIC8qIElOOiBNVVNUIGJlIHplcm8uICovCiB9OwotdHlwZWRlZiBzdHJ1Y3Qg eGVuX3hzcGxpY2VfbmFtZSB4ZW5feHNwbGljZV9uYW1lX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5feHNwbGljZV9uYW1lX3QpOwordHlwZWRlZiBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9u YW1lIHhlbl9saXZlcGF0Y2hfbmFtZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2xp dmVwYXRjaF9uYW1lX3QpOwogCiAvKgogICogVXBsb2FkIGEgcGF5bG9hZCB0byB0aGUgaHlwZXJ2 aXNvci4gVGhlIHBheWxvYWQgaXMgdmVyaWZpZWQKICAqIGFnYWluc3QgYmFzaWMgY2hlY2tzIGFu ZCBpZiB0aGVyZSBhcmUgYW55IGlzc3VlcyB0aGUgcHJvcGVyIHJldHVybiBjb2RlCiAgKiB3aWxs IGJlIHJldHVybmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRpbWUgLSB0 aGF0IGlzCi0gKiBjb250cm9sbGVkIGJ5IFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT04uCisgKiBj b250cm9sbGVkIGJ5IFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTi4KICAqCiAgKiBUaGUgcmV0 dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQgd2FzIHN1Y2Nlc2Z1bGx5IHVwbG9hZGVk LgogICogT3RoZXJ3aXNlIGFuIEVYWCByZXR1cm4gdmFsdWUgaXMgcHJvdmlkZWQuIER1cGxpY2F0 ZSBgbmFtZWAgYXJlIG5vdApAQCAtOTE4LDQyICs5MTgsNDIgQEAgREVGSU5FX1hFTl9HVUVTVF9I QU5ETEUoeGVuX3hzcGxpY2VfbmFtZV90KTsKICAqIFRoZSBwYXlsb2FkIGF0IHRoaXMgcG9pbnQg aXMgdmVyaWZpZWQgYWdhaW5zdCBiYXNpYyBjaGVja3MuCiAgKgogICogVGhlIGBwYXlsb2FkYCBp cyB0aGUgRUxGIHBheWxvYWQgYXMgbWVudGlvbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCi0g KiBzZWN0aW9uIGluIHRoZSB4U3BsaWNlIGRlc2lnbiBkb2N1bWVudC4KKyAqIHNlY3Rpb24gaW4g dGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50LgogICovCi0jZGVmaW5lIFhFTl9TWVNDVExf WFNQTElDRV9VUExPQUQgMAotc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV91cGxvYWQgewotICAg IHhlbl94c3BsaWNlX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0 aGUgcGF0Y2guICovCisjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9BRCAwCitzdHJ1 Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHsKKyAgICB4ZW5fbGl2ZXBhdGNoX25hbWVf dCBuYW1lOyAgICAgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNoLiAqLwogICAgIHVp bnQ2NF90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTiwgc2l6ZSBvZiB0aGUg RUxGIGZpbGUuICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgcGF5bG9hZDsgICAg IC8qIElOLCB0aGUgRUxGIGZpbGUuICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF94 c3BsaWNlX3VwbG9hZCB4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2FkX3Q7Ci1ERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2FkX3QpOwordHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZF90 OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkX3Qp OwogCiAvKgogICogUmV0cmlldmUgYW4gc3RhdHVzIG9mIGFuIHNwZWNpZmljIHBheWxvYWQuCiAg KgotICogVXBvbiBjb21wbGV0aW9uIHRoZSBgc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1c2AgaXMg dXBkYXRlZC4KKyAqIFVwb24gY29tcGxldGlvbiB0aGUgYHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0 YXR1c2AgaXMgdXBkYXRlZC4KICAqCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gb24gc3Vj Y2VzcyBhbmQgWEVOX0VYWCBvbiBmYWlsdXJlLiBUaGlzIG9wZXJhdGlvbgogICogaXMgc3luY2hy b25vdXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgcHJlZW1wdGlvbi4KICAqLwotI2RlZmluZSBYRU5f U1lTQ1RMX1hTUExJQ0VfR0VUIDEKKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIDEK IAotc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1cyB7Ci0jZGVmaW5lIFhTUExJQ0VfU1RBVEVfQ0hF Q0tFRCAgICAgIDEKLSNkZWZpbmUgWFNQTElDRV9TVEFURV9BUFBMSUVEICAgICAgMgotICAgIHVp bnQzMl90IHN0YXRlOyAgICAgICAgICAgICAgICAvKiBPVVQ6IFhTUExJQ0VfU1RBVEVfKi4gKi8K K3N0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1cyB7CisjZGVmaW5lIExJVkVQQVRDSF9TVEFURV9D SEVDS0VEICAgICAgMQorI2RlZmluZSBMSVZFUEFUQ0hfU1RBVEVfQVBQTElFRCAgICAgIDIKKyAg ICB1aW50MzJfdCBzdGF0ZTsgICAgICAgICAgICAgICAgLyogT1VUOiBMSVZFUEFUQ0hfU1RBVEVf Ki4gKi8KICAgICBpbnQzMl90IHJjOyAgICAgICAgICAgICAgICAgICAgLyogT1VUOiAwIGlmIG5v IGVycm9yLCBvdGhlcndpc2UgLVhFTl9FWFguICovCiB9OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3hz cGxpY2Vfc3RhdHVzIHhlbl94c3BsaWNlX3N0YXR1c190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUoeGVuX3hzcGxpY2Vfc3RhdHVzX3QpOwordHlwZWRlZiBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9z dGF0dXMgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhl bl9saXZlcGF0Y2hfc3RhdHVzX3QpOwogCi1zdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX2dldCB7 Ci0gICAgeGVuX3hzcGxpY2VfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAgIC8qIElOLCBuYW1l IG9mIHRoZSBwYXlsb2FkLiAqLwotICAgIHhlbl94c3BsaWNlX3N0YXR1c190IHN0YXR1czsgICAg ICAgICAgICAvKiBJTi9PVVQsIHN0YXRlIG9mIGl0LiAqLworc3RydWN0IHhlbl9zeXNjdGxfbGl2 ZXBhdGNoX2dldCB7CisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAgICAgICAg IC8qIElOLCBuYW1lIG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVz X3Qgc3RhdHVzOyAgICAgICAgICAvKiBJTi9PVVQsIHN0YXRlIG9mIGl0LiAqLwogfTsKLXR5cGVk ZWYgc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9nZXQgeGVuX3N5c2N0bF94c3BsaWNlX2dldF90 OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94c3BsaWNlX2dldF90KTsKK3R5 cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCB4ZW5fc3lzY3RsX2xpdmVwYXRj aF9nZXRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dl dF90KTsKIAogLyoKICAqIFJldHJpZXZlIGFuIGFycmF5IG9mIGFiYnJldmlhdGVkIHN0YXR1cyBh bmQgbmFtZXMgb2YgcGF5bG9hZHMgdGhhdCBhcmUKQEAgLTk3Niw4ICs5NzYsOCBAQCBERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2VfZ2V0X3QpOwogICogZGF0YSBhbmQg c3RhcnQgZnJvbSBzY3JhdGNoLiBJdCBpcyBPSyBmb3IgdGhlIHRvb2xzdGFjayB0byB1c2UgdGhl IG5ldwogICogYHZlcnNpb25gIGZpZWxkLgogICovCi0jZGVmaW5lIFhFTl9TWVNDVExfWFNQTElD RV9MSVNUIDIKLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdCB7CisjZGVmaW5lIFhFTl9T WVNDVExfTElWRVBBVENIX0xJU1QgMgorc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3Qg ewogICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IEh5 cGVydmlzb3Igc3RhbXBzIHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiB2YXJpZXMgYmV0d2VlbiBjYWxscywgd2UgYXJlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGdldHRpbmcgc3RhbGUgZGF0YS4g Ki8KQEAgLTk4Nyw0OSArOTg3LDQ5IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdCB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCBv ZiBwYXlsb2FkcyBhbmQgdmVyc2lvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXlsb2FkcyBsZWZ0LiAqLwogICAgIHVpbnQz Ml90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTXVzdCBiZSB6ZXJvLiAq LwotICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3hzcGxpY2Vfc3RhdHVzX3QpIHN0YXR1czsg IC8qIE9VVC4gTXVzdCBoYXZlIGVub3VnaAorICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX2xp dmVwYXRjaF9zdGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0IGhhdmUgZW5vdWdoCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlIGFsbG9jYXRl IGZvciBuciBvZiB0aGVtLiAqLwogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgbmFtZTsg ICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIG5hbWVzLiBFYWNoIG1lbWJlcgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVNUIFhFTl9YU1BMSUNFX05BTUVf U0laRSBpbiBzaXplLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIGluIHNpemUuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11c3QgaGF2ZSBuciBvZiB0aGVtLiAq LwogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBsZW47ICAgICAgICAvKiBPVVQ6IEFy cmF5IG9mIGxlbmd0aHMgb2YgbmFtZSdzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KIH07Ci10eXBlZGVmIHN0 cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdF90Owot REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94c3BsaWNlX2xpc3RfdCk7Cit0eXBl ZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNo X2xpc3RfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xp c3RfdCk7CiAKIC8qCiAgKiBQZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiB0aGUgcGF5bG9hZCBzdHJ1 Y3R1cmUgcmVmZXJlbmNlZCBieSB0aGUgYG5hbWVgIGZpZWxkLgogICogVGhlIG9wZXJhdGlvbiBy ZXF1ZXN0IGlzIGFzeW5jaHJvbm91cyBhbmQgdGhlIHN0YXR1cyBzaG91bGQgYmUgcmV0cmlldmVk Ci0gKiBieSB1c2luZyBlaXRoZXIgWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCBvciBYRU5fU1lTQ1RM X1hTUExJQ0VfTElTVCBoeXBlcmNhbGwuCisgKiBieSB1c2luZyBlaXRoZXIgWEVOX1NZU0NUTF9M SVZFUEFUQ0hfR0VUIG9yIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgaHlwZXJjYWxsLgogICov Ci0jZGVmaW5lIFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT04gMwotc3RydWN0IHhlbl9zeXNjdGxf eHNwbGljZV9hY3Rpb24gewotICAgIHhlbl94c3BsaWNlX25hbWVfdCBuYW1lOyAgICAgICAgICAg ICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCi0jZGVmaW5lIFhTUExJQ0VfQUNUSU9O X1VOTE9BRCAgICAgICAxCi0jZGVmaW5lIFhTUExJQ0VfQUNUSU9OX1JFVkVSVCAgICAgICAyCi0j ZGVmaW5lIFhTUExJQ0VfQUNUSU9OX0FQUExZICAgICAgICAzCi0jZGVmaW5lIFhTUExJQ0VfQUNU SU9OX1JFUExBQ0UgICAgICA0Ci0gICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIElOOiBYU1BMSUNFX0FDVElPTl8qLiAqLworI2RlZmluZSBYRU5fU1lTQ1RMX0xJ VkVQQVRDSF9BQ1RJT04gMworc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbiB7Cisg ICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAgICAgICAgIC8qIElOLCBuYW1lIG9m IHRoZSBwYXRjaC4gKi8KKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9VTkxPQUQgICAgICAgMQor I2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFVkVSVCAgICAgICAyCisjZGVmaW5lIExJVkVQQVRD SF9BQ1RJT05fQVBQTFkgICAgICAgIDMKKyNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9SRVBMQUNF ICAgICAgNAorICAgIHVpbnQzMl90IGNtZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ TjogTElWRVBBVENIX0FDVElPTl8qLiAqLwogICAgIHVpbnQzMl90IHRpbWVvdXQ7ICAgICAgICAg ICAgICAgICAgICAgICAvKiBJTjogWmVybyBpZiBubyB0aW1lb3V0LiAqLwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPciB1cHBlciBib3VuZCBvZiB0aW1l IChtcykgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog Zm9yIG9wZXJhdGlvbiB0byB0YWtlLiAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxf eHNwbGljZV9hY3Rpb24geGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90OwotREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90KTsKK3R5cGVkZWYgc3RydWN0 IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbiB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb25f dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbl90 KTsKIAotc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCB7Ci0gICAgdWludDMyX3QgY21kOyAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX1hTUExJQ0VfKi4gKi8K K3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7CisgICAgdWludDMyX3QgY21kOyAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAqLwog ICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogQWx3YXlz IHplcm8uICovCiAgICAgdW5pb24gewotICAgICAgICB4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2Fk X3QgdXBsb2FkOwotICAgICAgICB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdF90IGxpc3Q7Ci0gICAg ICAgIHhlbl9zeXNjdGxfeHNwbGljZV9nZXRfdCBnZXQ7Ci0gICAgICAgIHhlbl9zeXNjdGxfeHNw bGljZV9hY3Rpb25fdCBhY3Rpb247CisgICAgICAgIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9h ZF90IHVwbG9hZDsKKyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdF90IGxpc3Q7Cisg ICAgICAgIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldF90IGdldDsKKyAgICAgICAgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfYWN0aW9uX3QgYWN0aW9uOwogICAgIH0gdTsKIH07Ci10eXBlZGVmIHN0cnVj dCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgeGVuX3N5c2N0bF94c3BsaWNlX29wX3Q7Ci1ERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2Vfb3BfdCk7Cit0eXBlZGVmIHN0cnVj dCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90OworREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3BfdCk7CiAKIHN0cnVj dCB4ZW5fc3lzY3RsIHsKICAgICB1aW50MzJfdCBjbWQ7CkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBz dHJ1Y3QgeGVuX3N5c2N0bCB7CiAjZGVmaW5lIFhFTl9TWVNDVExfdG1lbV9vcCAgICAgICAgICAg ICAgICAgICAgICAgMjQKICNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1X2xldmVsbGluZ19jYXBz ICAgICAgICAyNQogI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVfZmVhdHVyZXNldCAgICAgICAg ICAgIDI2Ci0jZGVmaW5lIFhFTl9TWVNDVExfeHNwbGljZV9vcCAgICAgICAgICAgICAgICAgICAg MjcKKyNkZWZpbmUgWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3AgICAgICAgICAgICAgICAgICAyNwog ICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAvKiBYRU5fU1lTQ1RMX0lOVEVSRkFDRV9W RVJTSU9OICovCiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9yZWFkY29u c29sZSAgICAgICByZWFkY29uc29sZTsKQEAgLTEwODYsNyArMTA4Niw3IEBAIHN0cnVjdCB4ZW5f c3lzY3RsIHsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfdG1lbV9vcCAgICAgICAgICAgdG1l bV9vcDsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2xldmVsbGluZ19jYXBzIGNwdV9s ZXZlbGxpbmdfY2FwczsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2ZlYXR1cmVzZXQg ICAgY3B1X2ZlYXR1cmVzZXQ7Ci0gICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3Ag ICAgICAgIHhzcGxpY2U7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCAg ICAgIGxpdmVwYXRjaDsKICAgICAgICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFkWzEyOF07CiAgICAgfSB1OwogfTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9l bGZzdHJ1Y3RzLmggYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oCmluZGV4IDY4OTU0YjAu LjVmMjA4MmUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaApAQCAtMzUzLDcgKzM1Myw3IEBAIHR5cGVkZWYg c3RydWN0IHsKICNkZWZpbmUJRUxGNjRfUl9UWVBFKGluZm8pCSgoaW5mbykgJiAweEZGRkZGRkZG KQogI2RlZmluZSBFTEY2NF9SX0lORk8ocyx0KSAJKCgocykgPDwgMzIpICsgKHVfaW50MzJfdCko dCkpCiAKLS8qIHg4Ni02NCByZWxvY2F0aW9uIHR5cGVzLiBXZSBsaXN0IG9ubHkgdGhlIG9uZXMg eFNwbGljZSBpbXBsZW1lbnRzLiAqLworLyogeDg2LTY0IHJlbG9jYXRpb24gdHlwZXMuIFdlIGxp c3Qgb25seSB0aGUgb25lcyBMaXZlIFBhdGNoIGltcGxlbWVudHMuICovCiAjZGVmaW5lIFJfWDg2 XzY0X05PTkUJCTAJLyogTm8gcmVsb2MgKi8KICNkZWZpbmUgUl9YODZfNjRfNjQJICAgIAkxCS8q IERpcmVjdCA2NCBiaXQgICovCiAjZGVmaW5lIFJfWDg2XzY0X1BDMzIJCTIJLyogUEMgcmVsYXRp dmUgMzIgYml0IHNpZ25lZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2Uu aCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaApzaW1pbGFyaXR5IGluZGV4IDM0JQpyZW5h bWUgZnJvbSB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCnJlbmFtZSB0byB4ZW4vaW5jbHVkZS94 ZW4vbGl2ZXBhdGNoLmgKaW5kZXggNWZmYjY5ZC4uZWQ0OTg0MyAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3hzcGxpY2UuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKQEAg LTMsMTEwICszLDExMCBAQAogICoKICAqLwogCi0jaWZuZGVmIF9fWEVOX1hTUExJQ0VfSF9fCi0j ZGVmaW5lIF9fWEVOX1hTUExJQ0VfSF9fCisjaWZuZGVmIF9fWEVOX0xJVkVQQVRDSF9IX18KKyNk ZWZpbmUgX19YRU5fTElWRVBBVENIX0hfXwogCi1zdHJ1Y3QgeHNwbGljZV9lbGY7Ci1zdHJ1Y3Qg eHNwbGljZV9lbGZfc2VjOwotc3RydWN0IHhzcGxpY2VfZWxmX3N5bTsKLXN0cnVjdCB4ZW5fc3lz Y3RsX3hzcGxpY2Vfb3A7CitzdHJ1Y3QgbGl2ZXBhdGNoX2VsZjsKK3N0cnVjdCBsaXZlcGF0Y2hf ZWxmX3NlYzsKK3N0cnVjdCBsaXZlcGF0Y2hfZWxmX3N5bTsKK3N0cnVjdCB4ZW5fc3lzY3RsX2xp dmVwYXRjaF9vcDsKIAogI2luY2x1ZGUgPHhlbi9lbGZzdHJ1Y3RzLmg+Ci0jaWZkZWYgQ09ORklH X1hTUExJQ0UKKyNpZmRlZiBDT05GSUdfTElWRVBBVENICiAKIC8qCiAgKiBXZSB1c2UgYWx0ZXJu YXRpdmUgYW5kIGV4Y2VwdGlvbiB0YWJsZSBjb2RlIC0gd2hpY2ggYnkgZGVmYXVsdCBhcmUgX19p bml0CiAgKiBvbmx5LCBob3dldmVyIHdlIG5lZWQgdGhlbSBkdXJpbmcgcnVudGltZS4gVGhlc2Ug bWFjcm9zIGFsbG93cyB1cyB0byBidWlsZAogICogdGhlIGltYWdlIHdpdGggdGhlc2UgZnVuY3Rp b25zIGJ1aWx0LWluLiAoU2VlIHRoZSAjZWxzZSBiZWxvdykuCiAgKi8KLSNkZWZpbmUgaW5pdF9v cl94c3BsaWNlX2NvbnN0Ci0jZGVmaW5lIGluaXRfb3JfeHNwbGljZV9jb25zdHJlbAotI2RlZmlu ZSBpbml0X29yX3hzcGxpY2VfZGF0YQotI2RlZmluZSBpbml0X29yX3hzcGxpY2UKKyNkZWZpbmUg aW5pdF9vcl9saXZlcGF0Y2hfY29uc3QKKyNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2hfY29uc3Ry ZWwKKyNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2hfZGF0YQorI2RlZmluZSBpbml0X29yX2xpdmVw YXRjaAogCiAvKiBDb252ZW5pZW5jZSBkZWZpbmUgZm9yIHByaW50ay4gKi8KLSNkZWZpbmUgWFNQ TElDRSAgICAgICAgICAgICAieHNwbGljZTogIgorI2RlZmluZSBMSVZFUEFUQ0ggICAgICAgICAg ICAgImxpdmVwYXRjaDogIgogLyogRUxGIHBheWxvYWQgc3BlY2lhbCBzZWN0aW9uIG5hbWVzLiAq LwotI2RlZmluZSBFTEZfWFNQTElDRV9GVU5DICAgICIueHNwbGljZS5mdW5jcyIKLSNkZWZpbmUg RUxGX1hTUExJQ0VfREVQRU5EUyAiLnhzcGxpY2UuZGVwZW5kcyIKLSNkZWZpbmUgRUxGX0JVSUxE X0lEX05PVEUgICAiLm5vdGUuZ251LmJ1aWxkLWlkIgorI2RlZmluZSBFTEZfTElWRVBBVENIX0ZV TkMgICAgIi5saXZlcGF0Y2guZnVuY3MiCisjZGVmaW5lIEVMRl9MSVZFUEFUQ0hfREVQRU5EUyAi LmxpdmVwYXRjaC5kZXBlbmRzIgorI2RlZmluZSBFTEZfQlVJTERfSURfTk9URSAgICAgICIubm90 ZS5nbnUuYnVpbGQtaWQiCiAKLXN0cnVjdCB4c3BsaWNlX3N5bWJvbCB7CitzdHJ1Y3QgbGl2ZXBh dGNoX3N5bWJvbCB7CiAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICB1bnNpZ25lZCBsb25nIHZh bHVlOwogICAgIHVuc2lnbmVkIGludCBzaXplOwogICAgIGJvb2xfdCBuZXdfc3ltYm9sOwogfTsK IAotaW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKLXZvaWQg Y2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2b2lkKTsKLXVuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1i b2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpOworaW50IGxpdmVwYXRjaF9v cChzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3AgKik7Cit2b2lkIGNoZWNrX2Zvcl9saXZl cGF0Y2hfd29yayh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbGl2ZXBhdGNoX3N5bWJvbHNfbG9va3Vw X2J5X25hbWUoY29uc3QgY2hhciAqc3ltbmFtZSk7CiBib29sX3QgaXNfcGF0Y2goY29uc3Qgdm9p ZCAqYWRkcik7CiBpbnQgeGVuX2J1aWxkX2lkX2NoZWNrKGNvbnN0IEVsZl9Ob3RlICpuLCB1bnNp Z25lZCBpbnQgbl9zeiwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqKnAsIHVu c2lnbmVkIGludCAqbGVuKTsKIAogLyogQXJjaCBob29rcy4gKi8KLWludCBhcmNoX3hzcGxpY2Vf dmVyaWZ5X2VsZihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Ci1pbnQgYXJjaF94c3Bs aWNlX3BlcmZvcm1fcmVsKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpiYXNlLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpyZWxh KTsKLWludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxm X3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4 c3BsaWNlX2VsZl9zZWMgKnJlbGEpOworaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9lbGYoY29u c3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZik7CitpbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9y bV9yZWwoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKmJhc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyZWxh KTsKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3RydWN0IGxpdmVwYXRjaF9lbGYg KmVsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVw YXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpOwogZW51bSB2YV90eXBlIHsKLSAgICBY U1BMSUNFX1ZBX1JYLCAvKiAudGV4dCAqLwotICAgIFhTUExJQ0VfVkFfUlcsIC8qIC5kYXRhICov Ci0gICAgWFNQTElDRV9WQV9STywgLyogLnJvZGF0YSAqLworICAgIExJVkVQQVRDSF9WQV9SWCwg LyogLnRleHQgKi8KKyAgICBMSVZFUEFUQ0hfVkFfUlcsIC8qIC5kYXRhICovCisgICAgTElWRVBB VENIX1ZBX1JPLCAvKiAucm9kYXRhICovCiB9OwogCiAvKgotICogRnVuY3Rpb24gdG8gc2VjdXJl IHRoZSBhbGxvY2F0ZSBwYWdlcyAoZnJvbSBhcmNoX3hzcGxpY2VfYWxsb2NfcGF5bG9hZCkKKyAq IEZ1bmN0aW9uIHRvIHNlY3VyZSB0aGUgYWxsb2NhdGUgcGFnZXMgKGZyb20gYXJjaF9saXZlcGF0 Y2hfYWxsb2NfcGF5bG9hZCkKICAqIHdpdGggdGhlIHJpZ2h0IHBhZ2UgcGVybWlzc2lvbnMuCiAg Ki8KLWludCBhcmNoX3hzcGxpY2Vfc2VjdXJlKGNvbnN0IHZvaWQgKnZhLCB1bnNpZ25lZCBpbnQg cGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlcyk7CitpbnQgYXJjaF9saXZlcGF0Y2hfc2VjdXJlKGNv bnN0IHZvaWQgKnZhLCB1bnNpZ25lZCBpbnQgcGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlcyk7CiAK LXZvaWQgYXJjaF94c3BsaWNlX2luaXQodm9pZCk7Cit2b2lkIGFyY2hfbGl2ZXBhdGNoX2luaXQo dm9pZCk7CiAKLSNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+IC8qIEZvciBzdHJ1Y3QgeHNwbGlj ZV9wYXRjaF9mdW5jLiAqLwotaW50IGFyY2hfeHNwbGljZV92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1 Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jKTsKKyNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+ IC8qIEZvciBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMuICovCitpbnQgYXJjaF9saXZlcGF0Y2hfdmVy aWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTsKIC8qCiAgKiBUaGVz ZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhcm91bmQgdGhlIGNyaXRpY2FsIHJlZ2lvbiBwYXRjaGlu ZyBsaXZlIGNvZGUsCiAgKiBmb3IgYW4gYXJjaGl0ZWN0dXJlIHRvIHRha2UgbWFrZSBhcHByb3By YXRpZSBnbG9iYWwgc3RhdGUgYWRqdXN0bWVudHMuCiAgKi8KLXZvaWQgYXJjaF94c3BsaWNlX3Bh dGNoaW5nX2VudGVyKHZvaWQpOwotdm9pZCBhcmNoX3hzcGxpY2VfcGF0Y2hpbmdfbGVhdmUodm9p ZCk7Cit2b2lkIGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCk7Cit2b2lkIGFyY2hfbGl2ZXBh dGNoX3Jldml2ZSh2b2lkKTsKIAotdm9pZCBhcmNoX3hzcGxpY2VfYXBwbHlfam1wKHN0cnVjdCB4 c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMpOwotdm9pZCBhcmNoX3hzcGxpY2VfcmV2ZXJ0X2ptcChj b25zdCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jKTsKLXZvaWQgYXJjaF94c3BsaWNl X3Bvc3RfYWN0aW9uKHZvaWQpOwordm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseV9qbXAoc3RydWN0 IGxpdmVwYXRjaF9mdW5jICpmdW5jKTsKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0X2ptcChj b25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwordm9pZCBhcmNoX2xpdmVwYXRjaF9w b3N0X2FjdGlvbih2b2lkKTsKIAotdm9pZCBhcmNoX3hzcGxpY2VfbWFzayh2b2lkKTsKLXZvaWQg YXJjaF94c3BsaWNlX3VubWFzayh2b2lkKTsKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfbWFzayh2b2lk KTsKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfdW5tYXNrKHZvaWQpOwogI2Vsc2UKIAogLyoKLSAqIElm IG5vdCBjb21waWxpbmcgd2l0aCB4U3BsaWNlIGNlcnRhaW4gZnVuY3Rpb25hbGl0eSBzaG91bGQg c3RheSBhcworICogSWYgbm90IGNvbXBpbGluZyB3aXRoIExpdmUgUGF0Y2ggY2VydGFpbiBmdW5j dGlvbmFsaXR5IHNob3VsZCBzdGF5IGFzCiAgKiBfX2luaXQuCiAgKi8KLSNkZWZpbmUgaW5pdF9v cl94c3BsaWNlX2NvbnN0ICAgICAgIF9faW5pdGNvbnN0Ci0jZGVmaW5lIGluaXRfb3JfeHNwbGlj ZV9jb25zdHJlbCAgICBfX2luaXRjb25zdHJlbAotI2RlZmluZSBpbml0X29yX3hzcGxpY2VfZGF0 YSAgICAgICAgX19pbml0ZGF0YQotI2RlZmluZSBpbml0X29yX3hzcGxpY2UgICAgICAgICAgICAg X19pbml0CisjZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNoX2NvbnN0ICAgICAgIF9faW5pdGNvbnN0 CisjZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNoX2NvbnN0cmVsICAgIF9faW5pdGNvbnN0cmVsCisj ZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNoX2RhdGEgICAgICAgIF9faW5pdGRhdGEKKyNkZWZpbmUg aW5pdF9vcl9saXZlcGF0Y2ggICAgICAgICAgICAgX19pbml0CiAKICNpbmNsdWRlIDx4ZW4vZXJy bm8uaD4gLyogRm9yIC1FTk9TWVMgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHhzcGxpY2Vfb3Aoc3Ry dWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqb3ApCitzdGF0aWMgaW5saW5lIGludCBsaXZlcGF0 Y2hfb3Aoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX29wICpvcCkKIHsKICAgICByZXR1cm4g LUVOT1NZUzsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2Zvcl94c3BsaWNlX3dvcmso dm9pZCkgeyB9Oworc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX2Zvcl9saXZlcGF0Y2hfd29yayh2 b2lkKSB7IH07CiBzdGF0aWMgaW5saW5lIGJvb2xfdCBpc19wYXRjaChjb25zdCB2b2lkICphZGRy KQogewogICAgIHJldHVybiAwOwogfQotI2VuZGlmIC8qIENPTkZJR19YU1BMSUNFICovCisjZW5k aWYgLyogQ09ORklHX0xJVkVQQVRDSCAqLwogCi0jZW5kaWYgLyogX19YRU5fWFNQTElDRV9IX18g Ki8KKyNlbmRpZiAvKiBfX1hFTl9MSVZFUEFUQ0hfSF9fICovCiAKIC8qCiAgKiBMb2NhbCB2YXJp YWJsZXM6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4veHNwbGljZV9lbGYuaCBiL3hlbi9p bmNsdWRlL3hlbi9saXZlcGF0Y2hfZWxmLmgKc2ltaWxhcml0eSBpbmRleCA1NiUKcmVuYW1lIGZy b20geGVuL2luY2x1ZGUveGVuL3hzcGxpY2VfZWxmLmgKcmVuYW1lIHRvIHhlbi9pbmNsdWRlL3hl bi9saXZlcGF0Y2hfZWxmLmgKaW5kZXggNzUwZGM5NC4uN2U3Yzg2ZSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGVuL3hzcGxpY2VfZWxmLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRj aF9lbGYuaApAQCAtMiwxNCArMiwxNCBAQAogICogQ29weXJpZ2h0IChDKSAyMDE2IENpdHJpeCBT eXN0ZW1zIFImRCBMdGQuCiAgKi8KIAotI2lmbmRlZiBfX1hFTl9YU1BMSUNFX0VMRl9IX18KLSNk ZWZpbmUgX19YRU5fWFNQTElDRV9FTEZfSF9fCisjaWZuZGVmIF9fWEVOX0xJVkVQQVRDSF9FTEZf SF9fCisjZGVmaW5lIF9fWEVOX0xJVkVQQVRDSF9FTEZfSF9fCiAKICNpbmNsdWRlIDx4ZW4vdHlw ZXMuaD4KICNpbmNsdWRlIDx4ZW4vZWxmc3RydWN0cy5oPgogCi0vKiBUaGUgZm9sbG93aW5nIGRl c2NyaWJlcyBhbiBFbGYgZmlsZSBhcyBjb25zdW1lZCBieSB4U3BsaWNlLiAqLwotc3RydWN0IHhz cGxpY2VfZWxmX3NlYyB7CisvKiBUaGUgZm9sbG93aW5nIGRlc2NyaWJlcyBhbiBFbGYgZmlsZSBh cyBjb25zdW1lZCBieSBYZW4gTGl2ZSBQYXRjaC4gKi8KK3N0cnVjdCBsaXZlcGF0Y2hfZWxmX3Nl YyB7CiAgICAgY29uc3QgRWxmX1NoZHIgKnNlYzsgICAgICAgICAgICAgICAgIC8qIEhvb2tlZCB1 cCBpbiBlbGZfcmVzb2x2ZV9zZWN0aW9ucy4qLwogICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAgICAg ICAgICAgICAgICAgICAvKiBIdW1hbiByZWFkYWJsZSBuYW1lIGhvb2tlZCBpbgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGZfcmVzb2x2ZV9zZWN0aW9uX25h bWVzLiAqLwpAQCAtMTksMzMgKzE5LDM0IEBAIHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb25lIGJ5IGxvYWRfcGF5 bG9hZF9kYXRhLiAqLwogfTsKIAotc3RydWN0IHhzcGxpY2VfZWxmX3N5bSB7CitzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZl9zeW0gewogICAgIGNvbnN0IEVsZl9TeW0gKnN5bTsKICAgICBjb25zdCBjaGFy ICpuYW1lOwogfTsKIAotc3RydWN0IHhzcGxpY2VfZWxmIHsKK3N0cnVjdCBsaXZlcGF0Y2hfZWxm IHsKICAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAgICAgICAgICAgICAgLyogUG9pbnRlciB0 byBwYXlsb2FkLT5uYW1lLiAqLwogICAgIHNpemVfdCBsZW47ICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBMZW5ndGggb2YgdGhlIEVMRiBmaWxlLiAqLwogICAgIGNvbnN0IEVsZl9FaGRyICpo ZHI7ICAgICAgICAgICAgICAgICAvKiBFTEYgZmlsZS4gKi8KLSAgICBzdHJ1Y3QgeHNwbGljZV9l bGZfc2VjICpzZWM7ICAgICAgICAgLyogQXJyYXkgb2Ygc2VjdGlvbnMsIGFsbG9jYXRlZCBieSB1 cy4gKi8KLSAgICBzdHJ1Y3QgeHNwbGljZV9lbGZfc3ltICpzeW07ICAgICAgICAgLyogQXJyYXkg b2Ygc3ltYm9scyAsIGFsbG9jYXRlZCBieSB1cy4gKi8KKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2Vs Zl9zZWMgKnNlYzsgICAgICAgLyogQXJyYXkgb2Ygc2VjdGlvbnMsIGFsbG9jYXRlZCBieSB1cy4g Ki8KKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zeW0gKnN5bTsgICAgICAgLyogQXJyYXkgb2Yg c3ltYm9scyAsIGFsbG9jYXRlZCBieSB1cy4gKi8KICAgICB1bnNpZ25lZCBpbnQgbnN5bTsKLSAg ICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpzeW10YWI7LyogUG9pbnRlciB0byAuc3lt dGFiIHNlY3Rpb24gLSBha2EgdG8KKyAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KnN5bXRhYjsvKiBQb2ludGVyIHRvIC5zeW10YWIgc2VjdGlvbiAtIGFrYSB0bwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNbc3ltdGFiX2lkeF0uICovCi0g ICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc3RydGFiOy8qIFBvaW50ZXIgdG8gLnN0 cnRhYiBzZWN0aW9uLiAqLworICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc3Ry dGFiOy8qIFBvaW50ZXIgdG8gLnN0cnRhYiBzZWN0aW9uLiAqLwogICAgIHVuc2lnbmVkIGludCBz eW10YWJfaWR4OwogfTsKIAotY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqeHNwbGljZV9l bGZfc2VjX2J5X25hbWUoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lKTsKLWludCB4c3BsaWNlX2VsZl9sb2FkKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25z dCB2b2lkICpkYXRhKTsKLXZvaWQgeHNwbGljZV9lbGZfZnJlZShzdHJ1Y3QgeHNwbGljZV9lbGYg KmVsZik7Citjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKgorbGl2ZXBhdGNoX2VsZl9z ZWNfYnlfbmFtZShjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK2ludCBsaXZlcGF0Y2hfZWxmX2xvYWQo c3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSk7Cit2b2lkIGxpdmVw YXRjaF9lbGZfZnJlZShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKTsKIAotaW50IHhzcGxpY2Vf ZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Ci1pbnQgeHNwbGlj ZV9lbGZfcGVyZm9ybV9yZWxvY3Moc3RydWN0IHhzcGxpY2VfZWxmICplbGYpOworaW50IGxpdmVw YXRjaF9lbGZfcmVzb2x2ZV9zeW1ib2xzKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpOworaW50 IGxpdmVwYXRjaF9lbGZfcGVyZm9ybV9yZWxvY3Moc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZik7 CiAKLSNlbmRpZiAvKiBfX1hFTl9YU1BMSUNFX0VMRl9IX18gKi8KKyNlbmRpZiAvKiBfX1hFTl9M SVZFUEFUQ0hfRUxGX0hfXyAqLwogCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgpkaWZmIC0tZ2l0 IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IDc0 NzdkYmUuLjIwZDQ2YzggMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94 ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTgxNCw5ICs4MTQsOSBAQCBzdGF0aWMgaW50IGZsYXNr X3N5c2N0bChpbnQgY21kKQogICAgIGNhc2UgWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQ6 CiAgICAgICAgIHJldHVybiBkb21haW5faGFzX3hlbihjdXJyZW50LT5kb21haW4sIFhFTjJfX0dF VF9DUFVfRkVBVFVSRVNFVCk7CiAKLSAgICBjYXNlIFhFTl9TWVNDVExfeHNwbGljZV9vcDoKKyAg ICBjYXNlIFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOgogICAgICAgICByZXR1cm4gYXZjX2N1cnJl bnRfaGFzX3Blcm0oU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1hFTjIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBYRU4yX19YU1BMSUNFX09QLCBOVUxMKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTjJfX0xJVkVQQVRDSF9PUCwgTlVMTCk7CiAK ICAgICBkZWZhdWx0OgogICAgICAgICBwcmludGsoImZsYXNrX3N5c2N0bDogVW5rbm93biBvcCAl ZFxuIiwgY21kKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0 b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggNGQxYjU0OC4u M2QyOTA0MiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMK KysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTk3LDggKzk3LDgg QEAgY2xhc3MgeGVuMgogICAgIGdldF9jcHVfbGV2ZWxsaW5nX2NhcHMKICMgWEVOX1NZU0NUTF9n ZXRfY3B1X2ZlYXR1cmVzZXQKICAgICBnZXRfY3B1X2ZlYXR1cmVzZXQKLSMgWEVOX1NZU0NUTF94 c3BsaWNlX29wCi0gICAgeHNwbGljZV9vcAorIyBYRU5fU1lTQ1RMX2xpdmVwYXRjaF9vcAorICAg IGxpdmVwYXRjaF9vcAogfQogCiAjIENsYXNzZXMgZG9tYWluIGFuZCBkb21haW4yIGNvbnNpc3Qg b2Ygb3BlcmF0aW9ucyB0aGF0IGEgZG9tYWluIHBlcmZvcm1zIG9uCi0tIAoyLjUuNQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==