From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v2 for 4.7] xen: Rename of xSplice to livepatch. Date: Thu, 2 Jun 2016 10:05:27 -0400 Message-ID: <1464876327-23528-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b8TFz-0000OS-Jo for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 14:05:56 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Martin Pohlack , Ross Lagerwall , Jan Beulich List-Id: xen-devel@lists.xenproject.org U3BlY2lmaWNhbGx5OgoKcy9cLnhzcGxpY2UvXC5saXZlcGF0Y2gvCnMvWFNQTElDRS9MSVZFUEFU Q0gvCnMveHNwbGljZS9saXZlcGF0Y2gvCnMvbGl2ZXBhdGNoX3BhdGNoX2Z1bmMvbGl2ZXBhdGNo X2Z1bmMvCnMveFNwbGljZS9YZW4gTGl2ZSBQYXRjaC8KCkFuZCB0aGVuIG1vZGlmeSBzb21lIG9m IHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKdG8gaGF2ZSB0d28gbW9yZSBjaGFyYWN0ZXJzLgoKU2ln bmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29t PgoKLS0tCkNjOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KQ2M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4g PHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IE1hcnRp biBQb2hsYWNrIDxtcG9obGFja0BhbWF6b24uZGU+Cgp2MjogRGl0Y2ggdGhlIExJVkVfUEFUQ0gg YW5kICdMaXZlIFBhdGNoaW5nJyBpbmNvbnNpdGVuY3kuCiAgICBJbmNsdWRlIFJvc3MncyBlbWFp bCBjb3JyZWN0bHkuCiAgICBEb24ndCBtb3ZlIGFscGhhYmV0aWNhbGx5IHRoZSAjaW5jbHVkZSBo ZWFkZXIgYXMgaXQgaXMKICAgIGluY29uc2lzdGVudAotLS0KIC5naXRpZ25vcmUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBNQUlOVEFJTkVSUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZG9jcy9taXNjL3t4 c3BsaWNlLm1hcmtkb3duID0+IGxpdmVwYXRjaC5tYXJrZG93bn0gfCAxODQgKysrKystLS0tLQog dG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUgICAgICAgfCAgIDIg Ky0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgICAgICAgICAgICAgICAgIHwg IDMyICstCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE0MiArKysrLS0tLQogdG9vbHMvbWlzYy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHRvb2xzL21pc2Mve3hlbi14c3BsaWNlLmMgPT4geGVuLWxp dmVwYXRjaC5jfSAgICAgIHwgIDYyICsrLS0KIHhlbi9hcmNoL2FybS9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC9hcm0ve3hzcGxpY2UuYyA9 PiBsaXZlcGF0Y2guY30gICAgICAgICAgICB8ICAzOCArLS0KIHhlbi9hcmNoL3g4Ni9NYWtlZmls ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiB4ZW4vYXJjaC94ODYvYWx0 ZXJuYXRpdmUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogeGVuL2FyY2gveDg2 L2RvbWFpbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHhlbi9hcmNo L3g4Ni9leHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiB4ZW4v YXJjaC94ODYve3hzcGxpY2UuYyA9PiBsaXZlcGF0Y2guY30gICAgICAgICAgICB8ICA1NiArKy0t CiB4ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1 OCArKy0tCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMgICAgICAgICAgICAgICAg ICB8ICAgNiArLQogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMgICAgICAgICAg ICAgICAgfCAgIDYgKy0KIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9yZXBsYWNlX3dvcmxkLmMgICAg ICAgICAgICAgIHwgICA2ICstCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2NvbW1vbi9LY29uZmlnICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHhlbi9jb21tb24vTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiB4ZW4vY29tbW9uL3t4c3BsaWNlLmMgPT4g bGl2ZXBhdGNoLmN9ICAgICAgICAgICAgICB8IDM3MCArKysrKysrKysrLS0tLS0tLS0tLS0KIHhl bi9jb21tb24ve3hzcGxpY2VfZWxmLmMgPT4gbGl2ZXBhdGNoX2VsZi5jfSAgICAgIHwgMTA5ICsr Ky0tLQogeGVuL2NvbW1vbi9zeXNjdGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDYgKy0KIHhlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYyAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCiB4ZW4vY29tbW9uL3ZzcHJpbnRmLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggICAgICAgICAg ICAgICAgICAgICAgfCAgIDggKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTM4ICsrKystLS0tCiB4ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0 cy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2luY2x1ZGUveGVuL3t4c3Bs aWNlLmggPT4gbGl2ZXBhdGNoLmh9ICAgICAgICAgfCAxMDAgKysrLS0tCiB4ZW4vaW5jbHVkZS94 ZW4ve3hzcGxpY2VfZWxmLmggPT4gbGl2ZXBhdGNoX2VsZi5ofSB8ICAzNSArLQogeGVuL3hzbS9m bGFzay9ob29rcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHhlbi94 c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzICAgICAgICAgICAgICAgIHwgICA0ICstCiAz NCBmaWxlcyBjaGFuZ2VkLCA3MjkgaW5zZXJ0aW9ucygrKSwgNzI3IGRlbGV0aW9ucygtKQogcmVu YW1lIGRvY3MvbWlzYy97eHNwbGljZS5tYXJrZG93biA9PiBsaXZlcGF0Y2gubWFya2Rvd259ICg4 NyUpCiByZW5hbWUgdG9vbHMvbWlzYy97eGVuLXhzcGxpY2UuYyA9PiB4ZW4tbGl2ZXBhdGNoLmN9 ICg4NiUpCiByZW5hbWUgeGVuL2FyY2gvYXJtL3t4c3BsaWNlLmMgPT4gbGl2ZXBhdGNoLmN9ICgy OSUpCiByZW5hbWUgeGVuL2FyY2gveDg2L3t4c3BsaWNlLmMgPT4gbGl2ZXBhdGNoLmN9ICg3NCUp CiByZW5hbWUgeGVuL2NvbW1vbi97eHNwbGljZS5jID0+IGxpdmVwYXRjaC5jfSAoNzUlKQogcmVu YW1lIHhlbi9jb21tb24ve3hzcGxpY2VfZWxmLmMgPT4gbGl2ZXBhdGNoX2VsZi5jfSAoNzIlKQog cmVuYW1lIHhlbi9pbmNsdWRlL3hlbi97eHNwbGljZS5oID0+IGxpdmVwYXRjaC5ofSAoMzQlKQog cmVuYW1lIHhlbi9pbmNsdWRlL3hlbi97eHNwbGljZV9lbGYuaCA9PiBsaXZlcGF0Y2hfZWxmLmh9 ICg1NiUpCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggMWI3MzI5 My4uNzM0NzgwMSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0x ODIsNyArMTgyLDcgQEAgdG9vbHMvbWlzYy94ZW5fY3B1cGVyZgogdG9vbHMvbWlzYy94ZW4tY3B1 aWQKIHRvb2xzL21pc2MveGVuLWRldGVjdAogdG9vbHMvbWlzYy94ZW4tdG1lbS1saXN0LXBhcnNl Ci10b29scy9taXNjL3hlbi14c3BsaWNlCit0b29scy9taXNjL3hlbi1saXZlcGF0Y2gKIHRvb2xz L21pc2MveGVucGVyZgogdG9vbHMvbWlzYy94ZW5wbQogdG9vbHMvbWlzYy94ZW4taHZtY3R4CkBA IC0yNDcsOSArMjQ3LDkgQEAgeGVuL2FyY2gveDg2L2VmaS9jaGVjay5lZmkKIHhlbi9hcmNoL3g4 Ni9lZmkvZGlzYWJsZWQKIHhlbi9hcmNoL3g4Ni9lZmkvbWtyZWxvYwogeGVuL2FyY2gveDg2L3Rl c3QvY29uZmlnLmgKLXhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC54c3BsaWNlCi14 ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLnhzcGxpY2UKLXhlbi9hcmNoL3g4Ni90ZXN0 L3hlbl9yZXBsYWNlX3dvcmxkLnhzcGxpY2UKK3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193 b3JsZC5saXZlcGF0Y2gKK3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQubGl2ZXBhdGNo Cit4ZW4vYXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZC5saXZlcGF0Y2gKIHhlbi9hcmNo LyovZWZpL2Jvb3QuYwogeGVuL2FyY2gvKi9lZmkvY29tcGF0LmMKIHhlbi9hcmNoLyovZWZpL2Vm aS5oCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IDYyZjRmZmQu LjE4YjM5NjggMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC00 NzAsMTUgKzQ3MCwxNSBAQCBGOiAgeGVuL2luY2x1ZGUveHNtLwogRjogIHhlbi94c20vCiBGOiAg ZG9jcy9taXNjL3hzbS1mbGFzay50eHQKIAotWFNQTElDRQorTElWRVBBVENICiBNOiAgS29ucmFk IFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgogTTogIFJvc3MgTGFnZXJ3 YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgogUzogIFN1cHBvcnRlZAotRjogIGRvY3Mv bWlzYy94c3BsaWNlLm1hcmtkb3duCi1GOiAgdG9vbHMvbWlzYy94ZW4teHNwbGljZS5jCi1GOiAg eGVuL2FyY2gvKi94c3BsaWNlKgotRjogIHhlbi9jb21tb24veHNwbGljZSoKLUY6ICB4ZW4vaW5j bHVkZS94ZW4veHNwbGljZSoKK0Y6ICBkb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCitGOiAg dG9vbHMvbWlzYy94ZW4tbGl2ZXBhdGNoLmMKK0Y6ICB4ZW4vYXJjaC8qL2xpdmVwYXRjaCoKK0Y6 ICB4ZW4vY29tbW9uL2xpdmVwYXRjaCoKK0Y6ICB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoKgog CiBUSEUgUkVTVAogTToJQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K ZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duIGIvZG9jcy9taXNjL2xpdmVw YXRjaC5tYXJrZG93bgpzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSBkb2NzL21pc2Mv eHNwbGljZS5tYXJrZG93bgpyZW5hbWUgdG8gZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgpp bmRleCAwNWMxYTU1Li5lZmRhOGNmIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveHNwbGljZS5tYXJr ZG93bgorKysgYi9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCkBAIC0xLDQgKzEsNCBAQAot IyB4U3BsaWNlIERlc2lnbiB2MQorIyBYZW4gTGl2ZSBQYXRjaGluZyBEZXNpZ24gdjEKIAogIyMg UmF0aW9uYWxlCiAKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdHJ1Y3R1cmVzIHVzaW5nIEVsZiB0eXBl cywgZXRjKS4gVGhpcyBkZXNpZ24gd2lsbCBleHBsYWluIHRoZSBzdHJ1Y3R1cmVzCiBhbmQgaG93 IHRoZXkgYXJlIHVzZWQgdG9nZXRoZXIgYW5kIG5vdCBkaWcgaW4gdGhlIEVMRiBmb3JtYXQgLSBl eGNlcHQgbWVudGlvbgogdGhhdCB0aGUgc2VjdGlvbiBuYW1lcyBzaG91bGQgbWF0Y2ggdGhlIHN0 cnVjdHVyZSBuYW1lcy4KIAotVGhlIHhTcGxpY2UgcGF5bG9hZCBpcyBhIHJlbG9jYXRhYmxlIEVM RiBiaW5hcnkuIEEgdHlwaWNhbCBiaW5hcnkgd291bGQgaGF2ZToKK1RoZSBYZW4gTGl2ZSBQYXRj aCBwYXlsb2FkIGlzIGEgcmVsb2NhdGFibGUgRUxGIGJpbmFyeS4gQSB0eXBpY2FsIGJpbmFyeSB3 b3VsZCBoYXZlOgogCiAgKiBPbmUgb3IgbW9yZSAudGV4dCBzZWN0aW9ucy4KICAqIFplcm8gb3Ig bW9yZSByZWFkLW9ubHkgZGF0YSBzZWN0aW9ucy4KQEAgLTI3OSwyNCArMjc5LDI0IEBAIEl0IG1h eSBhbHNvIGhhdmUgc29tZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc2VjdGlvbnMuIEZvciBleGFt cGxlOgogICogRXhjZXB0aW9uIHRhYmxlcy4KICAqIFJlbG9jYXRpb25zIGZvciBlYWNoIG9mIHRo ZXNlIHNlY3Rpb25zLgogCi1UaGUgeFNwbGljZSBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQg YXMgYSBzdGFuZGFyZCBFTEYgYmluYXJ5LCByZWxvY2F0ZXMgaXQKK1RoZSBYZW4gTGl2ZSBQYXRj aCBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFuZGFyZCBFTEYgYmluYXJ5LCBy ZWxvY2F0ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmYyBzZWN0aW9u cyBhcyBuZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtlIHdoYXQgdGhlIExpbnV4IGtl cm5lbCBtb2R1bGUgbG9hZGVyIGRvZXMuCiAKIFRoZSBwYXlsb2FkIGNvbnRhaW5zIGF0IGxlYXN0 IHRocmVlIHNlY3Rpb25zOgogCi0gKiBgLnhzcGxpY2UuZnVuY3NgIC0gd2hpY2ggaXMgYW4gYXJy YXkgb2YgeHNwbGljZV9wYXRjaF9mdW5jIHN0cnVjdHVyZXMuCi0gKiBgLnhzcGxpY2UuZGVwZW5k c2AgLSB3aGljaCBpcyBhbiBFTEYgTm90ZSB0aGF0IGRlc2NyaWJlcyB3aGF0IHRoZSBwYXlsb2Fk CisgKiBgLmxpdmVwYXRjaC5mdW5jc2AgLSB3aGljaCBpcyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hf ZnVuYyBzdHJ1Y3R1cmVzLgorICogYC5saXZlcGF0Y2guZGVwZW5kc2AgLSB3aGljaCBpcyBhbiBF TEYgTm90ZSB0aGF0IGRlc2NyaWJlcyB3aGF0IHRoZSBwYXlsb2FkCiAgICAgZGVwZW5kcyBvbi4g KipNVVNUKiogaGF2ZSBvbmUuCiAgKiAgYC5ub3RlLmdudS5idWlsZC1pZGAgLSB0aGUgYnVpbGQt aWQgb2YgdGhpcyBwYXlsb2FkLiAqKk1VU1QqKiBoYXZlIG9uZS4KIAotIyMjIC54c3BsaWNlLmZ1 bmNzCisjIyMgLmxpdmVwYXRjaC5mdW5jcwogCi1UaGUgYC54c3BsaWNlLmZ1bmNzYCBjb250YWlu cyBhbiBhcnJheSBvZiB4c3BsaWNlX3BhdGNoX2Z1bmMgc3RydWN0dXJlcworVGhlIGAubGl2ZXBh dGNoLmZ1bmNzYCBjb250YWlucyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hfZnVuYyBzdHJ1Y3R1cmVz CiB3aGljaCBkZXNjcmliZSB0aGUgZnVuY3Rpb25zIHRvIGJlIHBhdGNoZWQ6CiAKIDxwcmU+Ci1z dHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHsgIAorc3RydWN0IGxpdmVwYXRjaF9mdW5jIHsgIAog ICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAKICAgICB2b2lkICpuZXdfYWRkcjsgIAogICAgIHZvaWQg Km9sZF9hZGRyOyAgCkBAIC0zMjksMjQgKzMyOSwyNCBAQCBUaGUgc2l6ZSBvZiB0aGUgc3RydWN0 dXJlIGlzIDY0IGJ5dGVzIG9uIDY0LWJpdCBoeXBlcnZpc29ycy4gSXQgd2lsbCBiZQogCiAqIGBv cGFxdWVgICoqTVVTVCoqIGJlIHplcm8uCiAKLVRoZSBzaXplIG9mIHRoZSBgeHNwbGljZV9wYXRj aF9mdW5jYCBhcnJheSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIEVMRiBzZWN0aW9uCitUaGUgc2l6 ZSBvZiB0aGUgYGxpdmVwYXRjaF9mdW5jYCBhcnJheSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIEVM RiBzZWN0aW9uCiBzaXplLgogCi1XaGVuIGFwcGx5aW5nIHRoZSBwYXRjaCB0aGUgaHlwZXJ2aXNv ciBpdGVyYXRlcyBvdmVyIGVhY2ggYHhzcGxpY2VfcGF0Y2hfZnVuY2AKK1doZW4gYXBwbHlpbmcg dGhlIHBhdGNoIHRoZSBoeXBlcnZpc29yIGl0ZXJhdGVzIG92ZXIgZWFjaCBgbGl2ZXBhdGNoX2Z1 bmNgCiBzdHJ1Y3R1cmUgYW5kIHRoZSBjb3JlIGNvZGUgaW5zZXJ0cyBhIHRyYW1wb2xpbmUgYXQg YG9sZF9hZGRyYCB0byBgbmV3X2FkZHJgLgogVGhlIGBuZXdfYWRkcmAgaXMgYWx0ZXJlZCB3aGVu IHRoZSBFTEYgcGF5bG9hZCBpcyBsb2FkZWQuCiAKLVdoZW4gcmV2ZXJ0aW5nIGEgcGF0Y2gsIHRo ZSBoeXBlcnZpc29yIGl0ZXJhdGVzIG92ZXIgZWFjaCBgeHNwbGljZV9wYXRjaF9mdW5jYAorV2hl biByZXZlcnRpbmcgYSBwYXRjaCwgdGhlIGh5cGVydmlzb3IgaXRlcmF0ZXMgb3ZlciBlYWNoIGBs aXZlcGF0Y2hfZnVuY2AKIGFuZCB0aGUgY29yZSBjb2RlIGNvcGllcyB0aGUgZGF0YSBmcm9tIHRo ZSB1bmRvIGJ1ZmZlciAocHJpdmF0ZSBpbnRlcm5hbCBjb3B5KQogdG8gYG9sZF9hZGRyYC4KIAot IyMjIEV4YW1wbGUgb2YgLnhzcGxpY2UuZnVuY3MKKyMjIyBFeGFtcGxlIG9mIC5saXZlcGF0Y2gu ZnVuY3MKIAogQSBzaW1wbGUgZXhhbXBsZSBvZiB3aGF0IGEgcGF5bG9hZCBmaWxlIGNhbiBiZToK IAogPHByZT4KIC8qIE1VU1QgYmUgaW4gc3luYyB3aXRoIGh5cGVydmlzb3IuICovICAKLXN0cnVj dCB4c3BsaWNlX3BhdGNoX2Z1bmMgeyAgCitzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgeyAgCiAgICAg Y29uc3QgY2hhciAqbmFtZTsgIAogICAgIHZvaWQgKm5ld19hZGRyOyAgCiAgICAgdm9pZCAqb2xk X2FkZHI7ICAKQEAgLTM2NCwyNiArMzY0LDI2IEBAIGNvbnN0IGNoYXIgKnhlbl9oZWxsb193b3Js ZCh2b2lkKQogCiBzdGF0aWMgdW5zaWduZWQgY2hhciBwYXRjaF90aGlzX2ZuY1tdID0gInhlbl9l eHRyYV92ZXJzaW9uIjsgIAogCi1zdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfaGVs bG9fd29ybGQgPSB7ICAKLSAgICAudmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLAor c3RydWN0IGxpdmVwYXRjaF9mdW5jIGxpdmVwYXRjaF9oZWxsb193b3JsZCA9IHsgIAorICAgIC52 ZXJzaW9uID0gTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTiwKICAgICAubmFtZSA9IHBhdGNoX3Ro aXNfZm5jLCAgCiAgICAgLm5ld19hZGRyID0geGVuX2hlbGxvX3dvcmxkLCAgCiAgICAgLm9sZF9h ZGRyID0gKHZvaWQgKikweGZmZmY4MmQwODAxMzk2M2MsIC8qIEV4dHJhY3RlZCBmcm9tIHhlbi1z eW1zLiAqLyAgCiAgICAgLm5ld19zaXplID0gMTMsIC8qIFRvIGJlIGJlIGNvbXB1dGVkIGJ5IHNj cmlwdHMuICovICAKICAgICAub2xkX3NpemUgPSAxMywgLyogLS0tLS0tLS0tLS0iIi0tLS0tLS0t LS0tLS0tLSAgKi8gIAotfSBfX2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygiLnhzcGxpY2UuZnVu Y3MiKSkpOyAgCit9IF9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIubGl2ZXBhdGNoLmZ1bmNz IikpKTsgIAogCiA8L3ByZT4KIAogQ29kZSBtdXN0IGJlIGNvbXBpbGVkIHdpdGggLWZQSUMuCiAK LSMjIyAueHNwbGljZS5kZXBlbmRzIGFuZCAubm90ZS5nbnUuYnVpbGQtaWQKKyMjIyAubGl2ZXBh dGNoLmRlcGVuZHMgYW5kIC5ub3RlLmdudS5idWlsZC1pZAogCiBUbyBzdXBwb3J0IGRlcGVuZGVu Y2llcyBjaGVja2luZyBhbmQgc2FmZSBsb2FkaW5nICh0byBsb2FkIHRoZQogYXBwcm9waWF0ZSBw YXlsb2FkIGFnYWluc3QgdGhlIHJpZ2h0IGh5cGVydmlzb3IpIHRoZXJlIGlzIGEgbmVlZAogdG8g ZW1iYmVkIGFuIGJ1aWxkLWlkIGRlcGVuZGVuY3kuCiAKLVRoaXMgaXMgZG9uZSBieSB0aGUgcGF5 bG9hZCBjb250YWluaW5nIGFuIHNlY3Rpb24gYC54c3BsaWNlLmRlcGVuZHNgCitUaGlzIGlzIGRv bmUgYnkgdGhlIHBheWxvYWQgY29udGFpbmluZyBhbiBzZWN0aW9uIGAubGl2ZXBhdGNoLmRlcGVu ZHNgCiB3aGljaCBmb2xsb3dzIHRoZSBmb3JtYXQgb2YgYW4gRUxGIE5vdGUuIFRoZSBjb250ZW50 cyBvZiB0aGlzCiAobmFtZSwgYW5kIGRlc2NyaXB0aW9uKSBhcmUgc3BlY2lmaWMgdG8gdGhlIGxp bmtlciB1dGlsaXplZCB0bwogYnVpbGQgdGhlIGh5cGV2aXNvciBhbmQgcGF5bG9hZC4KQEAgLTQy NCw4ICs0MjQsOCBAQCBvbmUgdWludDMyX3QgdG8gZGV0ZXJtaW5lIHRoZSBzdWItb3BlcmF0aW9u cyBhbmQgb25lIHBhZGRpbmcgZmllbGQgd2hpY2gKICpNVVNUKiBhbHdheXMgYmUgemVyby4KIAog PHByZT4KLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgeyAgCi0gICAgdWludDMyX3QgY21k OyAgICAgICAgICAgICAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9YU1BMSUNFXyouICovICAKK3N0 cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7ICAKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAg ICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAqLyAgCiAgICAgdWlu dDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAvKiBJTjogQWx3YXlzIHplcm8uICovICAKIAl1 bmlvbiB7ICAKICAgICAgICAgICAuLi4gc2VlIGJlbG93IC4uLiAgCkBAIC00MzUsOSArNDM1LDkg QEAgc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCB7CiA8L3ByZT4KIHdoaWxlIHRoZSByZXN0 IG9mIGh5cGVyY2FsbCBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGFyZSBwYXJ0IG9mIHRoZSB0aGlzIHN0 cnVjdHVyZS4KIAotIyMjIEJhc2ljIHR5cGU6IHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lCisjIyMg QmFzaWMgdHlwZTogc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZQogCi1Nb3N0IG9mIHRoZSBoeXBl cmNhbGxzIGVtcGxveSBhbiBzaGFyZWQgc3RydWN0dXJlIGNhbGxlZCBgc3RydWN0IHhlbl94c3Bs aWNlX25hbWVgCitNb3N0IG9mIHRoZSBoeXBlcmNhbGxzIGVtcGxveSBhbiBzaGFyZWQgc3RydWN0 dXJlIGNhbGxlZCBgc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZWAKIHdoaWNoIGNvbnRhaW5zOgog CiAgKiBgbmFtZWAgLSBwb2ludGVyIHdoZXJlIHRoZSBzdHJpbmcgZm9yIHRoZSBuYW1lIGlzIGxv Y2F0ZWQuCkBAIC00NTEsMjUgKzQ1MSwyNSBAQCBUaGUgc3RydWN0dXJlIGlzIGFzIGZvbGxvdzoK ICAqICBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBwYXlsb2FkLiAgU2hvdWxkIGJlIGh1bWFuIHJl YWRhYmxlLiAgCiAgKiBJbmNsdWRlcyB0aGUgTlVMIHRlcm1pbmF0b3IgIAogICovICAKLSNkZWZp bmUgWEVOX1hTUExJQ0VfTkFNRV9TSVpFIDEyOCAgCi1zdHJ1Y3QgeGVuX3hzcGxpY2VfbmFtZSB7 ICAKKyNkZWZpbmUgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgMTI4ICAKK3N0cnVjdCB4ZW5fbGl2 ZXBhdGNoX25hbWUgeyAgCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAg ICAgIC8qIElOLCBwb2ludGVyIHRvIG5hbWUuICovICAKICAgICB1aW50MTZfdCBzaXplOyAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgbmFtZS4gTWF5IGJlIHVwdG8gICAK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1hTUExJ Q0VfTkFNRV9TSVpFLiAqLyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFLiAqLyAgCiAgICAgdWludDE2X3QgcGFk WzNdOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNVVNUIGJlIHplcm8uICovIAogfTsg IAogPC9wcmU+CiAKLSMjIyBYRU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FEICgwKQorIyMjIFhFTl9T WVNDVExfTElWRVBBVENIX1VQTE9BRCAoMCkKIAogVXBsb2FkIGEgcGF5bG9hZCB0byB0aGUgaHlw ZXJ2aXNvci4gVGhlIHBheWxvYWQgaXMgdmVyaWZpZWQKIGFnYWluc3QgYmFzaWMgY2hlY2tzIGFu ZCBpZiB0aGVyZSBhcmUgYW55IGlzc3VlcyB0aGUgcHJvcGVyIHJldHVybiBjb2RlCiB3aWxsIGJl IHJldHVybmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRpbWUgLSB0aGF0 IGlzCi1jb250cm9sbGVkIGJ5ICpYRU5fU1lTQ1RMX1hTUExJQ0VfQUNUSU9OKi4KK2NvbnRyb2xs ZWQgYnkgKlhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiouCiAKIFRoZSBjYWxsZXIgcHJvdmlk ZXM6CiAKLSAqIEEgYHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBjYWxsZWQgYG5hbWVgIHdoaWNo IGhhcyB0aGUgdW5pcXVlIG5hbWUuCisgKiBBIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lYCBj YWxsZWQgYG5hbWVgIHdoaWNoIGhhcyB0aGUgdW5pcXVlIG5hbWUuCiAgKiBgc2l6ZWAgdGhlIHNp emUgb2YgdGhlIEVMRiBwYXlsb2FkIChpbiBieXRlcykuCiAgKiBgcGF5bG9hZGAgdGhlIHZpcnR1 YWwgYWRkcmVzcyBvZiB3aGVyZSB0aGUgRUxGIHBheWxvYWQgaXMuCiAKQEAgLTQ4NSwyOSArNDg1 LDI5IEBAIFRoZSBgcGF5bG9hZGAgaXMgdGhlIEVMRiBwYXlsb2FkIGFzIG1lbnRpb25lZCBpbiB0 aGUgYFBheWxvYWQgZm9ybWF0YCBzZWN0aW9uLgogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6 CiAKIDxwcmU+Ci1zdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZCB7ICAKLSAgICB4ZW5f eHNwbGljZV9uYW1lX3QgbmFtZTsgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2gu ICovICAKK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWQgeyAgCisgICAgeGVuX2xp dmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhlIHBhdGNoLiAq LyAgCiAgICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUg b2YgdGhlIEVMRiBmaWxlLiAqLyAgCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50OCkgcGF5 bG9hZDsgLyogSU46IEVMRiBmaWxlLiAqLyAgCiB9OyAgCiA8L3ByZT4KIAotIyMjIFhFTl9TWVND VExfWFNQTElDRV9HRVQgKDEpCisjIyMgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUICgxKQogCiBS ZXRyaWV2ZSBhbiBzdGF0dXMgb2YgYW4gc3BlY2lmaWMgcGF5bG9hZC4gVGhpcyBjYWxsZXIgcHJv dmlkZXM6CiAKLSAqIEEgYHN0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBjYWxsZWQgYG5hbWVgIHdo aWNoIGhhcyB0aGUgdW5pcXVlIG5hbWUuCi0gKiBBIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVz YCBzdHJ1Y3R1cmUuIFRoZSBtZW1iZXIgdmFsdWVzIHdpbGwKKyAqIEEgYHN0cnVjdCB4ZW5fbGl2 ZXBhdGNoX25hbWVgIGNhbGxlZCBgbmFtZWAgd2hpY2ggaGFzIHRoZSB1bmlxdWUgbmFtZS4KKyAq IEEgYHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2Agc3RydWN0dXJlLiBUaGUgbWVtYmVyIHZh bHVlcyB3aWxsCiAgICBiZSBvdmVyLXdyaXR0ZW4gdXBvbiBjb21wbGV0aW9uLgogCi1VcG9uIGNv bXBsZXRpb24gdGhlIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzYCBpcyB1cGRhdGVkLgorVXBv biBjb21wbGV0aW9uIHRoZSBgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzYCBpcyB1cGRhdGVk LgogCiAgKiBgc3RhdHVzYCAtIGluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBh eWxvYWQ6Ci0gICAqICpYU1BMSUNFX1NUQVRVU19DSEVDS0VEKiAgKDEpIGxvYWRlZCBhbmQgdGhl IEVMRiBwYXlsb2FkIHNhZmV0eSBjaGVja3MgcGFzc2VkLgotICAgKiAqWFNQTElDRV9TVEFUVVNf QVBQTElFRCogKDIpIGxvYWRlZCwgY2hlY2tlZCwgYW5kIGFwcGxpZWQuCisgICAqICpMSVZFUEFU Q0hfU1RBVFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUgRUxGIHBheWxvYWQgc2FmZXR5 IGNoZWNrcyBwYXNzZWQuCisgICAqICpMSVZFUEFUQ0hfU1RBVFVTX0FQUExJRUQqICgyKSBsb2Fk ZWQsIGNoZWNrZWQsIGFuZCBhcHBsaWVkLgogICAgKiAgTm8gb3RoZXIgdmFsdWUgaXMgcG9zc2li bGUuCiAgKiBgcmNgIC0gLVhFTl9FWFggdHlwZSBlcnJvcnMgZW5jb3VudGVyZWQgd2hpbGUgcGVy Zm9ybWluZyB0aGUgbGFzdAotICAgWFNQTElDRV9BQ1RJT05fKiBvcGVyYXRpb24uIFRoZSBub3Jt YWwgdmFsdWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5fRUFHQUlOIHdoaWNoCisgICBMSVZFUEFUQ0hf QUNUSU9OXyogb3BlcmF0aW9uLiBUaGUgbm9ybWFsIHZhbHVlcyBjYW4gYmUgemVybyBvciAtWEVO X0VBR0FJTiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1lYW46IHN1Y2Nlc3Mgb3Igb3BlcmF0aW9u IGluIHByb2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGltcGx5IGFuIGVycm9yIG9jY3VycmVkLiBJ ZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3RhdHVzYCB3aWxsICoqTk9UKioKICAgIGhh dmUgY2hhbmdlZC4KQEAgLTUxOSwxNSArNTE5LDE1IEBAIHJjPS1YRU5fRUFHQUlOIGFuZCByZXR1 cm4gdmFsdWUgY2FuIGJlIDApLgogRm9yIGV4YW1wbGUsIHN1cHBvc2luZyB0aGVyZSBpcyBhbiBw YXlsb2FkOgogCiA8cHJlPgotIHN0YXR1czogWFNQTElDRV9TVEFUVVNfQ0hFQ0tFRAorIHN0YXR1 czogTElWRVBBVENIX1NUQVRVU19DSEVDS0VECiAgcmM6IDAKIDwvcHJlPgogCi1XZSBhcHBseSBh biBhY3Rpb24gLSBYU1BMSUNFX0FDVElPTl9SRVZFUlQgLSB0byByZXZlcnQgaXQgKHdoaWNoIHdv bid0IHdvcmsKK1dlIGFwcGx5IGFuIGFjdGlvbiAtIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUIC0g dG8gcmV2ZXJ0IGl0ICh3aGljaCB3b24ndCB3b3JrCiBhcyB3ZSBoYXZlIG5vdCBldmVuIGFwcGxp ZWQgaXQuIEFmdGVyd2FyZHMgd2Ugd2lsbCBoYXZlOgogCiA8cHJlPgotIHN0YXR1czogWFNQTElD RV9TVEFUVVNfQ0hFQ0tFRAorIHN0YXR1czogTElWRVBBVENIX1NUQVRVU19DSEVDS0VECiAgcmM6 IC1YRU5fRUlOVkFMCiA8L3ByZT4KIApAQCAtNTM4LDIwICs1MzgsMjAgQEAgVGhpcyBvcGVyYXRp b24gaXMgc3luY2hyb25vdXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgcHJlZW1wdGlvbi4KIFRoZSBz dHJ1Y3R1cmUgaXMgYXMgZm9sbG93OgogCiA8cHJlPgotc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1 cyB7ICAKLSNkZWZpbmUgWFNQTElDRV9TVEFUVVNfQ0hFQ0tFRCAgICAgIDEgIAotI2RlZmluZSBY U1BMSUNFX1NUQVRVU19BUFBMSUVEICAgICAgMiAgCi0gICAgdWludDMyX3Qgc3RhdGU7ICAgICAg ICAgICAgICAgICAvKiBPVVQ6IFhTUExJQ0VfU1RBVEVfKi4gKi8gIAorc3RydWN0IHhlbl9saXZl cGF0Y2hfc3RhdHVzIHsgIAorI2RlZmluZSBMSVZFUEFUQ0hfU1RBVFVTX0NIRUNLRUQgICAgICAx ICAKKyNkZWZpbmUgTElWRVBBVENIX1NUQVRVU19BUFBMSUVEICAgICAgMiAgCisgICAgdWludDMy X3Qgc3RhdGU7ICAgICAgICAgICAgICAgICAvKiBPVVQ6IExJVkVQQVRDSF9TVEFURV8qLiAqLyAg CiAgICAgaW50MzJfdCByYzsgICAgICAgICAgICAgICAgICAgICAvKiBPVVQ6IDAgaWYgbm8gZXJy b3IsIG90aGVyd2lzZSAtWEVOX0VYWC4gKi8gIAogfTsgIAogCi1zdHJ1Y3QgeGVuX3N5c2N0bF94 c3BsaWNlX2dldCB7ICAKLSAgICB4ZW5feHNwbGljZV9uYW1lX3QgbmFtZTsgICAgICAgIC8qIElO LCB0aGUgbmFtZSBvZiB0aGUgcGF5bG9hZC4gKi8gIAotICAgIHhlbl94c3BsaWNlX3N0YXR1c190 IHN0YXR1czsgICAgLyogSU4vT1VUOiBzdGF0dXMgb2YgdGhlIHBheWxvYWQuICovICAKK3N0cnVj dCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeyAgCisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3Qg bmFtZTsgICAgICAvKiBJTiwgdGhlIG5hbWUgb2YgdGhlIHBheWxvYWQuICovICAKKyAgICB4ZW5f bGl2ZXBhdGNoX3N0YXR1c190IHN0YXR1czsgIC8qIElOL09VVDogc3RhdHVzIG9mIHRoZSBwYXls b2FkLiAqLyAgCiB9OyAgCiA8L3ByZT4KIAotIyMjIFhFTl9TWVNDVExfWFNQTElDRV9MSVNUICgy KQorIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgKDIpCiAKIFJldHJpZXZlIGFuIGFycmF5 IG9mIGFiYnJldmlhdGVkIHN0YXR1cyBhbmQgbmFtZXMgb2YgcGF5bG9hZHMgdGhhdCBhcmUgbG9h ZGVkIGluIHRoZQogaHlwZXJ2aXNvci4KQEAgLTU2OCwxMSArNTY4LDExIEBAIFRoZSBjYWxsZXIg cHJvdmlkZXM6CiAgICAgaW4gdGhlIGh5cGVyY2FsbCBiZWluZyBhIHByb2Jpbmcgb25lIGFuZCBy ZXR1cm4gdGhlIG51bWJlciBvZiBwYXlsb2FkcwogICAgIChhbmQgdXBkYXRlIHRoZSBgdmVyc2lv bmApLgogICogYHBhZGAgLSAqTVVTVCogYmUgemVyby4KLSAqIGBzdGF0dXNgIHZpcnR1YWwgYWRk cmVzcyBvZiB3aGVyZSB0byB3cml0ZSBgc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1c2AKKyAqIGBz dGF0dXNgIHZpcnR1YWwgYWRkcmVzcyBvZiB3aGVyZSB0byB3cml0ZSBgc3RydWN0IHhlbl9saXZl cGF0Y2hfc3RhdHVzYAogICAgc3RydWN0dXJlcy4gQ2FsbGVyICpNVVNUKiBhbGxvY2F0ZSB1cCB0 byBgbnJgIG9mIHRoZW0uCiAgKiBgbmFtZWAgLSB2aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8g d3JpdGUgdGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBwYXlsb2FkLgogICAgQ2FsbGVyICpNVVNUKiBh bGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1VU1QqIGJlIG9mCi0gICAqKlhFTl9Y U1BMSUNFX05BTUVfU0laRSoqIHNpemUuIE5vdGUgdGhhdCAqKlhFTl9YU1BMSUNFX05BTUVfU0la RSoqIGluY2x1ZGVzCisgICAqKlhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFKiogc2l6ZS4gTm90ZSB0 aGF0ICoqWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUqKiBpbmNsdWRlcwogICAgdGhlIE5VTCB0ZXJt aW5hdG9yLgogICogYGxlbmAgLSB2aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUgdGhl IGxlbmd0aCBvZiBlYWNoIHVuaXF1ZSBuYW1lCiAgICBvZiB0aGUgcGF5bG9hZC4gQ2FsbGVyICpN VVNUKiBhbGxvY2F0ZSB1cCB0byBgbnJgIG9mIHRoZW0uIEVhY2ggKk1VU1QqIGJlCkBAIC01OTcs MTQgKzU5NywxNCBAQCBiZXR3ZWVuIGVhY2ggaW52b2NhdGlvbi4gaWYgdGhlIHZlcnNpb24gZGlm ZmVycyBpdCBzaG91bGQgZGlzY2FyZCB0aGUgc3RhbGUKIGRhdGEgYW5kIHN0YXJ0IGZyb20gc2Ny YXRjaC4gSXQgaXMgT0sgZm9yIHRoZSB0b29sc3RhY2sgdG8gdXNlIHRoZSBuZXcKIGB2ZXJzaW9u YCBmaWVsZC4KIAotVGhlIGBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzYCBzdHJ1Y3R1cmUgY29u dGFpbnMgYW4gc3RhdHVzIG9mIHBheWxvYWQgd2hpY2ggaW5jbHVkZXM6CitUaGUgYHN0cnVjdCB4 ZW5fbGl2ZXBhdGNoX3N0YXR1c2Agc3RydWN0dXJlIGNvbnRhaW5zIGFuIHN0YXR1cyBvZiBwYXls b2FkIHdoaWNoIGluY2x1ZGVzOgogCiAgKiBgc3RhdHVzYCAtIGluZGljYXRlcyB0aGUgY3VycmVu dCBzdGF0dXMgb2YgdGhlIHBheWxvYWQ6Ci0gICAqICpYU1BMSUNFX1NUQVRVU19DSEVDS0VEKiAg KDEpIGxvYWRlZCBhbmQgdGhlIEVMRiBwYXlsb2FkIHNhZmV0eSBjaGVja3MgcGFzc2VkLgotICAg KiAqWFNQTElDRV9TVEFUVVNfQVBQTElFRCogKDIpIGxvYWRlZCwgY2hlY2tlZCwgYW5kIGFwcGxp ZWQuCisgICAqICpMSVZFUEFUQ0hfU1RBVFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUg RUxGIHBheWxvYWQgc2FmZXR5IGNoZWNrcyBwYXNzZWQuCisgICAqICpMSVZFUEFUQ0hfU1RBVFVT X0FQUExJRUQqICgyKSBsb2FkZWQsIGNoZWNrZWQsIGFuZCBhcHBsaWVkLgogICAgKiAgTm8gb3Ro ZXIgdmFsdWUgaXMgcG9zc2libGUuCiAgKiBgcmNgIC0gLVhFTl9FWFggdHlwZSBlcnJvcnMgZW5j b3VudGVyZWQgd2hpbGUgcGVyZm9ybWluZyB0aGUgbGFzdAotICAgWFNQTElDRV9BQ1RJT05fKiBv cGVyYXRpb24uIFRoZSBub3JtYWwgdmFsdWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5fRUFHQUlOIHdo aWNoCisgICBMSVZFUEFUQ0hfQUNUSU9OXyogb3BlcmF0aW9uLiBUaGUgbm9ybWFsIHZhbHVlcyBj YW4gYmUgemVybyBvciAtWEVOX0VBR0FJTiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1lYW46IHN1 Y2Nlc3Mgb3Igb3BlcmF0aW9uIGluIHByb2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGltcGx5IGFu IGVycm9yIG9jY3VycmVkLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3RhdHVzYCB3 aWxsICoqTk9UKioKICAgIGhhdmUgY2hhbmdlZC4KQEAgLTYxMiw3ICs2MTIsNyBAQCBUaGUgYHN0 cnVjdCB4ZW5feHNwbGljZV9zdGF0dXNgIHN0cnVjdHVyZSBjb250YWlucyBhbiBzdGF0dXMgb2Yg cGF5bG9hZCB3aGljaCBpbgogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAKIDxwcmU+Ci1z dHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX2xpc3QgeyAgCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZl cGF0Y2hfbGlzdCB7ICAKICAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgICAgICAgICAg ICAgLyogT1VUOiBIeXBlcnZpc29yIHN0YW1wcyB2YWx1ZS4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdmFyaWVzIGJldHdlZW4gY2FsbHMsIHdlIGFy ZSAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHRp bmcgc3RhbGUgZGF0YS4gKi8gIApAQCAtNjIyLDM4ICs2MjIsMzggQEAgc3RydWN0IHhlbl9zeXNj dGxfeHNwbGljZV9saXN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYW1vdW50IG9mIHBheWxvYWRzIGFuZCB2ZXJzaW9uLiAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9VVDogSG93IG1hbnkgcGF5bG9hZHMg bGVmdC4gKi8gIAogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBJTjogTXVzdCBiZSB6ZXJvLiAqLyAgCi0gICAgWEVOX0dVRVNUX0hBTkRMRV82NCh4ZW5feHNw bGljZV9zdGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0IGhhdmUgZW5vdWdoICAKKyAgICBY RU5fR1VFU1RfSEFORExFXzY0KHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QpIHN0YXR1czsgIC8qIE9V VC4gTXVzdCBoYXZlIGVub3VnaCAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNwYWNlIGFsbG9jYXRlIGZvciBuciBvZiB0aGVtLiAqLyAgCiAgICAgWEVO X0dVRVNUX0hBTkRMRV82NChjaGFyKSBpZDsgICAgICAgICAgIC8qIE9VVDogQXJyYXkgb2YgbmFt ZXMuIEVhY2ggbWVtYmVyICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTVVTVCBYRU5fWFNQTElDRV9OQU1FX1NJWkUgaW4gc2l6ZS4gIAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hf TkFNRV9TSVpFIGluIHNpemUuICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovICAKICAgICBYRU5fR1VFU1RfSEFO RExFXzY0KHVpbnQzMikgbGVuOyAgICAgICAgLyogT1VUOiBBcnJheSBvZiBsZW5ndGhzIG9mIG5h bWUncy4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN dXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8gIAogfTsgIAogPC9wcmU+CiAKLSMjIyBYRU5fU1lTQ1RM X1hTUExJQ0VfQUNUSU9OICgzKQorIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTiAoMykK IAogUGVyZm9ybSBhbiBvcGVyYXRpb24gb24gdGhlIHBheWxvYWQgc3RydWN0dXJlIHJlZmVyZW5j ZWQgYnkgdGhlIGBuYW1lYCBmaWVsZC4KIFRoZSBvcGVyYXRpb24gcmVxdWVzdCBpcyBhc3luY2hy b25vdXMgYW5kIHRoZSBzdGF0dXMgc2hvdWxkIGJlIHJldHJpZXZlZAotYnkgdXNpbmcgZWl0aGVy ICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCoqIG9yICoqWEVOX1NZU0NUTF9YU1BMSUNFX0xJU1Qq KiBoeXBlcmNhbGwuCitieSB1c2luZyBlaXRoZXIgKipYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQq KiBvciAqKlhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QqKiBoeXBlcmNhbGwuCiAKIFRoZSBjYWxs ZXIgcHJvdmlkZXM6CiAKLSAqIEEgJ3N0cnVjdCB4ZW5feHNwbGljZV9uYW1lYCBgbmFtZWAgY29u dGFpbmluZyB0aGUgdW5pcXVlIG5hbWUuCisgKiBBICdzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1l YCBgbmFtZWAgY29udGFpbmluZyB0aGUgdW5pcXVlIG5hbWUuCiAgKiBgY21kYCB0aGUgY29tbWFu ZCByZXF1ZXN0ZWQ6Ci0gICogKlhTUExJQ0VfQUNUSU9OX1VOTE9BRCogKDEpIHVubG9hZCB0aGUg cGF5bG9hZC4KKyAgKiAqTElWRVBBVENIX0FDVElPTl9VTkxPQUQqICgxKSB1bmxvYWQgdGhlIHBh eWxvYWQuCiAgICBBbnkgZnVydGhlciBoeXBlcmNhbGxzIGFnYWluc3QgdGhlIGBuYW1lYCB3aWxs IHJlc3VsdCBpbiBmYWlsdXJlIHVubGVzcwotICAgKipYRU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FE KiogaHlwZXJjYWxsIGlzIHBlcmZvbWVkIHdpdGggc2FtZSBgbmFtZWAuCi0gICogKlhTUExJQ0Vf QUNUSU9OX1JFVkVSVCogKDIpIHJldmVydCB0aGUgcGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0 YWtlcwotICBtb3JlIHRpbWUgdGhhbiB0aGUgdXBwZXIgYm91bmQgb2YgdGltZSB0aGUgYHJjYCBp biBgeGVuX3hzcGxpY2Vfc3RhdHVzJwotICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BM SUNFX0dFVCoqIHdpbGwgYmUgLVhFTl9FQlVTWS4KLSAgKiAqWFNQTElDRV9BQ1RJT05fQVBQTFkq ICgzKSBhcHBseSB0aGUgcGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0YWtlcwotICBtb3JlIHRp bWUgdGhhbiB0aGUgdXBwZXIgYm91bmQgb2YgdGltZSB0aGUgYHJjYCBpbiBgeGVuX3hzcGxpY2Vf c3RhdHVzJwotICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCoqIHdpbGwg YmUgLVhFTl9FQlVTWS4KLSAgKiAqWFNQTElDRV9BQ1RJT05fUkVQTEFDRSogKDQpIHJldmVydCBh bGwgYXBwbGllZCBwYXlsb2FkcyBhbmQgYXBwbHkgdGhpcworICAgKipYRU5fU1lTQ1RMX0xJVkVQ QVRDSF9VUExPQUQqKiBoeXBlcmNhbGwgaXMgcGVyZm9tZWQgd2l0aCBzYW1lIGBuYW1lYC4KKyAg KiAqTElWRVBBVENIX0FDVElPTl9SRVZFUlQqICgyKSByZXZlcnQgdGhlIHBheWxvYWQuIElmIHRo ZSBvcGVyYXRpb24gdGFrZXMKKyAgbW9yZSB0aW1lIHRoYW4gdGhlIHVwcGVyIGJvdW5kIG9mIHRp bWUgdGhlIGByY2AgaW4gYHhlbl9saXZlcGF0Y2hfc3RhdHVzJworICByZXRyaWV2ZWQgdmlhICoq WEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUKiogd2lsbCBiZSAtWEVOX0VCVVNZLgorICAqICpMSVZF UEFUQ0hfQUNUSU9OX0FQUExZKiAoMykgYXBwbHkgdGhlIHBheWxvYWQuIElmIHRoZSBvcGVyYXRp b24gdGFrZXMKKyAgbW9yZSB0aW1lIHRoYW4gdGhlIHVwcGVyIGJvdW5kIG9mIHRpbWUgdGhlIGBy Y2AgaW4gYHhlbl9saXZlcGF0Y2hfc3RhdHVzJworICByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NU TF9MSVZFUEFUQ0hfR0VUKiogd2lsbCBiZSAtWEVOX0VCVVNZLgorICAqICpMSVZFUEFUQ0hfQUNU SU9OX1JFUExBQ0UqICg0KSByZXZlcnQgYWxsIGFwcGxpZWQgcGF5bG9hZHMgYW5kIGFwcGx5IHRo aXMKICAgcGF5bG9hZC4gSWYgdGhlIG9wZXJhdGlvbiB0YWtlcyBtb3JlIHRpbWUgdGhhbiB0aGUg dXBwZXIgYm91bmQgb2YgdGltZQotICB0aGUgYHJjYCBpbiBgeGVuX3hzcGxpY2Vfc3RhdHVzJyBy ZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCoqCisgIHRoZSBgcmNgIGluIGB4 ZW5fbGl2ZXBhdGNoX3N0YXR1cycgcmV0cmlldmVkIHZpYSAqKlhFTl9TWVNDVExfTElWRVBBVENI X0dFVCoqCiAgIHdpbGwgYmUgLVhFTl9FQlVTWS4KICAqIGB0aW1lYCB0aGUgdXBwZXIgYm91bmQg b2YgdGltZSAobXMpIHRoZSBjbWQgc2hvdWxkIHRha2UuIFplcm8gbWVhbnMgaW5maW5pdGUuCiAg ICBJZiB3aXRoaW4gdGhlIHRpbWUgdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBzdWNjZWVkIHRoZSBv cGVyYXRpb24gd291bGQgZ28gaW4KQEAgLTY2NSwxMyArNjY1LDEzIEBAIFRoZSByZXR1cm4gdmFs dWUgd2lsbCBiZSB6ZXJvIHVubGVzcyB0aGUgcHJvdmlkZWQgZmllbGRzIGFyZSBpbmNvcnJlY3Qu CiBUaGUgc3RydWN0dXJlIGlzIGFzIGZvbGxvdzoKIAogPHByZT4KLSNkZWZpbmUgWFNQTElDRV9B Q1RJT05fVU5MT0FEICAxICAKLSNkZWZpbmUgWFNQTElDRV9BQ1RJT05fUkVWRVJUICAyICAKLSNk ZWZpbmUgWFNQTElDRV9BQ1RJT05fQVBQTFkgICAzICAKLSNkZWZpbmUgWFNQTElDRV9BQ1RJT05f UkVQTEFDRSA0ICAKLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uIHsgIAotICAgIHhl bl94c3BsaWNlX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUg cGF0Y2guICovICAKLSAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogSU46IFhTUExJQ0VfQUNUSU9OXyogKi8gIAorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1VO TE9BRCAgMSAgCisjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUICAyICAKKyNkZWZpbmUg TElWRVBBVENIX0FDVElPTl9BUFBMWSAgIDMgIAorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JF UExBQ0UgNCAgCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uIHsgIAorICAgIHhl bl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUg cGF0Y2guICovICAKKyAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogSU46IExJVkVQQVRDSF9BQ1RJT05fKiAqLyAgCiAgICAgdWludDMyX3QgdGltZTsgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIElOOiBaZXJvIGlmIG5vIHRpbWVvdXQuICovICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9yIHVwcGVyIGJvdW5k IG9mIHRpbWUgKG1zKSAqLyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBmb3Igb3BlcmF0aW9uIHRvIHRha2UuICovICAKQEAgLTY3OSwxMSArNjc5LDEx IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uIHsKIAogPC9wcmU+CiAKLSMjIFN0 YXRlIGRpYWdyYW1zIG9mIFhTUExJQ0VfQUNUSU9OIGNvbW1hbmRzLgorIyMgU3RhdGUgZGlhZ3Jh bXMgb2YgTElWRVBBVENIX0FDVElPTiBjb21tYW5kcy4KIAogVGhlcmUgaXMgYSBzdHJpY3Qgb3Jk ZXJpbmcgc3RhdGUgb2Ygd2hhdCB0aGUgY29tbWFuZHMgY2FuIGJlLgotVGhlIFhTUExJQ0VfQUNU SU9OIHByZWZpeCBoYXMgYmVlbiBkcm9wcGVkIHRvIGVhc3kgcmVhZGluZyBhbmQKLWRvZXMgbm90 IGluY2x1ZGUgdGhlIFhTUExJQ0VfU1RBVEVTOgorVGhlIExJVkVQQVRDSF9BQ1RJT04gcHJlZml4 IGhhcyBiZWVuIGRyb3BwZWQgdG8gZWFzeSByZWFkaW5nIGFuZAorZG9lcyBub3QgaW5jbHVkZSB0 aGUgTElWRVBBVENIX1NUQVRFUzoKIAogPHByZT4KICAgICAgICAgICAgICAgLy0+XCAgCkBAIC02 OTMsMTEgKzY5MywxMSBAQCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBYU1BMSUNFX1NUQVRFUzoKICAg ICAgICAgICAgICAgICAgXC0tLS0tLS0tLS0tLS0tLS0tLS08LS0tLS0tLS0tLS0tLS8gIAogCiA8 L3ByZT4KLSMjIFN0YXRlIHRyYW5zaXRpb24gdGFibGUgb2YgWFNQTElDRV9BQ1RJT04gY29tbWFu ZHMgYW5kIFhTUExJQ0VfU1RBVFVTLgorIyMgU3RhdGUgdHJhbnNpdGlvbiB0YWJsZSBvZiBMSVZF UEFUQ0hfQUNUSU9OIGNvbW1hbmRzIGFuZCBMSVZFUEFUQ0hfU1RBVFVTLgogCiBOb3RlIHRoYXQ6 CiAKLSAtIFRoZSBDSEVDS0VEIHN0YXRlIGlzIHRoZSBzdGFydGluZyBvbmUgYWNoaWV2ZWQgd2l0 aCAqWEVOX1NZU0NUTF9YU1BMSUNFX1VQTE9BRCogaHlwZXJjYWxsLgorIC0gVGhlIENIRUNLRUQg c3RhdGUgaXMgdGhlIHN0YXJ0aW5nIG9uZSBhY2hpZXZlZCB3aXRoICpYRU5fU1lTQ1RMX0xJVkVQ QVRDSF9VUExPQUQqIGh5cGVyY2FsbC4KICAtIFRoZSBSRVZFUlQgb3BlcmF0aW9uIG9uIHN1Y2Nl c3Mgd2lsbCBhdXRvbWF0aWNhbGx5IG1vdmUgdG8gdGhlIENIRUNLRUQgc3RhdGUuCiAgLSBUaGVy ZSBhcmUgdHdvIFNUQVRFUzogQ0hFQ0tFRCBhbmQgQVBQTElFRC4KICAtIFRoZXJlIGFyZSBmb3Vy IGFjdGlvbnMgKGFrYSBjb21tYW5kcyk6IEFQUExZLCBSRVBMQUNFLCBSRVZFUlQsIGFuZCBVTkxP QUQuCkBAIC03MzUsMTAgKzczNSwxMCBAQCBBbGwgdGhlIG90aGVyIHN0YXRlIHRyYW5zaXRpb25z IGFyZSBpbnZhbGlkLgogCiBUaGUgbm9ybWFsIHNlcXVlbmNlIG9mIGV2ZW50cyBpcyB0bzoKIAot IDEuICpYRU5fU1lTQ1RMX1hTUExJQ0VfVVBMT0FEKiB0byB1cGxvYWQgdGhlIHBheWxvYWQuIElm IHRoZXJlIGFyZSBlcnJvcnMgKlNUT1AqIGhlcmUuCi0gMi4gKlhFTl9TWVNDVExfWFNQTElDRV9H RVQqIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmICotWEVOX0VBR0FJTiogc3Bpbi4gSWYgemVybyBn byB0byBuZXh0IHN0ZXAuCi0gMy4gKlhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT04qIHdpdGggKlhT UExJQ0VfQUNUSU9OX0FQUExZKiB0byBhcHBseSB0aGUgcGF0Y2guCi0gNC4gKlhFTl9TWVNDVExf WFNQTElDRV9HRVQqIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIGluICotWEVOX0VBR0FJTiogc3Bp bi4gSWYgemVybyBleGl0IHdpdGggc3VjY2Vzcy4KKyAxLiAqWEVOX1NZU0NUTF9MSVZFUEFUQ0hf VVBMT0FEKiB0byB1cGxvYWQgdGhlIHBheWxvYWQuIElmIHRoZXJlIGFyZSBlcnJvcnMgKlNUT1Aq IGhlcmUuCisgMi4gKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCogdG8gY2hlY2sgdGhlIGAtPnJj YC4gSWYgKi1YRU5fRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGdvIHRvIG5leHQgc3RlcC4KKyAzLiAq WEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OKiB3aXRoICpMSVZFUEFUQ0hfQUNUSU9OX0FQUExZ KiB0byBhcHBseSB0aGUgcGF0Y2guCisgNC4gKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCogdG8g Y2hlY2sgdGhlIGAtPnJjYC4gSWYgaW4gKi1YRU5fRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGV4aXQg d2l0aCBzdWNjZXNzLgogCiAKICMjIEFkZGVuZHVtCkBAIC04MDksMTQgKzgwOSwxNCBAQCBIb3Rw YXRjaCBnZW5lcmF0aW9uIG9mdGVuIHJlcXVpcmVzIHN1cHBvcnQgZm9yIGNvbXBpbGluZyB0aGUg dGFyZ2V0CiB3aXRoIC1mZnVuY3Rpb24tc2VjdGlvbnMgLyAtZmRhdGEtc2VjdGlvbnMuICBDaGFu Z2VzIHdvdWxkIGhhdmUgdG8KIGJlIGRvbmUgdG8gdGhlIGxpbmtlciBzY3JpcHRzIHRvIHN1cHBv cnQgdGhpcy4KIAotIyMjIEdlbmVyYXRpb24gb2YgeFNwbGljZSBFTEYgcGF5bG9hZHMKKyMjIyBH ZW5lcmF0aW9uIG9mIExpdmUgUGF0Y2ggRUxGIHBheWxvYWRzCiAKIFRoZSBkZXNpZ24gb2YgdGhh dCBpcyBub3QgZGlzY3Vzc2VkIGluIHRoaXMgZGVzaWduLgogCiBUaGlzIGlzIGltcGxlbWVudGVk IGluIGEgc2VwZXJhdGUgdG9vbCB3aGljaCBsaXZlcyBpbiBhIHNlcGVyYXRlCiBHSVQgcmVwby4K IAotQ3VycmVudGx5IGl0IHJlc2lkZXMgYXQgaHR0cHM6Ly9naXRodWIuY29tL3Jvc3NsYWdlcndh bGwveHNwbGljZS1idWlsZAorQ3VycmVudGx5IGl0IHJlc2lkZXMgYXQgaHR0cHM6Ly9naXRodWIu Y29tL3Jvc3NsYWdlcndhbGwvbGl2ZXBhdGNoLWJ1aWxkCiAKICMjIyBFeGNlcHRpb24gdGFibGVz IGFuZCBzeW1ib2wgdGFibGVzIGdyb3d0aAogCkBAIC04NzksOSArODc5LDkgQEAgVGhpcyBpcyBp bXBsZW1lbnRlZCBpbiB0aGUgWGVuIFByb2plY3QgaHlwZXJ2aXNvci4KIAogT25seSB0aGUgcHJp dmlsZWdlZCBkb21haW4gc2hvdWxkIGJlIGFsbG93ZWQgdG8gZG8gdGhpcyBvcGVyYXRpb24uCiAK LSMjIyB4U3BsaWNlIGludGVyZGVwZW5kZW5jaWVzCisjIyMgTGl2ZSBwYXRjaCBpbnRlcmRlcGVu ZGVuY2llcwogCi14U3BsaWNlIHBhdGNoZXMgaW50ZXJkZXBlbmRlbmNpZXMgYXJlIHRyaWNreS4K K0xpdmUgcGF0Y2ggcGF0Y2hlcyBpbnRlcmRlcGVuZGVuY2llcyBhcmUgdHJpY2t5LgogCiBUaGVy ZSBhcmUgdGhlIHdheXMgdGhpcyBjYW4gYmUgYWRkcmVzc2VkOgogICogQSBzaW5nbGUgbGFyZ2Ug cGF0Y2ggdGhhdCBzdWJzdW1lcyBhbmQgcmVwbGFjZXMgYWxsIHByZXZpb3VzIG9uZXMuCkBAIC05 MTgsNyArOTE4LDcgQEAgYnVpbGQtaWQuCiAKICMgTm90IFlldCBEb25lCiAKLVRoaXMgaXMgZm9y IGZ1cnRoZXIgZGV2ZWxvcG1lbnQgb2YgeFNwbGljZS4KK1RoaXMgaXMgZm9yIGZ1cnRoZXIgZGV2 ZWxvcG1lbnQgb2YgbGl2ZSBwYXRjaGluZy4KIAogIyMgVE9ETyBHb2FscwogCkBAIC05MzAsNyAr OTMwLDcgQEAgVGhlIGltcGxlbWVudGF0aW9uIG11c3QgYWxzbyBoYXZlIGEgbWVjaGFuaXNtIGZv ciAoaW4gbm8gcGFydGljdWxhciBvcmRlcik6CiAgKiBEZWFsIHdpdGggTk1JL01DRSBjaGVja3Mg ZHVyaW5nIHBhdGNoaW5nIGluc3RlYWQgb2YgaWdub3JpbmcgdGhlbS4KICAqIEZ1cnRoZXIgc2Fm ZXR5IGNoZWNrcyAoYmxhY2tsaXN0IG9mIHdoaWNoIGZ1bmN0aW9ucyBjYW5ub3QgYmUgcGF0Y2hl ZCwgY2hlY2sKICAgIHRoZSBzdGFjaywgbWFrZSBzdXJlIHRoZSBwYXlsb2FkIGlzIGJ1aWx0IHdp dGggc2FtZSBjb21waWxlciBhcyBoeXBlcnZpc29yKS4KLSAgIFNwZWNpZmljYWxseSB3ZSB3YW50 IHRvIG1ha2Ugc3VyZSB0aGF0IHhTcGxpY2UgY29kZXBhdGhzIGNhbm5vdCBiZSBwYXRjaGVkLgor ICAgU3BlY2lmaWNhbGx5IHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgbGl2ZSBwYXRjaGluZyBj b2RlcGF0aHMgY2Fubm90IGJlIHBhdGNoZWQuCiAgKiBOT1Agb3V0IHRoZSBjb2RlIHNlcXVlbmNl IGlmIGBuZXdfc2l6ZWAgaXMgemVyby4KICAqIERlYWwgd2l0aCBvdGhlciByZWxvY2F0aW9uIHR5 cGVzOiAgUl9YODZfNjRfWzgsMTYsMzIsMzJTXSwgUl9YODZfNjRfUENbOCwxNiw2NF0KICAgIGlu IHBheWxvYWQgZmlsZS4KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9k dWxlcy94ZW4veGVuLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94 ZW4udGUKaW5kZXggMGIxYzk1NS4uNTBhYTYwMiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9s aWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L3Bv bGljeS9tb2R1bGVzL3hlbi94ZW4udGUKQEAgLTc0LDcgKzc0LDcgQEAgYWxsb3cgZG9tMF90IHhl bl90OnhlbjIgewogICAgIGdldF9zeW1ib2wKICAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCiAg ICAgZ2V0X2NwdV9mZWF0dXJlc2V0Ci0gICAgeHNwbGljZV9vcAorICAgIGxpdmVwYXRjaF9vcAog fTsKIAogIyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgdGhhdCBoYXZlIGNo ZWNrcy4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggZGM1NDYxMi4uNmFlMWEyYiAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmgKQEAgLTI2MTAsMTUgKzI2MTAsMTUgQEAgY29uc3QgdWludDMyX3QgKnhjX2dl dF9mZWF0dXJlX2RlZXBfZGVwcyh1aW50MzJfdCBmZWF0dXJlKTsKIAogI2VuZGlmCiAKLWludCB4 Y194c3BsaWNlX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAgICAgICAgICAg ICBjaGFyICpuYW1lLCB1bnNpZ25lZCBjaGFyICpwYXlsb2FkLCB1aW50MzJfdCBzaXplKTsKK2lu dCB4Y19saXZlcGF0Y2hfdXBsb2FkKHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAgICAgICAgICAg ICAgICAgICAgY2hhciAqbmFtZSwgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwgdWludDMyX3Qgc2l6 ZSk7CiAKLWludCB4Y194c3BsaWNlX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAg ICAgICAgICBjaGFyICpuYW1lLAotICAgICAgICAgICAgICAgICAgIHhlbl94c3BsaWNlX3N0YXR1 c190ICpzdGF0dXMpOworaW50IHhjX2xpdmVwYXRjaF9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCisg ICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgeGVu X2xpdmVwYXRjaF9zdGF0dXNfdCAqc3RhdHVzKTsKIAogLyoKLSAqIFRoZSBoZWFydCBvZiB0aGlz IGZ1bmN0aW9uIGlzIHRvIGdldCBhbiBhcnJheSBvZiB4ZW5feHNwbGljZV9zdGF0dXNfdC4KKyAq IFRoZSBoZWFydCBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGdldCBhbiBhcnJheSBvZiB4ZW5fbGl2 ZXBhdGNoX3N0YXR1c190LgogICoKICAqIEhvd2V2ZXIgaXQgaXMgY29tcGxleCBiZWNhdXNlIGl0 IGhhcyB0byBkZWFsIHdpdGggdGhlIGh5cGVydmlzb3IKICAqIHJldHVybmluZyBzb21lIG9mIHRo ZSByZXF1ZXN0ZWQgZGF0YSBvciBkYXRhIGJlaW5nIHN0YWxlCkBAIC0yNjM4LDEwICsyNjM4LDEw IEBAIGludCB4Y194c3BsaWNlX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKICAqIG51bWJlciBvZiBl bnRyaWVzIHRoYXQgJ2luZm8nLCAnbmFtZScsIGFuZCAnbGVuJyBhcnJheXMgY2FuCiAgKiBiZSBm aWxsZWQgdXAgd2l0aC4KICAqCi0gKiBFYWNoIGVudHJ5IGluIHRoZSAnbmFtZScgYXJyYXkgaXMg ZXhwZWN0ZWQgdG8gYmUgb2YgWEVOX1hTUExJQ0VfTkFNRV9TSVpFCisgKiBFYWNoIGVudHJ5IGlu IHRoZSAnbmFtZScgYXJyYXkgaXMgZXhwZWN0ZWQgdG8gYmUgb2YgWEVOX0xJVkVQQVRDSF9OQU1F X1NJWkUKICAqIGxlbmd0aC4KICAqCi0gKiBFYWNoIGVudHJ5IGluIHRoZSAnaW5mbycgYXJyYXkg aXMgZXhwZWN0ZWQgdG8gYmUgb2YgeGVuX3hzcGxpY2Vfc3RhdHVzX3QKKyAqIEVhY2ggZW50cnkg aW4gdGhlICdpbmZvJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB4ZW5fbGl2ZXBhdGNoX3N0 YXR1c190CiAgKiBzdHJ1Y3R1cmUgc2l6ZS4KICAqCiAgKiBFYWNoIGVudHJ5IGluIHRoZSAnbGVu JyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB1aW50MzJfdCBzaXplLgpAQCAtMjY1NSwxMCAr MjY1NSwxMCBAQCBpbnQgeGNfeHNwbGljZV9nZXQoeGNfaW50ZXJmYWNlICp4Y2gsCiAgKiB3aWxs IGNvbnRhaW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaGFkIGJlZW4gc3VjY2VzZnVsbHkK ICAqIHJldHJpZXZlZCAoaWYgYW55KS4KICAqLwotaW50IHhjX3hzcGxpY2VfbGlzdCh4Y19pbnRl cmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50IHN0YXJ0LAotICAgICAg ICAgICAgICAgICAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCAqaW5mbywgY2hhciAqbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmxlbiwgdW5zaWduZWQgaW50ICpkb25lLAotICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmxlZnQpOworaW50IHhjX2xpdmVwYXRjaF9s aXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3Rh cnQsCisgICAgICAgICAgICAgICAgICAgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCAqaW5mbywg Y2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbGVuLCB1bnNpZ25l ZCBpbnQgKmRvbmUsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpsZWZ0KTsK IAogLyoKICAqIFRoZSBvcGVyYXRpb25zIGFyZSBhc3luY2hyb25vdXMgYW5kIHRoZSBoeXBlcnZp c29yIG1heSB0YWtlIGEgd2hpbGUKQEAgLTI2NjYsMTAgKzI2NjYsMTAgQEAgaW50IHhjX3hzcGxp Y2VfbGlzdCh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50 IHN0YXJ0LAogICogb3BlcmF0aW9uIGlmIGl0IGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQgd2l0aGlu IHRoZSBzcGVjaWZpZWQgdGltZQogICogKGluIG1zKS4gVmFsdWUgb2YgMCBtZWFucyBsZXQgaHlw ZXJ2aXNvciBkZWNpZGUgdGhlIGJlc3QgdGltZW91dC4KICAqLwotaW50IHhjX3hzcGxpY2VfYXBw bHkoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOwotaW50 IHhjX3hzcGxpY2VfcmV2ZXJ0KHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJf dCB0aW1lb3V0KTsKLWludCB4Y194c3BsaWNlX3VubG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwgY2hh ciAqbmFtZSwgdWludDMyX3QgdGltZW91dCk7Ci1pbnQgeGNfeHNwbGljZV9yZXBsYWNlKHhjX2lu dGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KTsKK2ludCB4Y19saXZl cGF0Y2hfYXBwbHkoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVv dXQpOworaW50IHhjX2xpdmVwYXRjaF9yZXZlcnQoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5h bWUsIHVpbnQzMl90IHRpbWVvdXQpOworaW50IHhjX2xpdmVwYXRjaF91bmxvYWQoeGNfaW50ZXJm YWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOworaW50IHhjX2xpdmVwYXRj aF9yZXBsYWNlKHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0 KTsKIAogLyogQ29tcGF0IHNoaW1zICovCiAjaW5jbHVkZSAieGVuY3RybF9jb21wYXQuaCIKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpp bmRleCBkNzNmNjIyLi4wNmU5MGRlIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNjLmMK KysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC02OTYsMTYgKzY5NiwxNiBAQCBpbnQgeGNf aHZtX2luamVjdF90cmFwKAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHhjX3hzcGxpY2VfdXBs b2FkKHhjX2ludGVyZmFjZSAqeGNoLAotICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwKLSAgICAgICAg ICAgICAgICAgICAgICB1aW50MzJfdCBzaXplKQoraW50IHhjX2xpdmVwYXRjaF91cGxvYWQoeGNf aW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF5bG9hZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IHNpemUpCiB7CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVf U1lTQ1RMOwogICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihjaGFyLCBsb2NhbCk7CiAgICAg REVDTEFSRV9IWVBFUkNBTExfQk9VTkNFKG5hbWUsIDAgLyogbGF0ZXIgKi8sIFhDX0hZUEVSQ0FM TF9CVUZGRVJfQk9VTkNFX0lOKTsKLSAgICB4ZW5feHNwbGljZV9uYW1lX3QgZGVmX25hbWUgPSB7 IC5wYWQgPSB7IDAsIDAsIDAgfSB9OworICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IGRlZl9uYW1l ID0geyAucGFkID0geyAwLCAwLCAwIH0gfTsKIAogICAgIGlmICggIW5hbWUgfHwgIXBheWxvYWQg KQogICAgIHsKQEAgLTcxNCw3ICs3MTQsNyBAQCBpbnQgeGNfeHNwbGljZV91cGxvYWQoeGNfaW50 ZXJmYWNlICp4Y2gsCiAgICAgfQogCiAgICAgZGVmX25hbWUuc2l6ZSA9IHN0cmxlbihuYW1lKSAr IDE7Ci0gICAgaWYgKCBkZWZfbmFtZS5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9TSVpFICkKKyAg ICBpZiAoIGRlZl9uYW1lLnNpemUgPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewog ICAgICAgICBlcnJubyA9IEVJTlZBTDsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNzMzLDE0ICs3 MzMsMTQgQEAgaW50IHhjX3hzcGxpY2VfdXBsb2FkKHhjX2ludGVyZmFjZSAqeGNoLAogICAgIH0K ICAgICBtZW1jcHkobG9jYWwsIHBheWxvYWQsIHNpemUpOwogCi0gICAgc3lzY3RsLmNtZCA9IFhF Tl9TWVNDVExfeHNwbGljZV9vcDsKLSAgICBzeXNjdGwudS54c3BsaWNlLmNtZCA9IFhFTl9TWVND VExfWFNQTElDRV9VUExPQUQ7Ci0gICAgc3lzY3RsLnUueHNwbGljZS5wYWQgPSAwOwotICAgIHN5 c2N0bC51LnhzcGxpY2UudS51cGxvYWQuc2l6ZSA9IHNpemU7Ci0gICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUoc3lzY3RsLnUueHNwbGljZS51LnVwbG9hZC5wYXlsb2FkLCBsb2NhbCk7CisgICAgc3lz Y3RsLmNtZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5c2N0bC51LmxpdmVwYXRj aC5jbWQgPSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQ7CisgICAgc3lzY3RsLnUubGl2ZXBh dGNoLnBhZCA9IDA7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUudXBsb2FkLnNpemUgPSBzaXpl OworICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51LnVwbG9hZC5w YXlsb2FkLCBsb2NhbCk7CiAKLSAgICBzeXNjdGwudS54c3BsaWNlLnUudXBsb2FkLm5hbWUgPSBk ZWZfbmFtZTsKLSAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS54c3BsaWNlLnUudXBs b2FkLm5hbWUubmFtZSwgbmFtZSk7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUudXBsb2FkLm5h bWUgPSBkZWZfbmFtZTsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS5saXZlcGF0 Y2gudS51cGxvYWQubmFtZS5uYW1lLCBuYW1lKTsKIAogICAgIHJjID0gZG9fc3lzY3RsKHhjaCwg JnN5c2N0bCk7CiAKQEAgLTc1MCwxNCArNzUwLDE0IEBAIGludCB4Y194c3BsaWNlX3VwbG9hZCh4 Y19pbnRlcmZhY2UgKnhjaCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4Y194c3BsaWNlX2dl dCh4Y19pbnRlcmZhY2UgKnhjaCwKLSAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAotICAg ICAgICAgICAgICAgICAgIHhlbl94c3BsaWNlX3N0YXR1c190ICpzdGF0dXMpCitpbnQgeGNfbGl2 ZXBhdGNoX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIg Km5hbWUsCisgICAgICAgICAgICAgICAgICAgICB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190ICpzdGF0 dXMpCiB7CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVfU1lTQ1RMOwogICAgIERFQ0xBUkVfSFlQ RVJDQUxMX0JPVU5DRShuYW1lLCAwIC8qYWRqdXN0IGxhdGVyICovLCBYQ19IWVBFUkNBTExfQlVG RkVSX0JPVU5DRV9JTik7Ci0gICAgeGVuX3hzcGxpY2VfbmFtZV90IGRlZl9uYW1lID0geyAucGFk ID0geyAwLCAwLCAwIH0gfTsKKyAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBkZWZfbmFtZSA9IHsg LnBhZCA9IHsgMCwgMCwgMCB9IH07CiAKICAgICBpZiAoICFuYW1lICkKICAgICB7CkBAIC03NjYs NyArNzY2LDcgQEAgaW50IHhjX3hzcGxpY2VfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICAgIH0K IAogICAgIGRlZl9uYW1lLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwotICAgIGlmICggZGVmX25h bWUuc2l6ZSA+IFhFTl9YU1BMSUNFX05BTUVfU0laRSApCisgICAgaWYgKCBkZWZfbmFtZS5zaXpl ID4gWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUgKQogICAgIHsKICAgICAgICAgZXJybm8gPSBFSU5W QUw7CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTc3NywyNyArNzc3LDI3IEBAIGludCB4Y194c3Bs aWNlX2dldCh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICBpZiAoIHhjX2h5cGVyY2FsbF9ib3VuY2Vf cHJlKHhjaCwgbmFtZSkgKQogICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBzeXNjdGwuY21kID0g WEVOX1NZU0NUTF94c3BsaWNlX29wOwotICAgIHN5c2N0bC51LnhzcGxpY2UuY21kID0gWEVOX1NZ U0NUTF9YU1BMSUNFX0dFVDsKLSAgICBzeXNjdGwudS54c3BsaWNlLnBhZCA9IDA7CisgICAgc3lz Y3RsLmNtZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5c2N0bC51LmxpdmVwYXRj aC5jbWQgPSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQ7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNo LnBhZCA9IDA7CiAKLSAgICBzeXNjdGwudS54c3BsaWNlLnUuZ2V0LnN0YXR1cy5zdGF0ZSA9IDA7 Ci0gICAgc3lzY3RsLnUueHNwbGljZS51LmdldC5zdGF0dXMucmMgPSAwOworICAgIHN5c2N0bC51 LmxpdmVwYXRjaC51LmdldC5zdGF0dXMuc3RhdGUgPSAwOworICAgIHN5c2N0bC51LmxpdmVwYXRj aC51LmdldC5zdGF0dXMucmMgPSAwOwogCi0gICAgc3lzY3RsLnUueHNwbGljZS51LmdldC5uYW1l ID0gZGVmX25hbWU7Ci0gICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUueHNwbGljZS51 LmdldC5uYW1lLm5hbWUsIG5hbWUpOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51LmdldC5uYW1l ID0gZGVmX25hbWU7CisgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUubGl2ZXBhdGNo LnUuZ2V0Lm5hbWUubmFtZSwgbmFtZSk7CiAKICAgICByYyA9IGRvX3N5c2N0bCh4Y2gsICZzeXNj dGwpOwogCiAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgbmFtZSk7CiAKLSAgICBt ZW1jcHkoc3RhdHVzLCAmc3lzY3RsLnUueHNwbGljZS51LmdldC5zdGF0dXMsIHNpemVvZigqc3Rh dHVzKSk7CisgICAgbWVtY3B5KHN0YXR1cywgJnN5c2N0bC51LmxpdmVwYXRjaC51LmdldC5zdGF0 dXMsIHNpemVvZigqc3RhdHVzKSk7CiAKICAgICByZXR1cm4gcmM7CiB9CiAKIC8qCi0gKiBUaGUg aGVhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZXQgYW4gYXJyYXkgb2YgeGVuX3hzcGxpY2Vf c3RhdHVzX3QuCisgKiBUaGUgaGVhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZXQgYW4gYXJy YXkgb2YgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdC4KICAqCiAgKiBIb3dldmVyIGl0IGlzIGNvbXBs ZXggYmVjYXVzZSBpdCBoYXMgdG8gZGVhbCB3aXRoIHRoZSBoeXBlcnZpc29yCiAgKiByZXR1cm5p bmcgc29tZSBvZiB0aGUgcmVxdWVzdGVkIGRhdGEgb3IgZGF0YSBiZWluZyBzdGFsZQpAQCAtODE3 LDEwICs4MTcsMTAgQEAgaW50IHhjX3hzcGxpY2VfZ2V0KHhjX2ludGVyZmFjZSAqeGNoLAogICog bnVtYmVyIG9mIGVudHJpZXMgdGhhdCAnaW5mbycsICduYW1lJywgYW5kICdsZW4nIGFycmF5cyBj YW4KICAqIGJlIGZpbGxlZCB1cCB3aXRoLgogICoKLSAqIEVhY2ggZW50cnkgaW4gdGhlICduYW1l JyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiBYRU5fWFNQTElDRV9OQU1FX1NJWkUKKyAqIEVh Y2ggZW50cnkgaW4gdGhlICduYW1lJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiBYRU5fTElW RVBBVENIX05BTUVfU0laRQogICogbGVuZ3RoLgogICoKLSAqIEVhY2ggZW50cnkgaW4gdGhlICdp bmZvJyBhcnJheSBpcyBleHBlY3RlZCB0byBiZSBvZiB4ZW5feHNwbGljZV9zdGF0dXNfdAorICog RWFjaCBlbnRyeSBpbiB0aGUgJ2luZm8nIGFycmF5IGlzIGV4cGVjdGVkIHRvIGJlIG9mIHhlbl9s aXZlcGF0Y2hfc3RhdHVzX3QKICAqIHN0cnVjdHVyZSBzaXplLgogICoKICAqIEVhY2ggZW50cnkg aW4gdGhlICdsZW4nIGFycmF5IGlzIGV4cGVjdGVkIHRvIGJlIG9mIHVpbnQzMl90IHNpemUuCkBA IC04MzQsMTEgKzgzNCwxMSBAQCBpbnQgeGNfeHNwbGljZV9nZXQoeGNfaW50ZXJmYWNlICp4Y2gs CiAgKiB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaGFkIGJlZW4gc3Vj Y2VzZnVsbHkKICAqIHJldHJpZXZlZCAoaWYgYW55KS4KICAqLwotaW50IHhjX3hzcGxpY2VfbGlz dCh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IG1heCwgdW5zaWduZWQgaW50IHN0YXJ0 LAotICAgICAgICAgICAgICAgICAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCAqaW5mbywKLSAgICAg ICAgICAgICAgICAgICAgY2hhciAqbmFtZSwgdWludDMyX3QgKmxlbiwKLSAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50ICpkb25lLAotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKmxlZnQpCitpbnQgeGNfbGl2ZXBhdGNoX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2ln bmVkIGludCBtYXgsIHVuc2lnbmVkIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICB4 ZW5fbGl2ZXBhdGNoX3N0YXR1c190ICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGNoYXIg Km5hbWUsIHVpbnQzMl90ICpsZW4sCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 ICpkb25lLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbGVmdCkKIHsKICAg ICBpbnQgcmM7CiAgICAgREVDTEFSRV9TWVNDVEw7CkBAIC04NTcsMTYgKzg1NywxNiBAQCBpbnQg eGNfeHNwbGljZV9saXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNp Z25lZCBpbnQgc3RhcnQsCiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBzeXNjdGwu Y21kID0gWEVOX1NZU0NUTF94c3BsaWNlX29wOwotICAgIHN5c2N0bC51LnhzcGxpY2UuY21kID0g WEVOX1NZU0NUTF9YU1BMSUNFX0xJU1Q7Ci0gICAgc3lzY3RsLnUueHNwbGljZS5wYWQgPSAwOwot ICAgIHN5c2N0bC51LnhzcGxpY2UudS5saXN0LnZlcnNpb24gPSAwOwotICAgIHN5c2N0bC51Lnhz cGxpY2UudS5saXN0LmlkeCA9IHN0YXJ0OwotICAgIHN5c2N0bC51LnhzcGxpY2UudS5saXN0LnBh ZCA9IDA7CisgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOworICAgIHN5 c2N0bC51LmxpdmVwYXRjaC5jbWQgPSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUOworICAgIHN5 c2N0bC51LmxpdmVwYXRjaC5wYWQgPSAwOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3Qu dmVyc2lvbiA9IDA7CisgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUubGlzdC5pZHggPSBzdGFydDsK KyAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LnBhZCA9IDA7CiAKICAgICBtYXhfYmF0Y2hf c3ogPSBtYXg7CiAgICAgLyogQ29udmllbmNlIHZhbHVlLiAqLwotICAgIHN6ID0gc2l6ZW9mKCpu YW1lKSAqIFhFTl9YU1BMSUNFX05BTUVfU0laRTsKKyAgICBzeiA9IHNpemVvZigqbmFtZSkgKiBY RU5fTElWRVBBVENIX05BTUVfU0laRTsKICAgICAqZG9uZSA9IDA7CiAgICAgKmxlZnQgPSAwOwog ICAgIGRvIHsKQEAgLTg4Niw3ICs4ODYsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhjX2ludGVy ZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAKICAgICAg ICAgbnIgPSBtaW4obWF4IC0gKmRvbmUsIG1heF9iYXRjaF9zeik7CiAKLSAgICAgICAgc3lzY3Rs LnUueHNwbGljZS51Lmxpc3QubnIgPSBucjsKKyAgICAgICAgc3lzY3RsLnUubGl2ZXBhdGNoLnUu bGlzdC5uciA9IG5yOwogICAgICAgICAvKiBGaXggdGhlIHNpemUgKG1heSB2YXJ5IGJldHdlZW4g aHlwZXJjYWxscykuICovCiAgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUoaW5mbywg bnIgKiBzaXplb2YoKmluZm8pKTsKICAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShu YW1lLCBuciAqIG5yKTsKQEAgLTkwOCw5ICs5MDgsOSBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhj X2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAg ICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgc2V0X3hlbl9n dWVzdF9oYW5kbGUoc3lzY3RsLnUueHNwbGljZS51Lmxpc3Quc3RhdHVzLCBpbmZvKTsKLSAgICAg ICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUueHNwbGljZS51Lmxpc3QubmFtZSwgbmFt ZSk7Ci0gICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LnhzcGxpY2UudS5saXN0 LmxlbiwgbGVuKTsKKyAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUoc3lzY3RsLnUubGl2ZXBh dGNoLnUubGlzdC5zdGF0dXMsIGluZm8pOworICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShz eXNjdGwudS5saXZlcGF0Y2gudS5saXN0Lm5hbWUsIG5hbWUpOworICAgICAgICBzZXRfeGVuX2d1 ZXN0X2hhbmRsZShzeXNjdGwudS5saXZlcGF0Y2gudS5saXN0LmxlbiwgbGVuKTsKIAogICAgICAg ICByYyA9IGRvX3N5c2N0bCh4Y2gsICZzeXNjdGwpOwogICAgICAgICAvKgpAQCAtOTMzLDkgKzkz Myw5IEBAIGludCB4Y194c3BsaWNlX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGlu dCBtYXgsIHVuc2lnbmVkIGludCBzdGFydCwKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAg IGlmICggIXZlcnNpb24gKQotICAgICAgICAgICAgdmVyc2lvbiA9IHN5c2N0bC51LnhzcGxpY2Uu dS5saXN0LnZlcnNpb247CisgICAgICAgICAgICB2ZXJzaW9uID0gc3lzY3RsLnUubGl2ZXBhdGNo LnUubGlzdC52ZXJzaW9uOwogCi0gICAgICAgIGlmICggc3lzY3RsLnUueHNwbGljZS51Lmxpc3Qu dmVyc2lvbiAhPSB2ZXJzaW9uICkKKyAgICAgICAgaWYgKCBzeXNjdGwudS5saXZlcGF0Y2gudS5s aXN0LnZlcnNpb24gIT0gdmVyc2lvbiApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIFdlIGNv dWxkIG1ha2UgdGhpcyBjb25maWd1cmFibGUgYXMgcGFyYW1ldGVyPyAqLwogICAgICAgICAgICAg aWYgKCByZXRyaWVzKysgPiAzICkKQEAgLTk0NSw3ICs5NDUsNyBAQCBpbnQgeGNfeHNwbGljZV9s aXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3Rh cnQsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAq ZG9uZSA9IDA7IC8qIFJldHJ5IGZyb20gc2NyYXRjaC4gKi8KLSAgICAgICAgICAgIHZlcnNpb24g PSBzeXNjdGwudS54c3BsaWNlLnUubGlzdC52ZXJzaW9uOworICAgICAgICAgICAgdmVyc2lvbiA9 IHN5c2N0bC51LmxpdmVwYXRjaC51Lmxpc3QudmVyc2lvbjsKICAgICAgICAgICAgIGFkanVzdCA9 IDE7IC8qIEFuZCBtYWtlIHN1cmUgd2UgY29udGludWUgaW4gdGhlIGxvb3AuICovCiAgICAgICAg ICAgICAvKiBObyBtZW1vcnkgbGVha3MuICovCiAgICAgICAgICAgICB4Y19oeXBlcmNhbGxfYm91 bmNlX3Bvc3QoeGNoLCBpbmZvKTsKQEAgLTk2MSw3ICs5NjEsNyBAQCBpbnQgeGNfeHNwbGljZV9s aXN0KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3Rh cnQsCiAgICAgICAgICAgICByYyA9IC0xOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K LSAgICAgICAgKmxlZnQgPSBzeXNjdGwudS54c3BsaWNlLnUubGlzdC5ucjsgLyogVG90YWwgcmVt YWluaW5nIGNvdW50LiAqLworICAgICAgICAqbGVmdCA9IHN5c2N0bC51LmxpdmVwYXRjaC51Lmxp c3QubnI7IC8qIFRvdGFsIHJlbWFpbmluZyBjb3VudC4gKi8KICAgICAgICAgLyogQ29weSBvbmx5 IHVwICdyYycgb2YgZGF0YScgLSB3ZSBjb3VsZCBhZGQgJ21pbihyYyxucikgaWYgZGVzaXJlZC4g Ki8KICAgICAgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0laRShpbmZvLCAocmMgKiBzaXplb2Yo KmluZm8pKSk7CiAgICAgICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJWkUobmFtZSwgKHJjICog c3opKTsKQEAgLTk3Myw3ICs5NzMsNyBAQCBpbnQgeGNfeHNwbGljZV9saXN0KHhjX2ludGVyZmFj ZSAqeGNoLCB1bnNpZ25lZCBpbnQgbWF4LCB1bnNpZ25lZCBpbnQgc3RhcnQsCiAgICAgICAgIC8q IEFuZCB1cGRhdGUgaG93IG1hbnkgZWxlbWVudHMgb2YgaW5mbyB3ZSBoYXZlIGNvcGllZCBpbnRv LiAqLwogICAgICAgICAqZG9uZSArPSByYzsKICAgICAgICAgLyogVXBkYXRlIGlkeC4gKi8KLSAg ICAgICAgc3lzY3RsLnUueHNwbGljZS51Lmxpc3QuaWR4ID0gKmRvbmU7CisgICAgICAgIHN5c2N0 bC51LmxpdmVwYXRjaC51Lmxpc3QuaWR4ID0gKmRvbmU7CiAgICAgfSB3aGlsZSAoIGFkanVzdCB8 fCAoKmRvbmUgPCBtYXggJiYgKmxlZnQgIT0gMCkgKTsKIAogICAgIGlmICggcmMgPCAwICkKQEAg LTk4NiwyMCArOTg2LDIwIEBAIGludCB4Y194c3BsaWNlX2xpc3QoeGNfaW50ZXJmYWNlICp4Y2gs IHVuc2lnbmVkIGludCBtYXgsIHVuc2lnbmVkIGludCBzdGFydCwKICAgICByZXR1cm4gcmMgPiAw ID8gMCA6IHJjOwogfQogCi1zdGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlvbih4Y19pbnRlcmZh Y2UgKnhjaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYWN0aW9uLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdGltZW91dCkKK3N0YXRpYyBpbnQgX3hjX2xp dmVwYXRjaF9hY3Rpb24oeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBhY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IHRpbWVvdXQpCiB7CiAgICAgaW50IHJjOwogICAgIERFQ0xBUkVfU1lTQ1RMOwogICAgIC8q IFRoZSBzaXplIGlzIGZpZ3VyZWQgb3V0IHdoZW4gd2Ugc3RybGVuKG5hbWUpICovCiAgICAgREVD TEFSRV9IWVBFUkNBTExfQk9VTkNFKG5hbWUsIDAsIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNF X0lOKTsKLSAgICB4ZW5feHNwbGljZV9uYW1lX3QgZGVmX25hbWUgPSB7IC5wYWQgPSB7IDAsIDAs IDAgfSB9OworICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IGRlZl9uYW1lID0geyAucGFkID0geyAw LCAwLCAwIH0gfTsKIAogICAgIGRlZl9uYW1lLnNpemUgPSBzdHJsZW4obmFtZSkgKyAxOwogCi0g ICAgaWYgKCBkZWZfbmFtZS5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9TSVpFICkKKyAgICBpZiAo IGRlZl9uYW1lLnNpemUgPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewogICAgICAg ICBlcnJubyA9IEVJTlZBTDsKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTAxMCwxNCArMTAxMCwx NCBAQCBzdGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlvbih4Y19pbnRlcmZhY2UgKnhjaCwKICAg ICBpZiAoIHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgbmFtZSkgKQogICAgICAgICByZXR1 cm4gLTE7CiAKLSAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF94c3BsaWNlX29wOwotICAgIHN5 c2N0bC51LnhzcGxpY2UuY21kID0gWEVOX1NZU0NUTF9YU1BMSUNFX0FDVElPTjsKLSAgICBzeXNj dGwudS54c3BsaWNlLnBhZCA9IDA7Ci0gICAgc3lzY3RsLnUueHNwbGljZS51LmFjdGlvbi5jbWQg PSBhY3Rpb247Ci0gICAgc3lzY3RsLnUueHNwbGljZS51LmFjdGlvbi50aW1lb3V0ID0gdGltZW91 dDsKKyAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3A7CisgICAgc3lzY3Rs LnUubGl2ZXBhdGNoLmNtZCA9IFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElPTjsKKyAgICBzeXNj dGwudS5saXZlcGF0Y2gucGFkID0gMDsKKyAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5hY3Rpb24u Y21kID0gYWN0aW9uOworICAgIHN5c2N0bC51LmxpdmVwYXRjaC51LmFjdGlvbi50aW1lb3V0ID0g dGltZW91dDsKIAotICAgIHN5c2N0bC51LnhzcGxpY2UudS5hY3Rpb24ubmFtZSA9IGRlZl9uYW1l OwotICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LnhzcGxpY2UudS5hY3Rpb24ubmFt ZS5uYW1lLCBuYW1lKTsKKyAgICBzeXNjdGwudS5saXZlcGF0Y2gudS5hY3Rpb24ubmFtZSA9IGRl Zl9uYW1lOworICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKHN5c2N0bC51LmxpdmVwYXRjaC51LmFj dGlvbi5uYW1lLm5hbWUsIG5hbWUpOwogCiAgICAgcmMgPSBkb19zeXNjdGwoeGNoLCAmc3lzY3Rs KTsKIApAQCAtMTAyNiwyNCArMTAyNiwyNCBAQCBzdGF0aWMgaW50IF94Y194c3BsaWNlX2FjdGlv bih4Y19pbnRlcmZhY2UgKnhjaCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4Y194c3BsaWNl X2FwcGx5KHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0KQor aW50IHhjX2xpdmVwYXRjaF9hcHBseSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFtZSwgdWlu dDMyX3QgdGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hzcGxpY2VfYWN0aW9uKHhjaCwgbmFt ZSwgWFNQTElDRV9BQ1RJT05fQVBQTFksIHRpbWVvdXQpOworICAgIHJldHVybiBfeGNfbGl2ZXBh dGNoX2FjdGlvbih4Y2gsIG5hbWUsIExJVkVQQVRDSF9BQ1RJT05fQVBQTFksIHRpbWVvdXQpOwog fQogCi1pbnQgeGNfeHNwbGljZV9yZXZlcnQoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUs IHVpbnQzMl90IHRpbWVvdXQpCitpbnQgeGNfbGl2ZXBhdGNoX3JldmVydCh4Y19pbnRlcmZhY2Ug KnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3QgdGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hz cGxpY2VfYWN0aW9uKHhjaCwgbmFtZSwgWFNQTElDRV9BQ1RJT05fUkVWRVJULCB0aW1lb3V0KTsK KyAgICByZXR1cm4gX3hjX2xpdmVwYXRjaF9hY3Rpb24oeGNoLCBuYW1lLCBMSVZFUEFUQ0hfQUNU SU9OX1JFVkVSVCwgdGltZW91dCk7CiB9CiAKLWludCB4Y194c3BsaWNlX3VubG9hZCh4Y19pbnRl cmZhY2UgKnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3QgdGltZW91dCkKK2ludCB4Y19saXZlcGF0 Y2hfdW5sb2FkKHhjX2ludGVyZmFjZSAqeGNoLCBjaGFyICpuYW1lLCB1aW50MzJfdCB0aW1lb3V0 KQogewotICAgIHJldHVybiBfeGNfeHNwbGljZV9hY3Rpb24oeGNoLCBuYW1lLCBYU1BMSUNFX0FD VElPTl9VTkxPQUQsIHRpbWVvdXQpOworICAgIHJldHVybiBfeGNfbGl2ZXBhdGNoX2FjdGlvbih4 Y2gsIG5hbWUsIExJVkVQQVRDSF9BQ1RJT05fVU5MT0FELCB0aW1lb3V0KTsKIH0KIAotaW50IHhj X3hzcGxpY2VfcmVwbGFjZSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hhciAqbmFtZSwgdWludDMyX3Qg dGltZW91dCkKK2ludCB4Y19saXZlcGF0Y2hfcmVwbGFjZSh4Y19pbnRlcmZhY2UgKnhjaCwgY2hh ciAqbmFtZSwgdWludDMyX3QgdGltZW91dCkKIHsKLSAgICByZXR1cm4gX3hjX3hzcGxpY2VfYWN0 aW9uKHhjaCwgbmFtZSwgWFNQTElDRV9BQ1RJT05fUkVQTEFDRSwgdGltZW91dCk7CisgICAgcmV0 dXJuIF94Y19saXZlcGF0Y2hfYWN0aW9uKHhjaCwgbmFtZSwgTElWRVBBVENIX0FDVElPTl9SRVBM QUNFLCB0aW1lb3V0KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2MvTWFrZWZpbGUg Yi90b29scy9taXNjL01ha2VmaWxlCmluZGV4IDNhNWY4NDIuLmNlZTJiOTkgMTAwNjQ0Ci0tLSBh L3Rvb2xzL21pc2MvTWFrZWZpbGUKKysrIGIvdG9vbHMvbWlzYy9NYWtlZmlsZQpAQCAtMzIsNyAr MzIsNyBAQCBJTlNUQUxMX1NCSU4gICAgICAgICAgICAgICAgICAgKz0geGVubG9ja3Byb2YKIElO U1RBTExfU0JJTiAgICAgICAgICAgICAgICAgICArPSB4ZW5wZXJmCiBJTlNUQUxMX1NCSU4gICAg ICAgICAgICAgICAgICAgKz0geGVucG0KIElOU1RBTExfU0JJTiAgICAgICAgICAgICAgICAgICAr PSB4ZW53YXRjaGRvZ2QKLUlOU1RBTExfU0JJTiAgICAgICAgICAgICAgICAgICArPSB4ZW4teHNw bGljZQorSU5TVEFMTF9TQklOICAgICAgICAgICAgICAgICAgICs9IHhlbi1saXZlcGF0Y2gKIElO U1RBTExfU0JJTiArPSAkKElOU1RBTExfU0JJTi15KQogCiAjIEV2ZXJ5dGhpbmcgdG8gYmUgaW5z dGFsbGVkIGluIGEgcHJpdmF0ZSBiaW4vCkBAIC0xMDQsNyArMTA0LDcgQEAgeGVuLW1mbmR1bXA6 IHhlbi1tZm5kdW1wLm8KIHhlbndhdGNoZG9nZDogeGVud2F0Y2hkb2dkLm8KIAkkKENDKSAkKExE RkxBR1MpIC1vICRAICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1MpCiAK LXhlbi14c3BsaWNlOiB4ZW4teHNwbGljZS5vCit4ZW4tbGl2ZXBhdGNoOiB4ZW4tbGl2ZXBhdGNo Lm8KIAkkKENDKSAkKExERkxBR1MpIC1vICRAICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQ RU5EX0xERkxBR1MpCiAKIHhlbi1sb3dtZW1kOiB4ZW4tbG93bWVtZC5vCmRpZmYgLS1naXQgYS90 b29scy9taXNjL3hlbi14c3BsaWNlLmMgYi90b29scy9taXNjL3hlbi1saXZlcGF0Y2guYwpzaW1p bGFyaXR5IGluZGV4IDg2JQpyZW5hbWUgZnJvbSB0b29scy9taXNjL3hlbi14c3BsaWNlLmMKcmVu YW1lIHRvIHRvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jCmluZGV4IGRkYWEwNzkuLjI4ZjMzOWEg MTAwNjQ0Ci0tLSBhL3Rvb2xzL21pc2MveGVuLXhzcGxpY2UuYworKysgYi90b29scy9taXNjL3hl bi1saXZlcGF0Y2guYwpAQCAtMjAsOCArMjAsOCBAQCBzdGF0aWMgeGNfaW50ZXJmYWNlICp4Y2g7 CiB2b2lkIHNob3dfaGVscCh2b2lkKQogewogICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAg ICAgInhlbi14c3BsaWNlOiBYc3BsaWNlIHRlc3QgdG9vbFxuIgotICAgICAgICAgICAgIlVzYWdl OiB4ZW4teHNwbGljZSA8Y29tbWFuZD4gW2FyZ3NdXG4iCisgICAgICAgICAgICAieGVuLWxpdmVw YXRjaDogbGl2ZSBwYXRjaGluZyB0ZXN0IHRvb2xcbiIKKyAgICAgICAgICAgICJVc2FnZTogeGVu LWxpdmVwYXRjaCA8Y29tbWFuZD4gW2FyZ3NdXG4iCiAgICAgICAgICAgICAiIDxuYW1lPiBBbiB1 bmlxdWUgbmFtZSBvZiBwYXlsb2FkLiBVcCB0byAlZCBjaGFyYWN0ZXJzLlxuIgogICAgICAgICAg ICAgIkNvbW1hbmRzOlxuIgogICAgICAgICAgICAgIiAgaGVscCAgICAgICAgICAgICAgICAgICBk aXNwbGF5IHRoaXMgaGVscFxuIgpAQCAtMzMsNyArMzMsNyBAQCB2b2lkIHNob3dfaGVscCh2b2lk KQogICAgICAgICAgICAgIiAgdW5sb2FkIDxuYW1lPiAgICAgICAgICB1bmxvYWQgbmFtZSA8bmFt ZT4gcGF0Y2guXG4iCiAgICAgICAgICAgICAiICBsb2FkICA8ZmlsZT4gICAgICAgICAgIHVwbG9h ZCBhbmQgYXBwbHkgPGZpbGU+LlxuIgogICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lIGlzIHRoZSA8ZmlsZT4gbmFtZVxuIiwKLSAgICAgICAgICAgIFhFTl9YU1BMSUNF X05BTUVfU0laRSk7CisgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0laRSk7CiB9CiAK IC8qIHdyYXBwZXIgZnVuY3Rpb24gKi8KQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGludCBoZWxw X2Z1bmMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRl MnN0cih1bnNpZ25lZCBpbnQgc3RhdGUpCiB7Ci0jZGVmaW5lIFNUQVRFKHgpIFtYU1BMSUNFX1NU QVRFXyMjeF0gPSAjeAorI2RlZmluZSBTVEFURSh4KSBbTElWRVBBVENIX1NUQVRFXyMjeF0gPSAj eAogICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0gewogICAgICAgICAgICAg U1RBVEUoQ0hFQ0tFRCksCiAgICAgICAgICAgICBTVEFURShBUFBMSUVEKSwKQEAgLTY0LDcgKzY0 LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlMnN0cih1bnNpZ25lZCBpbnQgc3RhdGUpCiBz dGF0aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogICAgIHVuc2ln bmVkIGludCBpZHgsIGRvbmUsIGxlZnQsIGk7Ci0gICAgeGVuX3hzcGxpY2Vfc3RhdHVzX3QgKmlu Zm8gPSBOVUxMOworICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QgKmluZm8gPSBOVUxMOwogICAg IGNoYXIgKm5hbWUgPSBOVUxMOwogICAgIHVpbnQzMl90ICpsZW4gPSBOVUxMOwogICAgIGludCBy YyA9IEVOT01FTTsKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGludCBsaXN0X2Z1bmMoaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKICAgICBpbmZvID0gbWFsbG9jKHNpemVvZigqaW5mbykgKiBNQVhf TEVOKTsKICAgICBpZiAoICFpbmZvICkKICAgICAgICAgcmV0dXJuIHJjOwotICAgIG5hbWUgPSBt YWxsb2Moc2l6ZW9mKCpuYW1lKSAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSAqIE1BWF9MRU4pOwor ICAgIG5hbWUgPSBtYWxsb2Moc2l6ZW9mKCpuYW1lKSAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpF ICogTUFYX0xFTik7CiAgICAgaWYgKCAhbmFtZSApCiAgICAgewogICAgICAgICBmcmVlKGluZm8p OwpAQCAtOTcsOSArOTcsOSBAQCBzdGF0aWMgaW50IGxpc3RfZnVuYyhpbnQgYXJnYywgY2hhciAq YXJndltdKQogICAgICAgICBkb25lID0gMDsKICAgICAgICAgLyogVGhlIG1lbXNldCBpcyBkb25l IHRvIGNhdGNoIGVycm9ycy4gKi8KICAgICAgICAgbWVtc2V0KGluZm8sICdBJywgc2l6ZW9mKCpp bmZvKSAqIE1BWF9MRU4pOwotICAgICAgICBtZW1zZXQobmFtZSwgJ0InLCBzaXplb2YoKm5hbWUp ICogTUFYX0xFTiAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSk7CisgICAgICAgIG1lbXNldChuYW1l LCAnQicsIHNpemVvZigqbmFtZSkgKiBNQVhfTEVOICogWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUp OwogICAgICAgICBtZW1zZXQobGVuLCAnQycsIHNpemVvZigqbGVuKSAqIE1BWF9MRU4pOwotICAg ICAgICByYyA9IHhjX3hzcGxpY2VfbGlzdCh4Y2gsIE1BWF9MRU4sIGlkeCwgaW5mbywgbmFtZSwg bGVuLCAmZG9uZSwgJmxlZnQpOworICAgICAgICByYyA9IHhjX2xpdmVwYXRjaF9saXN0KHhjaCwg TUFYX0xFTiwgaWR4LCBpbmZvLCBuYW1lLCBsZW4sICZkb25lLCAmbGVmdCk7CiAgICAgICAgIGlm ICggcmMgKQogICAgICAgICB7CiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0 byBsaXN0ICVkLyVkOiAlZCglcykhXG4iLApAQCAtMTEzLDggKzExMyw4IEBAIHN0YXRpYyBpbnQg bGlzdF9mdW5jKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgICAgICBjaGFyICpzdHI7 CiAKICAgICAgICAgICAgIHN6ID0gbGVuW2ldOwotICAgICAgICAgICAgc3RyID0gbmFtZSArIChp ICogWEVOX1hTUExJQ0VfTkFNRV9TSVpFKTsKLSAgICAgICAgICAgIGZvciAoIGogPSBzejsgaiA8 IFhFTl9YU1BMSUNFX05BTUVfU0laRTsgaisrICkKKyAgICAgICAgICAgIHN0ciA9IG5hbWUgKyAo aSAqIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFKTsKKyAgICAgICAgICAgIGZvciAoIGogPSBzejsg aiA8IFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFOyBqKysgKQogICAgICAgICAgICAgICAgIHN0cltq XSA9ICdcMCc7CiAKICAgICAgICAgICAgIHByaW50ZigiJS00MHN8ICVzIiwgc3RyLCBzdGF0ZTJz dHIoaW5mb1tpXS5zdGF0ZSkpOwpAQCAtMTM2LDE0ICsxMzYsMTQgQEAgc3RhdGljIGludCBsaXN0 X2Z1bmMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHN0YXRpYyBpbnQgZ2V0X25hbWUoaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSwgY2hhciAqbmFtZSkKIHsKICAgICBzc2l6ZV90IGxlbiA9IHN0cmxl bihhcmd2WzBdKTsKLSAgICBpZiAoIGxlbiA+IFhFTl9YU1BMSUNFX05BTUVfU0laRSApCisgICAg aWYgKCBsZW4gPiBYRU5fTElWRVBBVENIX05BTUVfU0laRSApCiAgICAgewotICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIklEIE1VU1QgYmUgJWQgY2hhcmFjdGVycyFcbiIsIFhFTl9YU1BMSUNFX05B TUVfU0laRSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSUQgTVVTVCBiZSAlZCBjaGFyYWN0 ZXJzIVxuIiwgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUpOwogICAgICAgICBlcnJubyA9IEVJTlZB TDsKICAgICAgICAgcmV0dXJuIGVycm5vOwogICAgIH0KICAgICAvKiBEb24ndCB3YW50IGFueSBm dW5ueSBzdHJpbmdzIGZyb20gdGhlIHN0YWNrLiAqLwotICAgIG1lbXNldChuYW1lLCAwLCBYRU5f WFNQTElDRV9OQU1FX1NJWkUpOworICAgIG1lbXNldChuYW1lLCAwLCBYRU5fTElWRVBBVENIX05B TUVfU0laRSk7CiAgICAgc3RybmNweShuYW1lLCBhcmd2WzBdLCBsZW4pOwogICAgIHJldHVybiAw OwogfQpAQCAtMTUxLDcgKzE1MSw3IEBAIHN0YXRpYyBpbnQgZ2V0X25hbWUoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSwgY2hhciAqbmFtZSkKIHN0YXRpYyBpbnQgdXBsb2FkX2Z1bmMoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBjaGFyICpmaWxlbmFtZTsKLSAgICBjaGFyIG5hbWVbWEVO X1hTUExJQ0VfTkFNRV9TSVpFXTsKKyAgICBjaGFyIG5hbWVbWEVOX0xJVkVQQVRDSF9OQU1FX1NJ WkVdOwogICAgIGludCBmZCA9IDAsIHJjOwogICAgIHN0cnVjdCBzdGF0IGJ1ZjsKICAgICB1bnNp Z25lZCBjaGFyICpmYnVmOwpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQgdXBsb2FkX2Z1 bmMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgcmV0dXJuIGVycm5vOwogICAgIH0K ICAgICBwcmludGYoIlVwbG9hZGluZyAlcyAoJXp1IGJ5dGVzKVxuIiwgZmlsZW5hbWUsIGxlbik7 Ci0gICAgcmMgPSB4Y194c3BsaWNlX3VwbG9hZCh4Y2gsIG5hbWUsIGZidWYsIGxlbik7CisgICAg cmMgPSB4Y19saXZlcGF0Y2hfdXBsb2FkKHhjaCwgbmFtZSwgZmJ1ZiwgbGVuKTsKICAgICBpZiAo IHJjICkKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVcGxvYWQgZmFpbGVkOiAlcywgZXJyb3I6 ICVkKCVzKSFcbiIsCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGVycm5vLCBzdHJlcnJvcihl cnJubykpOwpAQCAtMjI0LDI1ICsyMjQsMjUgQEAgc3RydWN0IHsKICAgICBpbnQgKCpmdW5jdGlv bikoeGNfaW50ZXJmYWNlICp4Y2gsIGNoYXIgKm5hbWUsIHVpbnQzMl90IHRpbWVvdXQpOwogICAg IHVuc2lnbmVkIGludCBleGVjdXRlZDsgLyogSGFzIHRoZSBmdW5jdGlvbiBiZWVuIGNhbGxlZD8u ICovCiB9IGFjdGlvbl9vcHRpb25zW10gPSB7Ci0gICAgeyAgIC5hbGxvdyA9IFhTUExJQ0VfU1RB VEVfQ0hFQ0tFRCwKLSAgICAgICAgLmV4cGVjdGVkID0gWFNQTElDRV9TVEFURV9BUFBMSUVELAor ICAgIHsgICAuYWxsb3cgPSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCwKKyAgICAgICAgLmV4cGVj dGVkID0gTElWRVBBVENIX1NUQVRFX0FQUExJRUQsCiAgICAgICAgIC5uYW1lID0gImFwcGx5IiwK LSAgICAgICAgLmZ1bmN0aW9uID0geGNfeHNwbGljZV9hcHBseSwKKyAgICAgICAgLmZ1bmN0aW9u ID0geGNfbGl2ZXBhdGNoX2FwcGx5LAogICAgIH0sCi0gICAgeyAgIC5hbGxvdyA9IFhTUExJQ0Vf U1RBVEVfQVBQTElFRCwKLSAgICAgICAgLmV4cGVjdGVkID0gWFNQTElDRV9TVEFURV9DSEVDS0VE LAorICAgIHsgICAuYWxsb3cgPSBMSVZFUEFUQ0hfU1RBVEVfQVBQTElFRCwKKyAgICAgICAgLmV4 cGVjdGVkID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQsCiAgICAgICAgIC5uYW1lID0gInJldmVy dCIsCi0gICAgICAgIC5mdW5jdGlvbiA9IHhjX3hzcGxpY2VfcmV2ZXJ0LAorICAgICAgICAuZnVu Y3Rpb24gPSB4Y19saXZlcGF0Y2hfcmV2ZXJ0LAogICAgIH0sCi0gICAgeyAgIC5hbGxvdyA9IFhT UExJQ0VfU1RBVEVfQ0hFQ0tFRCwKKyAgICB7ICAgLmFsbG93ID0gTElWRVBBVENIX1NUQVRFX0NI RUNLRUQsCiAgICAgICAgIC5leHBlY3RlZCA9IC1YRU5fRU5PRU5ULAogICAgICAgICAubmFtZSA9 ICJ1bmxvYWQiLAotICAgICAgICAuZnVuY3Rpb24gPSB4Y194c3BsaWNlX3VubG9hZCwKKyAgICAg ICAgLmZ1bmN0aW9uID0geGNfbGl2ZXBhdGNoX3VubG9hZCwKICAgICB9LAotICAgIHsgICAuYWxs b3cgPSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQsCi0gICAgICAgIC5leHBlY3RlZCA9IFhTUExJQ0Vf U1RBVEVfQVBQTElFRCwKKyAgICB7ICAgLmFsbG93ID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQs CisgICAgICAgIC5leHBlY3RlZCA9IExJVkVQQVRDSF9TVEFURV9BUFBMSUVELAogICAgICAgICAu bmFtZSA9ICJyZXBsYWNlIiwKLSAgICAgICAgLmZ1bmN0aW9uID0geGNfeHNwbGljZV9yZXBsYWNl LAorICAgICAgICAuZnVuY3Rpb24gPSB4Y19saXZlcGF0Y2hfcmVwbGFjZSwKICAgICB9LAogfTsK IApAQCAtMjUzLDkgKzI1Myw5IEBAIHN0cnVjdCB7CiAKIGludCBhY3Rpb25fZnVuYyhpbnQgYXJn YywgY2hhciAqYXJndltdLCB1bnNpZ25lZCBpbnQgaWR4KQogewotICAgIGNoYXIgbmFtZVtYRU5f WFNQTElDRV9OQU1FX1NJWkVdOworICAgIGNoYXIgbmFtZVtYRU5fTElWRVBBVENIX05BTUVfU0la RV07CiAgICAgaW50IHJjLCBvcmlnaW5hbF9zdGF0ZTsKLSAgICB4ZW5feHNwbGljZV9zdGF0dXNf dCBzdGF0dXM7CisgICAgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCBzdGF0dXM7CiAgICAgdW5zaWdu ZWQgaW50IHJldHJ5ID0gMDsKIAogICAgIGlmICggYXJnYyAhPSAxICkKQEAgLTI3MSw3ICsyNzEs NyBAQCBpbnQgYWN0aW9uX2Z1bmMoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgdW5zaWduZWQgaW50 IGlkeCkKICAgICAgICAgcmV0dXJuIEVJTlZBTDsKIAogICAgIC8qIENoZWNrIGluaXRpYWwgc3Rh dHVzLiAqLwotICAgIHJjID0geGNfeHNwbGljZV9nZXQoeGNoLCBuYW1lLCAmc3RhdHVzKTsKKyAg ICByYyA9IHhjX2xpdmVwYXRjaF9nZXQoeGNoLCBuYW1lLCAmc3RhdHVzKTsKICAgICBpZiAoIHJj ICkKICAgICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZmFpbGVkIHRvIGdldCBzdGF0 dXMgJWQoJXMpIVxuIiwKQEAgLTMxMiw3ICszMTIsNyBAQCBpbnQgYWN0aW9uX2Z1bmMoaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSwgdW5zaWduZWQgaW50IGlkeCkKIAogICAgIG9yaWdpbmFsX3N0YXRl ID0gc3RhdHVzLnN0YXRlOwogICAgIGRvIHsKLSAgICAgICAgcmMgPSB4Y194c3BsaWNlX2dldCh4 Y2gsIG5hbWUsICZzdGF0dXMpOworICAgICAgICByYyA9IHhjX2xpdmVwYXRjaF9nZXQoeGNoLCBu YW1lLCAmc3RhdHVzKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAg IHJjID0gLWVycm5vOwpAQCAtNDMyLDcgKzQzMiw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgICAgIGlmICggaiA9PSBBUlJBWV9TSVpFKGFjdGlvbl9vcHRpb25zKSAp CiAgICAgICAgIHsKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5yZWNvZ25pc2VkIGNv bW1hbmQgJyVzJyAtLSB0cnkgIgotICAgICAgICAgICAgICAgICAgICIneGVuLXhzcGxpY2UgaGVs cCdcbiIsIGFyZ3ZbMV0pOworICAgICAgICAgICAgICAgICAgICIneGVuLWxpdmVwYXRjaCBoZWxw J1xuIiwgYXJndlsxXSk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgIH0g ZWxzZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01h a2VmaWxlCmluZGV4IGVhZDBjYzAuLmFmNGQwZTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9N YWtlZmlsZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTQwLDcgKzQwLDcgQEAgb2Jq LXkgKz0gZGV2aWNlLm8KIG9iai15ICs9IGRlY29kZS5vCiBvYmoteSArPSBwcm9jZXNzb3Iubwog b2JqLXkgKz0gc21jLm8KLW9iai0kKENPTkZJR19YU1BMSUNFKSArPSB4c3BsaWNlLm8KK29iai0k KENPTkZJR19MSVZFUEFUQ0gpICs9IGxpdmVwYXRjaC5vCiAKICNvYmotYmluLXkgKz0gLi4uLm8K IApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3hzcGxpY2UuYyBiL3hlbi9hcmNoL2FybS9saXZl cGF0Y2guYwpzaW1pbGFyaXR5IGluZGV4IDI5JQpyZW5hbWUgZnJvbSB4ZW4vYXJjaC9hcm0veHNw bGljZS5jCnJlbmFtZSB0byB4ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKaW5kZXggZGIwZGNlMi4u Y2ZhZTZkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3hzcGxpY2UuYworKysgYi94ZW4vYXJj aC9hcm0vbGl2ZXBhdGNoLmMKQEAgLTQsNjcgKzQsNjcgQEAKICNpbmNsdWRlIDx4ZW4vZXJybm8u aD4KICNpbmNsdWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KLSNpbmNsdWRl IDx4ZW4veHNwbGljZV9lbGYuaD4KLSNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUg PHhlbi9saXZlcGF0Y2hfZWxmLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgogCi12b2lk IGFyY2hfeHNwbGljZV9wYXRjaGluZ19lbnRlcih2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaGlu Z19lbnRlcih2b2lkKQogewogfQogCi12b2lkIGFyY2hfeHNwbGljZV9wYXRjaGluZ19sZWF2ZSh2 b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaGluZ19sZWF2ZSh2b2lkKQogewogfQogCi1pbnQgYXJj aF94c3BsaWNlX3ZlcmlmeV9mdW5jKGNvbnN0IHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1 bmMpCitpbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRj aF9mdW5jICpmdW5jKQogewogICAgIHJldHVybiAtRU5PU1lTOwogfQogCi12b2lkIGFyY2hfeHNw bGljZV9hcHBseV9qbXAoc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykKK3ZvaWQgYXJj aF9saXZlcGF0Y2hfYXBwbHlfam1wKHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKIH0K IAotdm9pZCBhcmNoX3hzcGxpY2VfcmV2ZXJ0X2ptcChjb25zdCBzdHJ1Y3QgeHNwbGljZV9wYXRj aF9mdW5jICpmdW5jKQordm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnRfam1wKGNvbnN0IHN0cnVj dCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKIH0KIAotdm9pZCBhcmNoX3hzcGxpY2VfcG9zdF9h Y3Rpb24odm9pZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcG9zdF9hY3Rpb24odm9pZCkKIHsKIH0K IAotdm9pZCBhcmNoX3hzcGxpY2VfbWFzayh2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaF9tYXNr KHZvaWQpCiB7CiB9CiAKLXZvaWQgYXJjaF94c3BsaWNlX3VubWFzayh2b2lkKQordm9pZCBhcmNo X2xpdmVwYXRjaF91bm1hc2sodm9pZCkKIHsKIH0KIAotaW50IGFyY2hfeHNwbGljZV92ZXJpZnlf ZWxmKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQoraW50IGFyY2hfbGl2ZXBhdGNoX3Zl cmlmeV9lbGYoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsKICAgICByZXR1cm4g LUVOT1NZUzsKIH0KIAotaW50IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbChzdHJ1Y3QgeHNwbGlj ZV9lbGYgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhz cGxpY2VfZWxmX3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqcmVsYSkKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3Jt X3JlbChzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEp CiB7CiAgICAgcmV0dXJuIC1FTk9TWVM7CiB9CiAKLWludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9y ZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnJlbGEpCitpbnQgYXJj aF9saXZlcGF0Y2hfcGVyZm9ybV9yZWxhKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3Nl YyAqYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxp dmVwYXRjaF9lbGZfc2VjICpyZWxhKQogewogICAgIHJldHVybiAtRU5PU1lTOwogfQogCi1pbnQg YXJjaF94c3BsaWNlX3NlY3VyZShjb25zdCB2b2lkICp2YSwgdW5zaWduZWQgaW50IHBhZ2VzLCBl bnVtIHZhX3R5cGUgdHlwZSkKK2ludCBhcmNoX2xpdmVwYXRjaF9zZWN1cmUoY29uc3Qgdm9pZCAq dmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUpCiB7CiAgICAgcmV0dXJu IC1FTk9TWVM7CiB9CiAKLXZvaWQgX19pbml0IGFyY2hfeHNwbGljZV9pbml0KHZvaWQpCit2b2lk IF9faW5pdCBhcmNoX2xpdmVwYXRjaF9pbml0KHZvaWQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCA0NjY1YTY4 Li5iMzc3YzkxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2Fy Y2gveDg2L01ha2VmaWxlCkBAIC03LDcgKzcsNyBAQCBzdWJkaXItJChDT05GSUdfWEVOT1BST0Yp ICs9IG9wcm9maWxlCiBzdWJkaXIteSArPSB4ODZfNjQKIAogYWx0ZXJuYXRpdmUteSA6PSBhbHRl cm5hdGl2ZS5pbml0Lm8KLWFsdGVybmF0aXZlLSQoQ09ORklHX1hTUExJQ0UpIDo9CithbHRlcm5h dGl2ZS0kKENPTkZJR19MSVZFUEFUQ0gpIDo9CiBvYmotYmluLXkgKz0gJChhbHRlcm5hdGl2ZS15 KQogb2JqLXkgKz0gYXBpYy5vCiBvYmoteSArPSBiaXRvcHMubwpAQCAtMzAsNiArMzAsNyBAQCBv YmoteSArPSBmbHVzaHRsYi5vCiBvYmoteSArPSBpMzg3Lm8KIG9iai15ICs9IGk4MjU5Lm8KIG9i ai15ICs9IGlvX2FwaWMubworb2JqLSQoQ09ORklHX0xJVkVQQVRDSCkgKz0gYWx0ZXJuYXRpdmUu byBsaXZlcGF0Y2gubwogb2JqLXkgKz0gbXNpLm8KIG9iai15ICs9IGlvcG9ydF9lbXVsYXRlLm8K IG9iai15ICs9IGlycS5vCkBAIC02Myw3ICs2NCw2IEBAIG9iai15ICs9IHg4Nl9lbXVsYXRlLm8K IG9iai15ICs9IHRib290Lm8KIG9iai15ICs9IGhwZXQubwogb2JqLXkgKz0gdm1fZXZlbnQubwot b2JqLSQoQ09ORklHX1hTUExJQ0UpICs9IGFsdGVybmF0aXZlLm8geHNwbGljZS5vCiBvYmoteSAr PSB4c3RhdGUubwogCiBvYmotJChjcmFzaF9kZWJ1ZykgKz0gZ2Ric3R1Yi5vCkBAIC04MCw3ICs4 MCw3IEBAIGVsc2UKIG5vdGVzX3BoZHJzID0KIGVuZGlmCiAKLWlmZGVmIENPTkZJR19YU1BMSUNF CitpZmRlZiBDT05GSUdfTElWRVBBVENICiBhbGxfc3ltYm9scyA9IC0tYWxsLXN5bWJvbHMKIGlm ZGVmIENPTkZJR19GQVNUX1NZTUJPTF9MT09LVVAKIGFsbF9zeW1ib2xzID0gLS1hbGwtc3ltYm9s cyAtLXNvcnQtYnktbmFtZQpAQCAtOTUsNyArOTUsNyBAQCAkKFRBUkdFVCk6ICQoVEFSR0VUKS1z eW1zICQoZWZpLXkpIGJvb3QvbWtlbGYzMgogCiAuUEhPTlk6IHRlc3RzCiB0ZXN0czoKLQkkKE1B S0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgLUMgdGVzdCB4c3BsaWNlCisJJChNQUtFKSAtZiAk KEJBU0VESVIpL1J1bGVzLm1rIC1DIHRlc3QgbGl2ZXBhdGNoCiAKIEFMTF9PQkpTIDo9ICQoQkFT RURJUikvYXJjaC94ODYvYm9vdC9idWlsdF9pbi5vICQoQkFTRURJUikvYXJjaC94ODYvZWZpL2J1 aWx0X2luLm8gJChBTExfT0JKUykKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FsdGVybmF0 aXZlLmMgYi94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwppbmRleCBjMTg4YTE1Li5iZTQwYjEz IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYworKysgYi94ZW4vYXJjaC94 ODYvYWx0ZXJuYXRpdmUuYwpAQCAtMjIsMTQgKzIyLDE0IEBACiAjaW5jbHVkZSA8YXNtL3N5c3Rl bS5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1ZGUgPGFzbS9ubWkuaD4KLSNpbmNs dWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KIAogI2RlZmlu ZSBNQVhfUEFUQ0hfTEVOICgyNTUtMSkKIAogZXh0ZXJuIHN0cnVjdCBhbHRfaW5zdHIgX19hbHRf aW5zdHJ1Y3Rpb25zW10sIF9fYWx0X2luc3RydWN0aW9uc19lbmRbXTsKIAogI2lmZGVmIEs4X05P UDEKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIGluaXRfb3JfeHNwbGljZV9j b25zdCA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIGluaXRfb3JfbGl2 ZXBhdGNoX2NvbnN0ID0gewogICAgIEs4X05PUDEsCiAgICAgSzhfTk9QMiwKICAgICBLOF9OT1Az LApAQCAtMzksNyArMzksNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrOG5vcHNbXSBp bml0X29yX3hzcGxpY2VfY29uc3QgPSB7CiAgICAgSzhfTk9QNywKICAgICBLOF9OT1A4CiB9Owot c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBrOF9ub3BzW0FTTV9OT1BfTUFYKzFd IGluaXRfb3JfeHNwbGljZV9jb25zdHJlbCA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy ICogY29uc3Qgazhfbm9wc1tBU01fTk9QX01BWCsxXSBpbml0X29yX2xpdmVwYXRjaF9jb25zdHJl bCA9IHsKICAgICBOVUxMLAogICAgIGs4bm9wcywKICAgICBrOG5vcHMgKyAxLApAQCAtNTMsNyAr NTMsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0IGs4X25vcHNbQVNNX05P UF9NQVgrMV0gaW5pdF9vcl94c3BsaWNlX2NvbnN0cgogI2VuZGlmCiAKICNpZmRlZiBQNl9OT1Ax Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0X29yX3hzcGxpY2VfY29u c3QgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0X29yX2xpdmVw YXRjaF9jb25zdCA9IHsKICAgICBQNl9OT1AxLAogICAgIFA2X05PUDIsCiAgICAgUDZfTk9QMywK QEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcDZub3BzW10gaW5p dF9vcl94c3BsaWNlX2NvbnN0ID0gewogICAgIFA2X05PUDcsCiAgICAgUDZfTk9QOAogfTsKLXN0 YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3QgcDZfbm9wc1tBU01fTk9QX01BWCsxXSBp bml0X29yX3hzcGxpY2VfY29uc3RyZWwgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAq IGNvbnN0IHA2X25vcHNbQVNNX05PUF9NQVgrMV0gaW5pdF9vcl9saXZlcGF0Y2hfY29uc3RyZWwg PSB7CiAgICAgTlVMTCwKICAgICBwNm5vcHMsCiAgICAgcDZub3BzICsgMSwKQEAgLTc2LDcgKzc2 LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBwNl9ub3BzW0FTTV9OT1Bf TUFYKzFdIGluaXRfb3JfeHNwbGljZV9jb25zdHIKIH07CiAjZW5kaWYKIAotc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKiBjb25zdCAqaWRlYWxfbm9wcyBpbml0X29yX3hzcGxpY2VfZGF0YSA9 IGs4X25vcHM7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0ICppZGVhbF9ub3Bz IGluaXRfb3JfbGl2ZXBhdGNoX2RhdGEgPSBrOF9ub3BzOwogCiBzdGF0aWMgaW50IF9faW5pdCBt YXNrX25taV9jYWxsYmFjayhjb25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNw dSkKIHsKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJjaF9pbml0X2lk ZWFsX25vcHModm9pZCkKIH0KIAogLyogVXNlIHRoaXMgdG8gYWRkIG5vcHMgdG8gYSBidWZmZXIs IHRoZW4gdGV4dF9wb2tlIHRoZSB3aG9sZSBidWZmZXIuICovCi1zdGF0aWMgdm9pZCBpbml0X29y X3hzcGxpY2UgYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMg dm9pZCBpbml0X29yX2xpdmVwYXRjaCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50 IGxlbikKIHsKICAgICB3aGlsZSAoIGxlbiA+IDAgKQogICAgIHsKQEAgLTEyOSw3ICsxMjksNyBA QCBzdGF0aWMgdm9pZCBpbml0X29yX3hzcGxpY2UgYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2ln bmVkIGludCBsZW4pCiAgKiBZb3Ugc2hvdWxkIHJ1biB0aGlzIHdpdGggaW50ZXJydXB0cyBkaXNh YmxlZCBvciBvbiBjb2RlIHRoYXQgaXMgbm90CiAgKiBleGVjdXRpbmcuCiAgKi8KLXN0YXRpYyB2 b2lkICppbml0X29yX3hzcGxpY2UgdGV4dF9wb2tlKHZvaWQgKmFkZHIsIGNvbnN0IHZvaWQgKm9w Y29kZSwgc2l6ZV90IGxlbikKK3N0YXRpYyB2b2lkICppbml0X29yX2xpdmVwYXRjaCB0ZXh0X3Bv a2Uodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQogewogICAgIG1l bWNweShhZGRyLCBvcGNvZGUsIGxlbik7CiAgICAgc3luY19jb3JlKCk7CkBAIC0xNDQsNyArMTQ0 LDcgQEAgc3RhdGljIHZvaWQgKmluaXRfb3JfeHNwbGljZSB0ZXh0X3Bva2Uodm9pZCAqYWRkciwg Y29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGUKICAqIEFQcyBoYXZlIGxlc3MgY2FwYWJpbGl0 aWVzIHRoYW4gdGhlIGJvb3QgcHJvY2Vzc29yIGFyZSBub3QgaGFuZGxlZC4KICAqIFRvdWdoLiBN YWtlIHN1cmUgeW91IGRpc2FibGUgc3VjaCBmZWF0dXJlcyBieSBoYW5kLgogICovCi12b2lkIGlu aXRfb3JfeHNwbGljZSBhcHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3Ry ICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5kKQordm9pZCBpbml0X29yX2xpdmVwYXRjaCBh cHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0 IGFsdF9pbnN0ciAqZW5kKQogewogICAgIHN0cnVjdCBhbHRfaW5zdHIgKmE7CiAgICAgdTggKmlu c3RyLCAqcmVwbGFjZW1lbnQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94 ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggNWFmMmNjNS4uZjJkN2Y0NyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMzYs NyArMzYsNyBAQAogI2luY2x1ZGUgPHhlbi9jcHUuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgog I2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KLSNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgor I2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAj aW5jbHVkZSA8cHVibGljL2h2bS9odm1fdmNwdS5oPgogI2luY2x1ZGUgPGFzbS9yZWdzLmg+CkBA IC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIHZvaWQgaWRsZV9sb29wKHZvaWQpCiAgICAgICAgICAq IFdlIE1VU1QgYmUgbGFzdCAob3IgYmVmb3JlIHBtX2lkbGUpLiBPdGhlcndpc2UgYWZ0ZXIgd2Ug Z2V0IHRoZQogICAgICAgICAgKiBzb2Z0aXJxIHdlIHdvdWxkIGV4ZWN1dGUgcG1faWRsZSAoYW5k IHNsZWVwKSBhbmQgbm90IHBhdGNoLgogICAgICAgICAgKi8KLSAgICAgICAgY2hlY2tfZm9yX3hz cGxpY2Vfd29yaygpOworICAgICAgICBjaGVja19mb3JfbGl2ZXBhdGNoX3dvcmsoKTsKICAgICB9 CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9leHRhYmxlLmMgYi94ZW4vYXJjaC94ODYv ZXh0YWJsZS5jCmluZGV4IDM0OWRmNzkuLjcwMTQ0MWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9leHRhYmxlLmMKKysrIGIveGVuL2FyY2gveDg2L2V4dGFibGUuYwpAQCAtNyw3ICs3LDcgQEAK ICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2lu Y2x1ZGUgPHhlbi92aXJ0dWFsX3JlZ2lvbi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+Cisj aW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgogCiAjZGVmaW5lIEVYX0ZJRUxEKHB0ciwgZmllbGQp ICgodW5zaWduZWQgbG9uZykmKHB0ciktPmZpZWxkICsgKHB0ciktPmZpZWxkKQogCkBAIC0yMSw3 ICsyMSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBleF9jb250KGNvbnN0IHN0cnVj dCBleGNlcHRpb25fdGFibGVfZW50cnkgKngpCiAJcmV0dXJuIEVYX0ZJRUxEKHgsIGNvbnQpOwog fQogCi1zdGF0aWMgaW50IGluaXRfb3JfeHNwbGljZSBjbXBfZXgoY29uc3Qgdm9pZCAqYSwgY29u c3Qgdm9pZCAqYikKK3N0YXRpYyBpbnQgaW5pdF9vcl9saXZlcGF0Y2ggY21wX2V4KGNvbnN0IHZv aWQgKmEsIGNvbnN0IHZvaWQgKmIpCiB7CiAJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9l bnRyeSAqbCA9IGEsICpyID0gYjsKIAl1bnNpZ25lZCBsb25nIGxpcCA9IGV4X2FkZHIobCk7CkBA IC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbnQgaW5pdF9vcl94c3BsaWNlIGNtcF9leChjb25zdCB2 b2lkICphLCBjb25zdCB2b2lkICpiKQogfQogCiAjaWZuZGVmIHN3YXBfZXgKLXN0YXRpYyB2b2lk IGluaXRfb3JfeHNwbGljZSBzd2FwX2V4KHZvaWQgKmEsIHZvaWQgKmIsIGludCBzaXplKQorc3Rh dGljIHZvaWQgaW5pdF9vcl9saXZlcGF0Y2ggc3dhcF9leCh2b2lkICphLCB2b2lkICpiLCBpbnQg c2l6ZSkKIHsKIAlzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpsID0gYSwgKnIgPSBiLCB0 bXA7CiAJbG9uZyBkZWx0YSA9IGIgLSBhOwpAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgdm9pZCBp bml0X29yX3hzcGxpY2Ugc3dhcF9leCh2b2lkICphLCB2b2lkICpiLCBpbnQgc2l6ZSkKIH0KICNl bmRpZgogCi12b2lkIGluaXRfb3JfeHNwbGljZSBzb3J0X2V4Y2VwdGlvbl90YWJsZShzdHJ1Y3Qg ZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpzdGFydCwKK3ZvaWQgaW5pdF9vcl9saXZlcGF0Y2ggc29y dF9leGNlcHRpb25fdGFibGUoc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqc3RhcnQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3Rh YmxlX2VudHJ5ICpzdG9wKQogewogICAgIHNvcnQoc3RhcnQsIHN0b3AgLSBzdGFydCwKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni94c3BsaWNlLmMgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMK c2ltaWxhcml0eSBpbmRleCA3NCUKcmVuYW1lIGZyb20geGVuL2FyY2gveDg2L3hzcGxpY2UuYwpy ZW5hbWUgdG8geGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCmluZGV4IGZmMTM0NmMuLjRmYjIyNjYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94c3BsaWNlLmMKKysrIGIveGVuL2FyY2gveDg2L2xp dmVwYXRjaC5jCkBAIC04LDI2ICs4LDI2IEBACiAjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5jbHVk ZSA8eGVuL3Bmbi5oPgogI2luY2x1ZGUgPHhlbi92bWFwLmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxp Y2VfZWxmLmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBh dGNoX2VsZi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KIAogI2luY2x1ZGUgPGFzbS9u bWkuaD4KIAogI2RlZmluZSBQQVRDSF9JTlNOX1NJWkUgNQogCi12b2lkIGFyY2hfeHNwbGljZV9w YXRjaGluZ19lbnRlcih2b2lkKQordm9pZCBhcmNoX2xpdmVwYXRjaGluZ19lbnRlcih2b2lkKQog ewogICAgIC8qIERpc2FibGUgV1AgdG8gYWxsb3cgY2hhbmdlcyB0byByZWFkLW9ubHkgcGFnZXMu ICovCiAgICAgd3JpdGVfY3IwKHJlYWRfY3IwKCkgJiB+WDg2X0NSMF9XUCk7CiB9CiAKLXZvaWQg YXJjaF94c3BsaWNlX3BhdGNoaW5nX2xlYXZlKHZvaWQpCit2b2lkIGFyY2hfbGl2ZXBhdGNoaW5n X2xlYXZlKHZvaWQpCiB7CiAgICAgLyogUmVpbnN0YXRlIFdQLiAqLwogICAgIHdyaXRlX2NyMChy ZWFkX2NyMCgpIHwgWDg2X0NSMF9XUCk7CiB9CiAKLWludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2Z1 bmMoY29uc3Qgc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykKK2ludCBhcmNoX2xpdmVw YXRjaF92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCiB7CiAg ICAgLyogTm8gTk9QIHBhdGNoaW5nIHlldC4gKi8KICAgICBpZiAoICFmdW5jLT5uZXdfc2l6ZSAp CkBAIC0zOSw3ICszOSw3IEBAIGludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2Z1bmMoY29uc3Qgc3Ry dWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVuYykKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBh cmNoX3hzcGxpY2VfYXBwbHlfam1wKHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMpCit2 b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMp CiB7CiAgICAgaW50MzJfdCB2YWw7CiAgICAgdWludDhfdCAqb2xkX3B0cjsKQEAgLTU1LDEzICs1 NSwxMyBAQCB2b2lkIGFyY2hfeHNwbGljZV9hcHBseV9qbXAoc3RydWN0IHhzcGxpY2VfcGF0Y2hf ZnVuYyAqZnVuYykKICAgICBtZW1jcHkob2xkX3B0ciwgJnZhbCwgc2l6ZW9mKHZhbCkpOwogfQog Ci12b2lkIGFyY2hfeHNwbGljZV9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCB4c3BsaWNlX3BhdGNo X2Z1bmMgKmZ1bmMpCit2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9mdW5jICpmdW5jKQogewogICAgIG1lbWNweShmdW5jLT5vbGRfYWRkciwgZnVu Yy0+b3BhcXVlLCBQQVRDSF9JTlNOX1NJWkUpOwogfQogCiAvKiBTZXJpYWxpc2UgdGhlIENQVSBw aXBlbGluZS4gKi8KLXZvaWQgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9uKHZvaWQpCit2b2lkIGFy Y2hfbGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKHZvaWQpCiB7CiAgICAgY3B1aWRfZWF4KDApOwogfQpA QCAtNzcsMTcgKzc3LDE3IEBAIHN0YXRpYyBpbnQgbWFza19ubWlfY2FsbGJhY2soY29uc3Qgc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGludCBjcHUpCiAgICAgcmV0dXJuIDE7CiB9CiAKLXZv aWQgYXJjaF94c3BsaWNlX21hc2sodm9pZCkKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfbWFzayh2b2lk KQogewogICAgIHNhdmVkX25taV9jYWxsYmFjayA9IHNldF9ubWlfY2FsbGJhY2sobWFza19ubWlf Y2FsbGJhY2spOwogfQogCi12b2lkIGFyY2hfeHNwbGljZV91bm1hc2sodm9pZCkKK3ZvaWQgYXJj aF9saXZlcGF0Y2hfdW5tYXNrKHZvaWQpCiB7CiAgICAgc2V0X25taV9jYWxsYmFjayhzYXZlZF9u bWlfY2FsbGJhY2spOwogfQogCi1pbnQgYXJjaF94c3BsaWNlX3ZlcmlmeV9lbGYoY29uc3Qgc3Ry dWN0IHhzcGxpY2VfZWxmICplbGYpCitpbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2VsZihjb25z dCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogewogCiAgICAgY29uc3QgRWxmX0VoZHIgKmhk ciA9IGVsZi0+aGRyOwpAQCAtOTYsNyArOTYsNyBAQCBpbnQgYXJjaF94c3BsaWNlX3ZlcmlmeV9l bGYoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgICAgICBoZHItPmVfaWRlbnRb RUlfQ0xBU1NdICE9IEVMRkNMQVNTNjQgfHwKICAgICAgICAgIGhkci0+ZV9pZGVudFtFSV9EQVRB XSAhPSBFTEZEQVRBMkxTQiApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhT UExJQ0UgIiVzOiBVbnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0eXBlIVxuIiwKKyAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0 eXBlIVxuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVP UE5PVFNVUFA7CiAgICAgfQpAQCAtMTA0LDE4ICsxMDQsMTggQEAgaW50IGFyY2hfeHNwbGljZV92 ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIHJldHVybiAwOwog fQogCi1pbnQgYXJjaF94c3BsaWNlX3BlcmZvcm1fcmVsKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZf c2VjICpiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNw bGljZV9lbGZfc2VjICpyZWxhKQoraW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsKHN0cnVj dCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKIHsKLSAgICBk cHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTSFRfUkVMIHJlbG9jYXRpb24gdW5zdXBw b3J0ZWRcbiIsCisgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTSFRfUkVM IHJlbG9jYXRpb24gdW5zdXBwb3J0ZWRcbiIsCiAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAg IHJldHVybiAtRU9QTk9UU1VQUDsKIH0KIAotaW50IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbGEo c3RydWN0IHhzcGxpY2VfZWxmICplbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpiYXNlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqcmVsYSkKK2ludCBhcmNoX2xp dmVwYXRjaF9wZXJmb3JtX3JlbGEoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpi YXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBh dGNoX2VsZl9zZWMgKnJlbGEpCiB7CiAgICAgY29uc3QgRWxmX1JlbEEgKnI7CiAgICAgdW5zaWdu ZWQgaW50IHN5bW5keCwgaTsKQEAgLTEyOSw3ICsxMjksNyBAQCBpbnQgYXJjaF94c3BsaWNlX3Bl cmZvcm1fcmVsYShzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwKICAgICBpZiAoIHJlbGEtPnNlYy0+ c2hfZW50c2l6ZSA8IHNpemVvZihFbGZfUmVsQSkgfHwKICAgICAgICAgIHJlbGEtPnNlYy0+c2hf c2l6ZSAlIHJlbGEtPnNlYy0+c2hfZW50c2l6ZSApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTZWN0aW9uIHJlbGF0aXZlIGhlYWRlciBpcyBjb3JydXB0 ZWQhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rp b24gcmVsYXRpdmUgaGVhZGVyIGlzIGNvcnJ1cHRlZCFcbiIsCiAgICAgICAgICAgICAgICAgZWxm LT5uYW1lKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQpAQCAtMTQyLDcgKzE0Miw3 IEBAIGludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LAogCiAgICAgICAgIGlmICggc3ltbmR4ID4gZWxmLT5uc3ltICkKICAgICAgICAgewotICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogUmVsYXRpdmUgcmVsb2NhdGlv biB3YW50cyBzeW1ib2xAJXUgd2hpY2ggaXMgcGFzdCBlbmQhXG4iLAorICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBSZWxhdGl2ZSByZWxvY2F0aW9uIHdhbnRz IHN5bWJvbEAldSB3aGljaCBpcyBwYXN0IGVuZCFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVs Zi0+bmFtZSwgc3ltbmR4KTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9 CkBAIC0xODEsMTQgKzE4MSwxNCBAQCBpbnQgYXJjaF94c3BsaWNlX3BlcmZvcm1fcmVsYShzdHJ1 Y3QgeHNwbGljZV9lbGYgKmVsZiwKICAgICAgICAgICAgICooaW50MzJfdCAqKWRlc3QgPSB2YWw7 CiAgICAgICAgICAgICBpZiAoIChpbnQ2NF90KXZhbCAhPSAqKGludDMyX3QgKilkZXN0ICkKICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0Ug IiVzOiBPdmVyZmxvdyBpbiByZWxvY2F0aW9uICV1IGluICVzIGZvciAlcyFcbiIsCisgICAgICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBPdmVyZmxvdyBpbiBy ZWxvY2F0aW9uICV1IGluICVzIGZvciAlcyFcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBl bGYtPm5hbWUsIGksIHJlbGEtPm5hbWUsIGJhc2UtPm5hbWUpOwogICAgICAgICAgICAgICAgIHJl dHVybiAtRU9WRVJGTE9XOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAg ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAi JXM6IFVuaGFuZGxlZCByZWxvY2F0aW9uICVsdVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiwgTElWRVBBVENIICIlczogVW5oYW5kbGVkIHJlbG9jYXRpb24gJWx1XG4iLAogICAg ICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIEVMRjY0X1JfVFlQRShyLT5yX2luZm8pKTsKICAg ICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKICAgICAgICAgfQpAQCAtMTk3LDcgKzE5Nyw3 IEBAIGludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LAogICAgIHJldHVybiAwOwogCiAgYmFkX29mZnNldDoKLSAgICBkcHJpbnRrKFhFTkxPR19FUlIs IFhTUExJQ0UgIiVzOiBSZWxhdGl2ZSByZWxvY2F0aW9uIG9mZnNldCBpcyBwYXN0ICVzIHNlY3Rp b24hXG4iLAorICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogUmVsYXRpdmUg cmVsb2NhdGlvbiBvZmZzZXQgaXMgcGFzdCAlcyBzZWN0aW9uIVxuIiwKICAgICAgICAgICAgIGVs Zi0+bmFtZSwgYmFzZS0+bmFtZSk7CiAgICAgcmV0dXJuIC1FSU5WQUw7CiB9CkBAIC0yMDcsNyAr MjA3LDcgQEAgaW50IGFyY2hfeHNwbGljZV9wZXJmb3JtX3JlbGEoc3RydWN0IHhzcGxpY2VfZWxm ICplbGYsCiAgKiB3ZSBzZWN1cmUgdGhlIG1lbW9yeSBieSBwdXR0aW5nIGluIHRoZSBwcm9wZXIg cGFnZSB0YWJsZSBhdHRyaWJ1dGVzCiAgKiBmb3IgdGhlIGRlc2lyZWQgdHlwZS4KICAqLwotaW50 IGFyY2hfeHNwbGljZV9zZWN1cmUoY29uc3Qgdm9pZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywg ZW51bSB2YV90eXBlIHR5cGUpCitpbnQgYXJjaF9saXZlcGF0Y2hfc2VjdXJlKGNvbnN0IHZvaWQg KnZhLCB1bnNpZ25lZCBpbnQgcGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlKQogewogICAgIHVuc2ln bmVkIGxvbmcgc3RhcnQgPSAodW5zaWduZWQgbG9uZyl2YTsKICAgICB1bnNpZ25lZCBpbnQgZmxh ZzsKQEAgLTIxNSw5ICsyMTUsOSBAQCBpbnQgYXJjaF94c3BsaWNlX3NlY3VyZShjb25zdCB2b2lk ICp2YSwgdW5zaWduZWQgaW50IHBhZ2VzLCBlbnVtIHZhX3R5cGUgdHlwZSkKICAgICBBU1NFUlQo dmEpOwogICAgIEFTU0VSVChwYWdlcyk7CiAKLSAgICBpZiAoIHR5cGUgPT0gWFNQTElDRV9WQV9S WCApCisgICAgaWYgKCB0eXBlID09IExJVkVQQVRDSF9WQV9SWCApCiAgICAgICAgIGZsYWcgPSBQ QUdFX0hZUEVSVklTT1JfUlg7Ci0gICAgZWxzZSBpZiAoIHR5cGUgPT0gWFNQTElDRV9WQV9SVyAp CisgICAgZWxzZSBpZiAoIHR5cGUgPT0gTElWRVBBVENIX1ZBX1JXICkKICAgICAgICAgZmxhZyA9 IFBBR0VfSFlQRVJWSVNPUl9SVzsKICAgICBlbHNlCiAgICAgICAgIGZsYWcgPSBQQUdFX0hZUEVS VklTT1JfUk87CkBAIC0yMjcsNyArMjI3LDcgQEAgaW50IGFyY2hfeHNwbGljZV9zZWN1cmUoY29u c3Qgdm9pZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUpCiAgICAg cmV0dXJuIDA7CiB9CiAKLXZvaWQgX19pbml0IGFyY2hfeHNwbGljZV9pbml0KHZvaWQpCit2b2lk IF9faW5pdCBhcmNoX2xpdmVwYXRjaF9pbml0KHZvaWQpCiB7CiAgICAgdm9pZCAqc3RhcnQsICpl bmQ7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gv eDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXggYTlkNDNhMS4uMjNkZmYxZCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUK QEAgLTUsMjQgKzUsMjQgQEAgQ09ERV9TWj0kKHNoZWxsIG5tIC0tZGVmaW5lZCAtUyAkKDEpIHwg Z3JlcCAkKDIpIHwgYXdrICd7IHByaW50ICIweCIkJDJ9JykKIAogLlBIT05ZOiBkZWZhdWx0CiAK LVhTUExJQ0UgOj0geGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKLVhTUExJQ0VfQllFIDo9IHhlbl9i eWVfd29ybGQueHNwbGljZQotWFNQTElDRV9SRVBMQUNFIDo9IHhlbl9yZXBsYWNlX3dvcmxkLnhz cGxpY2UKK0xJVkVQQVRDSCA6PSB4ZW5faGVsbG9fd29ybGQubGl2ZXBhdGNoCitMSVZFUEFUQ0hf QllFIDo9IHhlbl9ieWVfd29ybGQubGl2ZXBhdGNoCitMSVZFUEFUQ0hfUkVQTEFDRSA6PSB4ZW5f cmVwbGFjZV93b3JsZC5saXZlcGF0Y2gKIAotZGVmYXVsdDogeHNwbGljZQorZGVmYXVsdDogbGl2 ZXBhdGNoCiAKLWluc3RhbGw6IHhzcGxpY2UKLQkkKElOU1RBTExfREFUQSkgJChYU1BMSUNFKSAk KERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRSkKLQkkKElOU1RBTExfREFUQSkgJChYU1BM SUNFX0JZRSkgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJQ0VfQllFKQotCSQoSU5TVEFM TF9EQVRBKSAkKFhTUExJQ0VfUkVQTEFDRSkgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJ Q0VfUkVQTEFDRSkKK2luc3RhbGw6IGxpdmVwYXRjaAorCSQoSU5TVEFMTF9EQVRBKSAkKExJVkVQ QVRDSCkgJChERVNURElSKSQoREVCVUdfRElSKS8kKExJVkVQQVRDSCkKKwkkKElOU1RBTExfREFU QSkgJChMSVZFUEFUQ0hfQllFKSAkKERFU1RESVIpJChERUJVR19ESVIpLyQoTElWRVBBVENIX0JZ RSkKKwkkKElOU1RBTExfREFUQSkgJChMSVZFUEFUQ0hfUkVQTEFDRSkgJChERVNURElSKSQoREVC VUdfRElSKS8kKExJVkVQQVRDSF9SRVBMQUNFKQogdW5pbnN0YWxsOgotCXJtIC1mICQoREVTVERJ UikkKERFQlVHX0RJUikvJChYU1BMSUNFKQotCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJUikv JChYU1BMSUNFX0JZRSkKLQlybSAtZiAkKERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRV9S RVBMQUNFKQorCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJUikvJChMSVZFUEFUQ0gpCisJcm0g LWYgJChERVNURElSKSQoREVCVUdfRElSKS8kKExJVkVQQVRDSF9CWUUpCisJcm0gLWYgJChERVNU RElSKSQoREVCVUdfRElSKS8kKExJVkVQQVRDSF9SRVBMQUNFKQogCiAuUEhPTlk6IGNsZWFuCiBj bGVhbjo6Ci0Jcm0gLWYgKi5vIC4qLm8uZCAqLnhzcGxpY2UgY29uZmlnLmgKKwlybSAtZiAqLm8g Liouby5kICoubGl2ZXBhdGNoIGNvbmZpZy5oCiAKICMKICMgVG8gY29tcHV0ZSB0aGVzZSB2YWx1 ZXMgd2UgbmVlZCB0aGUgYmluYXJ5IGZpbGVzOiB4ZW4tc3ltcwpAQCAtMzgsMTIgKzM4LDEyIEBA IGNvbmZpZy5oOiB4ZW5faGVsbG9fd29ybGRfZnVuYy5vCiAKIHhlbl9oZWxsb193b3JsZC5vOiBj b25maWcuaAogCi0uUEhPTlk6ICQoWFNQTElDRSkKLSQoWFNQTElDRSk6IHhlbl9oZWxsb193b3Js ZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8gbm90ZS5vCi0JJChMRCkgJChMREZMQUdTKSAkKGJ1 aWxkX2lkX2xpbmtlcikgLXIgLW8gJChYU1BMSUNFKSAkXgorLlBIT05ZOiAkKExJVkVQQVRDSCkK KyQoTElWRVBBVENIKTogeGVuX2hlbGxvX3dvcmxkX2Z1bmMubyB4ZW5faGVsbG9fd29ybGQubyBu b3RlLm8KKwkkKExEKSAkKExERkxBR1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKExJVkVQ QVRDSCkgJF4KIAogIwotIyBUaGlzIHRhcmdldCBpcyBvbmx5IGFjY2Vzc2libGUgaWYgQ09ORklH X1hTUExJQ0UgaXMgZGVmaW5lZCwgd2hpY2gKKyMgVGhpcyB0YXJnZXQgaXMgb25seSBhY2Nlc3Np YmxlIGlmIENPTkZJR19MSVZFUEFUQ0ggaXMgZGVmaW5lZCwgd2hpY2gKICMgZGVwZW5kcyBvbiAk KGJ1aWxkX2lkX2xpbmtlcikgYmVpbmcgYXZhaWxhYmxlLiBIZW5jZSB3ZSBkbyBub3QKICMgbmVl ZCBhbnkgY2hlY2tzLgogIwpAQCAtNTUsMzEgKzU1LDMxIEBAICQoWFNQTElDRSk6IHhlbl9oZWxs b193b3JsZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8gbm90ZS5vCiBub3RlLm86CiAJJChPQkpD T1BZKSAtTyBiaW5hcnkgLS1vbmx5LXNlY3Rpb249Lm5vdGUuZ251LmJ1aWxkLWlkICQoQkFTRURJ UikveGVuLXN5bXMgJEAuYmluCiAJJChPQkpDT1BZKSAtSSBiaW5hcnkgLU8gZWxmNjQteDg2LTY0 IC1CIGkzODY6eDg2LTY0IFwKLQkJICAgLS1yZW5hbWUtc2VjdGlvbj0uZGF0YT0ueHNwbGljZS5k ZXBlbmRzIC1TICRALmJpbiAkQAorCQkgICAtLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS5saXZlcGF0 Y2guZGVwZW5kcyAtUyAkQC5iaW4gJEAKIAlybSAtZiAkQC5iaW4KIAogIwotIyBFeHRyYWN0IHRo ZSBidWlsZC1pZCBvZiB0aGUgeGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKKyMgRXh0cmFjdCB0aGUg YnVpbGQtaWQgb2YgdGhlIHhlbl9oZWxsb193b3JsZC5saXZlcGF0Y2gKICMgKHdoaWNoIHhlbl9i eWVfd29ybGQgd2lsbCBkZXBlbmQgb24pLgogIwogLlBIT05ZOiBoZWxsb193b3JsZF9ub3RlLm8K LWhlbGxvX3dvcmxkX25vdGUubzogJChYU1BMSUNFKQotCSQoT0JKQ09QWSkgLU8gYmluYXJ5IC0t b25seS1zZWN0aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKFhTUExJQ0UpICRALmJpbgoraGVsbG9f d29ybGRfbm90ZS5vOiAkKExJVkVQQVRDSCkKKwkkKE9CSkNPUFkpIC1PIGJpbmFyeSAtLW9ubHkt c2VjdGlvbj0ubm90ZS5nbnUuYnVpbGQtaWQgJChMSVZFUEFUQ0gpICRALmJpbgogCSQoT0JKQ09Q WSkgIC1JIGJpbmFyeSAtTyBlbGY2NC14ODYtNjQgLUIgaTM4Njp4ODYtNjQgXAotCQkgICAtLXJl bmFtZS1zZWN0aW9uPS5kYXRhPS54c3BsaWNlLmRlcGVuZHMgLVMgJEAuYmluICRACisJCSAgIC0t cmVuYW1lLXNlY3Rpb249LmRhdGE9LmxpdmVwYXRjaC5kZXBlbmRzIC1TICRALmJpbiAkQAogCXJt IC1mICRALmJpbgogCiB4ZW5fYnllX3dvcmxkLm86IGNvbmZpZy5oCiAKLS5QSE9OWTogJChYU1BM SUNFX0JZRSkKLSQoWFNQTElDRV9CWUUpOiB4ZW5fYnllX3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dv cmxkLm8gaGVsbG9fd29ybGRfbm90ZS5vCi0JJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xp bmtlcikgLXIgLW8gJChYU1BMSUNFX0JZRSkgJF4KKy5QSE9OWTogJChMSVZFUEFUQ0hfQllFKQor JChMSVZFUEFUQ0hfQllFKTogeGVuX2J5ZV93b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZC5vIGhl bGxvX3dvcmxkX25vdGUubworCSQoTEQpICQoTERGTEFHUykgJChidWlsZF9pZF9saW5rZXIpIC1y IC1vICQoTElWRVBBVENIX0JZRSkgJF4KIAogeGVuX3JlcGxhY2Vfd29ybGQubzogY29uZmlnLmgK IAotLlBIT05ZOiAkKFhTUExJQ0VfUkVQTEFDRSkKLSQoWFNQTElDRV9SRVBMQUNFKTogeGVuX3Jl cGxhY2Vfd29ybGRfZnVuYy5vIHhlbl9yZXBsYWNlX3dvcmxkLm8gbm90ZS5vCi0JJChMRCkgJChM REZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIgLW8gJChYU1BMSUNFX1JFUExBQ0UpICReCisu UEhPTlk6ICQoTElWRVBBVENIX1JFUExBQ0UpCiskKExJVkVQQVRDSF9SRVBMQUNFKTogeGVuX3Jl cGxhY2Vfd29ybGRfZnVuYy5vIHhlbl9yZXBsYWNlX3dvcmxkLm8gbm90ZS5vCisJJChMRCkgJChM REZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIgLW8gJChMSVZFUEFUQ0hfUkVQTEFDRSkgJF4K IAotLlBIT05ZOiB4c3BsaWNlCi14c3BsaWNlOiAkKFhTUExJQ0UpICQoWFNQTElDRV9CWUUpICQo WFNQTElDRV9SRVBMQUNFKQorLlBIT05ZOiBsaXZlcGF0Y2gKK2xpdmVwYXRjaDogJChMSVZFUEFU Q0gpICQoTElWRVBBVENIX0JZRSkgJChMSVZFUEFUQ0hfUkVQTEFDRSkKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9i eWVfd29ybGQuYwppbmRleCBmOTNmOTY5Li5iNzVlMGIxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93 b3JsZC5jCkBAIC03LDE1ICs3LDE1IEBACiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUg PHhlbi90eXBlcy5oPgogI2luY2x1ZGUgPHhlbi92ZXJzaW9uLmg+Ci0jaW5jbHVkZSA8eGVuL3hz cGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAKICNpbmNsdWRlIDxwdWJsaWMv c3lzY3RsLmg+CiAKIHN0YXRpYyBjaGFyIGJ5ZV93b3JsZF9wYXRjaF90aGlzX2ZuY1tdID0gInhl bl9leHRyYV92ZXJzaW9uIjsKIGV4dGVybiBjb25zdCBjaGFyICp4ZW5fYnllX3dvcmxkKHZvaWQp OwogCi1zdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2UuZnVuY3Mi KSB4c3BsaWNlX3hlbl9ieWVfd29ybGQgPSB7Ci0gICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxP QURfVkVSU0lPTiwKK3N0cnVjdCBsaXZlcGF0Y2hfZnVuYyBfX3NlY3Rpb24oIi5saXZlcGF0Y2gu ZnVuY3MiKSBsaXZlcGF0Y2hfeGVuX2J5ZV93b3JsZCA9IHsKKyAgICAudmVyc2lvbiA9IExJVkVQ QVRDSF9QQVlMT0FEX1ZFUlNJT04sCiAgICAgLm5hbWUgPSBieWVfd29ybGRfcGF0Y2hfdGhpc19m bmMsCiAgICAgLm5ld19hZGRyID0geGVuX2J5ZV93b3JsZCwKICAgICAub2xkX2FkZHIgPSB4ZW5f ZXh0cmFfdmVyc2lvbiwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193 b3JsZC5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggOGFmZDY2 ZS4uNDIyYmRmMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxk LmMKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTYsMTUgKzYs MTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNpbmNs dWRlIDx4ZW4vdmVyc2lvbi5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+CisjaW5jbHVkZSA8 eGVuL2xpdmVwYXRjaC5oPgogCiAjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5oPgogCiBzdGF0aWMg Y2hhciBoZWxsb193b3JsZF9wYXRjaF90aGlzX2ZuY1tdID0gInhlbl9leHRyYV92ZXJzaW9uIjsK IGV4dGVybiBjb25zdCBjaGFyICp4ZW5faGVsbG9fd29ybGQodm9pZCk7CiAKLXN0cnVjdCB4c3Bs aWNlX3BhdGNoX2Z1bmMgX19zZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX2hl bGxvX3dvcmxkID0gewotICAgIC52ZXJzaW9uID0gWFNQTElDRV9QQVlMT0FEX1ZFUlNJT04sCitz dHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgX19zZWN0aW9uKCIubGl2ZXBhdGNoLmZ1bmNzIikgbGl2ZXBh dGNoX3hlbl9oZWxsb193b3JsZCA9IHsKKyAgICAudmVyc2lvbiA9IExJVkVQQVRDSF9QQVlMT0FE X1ZFUlNJT04sCiAgICAgLm5hbWUgPSBoZWxsb193b3JsZF9wYXRjaF90aGlzX2ZuYywKICAgICAu bmV3X2FkZHIgPSB4ZW5faGVsbG9fd29ybGQsCiAgICAgLm9sZF9hZGRyID0geGVuX2V4dHJhX3Zl cnNpb24sCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZC5j IGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX3JlcGxhY2Vfd29ybGQuYwppbmRleCBmYWIyODQxLi5h MmEyMjFhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZC5j CisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9yZXBsYWNlX3dvcmxkLmMKQEAgLTYsMTUgKzYs MTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVk ZSA8eGVuL3R5cGVzLmg+Ci0jaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4v bGl2ZXBhdGNoLmg+CiAKICNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+CiAKIHN0YXRpYyBjaGFy IHhlbl9yZXBsYWNlX3dvcmxkX25hbWVbXSA9ICJ4ZW5fZXh0cmFfdmVyc2lvbiI7CiBleHRlcm4g Y29uc3QgY2hhciAqeGVuX3JlcGxhY2Vfd29ybGQodm9pZCk7CiAKLXN0cnVjdCB4c3BsaWNlX3Bh dGNoX2Z1bmMgX19zZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX3JlcGxhY2Vf d29ybGQgPSB7Ci0gICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiwKK3N0cnVj dCBsaXZlcGF0Y2hfZnVuYyBfX3NlY3Rpb24oIi5saXZlcGF0Y2guZnVuY3MiKSBsaXZlcGF0Y2hf eGVuX3JlcGxhY2Vfd29ybGQgPSB7CisgICAgLnZlcnNpb24gPSBMSVZFUEFUQ0hfUEFZTE9BRF9W RVJTSU9OLAogICAgIC5uYW1lID0geGVuX3JlcGxhY2Vfd29ybGRfbmFtZSwKICAgICAub2xkX2Fk ZHIgPSAwLCAvKiBGb3JjZXMgdGhlIGh5cGVydmlzb3IgdG8gbG9va3VwIC5uYW1lICovCiAgICAg Lm5ld19hZGRyID0geGVuX3JlcGxhY2Vfd29ybGQsCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv dHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDVkNzIzMmQuLmM0ZTBlNmYgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5j CkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSA8eGVuL3BhZ2luZy5oPgogI2luY2x1ZGUgPHhl bi92aXJ0dWFsX3JlZ2lvbi5oPgogI2luY2x1ZGUgPHhlbi93YXRjaGRvZy5oPgotI2luY2x1ZGUg PHhlbi94c3BsaWNlLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgogI2luY2x1ZGUgPGFz bS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+ CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL0tjb25maWcgYi94ZW4vY29tbW9uL0tjb25maWcKaW5k ZXggOTFlYTkwNC4uNjNiZGUyNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9LY29uZmlnCisrKyBi L3hlbi9jb21tb24vS2NvbmZpZwpAQCAtMTkyLDkgKzE5Miw5IEBAIGNvbmZpZyBTQ0hFRF9ERUZB VUxUCiAKIGVuZG1lbnUKIAotIyBFbmFibGUvRGlzYWJsZSB4c3BsaWNlIHN1cHBvcnQKLWNvbmZp ZyBYU1BMSUNFCi0JYm9vbCAieFNwbGljZSBsaXZlIHBhdGNoaW5nIHN1cHBvcnQgKFRFQ0ggUFJF VklFVykiCisjIEVuYWJsZS9EaXNhYmxlIGxpdmUgcGF0Y2hpbmcgc3VwcG9ydAorY29uZmlnIExJ VkVQQVRDSAorCWJvb2wgIkxpdmUgcGF0Y2hpbmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVXKSIKIAlk ZWZhdWx0IG4KIAlkZXBlbmRzIG9uIFg4NiAmJiBIQVNfQlVJTERfSUQgPSAieSIKIAktLS1oZWxw LS0tCkBAIC0yMDcsMTMgKzIwNywxMyBAQCBjb25maWcgWFNQTElDRQogY29uZmlnIEZBU1RfU1lN Qk9MX0xPT0tVUAogCWJvb2wgIkZhc3Qgc3ltYm9sIGxvb2t1cCAoYmlnZ2VyIGJpbmFyeSkiCiAJ ZGVmYXVsdCB5Ci0JZGVwZW5kcyBvbiBYU1BMSUNFCisJZGVwZW5kcyBvbiBMSVZFUEFUQ0gKIAkt LS1oZWxwLS0tCiAJICBXaGVuIHNlYXJjaGluZyBmb3Igc3ltYm9sIGFkZHJlc3NlcyB3ZSBjYW4g dXNlIHRoZSBidWlsdC1pbiBzeXN0ZW0KIAkgIHRoYXQgaXMgb3B0aW1pemVkIGZvciBzZWFyY2hp bmcgc3ltYm9scyB1c2luZyBhZGRyZXNzZXMgYXMgdGhlIGtleS4KIAkgIEhvd2V2ZXIgdXNpbmcg aXQgZm9yIHRoZSBpbnZlcnNlIChmaW5kIGFkZHJlc3MgdXNpbmcgdGhlIHN5bWJvbCBuYW1lKQog CSAgaXQgaXMgc2xvdy4gVGhpcyBleHRyYSBkYXRhIGFuZCBjb2RlICh+NTVrQikgc3BlZWRzIHVw IHRoZSBzZWFyY2guCi0JICBUaGUgb25seSB1c2VyIG9mIHRoaXMgaXMgeFNwbGljZS4KKwkgIFRo ZSBvbmx5IHVzZXIgb2YgdGhpcyBpcyBsaXZlIHBhdGNoLgogCiAJICBJZiB1bnN1cmUsIHNheSBZ LgogZW5kbWVudQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9NYWtlZmlsZSBiL3hlbi9jb21tb24v TWFrZWZpbGUKaW5kZXggYWZkODRiNi4uNDc2NTgzMSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9N YWtlZmlsZQorKysgYi94ZW4vY29tbW9uL01ha2VmaWxlCkBAIC01OCw4ICs1OCw4IEBAIG9iai15 ICs9IHZzcHJpbnRmLm8KIG9iai15ICs9IHdhaXQubwogb2JqLSQoQ09ORklHX1hFTk9QUk9GKSAr PSB4ZW5vcHJvZi5vCiBvYmoteSArPSB4bWFsbG9jX3Rsc2Yubwotb2JqLSQoQ09ORklHX1hTUExJ Q0UpICs9IHhzcGxpY2Uubwotb2JqLSQoQ09ORklHX1hTUExJQ0UpICs9IHhzcGxpY2VfZWxmLm8K K29iai0kKENPTkZJR19MSVZFUEFUQ0gpICs9IGxpdmVwYXRjaC5vCitvYmotJChDT05GSUdfTElW RVBBVENIKSArPSBsaXZlcGF0Y2hfZWxmLm8KIAogb2JqLWJpbi0kKENPTkZJR19YODYpICs9ICQo Zm9yZWFjaCBuLGRlY29tcHJlc3MgYnVuemlwMiB1bnh6IHVubHptYSB1bmx6byB1bmx6NCBlYXJs eWNwaW8sJChuKS5pbml0Lm8pCiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIv eGVuL2NvbW1vbi9saXZlcGF0Y2guYwpzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSB4 ZW4vY29tbW9uL3hzcGxpY2UuYwpyZW5hbWUgdG8geGVuL2NvbW1vbi9saXZlcGF0Y2guYwppbmRl eCBiNjg4NzViLi42YjllZjQ3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysg Yi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCkBAIC0yMSw4ICsyMSw4IEBACiAjaW5jbHVkZSA8eGVu L3ZpcnR1YWxfcmVnaW9uLmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4v d2FpdC5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgotI2luY2x1ZGUgPHhlbi94c3Bs aWNlLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaF9lbGYuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2 ZXBhdGNoLmg+CiAKICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KIApAQCAtNDQsMTMgKzQ0LDEzIEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgcGF5bG9hZF9jbnQ7CiBzdGF0aWMgdW5zaWduZWQgaW50IHBh eWxvYWRfdmVyc2lvbiA9IDE7CiAKIC8qIFRvIGNvbnRhaW4gdGhlIEVMRiBOb3RlIGhlYWRlci4g Ki8KLXN0cnVjdCB4c3BsaWNlX2J1aWxkX2lkIHsKK3N0cnVjdCBsaXZlcGF0Y2hfYnVpbGRfaWQg ewogICAgY29uc3Qgdm9pZCAqcDsKICAgIHVuc2lnbmVkIGludCBsZW47CiB9OwogCiBzdHJ1Y3Qg cGF5bG9hZCB7Ci0gICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgICAgICAgIC8qIE9u ZSBvZiB0aGUgWFNQTElDRV9TVEFURV8qLiAqLworICAgIHVpbnQzMl90IHN0YXRlOyAgICAgICAg ICAgICAgICAgICAgICAvKiBPbmUgb2YgdGhlIExJVkVQQVRDSF9TVEFURV8qLiAqLwogICAgIGlu dDMyX3QgcmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwIG9yIC1YRU5fRVhYLiAqLwog ICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsgICAgICAgICAgICAgICAvKiBMaW5rZWQgdG8gJ3Bh eWxvYWRfbGlzdCcuICovCiAgICAgY29uc3Qgdm9pZCAqdGV4dF9hZGRyOyAgICAgICAgICAgICAg IC8qIFZpcnR1YWwgYWRkcmVzcyBvZiAudGV4dC4gKi8KQEAgLTYxLDQ0ICs2MSw0NCBAQCBzdHJ1 Y3QgcGF5bG9hZCB7CiAgICAgc2l6ZV90IHJvX3NpemU7ICAgICAgICAgICAgICAgICAgICAgIC8q IC4uIGFuZCBpdHMgc2l6ZSAoaWYgYW55KS4gKi8KICAgICB1bnNpZ25lZCBpbnQgcGFnZXM7ICAg ICAgICAgICAgICAgICAgLyogVG90YWwgcGFnZXMgZm9yIFt0ZXh0LHJ3LHJvXV9hZGRyICovCiAg ICAgc3RydWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAgICAgIC8qIExpbmtlZCB0byAnYXBw bGllZF9saXN0Jy4gKi8KLSAgICBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jczsgICAg LyogVGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8KKyAgICBzdHJ1Y3QgbGl2ZXBh dGNoX2Z1bmMgKmZ1bmNzOyAgICAgICAgLyogVGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRj aC4gKi8KICAgICB1bnNpZ25lZCBpbnQgbmZ1bmNzOyAgICAgICAgICAgICAgICAgLyogTnIgb2Yg ZnVuY3Rpb25zIHRvIHBhdGNoLiAqLwotICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAq c3ltdGFiOyAvKiBBbGwgc3ltYm9scy4gKi8KKyAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX3N5 bWJvbCAqc3ltdGFiOyAvKiBBbGwgc3ltYm9scy4gKi8KICAgICBjb25zdCBjaGFyICpzdHJ0YWI7 ICAgICAgICAgICAgICAgICAgLyogUG9pbnRlciB0byAuc3RydGFiLiAqLwogICAgIHN0cnVjdCB2 aXJ0dWFsX3JlZ2lvbiByZWdpb247ICAgICAgICAvKiBzeW1ib2wsIGJ1Zy5mcmFtZSBwYXRjaGlu ZyBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0 aW9uIHRhYmxlICh4ODYpLiAqLwogICAgIHVuc2lnbmVkIGludCBuc3ltczsgICAgICAgICAgICAg ICAgICAvKiBOciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIgYW5kIHN5bWJvbHMuICovCi0gICAgc3Ry dWN0IHhzcGxpY2VfYnVpbGRfaWQgaWQ7ICAgICAgICAgIC8qIEVMRk5PVEVfREVTQygubm90ZS5n bnUuYnVpbGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLwotICAgIHN0cnVjdCB4c3BsaWNlX2J1aWxk X2lkIGRlcDsgICAgICAgICAvKiBFTEZOT1RFX0RFU0MoLnhzcGxpY2UuZGVwZW5kcykuICovCi0g ICAgY2hhciBuYW1lW1hFTl9YU1BMSUNFX05BTUVfU0laRV07ICAgIC8qIE5hbWUgb2YgaXQuICov CisgICAgc3RydWN0IGxpdmVwYXRjaF9idWlsZF9pZCBpZDsgICAgICAgIC8qIEVMRk5PVEVfREVT Qygubm90ZS5nbnUuYnVpbGQtaWQpIG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHN0cnVjdCBsaXZl cGF0Y2hfYnVpbGRfaWQgZGVwOyAgICAgICAvKiBFTEZOT1RFX0RFU0MoLmxpdmVwYXRjaC5kZXBl bmRzKS4gKi8KKyAgICBjaGFyIG5hbWVbWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkVdOyAvKiBOYW1l IG9mIGl0LiAqLwogfTsKIAogLyogRGVmaW5lcyBhbiBvdXRzdGFuZGluZyBwYXRjaGluZyBhY3Rp b24uICovCi1zdHJ1Y3QgeHNwbGljZV93b3JrCitzdHJ1Y3QgbGl2ZXBhdGNoX3dvcmsKIHsKICAg ICBhdG9taWNfdCBzZW1hcGhvcmU7ICAgICAgICAgIC8qIFVzZWQgdG8gcmVuZGV6dm91cyBDUFVz IGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19mb3JfeHNwbGlj ZV93b3JrLiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfZm9y X2xpdmVwYXRjaF93b3JrLiAqLwogICAgIHVpbnQzMl90IHRpbWVvdXQ7ICAgICAgICAgICAgLyog VGltZW91dCB0byBkbyB0aGUgb3BlcmF0aW9uLiAqLwogICAgIHN0cnVjdCBwYXlsb2FkICpkYXRh OyAgICAgICAgLyogVGhlIHBheWxvYWQgb24gd2hpY2ggdG8gYWN0LiAqLwogICAgIHZvbGF0aWxl IGJvb2xfdCBkb193b3JrOyAgICAgLyogU2lnbmFscyB3b3JrIHRvIGRvLiAqLwogICAgIHZvbGF0 aWxlIGJvb2xfdCByZWFkeTsgICAgICAgLyogU2lnbmFscyBhbGwgQ1BVcyBzeW5jaHJvbml6ZWQu ICovCi0gICAgdW5zaWduZWQgaW50IGNtZDsgICAgICAgICAgICAvKiBBY3Rpb24gcmVxdWVzdDog WFNQTElDRV9BQ1RJT05fKiAqLworICAgIHVuc2lnbmVkIGludCBjbWQ7ICAgICAgICAgICAgLyog QWN0aW9uIHJlcXVlc3Q6IExJVkVQQVRDSF9BQ1RJT05fKiAqLwogfTsKIAogLyogVGhlcmUgY2Fu IGJlIG9ubHkgb25lIG91dHN0YW5kaW5nIHBhdGNoaW5nIGFjdGlvbi4gKi8KLXN0YXRpYyBzdHJ1 Y3QgeHNwbGljZV93b3JrIHhzcGxpY2Vfd29yazsKK3N0YXRpYyBzdHJ1Y3QgbGl2ZXBhdGNoX3dv cmsgbGl2ZXBhdGNoX3dvcms7CiAKIC8qCi0gKiBJbmRpY2F0ZSB3aGV0aGVyIHRoZSBDUFUgbmVl ZHMgdG8gY29uc3VsdCB4c3BsaWNlX3dvcmsgc3RydWN0dXJlLgotICogV2Ugd2FudCBhbiBwZXIt Y3B1IGRhdGEgc3RydWN0dXJlIG90aGVyd2lzZSB0aGUgY2hlY2tfZm9yX3hzcGxpY2Vfd29yawot ICogd291bGQgaGFtbWVyIGEgZ2xvYmFsIHhzcGxpY2Vfd29yayBzdHJ1Y3R1cmUgb24gZXZlcnkg Z3Vlc3QgVk1FWElULgorICogSW5kaWNhdGUgd2hldGhlciB0aGUgQ1BVIG5lZWRzIHRvIGNvbnN1 bHQgbGl2ZXBhdGNoX3dvcmsgc3RydWN0dXJlLgorICogV2Ugd2FudCBhbiBwZXItY3B1IGRhdGEg c3RydWN0dXJlIG90aGVyd2lzZSB0aGUgY2hlY2tfZm9yX2xpdmVwYXRjaF93b3JrCisgKiB3b3Vs ZCBoYW1tZXIgYSBnbG9iYWwgbGl2ZXBhdGNoX3dvcmsgc3RydWN0dXJlIG9uIGV2ZXJ5IGd1ZXN0 IFZNRVhJVC4KICAqIEhhdmluZyBhbiBwZXItY3B1IGxlc3NlbnMgdGhlIGxvYWQuCiAgKi8KIHN0 YXRpYyBERUZJTkVfUEVSX0NQVShib29sX3QsIHdvcmtfdG9fZG8pOwogCi1zdGF0aWMgaW50IGdl dF9uYW1lKGNvbnN0IHhlbl94c3BsaWNlX25hbWVfdCAqbmFtZSwgY2hhciAqbikKK3N0YXRpYyBp bnQgZ2V0X25hbWUoY29uc3QgeGVuX2xpdmVwYXRjaF9uYW1lX3QgKm5hbWUsIGNoYXIgKm4pCiB7 Ci0gICAgaWYgKCAhbmFtZS0+c2l6ZSB8fCBuYW1lLT5zaXplID4gWEVOX1hTUExJQ0VfTkFNRV9T SVpFICkKKyAgICBpZiAoICFuYW1lLT5zaXplIHx8IG5hbWUtPnNpemUgPiBYRU5fTElWRVBBVENI X05BTUVfU0laRSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgaWYgKCBuYW1lLT5w YWRbMF0gfHwgbmFtZS0+cGFkWzFdIHx8IG5hbWUtPnBhZFsyXSApCkBAIC0xMTMsNyArMTEzLDcg QEAgc3RhdGljIGludCBnZXRfbmFtZShjb25zdCB4ZW5feHNwbGljZV9uYW1lX3QgKm5hbWUsIGNo YXIgKm4pCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X3BheWxvYWQoY29u c3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQsIGNoYXIgKm4pCitzdGF0aWMg aW50IHZlcmlmeV9wYXlsb2FkKGNvbnN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZF90ICp1 cGxvYWQsIGNoYXIgKm4pCiB7CiAgICAgaWYgKCBnZXRfbmFtZSgmdXBsb2FkLT5uYW1lLCBuKSAp CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2xfdCBpc19w YXRjaChjb25zdCB2b2lkICpwdHIpCiAgICAgcmV0dXJuIHI7CiB9CiAKLXVuc2lnbmVkIGxvbmcg eHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpCit1bnNp Z25lZCBsb25nIGxpdmVwYXRjaF9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5 bW5hbWUpCiB7CiAgICAgY29uc3Qgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAKQEAgLTE4MSwxMCAr MTgxLDEwIEBAIHVuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNv bnN0IGNoYXIgKnN5bW5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFy ICp4c3BsaWNlX3N5bWJvbHNfbG9va3VwKHVuc2lnbmVkIGxvbmcgYWRkciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKnN5bWJvbHNpemUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n ICpvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy ICpuYW1lYnVmKQorc3RhdGljIGNvbnN0IGNoYXIgKmxpdmVwYXRjaF9zeW1ib2xzX2xvb2t1cCh1 bnNpZ25lZCBsb25nIGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgKnN5bWJvbHNpemUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZWJ1ZikKIHsKICAgICBj b25zdCBzdHJ1Y3QgcGF5bG9hZCAqZGF0YTsKICAgICB1bnNpZ25lZCBpbnQgaSwgYmVzdDsKQEAg LTI0OCw4ICsyNDgsOCBAQCBzdGF0aWMgc3RydWN0IHBheWxvYWQgKmZpbmRfcGF5bG9hZChjb25z dCBjaGFyICpuYW1lKQogfQogCiAvKgotICogRnVuY3Rpb25zIHJlbGF0ZWQgdG8gWEVOX1NZU0NU TF9YU1BMSUNFX1VQTE9BRCAoc2VlIHhzcGxpY2VfdXBsb2FkKSwgYW5kCi0gKiBmcmVlaW5nIHBh eWxvYWQgKFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT046WFNQTElDRV9BQ1RJT05fVU5MT0FEKS4K KyAqIEZ1bmN0aW9ucyByZWxhdGVkIHRvIFhFTl9TWVNDVExfTElWRVBBVENIX1VQTE9BRCAoc2Vl IGxpdmVwYXRjaF91cGxvYWQpLCBhbmQKKyAqIGZyZWVpbmcgcGF5bG9hZCAoWEVOX1NZU0NUTF9M SVZFUEFUQ0hfQUNUSU9OOkxJVkVQQVRDSF9BQ1RJT05fVU5MT0FEKS4KICAqLwogCiBzdGF0aWMg dm9pZCBmcmVlX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCkKQEAgLTI3MCw3 ICsyNzAsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCkKICogYWRkcmVzcyBzcGFjZSBmb3IgdGhlIHBheWxvYWQgKHVzaW5nIHBhc3NlZCBp biBzaXplKS4gVGhpcyBpcyB1c2VkIGluCiAqIG1vdmVfcGF5bG9hZCB0byBmaWd1cmUgb3V0IHRo ZSBkZXN0aW5hdGlvbiBsb2NhdGlvbiAobG9hZF9hZGRyKS4KICovCi1zdGF0aWMgdm9pZCBjYWxj X3NlY3Rpb24oY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjLCBzaXplX3QgKnNpemUs CitzdGF0aWMgdm9pZCBjYWxjX3NlY3Rpb24oY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2Vj ICpzZWMsIHNpemVfdCAqc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKm9mZnNldCkKIHsKICAgICBjb25zdCBFbGZfU2hkciAqcyA9IHNlYy0+c2VjOwpAQCAtMjgx LDcgKzI4MSw3IEBAIHN0YXRpYyB2b2lkIGNhbGNfc2VjdGlvbihjb25zdCBzdHJ1Y3QgeHNwbGlj ZV9lbGZfc2VjICpzZWMsIHNpemVfdCAqc2l6ZSwKICAgICAqc2l6ZSA9IHMtPnNoX3NpemUgKyBh bGlnbl9zaXplOwogfQogCi1zdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAq cGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCitzdGF0aWMgaW50IG1vdmVfcGF5bG9h ZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsK ICAgICB2b2lkICp0ZXh0X2J1ZiwgKnJvX2J1ZiwgKnJ3X2J1ZjsKICAgICB1bnNpZ25lZCBpbnQg aTsKQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5 bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgICAgICAgICBjYWxj X3NlY3Rpb24oJmVsZi0+c2VjW2ldLCAmcGF5bG9hZC0+cm9fc2l6ZSwgJm9mZnNldFtpXSk7CiAg ICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcs IFhTUExJQ0UgIiVzOiBOb3Qgc3VwcG9ydGluZyAlcyBzZWN0aW9uIVxuIiwKKyAgICAgICAgICAg IGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBOb3Qgc3VwcG9ydGluZyAlcyBz ZWN0aW9uIVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnNlY1tpXS5u YW1lKTsKICAgICAgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgICAgICBnb3RvIG91 dDsKQEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW50IG1vdmVfcGF5bG9hZChzdHJ1Y3QgcGF5 bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgdGV4dF9idWYgPSB2 bWFsbG9jX3hlbihzaXplICogUEFHRV9TSVpFKTsKICAgICBpZiAoICF0ZXh0X2J1ZiApCiAgICAg ewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBDb3VsZCBub3QgYWxs b2NhdGUgbWVtb3J5IGZvciBwYXlsb2FkIVxuIiwKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBMSVZFUEFUQ0ggIiVzOiBDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBwYXlsb2FkIVxu IiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByYyA9IC1FTk9NRU07CiAg ICAgICAgIGdvdG8gb3V0OwpAQCAtMzcwLDcgKzM3MCw3IEBAIHN0YXRpYyBpbnQgbW92ZV9wYXls b2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBtZW1jcHkoZWxmLT5zZWNbaV0ubG9hZF9hZGRy LCBlbGYtPnNlY1tpXS5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBlbGYtPnNlY1tpXS5z ZWMtPnNoX3NpemUpOwotICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BM SUNFICIlczogTG9hZGVkICVzIGF0ICVwXG4iLAorICAgICAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBMb2FkZWQgJXMgYXQgJXBcbiIsCiAgICAgICAgICAg ICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+c2VjW2ldLm5hbWUsIGVsZi0+c2VjW2ldLmxv YWRfYWRkcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCkBAIC0zODQsNyArMzg0 LDcgQEAgc3RhdGljIGludCBtb3ZlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHN0 cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBz ZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhzcGxpY2VfZWxm ICplbGYpCitzdGF0aWMgaW50IHNlY3VyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2Fk LCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogewogICAgIGludCByYzsKICAgICB1bnNpZ25l ZCBpbnQgdGV4dF9wYWdlcywgcndfcGFnZXMsIHJvX3BhZ2VzOwpAQCAtMzkyLDU3ICszOTIsNTcg QEAgc3RhdGljIGludCBzZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3Ry dWN0IHhzcGxpY2VfZWxmICplbGYpCiAgICAgdGV4dF9wYWdlcyA9IFBGTl9VUChwYXlsb2FkLT50 ZXh0X3NpemUpOwogICAgIEFTU0VSVCh0ZXh0X3BhZ2VzKTsKIAotICAgIHJjID0gYXJjaF94c3Bs aWNlX3NlY3VyZShwYXlsb2FkLT50ZXh0X2FkZHIsIHRleHRfcGFnZXMsIFhTUExJQ0VfVkFfUlgp OworICAgIHJjID0gYXJjaF9saXZlcGF0Y2hfc2VjdXJlKHBheWxvYWQtPnRleHRfYWRkciwgdGV4 dF9wYWdlcywgTElWRVBBVENIX1ZBX1JYKTsKICAgICBpZiAoIHJjICkKICAgICAgICAgcmV0dXJu IHJjOwogCiAgICAgcndfcGFnZXMgPSBQRk5fVVAocGF5bG9hZC0+cndfc2l6ZSk7CiAgICAgaWYg KCByd19wYWdlcyApCiAgICAgewotICAgICAgICByYyA9IGFyY2hfeHNwbGljZV9zZWN1cmUocGF5 bG9hZC0+cndfYWRkciwgcndfcGFnZXMsIFhTUExJQ0VfVkFfUlcpOworICAgICAgICByYyA9IGFy Y2hfbGl2ZXBhdGNoX3NlY3VyZShwYXlsb2FkLT5yd19hZGRyLCByd19wYWdlcywgTElWRVBBVENI X1ZBX1JXKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAg fQogCiAgICAgcm9fcGFnZXMgPSBQRk5fVVAocGF5bG9hZC0+cm9fc2l6ZSk7CiAgICAgaWYgKCBy b19wYWdlcyApCi0gICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3NlY3VyZShwYXlsb2FkLT5yb19h ZGRyLCByb19wYWdlcywgWFNQTElDRV9WQV9STyk7CisgICAgICAgIHJjID0gYXJjaF9saXZlcGF0 Y2hfc2VjdXJlKHBheWxvYWQtPnJvX2FkZHIsIHJvX3BhZ2VzLCBMSVZFUEFUQ0hfVkFfUk8pOwog CiAgICAgQVNTRVJUKHJvX3BhZ2VzICsgcndfcGFnZXMgKyB0ZXh0X3BhZ2VzID09IHBheWxvYWQt PnBhZ2VzKTsKIAogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBjaGVja19zcGVjaWFs X3NlY3Rpb25zKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQorc3RhdGljIGludCBjaGVj a19zcGVjaWFsX3NlY3Rpb25zKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7CiAg ICAgdW5zaWduZWQgaW50IGk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10g PSB7IEVMRl9YU1BMSUNFX0ZVTkMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVMRl9YU1BMSUNFX0RFUEVORFMsCisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0 IG5hbWVzW10gPSB7IEVMRl9MSVZFUEFUQ0hfRlVOQywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUxGX0xJVkVQQVRDSF9ERVBFTkRTLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBFTEZfQlVJTERfSURfTk9URX07CiAgICAgREVDTEFS RV9CSVRNQVAoZm91bmQsIEFSUkFZX1NJWkUobmFtZXMpKSA9IHsgMCB9OwogCiAgICAgZm9yICgg aSA9IDA7IGkgPCBBUlJBWV9TSVpFKG5hbWVzKTsgaSsrICkKICAgICB7Ci0gICAgICAgIGNvbnN0 IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnNlYzsKKyAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVw YXRjaF9lbGZfc2VjICpzZWM7CiAKLSAgICAgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25h bWUoZWxmLCBuYW1lc1tpXSk7CisgICAgICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25h bWUoZWxmLCBuYW1lc1tpXSk7CiAgICAgICAgIGlmICggIXNlYyApCiAgICAgICAgIHsKLSAgICAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6ICVzIGlzIG1pc3NpbmchXG4i LAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiAlcyBpcyBt aXNzaW5nIVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBuYW1lc1tpXSk7CiAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICggIXNl Yy0+c2VjLT5zaF9zaXplICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBYU1BMSUNFICIlczogJXMgaXMgZW1wdHkhXG4iLAorICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiAlcyBpcyBlbXB0eSFcbiIsCiAgICAgICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSwgbmFtZXNbaV0pOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIHRlc3RfYW5kX3NldF9iaXQoaSwgZm91bmQpICkK ICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczog JXMgd2FzIHNlZW4gbW9yZSB0aGFuIG9uY2UhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5M T0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiAlcyB3YXMgc2VlbiBtb3JlIHRoYW4gb25jZSFcbiIsCiAg ICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgbmFtZXNbaV0pOwogICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KQEAgLTQ1MiwxOSArNDUyLDE5IEBAIHN0YXRpYyBpbnQg Y2hlY2tfc3BlY2lhbF9zZWN0aW9ucyhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIH0K IAogc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7Ci0gICAg Y29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjOworICAgIGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZWxmX3NlYyAqc2VjOwogICAgIHVuc2lnbmVkIGludCBpOwotICAgIHN0cnVjdCB4c3Bs aWNlX3BhdGNoX2Z1bmMgKmY7CisgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmOwogICAgIHN0 cnVjdCB2aXJ0dWFsX3JlZ2lvbiAqcmVnaW9uOwogICAgIGNvbnN0IEVsZl9Ob3RlICpuOwogCi0g ICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZfWFNQTElDRV9GVU5DKTsK KyAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX0xJVkVQQVRDSF9G VU5DKTsKICAgICBBU1NFUlQoc2VjKTsKICAgICBpZiAoIHNlYy0+c2VjLT5zaF9zaXplICUgc2l6 ZW9mKCpwYXlsb2FkLT5mdW5jcykgKQogICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBYU1BMSUNFICIlczogV3Jvbmcgc2l6ZSBvZiAiRUxGX1hTUExJQ0VfRlVOQyIhXG4iLAorICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFdyb25nIHNpemUgb2YgIkVM Rl9MSVZFUEFUQ0hfRlVOQyIhXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAg ICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KQEAgLTQ3OCwyMSArNDc4LDIxIEBAIHN0YXRpYyBp bnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogCiAgICAgICAgIGYg PSAmKHBheWxvYWQtPmZ1bmNzW2ldKTsKIAotICAgICAgICBpZiAoIGYtPnZlcnNpb24gIT0gWFNQ TElDRV9QQVlMT0FEX1ZFUlNJT04gKQorICAgICAgICBpZiAoIGYtPnZlcnNpb24gIT0gTElWRVBB VENIX1BBWUxPQURfVkVSU0lPTiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiwgWFNQTElDRSAiJXM6IFdyb25nIHZlcnNpb24gKCV1KS4gRXhwZWN0ZWQgJWQhXG4i LAotICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGYtPnZlcnNpb24sIFhTUExJQ0VfUEFZ TE9BRF9WRVJTSU9OKTsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENI ICIlczogV3JvbmcgdmVyc2lvbiAoJXUpLiBFeHBlY3RlZCAlZCFcbiIsCisgICAgICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSwgZi0+dmVyc2lvbiwgTElWRVBBVENIX1BBWUxPQURfVkVSU0lPTik7 CiAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAgICAgICAgIH0KIAogICAgICAgICBp ZiAoICFmLT5uZXdfYWRkciB8fCAhZi0+bmV3X3NpemUgKQogICAgICAgICB7Ci0gICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBBZGRyZXNzIG9yIHNpemUgZmllbGRz IGFyZSB6ZXJvIVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENI ICIlczogQWRkcmVzcyBvciBzaXplIGZpZWxkcyBhcmUgemVybyFcbiIsCiAgICAgICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAg fQogCi0gICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3ZlcmlmeV9mdW5jKGYpOworICAgICAgICBy YyA9IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9mdW5jKGYpOwogICAgICAgICBpZiAoIHJjICkKICAg ICAgICAgICAgIHJldHVybiByYzsKIApAQCAtNTAyLDIwICs1MDIsMjAgQEAgc3RhdGljIGludCBw cmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAgICAgICBmLT5v bGRfYWRkciA9ICh2b2lkICopc3ltYm9sc19sb29rdXBfYnlfbmFtZShmLT5uYW1lKTsKICAgICAg ICAgICAgIGlmICggIWYtPm9sZF9hZGRyICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBmLT5vbGRfYWRkciA9ICh2b2lkICopeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGYt Pm5hbWUpOworICAgICAgICAgICAgICAgIGYtPm9sZF9hZGRyID0gKHZvaWQgKilsaXZlcGF0Y2hf c3ltYm9sc19sb29rdXBfYnlfbmFtZShmLT5uYW1lKTsKICAgICAgICAgICAgICAgICBpZiAoICFm LT5vbGRfYWRkciApCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBkcHJp bnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBDb3VsZCBub3QgcmVzb2x2ZSBvbGQgYWRkcmVz cyBvZiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZF UEFUQ0ggIiVzOiBDb3VsZCBub3QgcmVzb2x2ZSBvbGQgYWRkcmVzcyBvZiAlc1xuIiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGYtPm5hbWUpOwogICAgICAgICAgICAg ICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IFJlc29sdmVk IG9sZCBhZGRyZXNzICVzID0+ICVwXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVC VUcsIExJVkVQQVRDSCAiJXM6IFJlc29sdmVkIG9sZCBhZGRyZXNzICVzID0+ICVwXG4iLAogICAg ICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGYtPm5hbWUsIGYtPm9sZF9hZGRyKTsKICAgICAg ICAgfQogICAgIH0KIAotICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxG X0JVSUxEX0lEX05PVEUpOworICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxm LCBFTEZfQlVJTERfSURfTk9URSk7CiAgICAgaWYgKCBzZWMgKQogICAgIHsKICAgICAgICAgY29u c3Qgc3RydWN0IHBheWxvYWQgKmRhdGE7CkBAIC01NDAsMTQgKzU0MCwxNCBAQCBzdGF0aWMgaW50 IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICAgICAgICAgIGlm ICggZGF0YS0+aWQubGVuID09IHBheWxvYWQtPmlkLmxlbiAmJgogICAgICAgICAgICAgICAgICAh bWVtY21wKGRhdGEtPmlkLnAsIHBheWxvYWQtPmlkLnAsIGRhdGEtPmlkLmxlbikgKQogICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIl czogQWxyZWFkeSBsb2FkZWQgYXMgJXMhXG4iLAorICAgICAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBBbHJlYWR5IGxvYWRlZCBhcyAlcyFcbiIsCiAgICAg ICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGRhdGEtPm5hbWUpOwogICAgICAgICAgICAg ICAgIHJldHVybiAtRUVYSVNUOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0g ICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5X25hbWUoZWxmLCBFTEZfWFNQTElDRV9ERVBFTkRT KTsKKyAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX0xJVkVQQVRD SF9ERVBFTkRTKTsKICAgICBpZiAoIHNlYyApCiAgICAgewogICAgICAgICBuID0gc2VjLT5sb2Fk X2FkZHI7CkBAIC01NjYsNyArNTY2LDcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3Ry dWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgLyogU2V0dXAgdGhlIHZpcnR1YWwgcmVnaW9uIHdp dGggcHJvcGVyIGRhdGEuICovCiAgICAgcmVnaW9uID0gJnBheWxvYWQtPnJlZ2lvbjsKIAotICAg IHJlZ2lvbi0+c3ltYm9sc19sb29rdXAgPSB4c3BsaWNlX3N5bWJvbHNfbG9va3VwOworICAgIHJl Z2lvbi0+c3ltYm9sc19sb29rdXAgPSBsaXZlcGF0Y2hfc3ltYm9sc19sb29rdXA7CiAgICAgcmVn aW9uLT5zdGFydCA9IHBheWxvYWQtPnRleHRfYWRkcjsKICAgICByZWdpb24tPmVuZCA9IHBheWxv YWQtPnRleHRfYWRkciArIHBheWxvYWQtPnRleHRfc2l6ZTsKIApAQCAtNTc2LDEzICs1NzYsMTMg QEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAg ICAgICAgIGNoYXIgc3RyWzE0XTsKIAogICAgICAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIp LCAiLmJ1Z19mcmFtZXMuJXUiLCBpKTsKLSAgICAgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5 X25hbWUoZWxmLCBzdHIpOworICAgICAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1l KGVsZiwgc3RyKTsKICAgICAgICAgaWYgKCAhc2VjICkKICAgICAgICAgICAgIGNvbnRpbnVlOwog CiAgICAgICAgIGlmICggc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKnJlZ2lvbi0+ZnJhbWVb aV0uYnVncykgKQogICAgICAgICB7Ci0gICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhT UExJQ0UgIiVzOiBXcm9uZyBzaXplIG9mIC5idWdfZnJhbWVzLiV1IVxuIiwKKyAgICAgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogV3Jvbmcgc2l6ZSBvZiAuYnVnX2Zy YW1lcy4ldSFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgaSk7CiAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtNTkzLDE0ICs1OTMsMTQgQEAgc3Rh dGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgfQog CiAjaWZuZGVmIENPTkZJR19BUk0KLSAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShl bGYsICIuYWx0aW5zdHJ1Y3Rpb25zIik7CisgICAgc2VjID0gbGl2ZXBhdGNoX2VsZl9zZWNfYnlf bmFtZShlbGYsICIuYWx0aW5zdHJ1Y3Rpb25zIik7CiAgICAgaWYgKCBzZWMgKQogICAgIHsKICAg ICAgICAgc3RydWN0IGFsdF9pbnN0ciAqYSwgKnN0YXJ0LCAqZW5kOwogCiAgICAgICAgIGlmICgg c2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKmEpICkKICAgICAgICAgewotICAgICAgICAgICAg ZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2l6ZSBvZiAuYWx0X2luc3RyIGlzIG5v dCBtdWx0aXBsZSBvZiAlenUhXG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBM SVZFUEFUQ0ggIiVzOiBTaXplIG9mIC5hbHRfaW5zdHIgaXMgbm90IG11bHRpcGxlIG9mICV6dSFc biIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc2l6ZW9mKCphKSk7CiAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQpAQCAtNjE2LDcgKzYxNiw3IEBAIHN0YXRp YyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICAg ICAgaWYgKCAoaW5zdHIgPCByZWdpb24tPnN0YXJ0ICYmIGluc3RyID49IHJlZ2lvbi0+ZW5kKSB8 fAogICAgICAgICAgICAgICAgICAocmVwbGFjZW1lbnQgPCByZWdpb24tPnN0YXJ0ICYmIHJlcGxh Y2VtZW50ID49IHJlZ2lvbi0+ZW5kKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlcyBBbHQgcGF0Y2hpbmcgb3V0c2lkZSBwYXls b2FkOiAlcCFcbiIsCisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzIEFsdCBwYXRjaGluZyBvdXRzaWRlIHBheWxvYWQ6ICVwIVxuIiwKICAgICAgICAgICAg ICAgICAgICAgICAgIGVsZi0+bmFtZSwgaW5zdHIpOwogICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwogICAgICAgICAgICAgfQpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0YXRpYyBpbnQgcHJl cGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICBhcHBseV9hbHRl cm5hdGl2ZXNfbm9jaGVjayhzdGFydCwgZW5kKTsKICAgICB9CiAKLSAgICBzZWMgPSB4c3BsaWNl X2VsZl9zZWNfYnlfbmFtZShlbGYsICIuZXhfdGFibGUiKTsKKyAgICBzZWMgPSBsaXZlcGF0Y2hf ZWxmX3NlY19ieV9uYW1lKGVsZiwgIi5leF90YWJsZSIpOwogICAgIGlmICggc2VjICkKICAgICB7 CiAgICAgICAgIHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKnMsICplOwpAQCAtNjMyLDcg KzYzMiw3IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXls b2FkLAogICAgICAgICBpZiAoICFzZWMtPnNlYy0+c2hfc2l6ZSB8fAogICAgICAgICAgICAgIChz ZWMtPnNlYy0+c2hfc2l6ZSAlIHNpemVvZigqcmVnaW9uLT5leCkpICkKICAgICAgICAgewotICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogV3Jvbmcgc2l6ZSBvZiAu ZXhfdGFibGUgKGV4cDolbHUgdnMgJWx1KSFcbiIsCisgICAgICAgICAgICBkcHJpbnRrKFhFTkxP R19FUlIsIExJVkVQQVRDSCAiJXM6IFdyb25nIHNpemUgb2YgLmV4X3RhYmxlIChleHA6JWx1IHZz ICVsdSkhXG4iLAogICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHNpemVvZigqcmVnaW9u LT5leCksCiAgICAgICAgICAgICAgICAgICAgIHNlYy0+c2VjLT5zaF9zaXplKTsKICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwpAQCAtNjUxLDggKzY1MSw4IEBAIHN0YXRpYyBpbnQgcHJlcGFy ZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgIHJldHVybiAwOwogfQogCi1z dGF0aWMgYm9vbF90IGlzX3BheWxvYWRfc3ltYm9sKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAq ZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGlj ZV9lbGZfc3ltICpzeW0pCitzdGF0aWMgYm9vbF90IGlzX3BheWxvYWRfc3ltYm9sKGNvbnN0IHN0 cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3N5bSAqc3ltKQogewogICAgIGlmICggc3ltLT5z eW0tPnN0X3NobmR4ID09IFNITl9VTkRFRiB8fAogICAgICAgICAgc3ltLT5zeW0tPnN0X3NobmR4 ID49IGVsZi0+aGRyLT5lX3NobnVtICkKQEAgLTY4OCwxMSArNjg4LDExIEBAIHN0YXRpYyBib29s X3QgaXNfcGF5bG9hZF9zeW1ib2woY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYsCiB9CiAK IHN0YXRpYyBpbnQgYnVpbGRfc3ltYm9sX3RhYmxlKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICpl bGYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNo X2VsZiAqZWxmKQogewogICAgIHVuc2lnbmVkIGludCBpLCBqLCBuc3ltcyA9IDA7CiAgICAgc2l6 ZV90IHN0cnRhYl9sZW4gPSAwOwotICAgIHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAqc3ltdGFiOwor ICAgIHN0cnVjdCBsaXZlcGF0Y2hfc3ltYm9sICpzeW10YWI7CiAgICAgY2hhciAqc3RydGFiOwog CiAgICAgQVNTRVJUKHBheWxvYWQtPm5mdW5jcyk7CkBAIC03MDcsNyArNzA3LDcgQEAgc3RhdGlj IGludCBidWlsZF9zeW1ib2xfdGFibGUoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgICAg IH0KICAgICB9CiAKLSAgICBzeW10YWIgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCB4c3BsaWNlX3N5 bWJvbCwgbnN5bXMpOworICAgIHN5bXRhYiA9IHhtYWxsb2NfYXJyYXkoc3RydWN0IGxpdmVwYXRj aF9zeW1ib2wsIG5zeW1zKTsKICAgICBzdHJ0YWIgPSB4bWFsbG9jX2FycmF5KGNoYXIsIHN0cnRh Yl9sZW4pOwogCiAgICAgaWYgKCAhc3RydGFiIHx8ICFzeW10YWIgKQpAQCAtNzQ5LDIyICs3NDks MjIgQEAgc3RhdGljIGludCBidWlsZF9zeW1ib2xfdGFibGUoc3RydWN0IHBheWxvYWQgKnBheWxv YWQsCiAgICAgICAgIGlmICggIWZvdW5kICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBz eW1ib2xzX2xvb2t1cF9ieV9uYW1lKHN5bXRhYltpXS5uYW1lKSB8fAotICAgICAgICAgICAgICAg ICB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoc3ltdGFiW2ldLm5hbWUpICkKKyAgICAg ICAgICAgICAgICAgbGl2ZXBhdGNoX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoc3ltdGFiW2ldLm5h bWUpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIs IFhTUExJQ0UgIiVzOiBkdXBsaWNhdGUgbmV3IHN5bWJvbDogJXNcbiIsCisgICAgICAgICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBkdXBsaWNhdGUgbmV3IHN5bWJv bDogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHN5bXRhYltpXS5u YW1lKTsKICAgICAgICAgICAgICAgICB4ZnJlZShzeW10YWIpOwogICAgICAgICAgICAgICAgIHhm cmVlKHN0cnRhYik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7CiAgICAgICAgICAg ICB9CiAgICAgICAgICAgICBzeW10YWJbaV0ubmV3X3N5bWJvbCA9IDE7Ci0gICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IG5ldyBzeW1ib2wgJXNcbiIsCisgICAg ICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgTElWRVBBVENIICIlczogbmV3IHN5bWJvbCAl c1xuIiwKICAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOwog ICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgLyogbmV3X3N5 bWJvbCBpcyBub3Qgc2V0LiAqLwotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhT UExJQ0UgIiVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAgIGRwcmludGso WEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKICAg ICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CiAgICAgICAgIH0K ICAgICB9CkBAIC03OTAsMTAgKzc5MCwxMCBAQCBzdGF0aWMgdm9pZCBmcmVlX3BheWxvYWQoc3Ry dWN0IHBheWxvYWQgKmRhdGEpCiAKIHN0YXRpYyBpbnQgbG9hZF9wYXlsb2FkX2RhdGEoc3RydWN0 IHBheWxvYWQgKnBheWxvYWQsIHZvaWQgKnJhdywgc2l6ZV90IGxlbikKIHsKLSAgICBzdHJ1Y3Qg eHNwbGljZV9lbGYgZWxmID0geyAubmFtZSA9IHBheWxvYWQtPm5hbWUsIC5sZW4gPSBsZW4gfTsK KyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiBlbGYgPSB7IC5uYW1lID0gcGF5bG9hZC0+bmFtZSwg LmxlbiA9IGxlbiB9OwogICAgIGludCByYyA9IDA7CiAKLSAgICByYyA9IHhzcGxpY2VfZWxmX2xv YWQoJmVsZiwgcmF3KTsKKyAgICByYyA9IGxpdmVwYXRjaF9lbGZfbG9hZCgmZWxmLCByYXcpOwog ICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIApAQCAtODAxLDExICs4MDEsMTEgQEAg c3RhdGljIGludCBsb2FkX3BheWxvYWRfZGF0YShzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgdm9p ZCAqcmF3LCBzaXplX3QgbGVuKQogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIG91dDsKIAot ICAgIHJjID0geHNwbGljZV9lbGZfcmVzb2x2ZV9zeW1ib2xzKCZlbGYpOworICAgIHJjID0gbGl2 ZXBhdGNoX2VsZl9yZXNvbHZlX3N5bWJvbHMoJmVsZik7CiAgICAgaWYgKCByYyApCiAgICAgICAg IGdvdG8gb3V0OwogCi0gICAgcmMgPSB4c3BsaWNlX2VsZl9wZXJmb3JtX3JlbG9jcygmZWxmKTsK KyAgICByYyA9IGxpdmVwYXRjaF9lbGZfcGVyZm9ybV9yZWxvY3MoJmVsZik7CiAgICAgaWYgKCBy YyApCiAgICAgICAgIGdvdG8gb3V0OwogCkBAIC04MjgsMTUgKzgyOCwxNSBAQCBzdGF0aWMgaW50 IGxvYWRfcGF5bG9hZF9kYXRhKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCB2b2lkICpyYXcsIHNp emVfdCBsZW4pCiAgICAgICAgIGZyZWVfcGF5bG9hZF9kYXRhKHBheWxvYWQpOwogCiAgICAgLyog RnJlZSBvdXIgdGVtcG9yYXJ5IGRhdGEgc3RydWN0dXJlLiAqLwotICAgIHhzcGxpY2VfZWxmX2Zy ZWUoJmVsZik7CisgICAgbGl2ZXBhdGNoX2VsZl9mcmVlKCZlbGYpOwogCiAgICAgcmV0dXJuIHJj OwogfQogCi1zdGF0aWMgaW50IHhzcGxpY2VfdXBsb2FkKHhlbl9zeXNjdGxfeHNwbGljZV91cGxv YWRfdCAqdXBsb2FkKQorc3RhdGljIGludCBsaXZlcGF0Y2hfdXBsb2FkKHhlbl9zeXNjdGxfbGl2 ZXBhdGNoX3VwbG9hZF90ICp1cGxvYWQpCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGEsICpm b3VuZDsKLSAgICBjaGFyIG5bWEVOX1hTUExJQ0VfTkFNRV9TSVpFXTsKKyAgICBjaGFyIG5bWEVO X0xJVkVQQVRDSF9OQU1FX1NJWkVdOwogICAgIHZvaWQgKnJhd19kYXRhOwogICAgIGludCByYzsK IApAQCAtODY2LDcgKzg2Niw3IEBAIHN0YXRpYyBpbnQgeHNwbGljZV91cGxvYWQoeGVuX3N5c2N0 bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAg ICAgZ290byBvdXQ7CiAKLSAgICAgICAgZGF0YS0+c3RhdGUgPSBYU1BMSUNFX1NUQVRFX0NIRUNL RUQ7CisgICAgICAgIGRhdGEtPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQ7CiAgICAg ICAgIElOSVRfTElTVF9IRUFEKCZkYXRhLT5saXN0KTsKICAgICAgICAgSU5JVF9MSVNUX0hFQUQo JmRhdGEtPmFwcGxpZWRfbGlzdCk7CiAKQEAgLTg5MCwxMSArODkwLDExIEBAIHN0YXRpYyBpbnQg eHNwbGljZV91cGxvYWQoeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQpCiAgICAg cmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IHhzcGxpY2VfZ2V0KHhlbl9zeXNjdGxfeHNwbGlj ZV9nZXRfdCAqZ2V0KQorc3RhdGljIGludCBsaXZlcGF0Y2hfZ2V0KHhlbl9zeXNjdGxfbGl2ZXBh dGNoX2dldF90ICpnZXQpCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAgICAgaW50IHJj OwotICAgIGNoYXIgbltYRU5fWFNQTElDRV9OQU1FX1NJWkVdOworICAgIGNoYXIgbltYRU5fTElW RVBBVENIX05BTUVfU0laRV07CiAKICAgICByYyA9IGdldF9uYW1lKCZnZXQtPm5hbWUsIG4pOwog ICAgIGlmICggcmMgKQpAQCAtOTIxLDkgKzkyMSw5IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9nZXQo eGVuX3N5c2N0bF94c3BsaWNlX2dldF90ICpnZXQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgeHNwbGljZV9saXN0KHhlbl9zeXNjdGxfeHNwbGljZV9saXN0X3QgKmxpc3QpCitzdGF0 aWMgaW50IGxpdmVwYXRjaF9saXN0KHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3RfdCAqbGlzdCkK IHsKLSAgICB4ZW5feHNwbGljZV9zdGF0dXNfdCBzdGF0dXM7CisgICAgeGVuX2xpdmVwYXRjaF9z dGF0dXNfdCBzdGF0dXM7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CiAgICAgdW5zaWduZWQg aW50IGlkeCA9IDAsIGkgPSAwOwogICAgIGludCByYyA9IDA7CkBAIC05MzYsNyArOTM2LDcgQEAg c3RhdGljIGludCB4c3BsaWNlX2xpc3QoeGVuX3N5c2N0bF94c3BsaWNlX2xpc3RfdCAqbGlzdCkK IAogICAgIGlmICggbGlzdC0+bnIgJiYKICAgICAgICAgICghZ3Vlc3RfaGFuZGxlX29rYXkobGlz dC0+c3RhdHVzLCBsaXN0LT5ucikgfHwKLSAgICAgICAgICAhZ3Vlc3RfaGFuZGxlX29rYXkobGlz dC0+bmFtZSwgWEVOX1hTUExJQ0VfTkFNRV9TSVpFICogbGlzdC0+bnIpIHx8CisgICAgICAgICAg IWd1ZXN0X2hhbmRsZV9va2F5KGxpc3QtPm5hbWUsIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFICog bGlzdC0+bnIpIHx8CiAgICAgICAgICAgIWd1ZXN0X2hhbmRsZV9va2F5KGxpc3QtPmxlbiwgbGlz dC0+bnIpKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCkBAIC05NjEsNyArOTYxLDcgQEAg c3RhdGljIGludCB4c3BsaWNlX2xpc3QoeGVuX3N5c2N0bF94c3BsaWNlX2xpc3RfdCAqbGlzdCkK ICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihkYXRhLT5uYW1lKSArIDE7CiAKICAgICAgICAgICAg IC8qIE4uQi4gJ2lkeCcgIT0gJ2knLiAqLwotICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fZ3Vl c3Rfb2Zmc2V0KGxpc3QtPm5hbWUsIGlkeCAqIFhFTl9YU1BMSUNFX05BTUVfU0laRSwKKyAgICAg ICAgICAgIGlmICggX19jb3B5X3RvX2d1ZXN0X29mZnNldChsaXN0LT5uYW1lLCBpZHggKiBYRU5f TElWRVBBVENIX05BTUVfU0laRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhLT5uYW1lLCBsZW4pIHx8CiAgICAgICAgICAgICAgICAgX19jb3B5X3RvX2d1ZXN0 X29mZnNldChsaXN0LT5sZW4sIGlkeCwgJmxlbiwgMSkgfHwKICAgICAgICAgICAgICAgICBfX2Nv cHlfdG9fZ3Vlc3Rfb2Zmc2V0KGxpc3QtPnN0YXR1cywgaWR4LCAmc3RhdHVzLCAxKSApCkBAIC05 ODcsMjIgKzk4NywyMiBAQCBzdGF0aWMgaW50IHhzcGxpY2VfbGlzdCh4ZW5fc3lzY3RsX3hzcGxp Y2VfbGlzdF90ICpsaXN0KQogLyoKICAqIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGdldCB0aGUg Q1BVcyBpbnRvIGFuIGFwcHJvcHJpYXRlIHN0YXRlIGFuZAogICogYXBwbHkgKG9yIHJldmVydCkg ZWFjaCBvZiB0aGUgcGF5bG9hZCdzIGZ1bmN0aW9ucy4gVGhpcyBpcyBuZWVkZWQKLSAqIGZvciBY RU5fU1lTQ1RMX1hTUExJQ0VfQUNUSU9OIG9wZXJhdGlvbiAoc2VlIHhzcGxpY2VfYWN0aW9uKS4K KyAqIGZvciBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gb3BlcmF0aW9uIChzZWUgbGl2ZXBh dGNoX2FjdGlvbikuCiAgKi8KIAogc3RhdGljIGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXls b2FkICpkYXRhKQogewogICAgIHVuc2lnbmVkIGludCBpOwogCi0gICAgcHJpbnRrKFhFTkxPR19J TkZPIFhTUExJQ0UgIiVzOiBBcHBseWluZyAldSBmdW5jdGlvbnNcbiIsCisgICAgcHJpbnRrKFhF TkxPR19JTkZPIExJVkVQQVRDSCAiJXM6IEFwcGx5aW5nICV1IGZ1bmN0aW9uc1xuIiwKICAgICAg ICAgICAgIGRhdGEtPm5hbWUsIGRhdGEtPm5mdW5jcyk7CiAKLSAgICBhcmNoX3hzcGxpY2VfcGF0 Y2hpbmdfZW50ZXIoKTsKKyAgICBhcmNoX2xpdmVwYXRjaGluZ19lbnRlcigpOwogCiAgICAgZm9y ICggaSA9IDA7IGkgPCBkYXRhLT5uZnVuY3M7IGkrKyApCi0gICAgICAgIGFyY2hfeHNwbGljZV9h cHBseV9qbXAoJmRhdGEtPmZ1bmNzW2ldKTsKKyAgICAgICAgYXJjaF9saXZlcGF0Y2hfYXBwbHlf am1wKCZkYXRhLT5mdW5jc1tpXSk7CiAKLSAgICBhcmNoX3hzcGxpY2VfcGF0Y2hpbmdfbGVhdmUo KTsKKyAgICBhcmNoX2xpdmVwYXRjaGluZ19sZWF2ZSgpOwogCiAgICAgLyoKICAgICAgKiBXZSBu ZWVkIFJDVSB2YXJpYW50ICh3aGljaCBoYXMgYmFycmllcnMpIGluIGNhc2Ugd2UgY3Jhc2ggaGVy ZS4KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIGludCByZXZlcnRfcGF5bG9hZChzdHJ1 Y3QgcGF5bG9hZCAqZGF0YSkKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIHByaW50ayhY RU5MT0dfSU5GTyBYU1BMSUNFICIlczogUmV2ZXJ0aW5nXG4iLCBkYXRhLT5uYW1lKTsKKyAgICBw cmludGsoWEVOTE9HX0lORk8gTElWRVBBVENIICIlczogUmV2ZXJ0aW5nXG4iLCBkYXRhLT5uYW1l KTsKIAotICAgIGFyY2hfeHNwbGljZV9wYXRjaGluZ19lbnRlcigpOworICAgIGFyY2hfbGl2ZXBh dGNoaW5nX2VudGVyKCk7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5mdW5jczsgaSsr ICkKLSAgICAgICAgYXJjaF94c3BsaWNlX3JldmVydF9qbXAoJmRhdGEtPmZ1bmNzW2ldKTsKKyAg ICAgICAgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0X2ptcCgmZGF0YS0+ZnVuY3NbaV0pOwogCi0gICAg YXJjaF94c3BsaWNlX3BhdGNoaW5nX2xlYXZlKCk7CisgICAgYXJjaF9saXZlcGF0Y2hpbmdfbGVh dmUoKTsKIAogICAgIC8qCiAgICAgICogV2UgbmVlZCBSQ1UgdmFyaWFudCAod2hpY2ggaGFzIGJh cnJpZXJzKSBpbiBjYXNlIHdlIGNyYXNoIGhlcmUuCkBAIC0xMDQxLDMxICsxMDQxLDMxIEBAIHN0 YXRpYyBpbnQgcmV2ZXJ0X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiAgKiBUaGlzIGZ1 bmN0aW9uIGlzIGV4ZWN1dGVkIGhhdmluZyBhbGwgb3RoZXIgQ1BVcyB3aXRoIG5vIGRlZXAgc3Rh Y2sgKHdlIG1heQogICogaGF2ZSBjcHVfaWRsZSBvbiBpdCkgYW5kIElSUXMgZGlzYWJsZWQuCiAg Ki8KLXN0YXRpYyB2b2lkIHhzcGxpY2VfZG9fYWN0aW9uKHZvaWQpCitzdGF0aWMgdm9pZCBsaXZl cGF0Y2hfZG9fYWN0aW9uKHZvaWQpCiB7CiAgICAgaW50IHJjOwogICAgIHN0cnVjdCBwYXlsb2Fk ICpkYXRhLCAqb3RoZXIsICp0bXA7CiAKLSAgICBkYXRhID0geHNwbGljZV93b3JrLmRhdGE7Cisg ICAgZGF0YSA9IGxpdmVwYXRjaF93b3JrLmRhdGE7CiAgICAgLyoKICAgICAgKiBUaGlzIGZ1bmN0 aW9uIGFuZCB0aGUgdHJhbnNpdGlvbiBmcm9tIGFzbSB0byBDIGNvZGUgc2hvdWxkIGJlIHRoZSBv bmx5CiAgICAgICogb25lIG9uIGFueSBzdGFjay4gTm8gbmVlZCB0byBsb2NrIHRoZSBwYXlsb2Fk IGxpc3Qgb3IgYXBwbGllZCBsaXN0LgogICAgICAqLwotICAgIHN3aXRjaCAoIHhzcGxpY2Vfd29y ay5jbWQgKQorICAgIHN3aXRjaCAoIGxpdmVwYXRjaF93b3JrLmNtZCApCiAgICAgewotICAgIGNh c2UgWFNQTElDRV9BQ1RJT05fQVBQTFk6CisgICAgY2FzZSBMSVZFUEFUQ0hfQUNUSU9OX0FQUExZ OgogICAgICAgICByYyA9IGFwcGx5X3BheWxvYWQoZGF0YSk7CiAgICAgICAgIGlmICggcmMgPT0g MCApCi0gICAgICAgICAgICBkYXRhLT5zdGF0ZSA9IFhTUExJQ0VfU1RBVEVfQVBQTElFRDsKKyAg ICAgICAgICAgIGRhdGEtPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0FQUExJRUQ7CiAgICAgICAg IGJyZWFrOwogCi0gICAgY2FzZSBYU1BMSUNFX0FDVElPTl9SRVZFUlQ6CisgICAgY2FzZSBMSVZF UEFUQ0hfQUNUSU9OX1JFVkVSVDoKICAgICAgICAgcmMgPSByZXZlcnRfcGF5bG9hZChkYXRhKTsK ICAgICAgICAgaWYgKCByYyA9PSAwICkKLSAgICAgICAgICAgIGRhdGEtPnN0YXRlID0gWFNQTElD RV9TVEFURV9DSEVDS0VEOworICAgICAgICAgICAgZGF0YS0+c3RhdGUgPSBMSVZFUEFUQ0hfU1RB VEVfQ0hFQ0tFRDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JF UExBQ0U6CisgICAgY2FzZSBMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0U6CiAgICAgICAgIHJjID0g MDsKICAgICAgICAgLyoKIAkgKiBOLkI6IFVzZSAnYXBwbGllZF9saXN0JyBtZW1iZXIsIG5vdCAn bGlzdCcuIFdlIGFsc28gYWJ1c2UgdGhlCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBzdGF0aWMgdm9p ZCB4c3BsaWNlX2RvX2FjdGlvbih2b2lkKQogICAgICAgICB7CiAgICAgICAgICAgICBvdGhlci0+ cmMgPSByZXZlcnRfcGF5bG9hZChvdGhlcik7CiAgICAgICAgICAgICBpZiAoIG90aGVyLT5yYyA9 PSAwICkKLSAgICAgICAgICAgICAgICBvdGhlci0+c3RhdGUgPSBYU1BMSUNFX1NUQVRFX0NIRUNL RUQ7CisgICAgICAgICAgICAgICAgb3RoZXItPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0NIRUNL RUQ7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmMg PSAtRUlOVkFMOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9kb19h Y3Rpb24odm9pZCkKICAgICAgICAgewogICAgICAgICAgICAgcmMgPSBhcHBseV9wYXlsb2FkKGRh dGEpOwogICAgICAgICAgICAgaWYgKCByYyA9PSAwICkKLSAgICAgICAgICAgICAgICBkYXRhLT5z dGF0ZSA9IFhTUExJQ0VfU1RBVEVfQVBQTElFRDsKKyAgICAgICAgICAgICAgICBkYXRhLT5zdGF0 ZSA9IExJVkVQQVRDSF9TVEFURV9BUFBMSUVEOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwog CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBzdGF0aWMgdm9pZCB4c3BsaWNlX2RvX2FjdGlvbih2b2lk KQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICAvKiBXZSBtdXN0IHNldCByYyBhcyB4c3Bs aWNlX2FjdGlvbiBzZXRzIGl0IHRvIC1FQUdBSU4gd2hlbiBraWNraW5nIG9mLiAqLworICAgIC8q IFdlIG11c3Qgc2V0IHJjIGFzIGxpdmVwYXRjaF9hY3Rpb24gc2V0cyBpdCB0byAtRUFHQUlOIHdo ZW4ga2lja2luZyBvZi4gKi8KICAgICBkYXRhLT5yYyA9IHJjOwogfQogCkBAIC0xMTA1LDcgKzEx MDUsNyBAQCBzdGF0aWMgYm9vbF90IGlzX3dvcmtfc2NoZWR1bGVkKGNvbnN0IHN0cnVjdCBwYXls b2FkICpkYXRhKQogewogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcGF5bG9hZF9sb2NrKSk7 CiAKLSAgICByZXR1cm4geHNwbGljZV93b3JrLmRvX3dvcmsgJiYgeHNwbGljZV93b3JrLmRhdGEg PT0gZGF0YTsKKyAgICByZXR1cm4gbGl2ZXBhdGNoX3dvcmsuZG9fd29yayAmJiBsaXZlcGF0Y2hf d29yay5kYXRhID09IGRhdGE7CiB9CiAKIHN0YXRpYyBpbnQgc2NoZWR1bGVfd29yayhzdHJ1Y3Qg cGF5bG9hZCAqZGF0YSwgdWludDMyX3QgY21kLCB1aW50MzJfdCB0aW1lb3V0KQpAQCAtMTExMywz MCArMTExMywzMCBAQCBzdGF0aWMgaW50IHNjaGVkdWxlX3dvcmsoc3RydWN0IHBheWxvYWQgKmRh dGEsIHVpbnQzMl90IGNtZCwgdWludDMyX3QgdGltZW91dCkKICAgICBBU1NFUlQoc3Bpbl9pc19s b2NrZWQoJnBheWxvYWRfbG9jaykpOwogCiAgICAgLyogRmFpbCBpZiBhbiBvcGVyYXRpb24gaXMg YWxyZWFkeSBzY2hlZHVsZWQuICovCi0gICAgaWYgKCB4c3BsaWNlX3dvcmsuZG9fd29yayApCisg ICAgaWYgKCBsaXZlcGF0Y2hfd29yay5kb193b3JrICkKICAgICAgICAgcmV0dXJuIC1FQlVTWTsK IAogICAgIGlmICggIWdldF9jcHVfbWFwcygpICkKICAgICB7Ci0gICAgICAgIHByaW50ayhYRU5M T0dfRVJSIFhTUExJQ0UgIiVzOiB1bmFibGUgdG8gZ2V0IGNwdV9tYXBzIGxvY2shXG4iLAorICAg ICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiB1bmFibGUgdG8gZ2V0IGNwdV9t YXBzIGxvY2shXG4iLAogICAgICAgICAgICAgICAgZGF0YS0+bmFtZSk7CiAgICAgICAgIHJldHVy biAtRUJVU1k7CiAgICAgfQogCi0gICAgeHNwbGljZV93b3JrLmNtZCA9IGNtZDsKLSAgICB4c3Bs aWNlX3dvcmsuZGF0YSA9IGRhdGE7Ci0gICAgeHNwbGljZV93b3JrLnRpbWVvdXQgPSB0aW1lb3V0 ID86IE1JTExJU0VDUygzMCk7CisgICAgbGl2ZXBhdGNoX3dvcmsuY21kID0gY21kOworICAgIGxp dmVwYXRjaF93b3JrLmRhdGEgPSBkYXRhOworICAgIGxpdmVwYXRjaF93b3JrLnRpbWVvdXQgPSB0 aW1lb3V0ID86IE1JTExJU0VDUygzMCk7CiAKLSAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQ TElDRSAiJXM6IHRpbWVvdXQgaXMgJSJQUklfc3RpbWUibXNcbiIsCi0gICAgICAgICAgICBkYXRh LT5uYW1lLCB4c3BsaWNlX3dvcmsudGltZW91dCAvIE1JTExJU0VDUygxKSk7CisgICAgZHByaW50 ayhYRU5MT0dfREVCVUcsIExJVkVQQVRDSCAiJXM6IHRpbWVvdXQgaXMgJSJQUklfc3RpbWUibXNc biIsCisgICAgICAgICAgICBkYXRhLT5uYW1lLCBsaXZlcGF0Y2hfd29yay50aW1lb3V0IC8gTUlM TElTRUNTKDEpKTsKIAotICAgIGF0b21pY19zZXQoJnhzcGxpY2Vfd29yay5zZW1hcGhvcmUsIC0x KTsKKyAgICBhdG9taWNfc2V0KCZsaXZlcGF0Y2hfd29yay5zZW1hcGhvcmUsIC0xKTsKIAotICAg IHhzcGxpY2Vfd29yay5yZWFkeSA9IDA7CisgICAgbGl2ZXBhdGNoX3dvcmsucmVhZHkgPSAwOwog CiAgICAgc21wX3dtYigpOwogCi0gICAgeHNwbGljZV93b3JrLmRvX3dvcmsgPSAxOworICAgIGxp dmVwYXRjaF93b3JrLmRvX3dvcmsgPSAxOwogICAgIHRoaXNfY3B1KHdvcmtfdG9fZG8pID0gMTsK IAogICAgIHB1dF9jcHVfbWFwcygpOwpAQCAtMTE1MCw4ICsxMTUwLDggQEAgc3RhdGljIHZvaWQg cmVzY2hlZHVsZV9mbih2b2lkICp1bnVzZWQpCiAgICAgcmFpc2Vfc29mdGlycShTQ0hFRFVMRV9T T0ZUSVJRKTsKIH0KIAotc3RhdGljIGludCB4c3BsaWNlX3NwaW4oYXRvbWljX3QgKmNvdW50ZXIs IHNfdGltZV90IHRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgY3B1cywgY29uc3QgY2hhciAqcykKK3N0YXRpYyBpbnQgbGl2ZXBhdGNoX3NwaW4oYXRvbWlj X3QgKmNvdW50ZXIsIHNfdGltZV90IHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBjcHVzLCBjb25zdCBjaGFyICpzKQogewogICAgIGludCByYyA9IDA7CiAK QEAgLTExNjEsMTIgKzExNjEsMTIgQEAgc3RhdGljIGludCB4c3BsaWNlX3NwaW4oYXRvbWljX3Qg KmNvdW50ZXIsIHNfdGltZV90IHRpbWVvdXQsCiAgICAgLyogTG9nICYgYWJvcnQuICovCiAgICAg aWYgKCBhdG9taWNfcmVhZChjb3VudGVyKSAhPSBjcHVzICkKICAgICB7Ci0gICAgICAgIHByaW50 ayhYRU5MT0dfRVJSIFhTUExJQ0UgIiVzOiBUaW1lZCBvdXQgb24gc2VtYXBob3JlIGluICVzIHF1 aWVzY2UgcGhhc2UgJXUvJXVcbiIsCi0gICAgICAgICAgICAgICB4c3BsaWNlX3dvcmsuZGF0YS0+ bmFtZSwgcywgYXRvbWljX3JlYWQoY291bnRlciksIGNwdXMpOworICAgICAgICBwcmludGsoWEVO TE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiBUaW1lZCBvdXQgb24gc2VtYXBob3JlIGluICVzIHF1aWVz Y2UgcGhhc2UgJXUvJXVcbiIsCisgICAgICAgICAgICAgICBsaXZlcGF0Y2hfd29yay5kYXRhLT5u YW1lLCBzLCBhdG9taWNfcmVhZChjb3VudGVyKSwgY3B1cyk7CiAgICAgICAgIHJjID0gLUVCVVNZ OwotICAgICAgICB4c3BsaWNlX3dvcmsuZGF0YS0+cmMgPSByYzsKKyAgICAgICAgbGl2ZXBhdGNo X3dvcmsuZGF0YS0+cmMgPSByYzsKICAgICAgICAgc21wX3dtYigpOwotICAgICAgICB4c3BsaWNl X3dvcmsuZG9fd29yayA9IDA7CisgICAgICAgIGxpdmVwYXRjaF93b3JrLmRvX3dvcmsgPSAwOwog ICAgIH0KIAogICAgIHJldHVybiByYzsKQEAgLTExNzYsOSArMTE3Niw5IEBAIHN0YXRpYyBpbnQg eHNwbGljZV9zcGluKGF0b21pY190ICpjb3VudGVyLCBzX3RpbWVfdCB0aW1lb3V0LAogICogVGhl IG1haW4gZnVuY3Rpb24gd2hpY2ggbWFuYWdlcyB0aGUgd29yayBvZiBxdWllc2NpbmcgdGhlIHN5 c3RlbSBhbmQKICAqIHBhdGNoaW5nIGNvZGUuCiAgKi8KLXZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vf d29yayh2b2lkKQordm9pZCBjaGVja19mb3JfbGl2ZXBhdGNoX3dvcmsodm9pZCkKIHsKLSNkZWZp bmUgQUNUSU9OKHgpIFtYU1BMSUNFX0FDVElPTl8jI3hdID0gI3gKKyNkZWZpbmUgQUNUSU9OKHgp IFtMSVZFUEFUQ0hfQUNUSU9OXyMjeF0gPSAjeAogICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25z dCBuYW1lc1tdID0gewogICAgICAgICAgICAgQUNUSU9OKEFQUExZKSwKICAgICAgICAgICAgIEFD VElPTihSRVZFUlQpLApAQCAtMTE5NSw3ICsxMTk1LDcgQEAgdm9pZCBjaGVja19mb3JfeHNwbGlj ZV93b3JrKHZvaWQpCiAKICAgICBzbXBfcm1iKCk7CiAgICAgLyogSW4gY2FzZSB3ZSBhYm9ydGVk LCBvdGhlciBDUFVzIGNhbiBza2lwIHJpZ2h0IGF3YXkuICovCi0gICAgaWYgKCAheHNwbGljZV93 b3JrLmRvX3dvcmsgKQorICAgIGlmICggIWxpdmVwYXRjaF93b3JrLmRvX3dvcmsgKQogICAgIHsK ICAgICAgICAgcGVyX2NwdSh3b3JrX3RvX2RvLCBjcHUpID0gMDsKICAgICAgICAgcmV0dXJuOwpA QCAtMTIwNCwyMiArMTIwNCwyMiBAQCB2b2lkIGNoZWNrX2Zvcl94c3BsaWNlX3dvcmsodm9pZCkK ICAgICBBU1NFUlQobG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7CiAKICAgICAvKiBTZXQgYXQgLTEs IHNvIHdpbGwgZ28gdXAgdG8gbnVtX29ubGluZV9jcHVzIC0gMS4gKi8KLSAgICBpZiAoIGF0b21p Y19pbmNfYW5kX3Rlc3QoJnhzcGxpY2Vfd29yay5zZW1hcGhvcmUpICkKKyAgICBpZiAoIGF0b21p Y19pbmNfYW5kX3Rlc3QoJmxpdmVwYXRjaF93b3JrLnNlbWFwaG9yZSkgKQogICAgIHsKICAgICAg ICAgc3RydWN0IHBheWxvYWQgKnA7CiAgICAgICAgIHVuc2lnbmVkIGludCBjcHVzOwogCi0gICAg ICAgIHAgPSB4c3BsaWNlX3dvcmsuZGF0YTsKKyAgICAgICAgcCA9IGxpdmVwYXRjaF93b3JrLmRh dGE7CiAgICAgICAgIGlmICggIWdldF9jcHVfbWFwcygpICkKICAgICAgICAgewotICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19FUlIgWFNQTElDRSAiJXM6IENQVSV1IC0gdW5hYmxlIHRvIGdldCBj cHVfbWFwcyBsb2NrIVxuIiwKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJVkVQQVRD SCAiJXM6IENQVSV1IC0gdW5hYmxlIHRvIGdldCBjcHVfbWFwcyBsb2NrIVxuIiwKICAgICAgICAg ICAgICAgICAgICBwLT5uYW1lLCBjcHUpOwogICAgICAgICAgICAgcGVyX2NwdSh3b3JrX3RvX2Rv LCBjcHUpID0gMDsKLSAgICAgICAgICAgIHhzcGxpY2Vfd29yay5kYXRhLT5yYyA9IC1FQlVTWTsK KyAgICAgICAgICAgIGxpdmVwYXRjaF93b3JrLmRhdGEtPnJjID0gLUVCVVNZOwogICAgICAgICAg ICAgc21wX3dtYigpOwotICAgICAgICAgICAgeHNwbGljZV93b3JrLmRvX3dvcmsgPSAwOworICAg ICAgICAgICAgbGl2ZXBhdGNoX3dvcmsuZG9fd29yayA9IDA7CiAgICAgICAgICAgICAvKgotICAg ICAgICAgICAgICogRG8gTk9UIGRlY3JlbWVudCB4c3BsaWNlX3dvcmsuc2VtYXBob3JlIGRvd24g LSBhcyB0aGF0IG1heSBjYXVzZQorICAgICAgICAgICAgICogRG8gTk9UIGRlY3JlbWVudCBsaXZl cGF0Y2hfd29yay5zZW1hcGhvcmUgZG93biAtIGFzIHRoYXQgbWF5IGNhdXNlCiAgICAgICAgICAg ICAgKiB0aGUgb3RoZXIgQ1BVICh3aGljaCBtYXkgYmUgYXQgdGhpcyBwb2ludCByZWFkeSB0byBp bmNyZW1lbnQgaXQpCiAgICAgICAgICAgICAgKiB0byBhc3N1bWUgdGhlIHJvbGUgb2YgbWFzdGVy IGFuZCB0aGVuIG5lZWRsZXNzbHkgdGltZSBvdXQKICAgICAgICAgICAgICAqIG91dCAoYXMgZG9f d29yayBpcyB6ZXJvKS4KQEAgLTEyMjcsNTggKzEyMjcsNTggQEAgdm9pZCBjaGVja19mb3JfeHNw bGljZV93b3JrKHZvaWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg LyogIk1hc2siIE5NSXMuICovCi0gICAgICAgIGFyY2hfeHNwbGljZV9tYXNrKCk7CisgICAgICAg IGFyY2hfbGl2ZXBhdGNoX21hc2soKTsKIAogICAgICAgICBiYXJyaWVyKCk7IC8qIE1VU1QgZG8g aXQgYWZ0ZXIgZ2V0X2NwdV9tYXBzLiAqLwogICAgICAgICBjcHVzID0gbnVtX29ubGluZV9jcHVz KCkgLSAxOwogCiAgICAgICAgIGlmICggY3B1cyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRw cmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIlczogQ1BVJXUgLSBJUElpbmcgdGhlIG90aGVy ICV1IENQVXNcbiIsCisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgTElWRVBBVENI ICIlczogQ1BVJXUgLSBJUElpbmcgdGhlIG90aGVyICV1IENQVXNcbiIsCiAgICAgICAgICAgICAg ICAgICAgIHAtPm5hbWUsIGNwdSwgY3B1cyk7CiAgICAgICAgICAgICBzbXBfY2FsbF9mdW5jdGlv bihyZXNjaGVkdWxlX2ZuLCBOVUxMLCAwKTsKICAgICAgICAgfQogCi0gICAgICAgIHRpbWVvdXQg PSB4c3BsaWNlX3dvcmsudGltZW91dCArIE5PVygpOwotICAgICAgICBpZiAoIHhzcGxpY2Vfc3Bp bigmeHNwbGljZV93b3JrLnNlbWFwaG9yZSwgdGltZW91dCwgY3B1cywgIkNQVSIpICkKKyAgICAg ICAgdGltZW91dCA9IGxpdmVwYXRjaF93b3JrLnRpbWVvdXQgKyBOT1coKTsKKyAgICAgICAgaWYg KCBsaXZlcGF0Y2hfc3BpbigmbGl2ZXBhdGNoX3dvcmsuc2VtYXBob3JlLCB0aW1lb3V0LCBjcHVz LCAiQ1BVIikgKQogICAgICAgICAgICAgZ290byBhYm9ydDsKIAogICAgICAgICAvKiBBbGwgQ1BV cyBhcmUgd2FpdGluZywgbm93IHNpZ25hbCB0byBkaXNhYmxlIElSUXMuICovCi0gICAgICAgIGF0 b21pY19zZXQoJnhzcGxpY2Vfd29yay5zZW1hcGhvcmUsIDApOworICAgICAgICBhdG9taWNfc2V0 KCZsaXZlcGF0Y2hfd29yay5zZW1hcGhvcmUsIDApOwogICAgICAgICAvKgogICAgICAgICAgKiBN VVNUIGhhdmUgYSBiYXJyaWVyIGFmdGVyIHNlbWFwaG9yZSBzbyB0aGF0IHRoZSBvdGhlciBDUFVz IGRvbid0CiAgICAgICAgICAqIGxlYWsgb3V0IG9mIHRoZSAnV2FpdCBmb3IgYWxsIENQVXMgdG8g cmVuZGV6dm91cycgbG9vcCBhbmQgaW5jcmVtZW50CiAgICAgICAgICAqICdzZW1hcGhvcmUnIGJl Zm9yZSB3ZSBzZXQgaXQgdG8gemVyby4KICAgICAgICAgICovCiAgICAgICAgIHNtcF93bWIoKTsK LSAgICAgICAgeHNwbGljZV93b3JrLnJlYWR5ID0gMTsKKyAgICAgICAgbGl2ZXBhdGNoX3dvcmsu cmVhZHkgPSAxOwogCi0gICAgICAgIGlmICggIXhzcGxpY2Vfc3BpbigmeHNwbGljZV93b3JrLnNl bWFwaG9yZSwgdGltZW91dCwgY3B1cywgIklSUSIpICkKKyAgICAgICAgaWYgKCAhbGl2ZXBhdGNo X3NwaW4oJmxpdmVwYXRjaF93b3JrLnNlbWFwaG9yZSwgdGltZW91dCwgY3B1cywgIklSUSIpICkK ICAgICAgICAgewogICAgICAgICAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogICAgICAgICAg ICAgLyogRG8gdGhlIHBhdGNoaW5nLiAqLwotICAgICAgICAgICAgeHNwbGljZV9kb19hY3Rpb24o KTsKKyAgICAgICAgICAgIGxpdmVwYXRjaF9kb19hY3Rpb24oKTsKICAgICAgICAgICAgIC8qIFNl cmlhbGl6ZSBhbmQgZmx1c2ggb3V0IHRoZSBDUFUgdmlhIENQVUlEIGluc3RydWN0aW9uIChvbiB4 ODYpLiAqLwotICAgICAgICAgICAgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9uKCk7CisgICAgICAg ICAgICBhcmNoX2xpdmVwYXRjaF9wb3N0X2FjdGlvbigpOwogICAgICAgICAgICAgbG9jYWxfaXJx X3Jlc3RvcmUoZmxhZ3MpOwogICAgICAgICB9CiAKICBhYm9ydDoKLSAgICAgICAgYXJjaF94c3Bs aWNlX3VubWFzaygpOworICAgICAgICBhcmNoX2xpdmVwYXRjaF91bm1hc2soKTsKIAogICAgICAg ICBwZXJfY3B1KHdvcmtfdG9fZG8sIGNwdSkgPSAwOwotICAgICAgICB4c3BsaWNlX3dvcmsuZG9f d29yayA9IDA7CisgICAgICAgIGxpdmVwYXRjaF93b3JrLmRvX3dvcmsgPSAwOwogCiAgICAgICAg IC8qIHB1dF9jcHVfbWFwcyBoYXMgYW4gYmFycmllcigpLiAqLwogICAgICAgICBwdXRfY3B1X21h cHMoKTsKIAotICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gWFNQTElDRSAiJXMgZmluaXNoZWQg JXMgd2l0aCByYz0lZFxuIiwKLSAgICAgICAgICAgICAgIHAtPm5hbWUsIG5hbWVzW3hzcGxpY2Vf d29yay5jbWRdLCBwLT5yYyk7CisgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyBMSVZFUEFUQ0gg IiVzIGZpbmlzaGVkICVzIHdpdGggcmM9JWRcbiIsCisgICAgICAgICAgICAgICBwLT5uYW1lLCBu YW1lc1tsaXZlcGF0Y2hfd29yay5jbWRdLCBwLT5yYyk7CiAgICAgfQogICAgIGVsc2UKICAgICB7 CiAgICAgICAgIC8qIFdhaXQgZm9yIGFsbCBDUFVzIHRvIHJlbmRlenZvdXMuICovCi0gICAgICAg IHdoaWxlICggeHNwbGljZV93b3JrLmRvX3dvcmsgJiYgIXhzcGxpY2Vfd29yay5yZWFkeSApCisg ICAgICAgIHdoaWxlICggbGl2ZXBhdGNoX3dvcmsuZG9fd29yayAmJiAhbGl2ZXBhdGNoX3dvcmsu cmVhZHkgKQogICAgICAgICAgICAgY3B1X3JlbGF4KCk7CiAKICAgICAgICAgLyogRGlzYWJsZSBJ UlFzIGFuZCBzaWduYWwuICovCkBAIC0xMjg3LDE0ICsxMjg3LDE0IEBAIHZvaWQgY2hlY2tfZm9y X3hzcGxpY2Vfd29yayh2b2lkKQogICAgICAgICAgKiBXZSByZS11c2UgdGhlIHNlbXBhaG9yZSwg c28gTVVTVCBoYXZlIGl0IHJlc2V0IGJ5IG1hc3RlciBiZWZvcmUKICAgICAgICAgICogd2UgZXhp dCB0aGUgbG9vcCBhYm92ZS4KICAgICAgICAgICovCi0gICAgICAgIGF0b21pY19pbmMoJnhzcGxp Y2Vfd29yay5zZW1hcGhvcmUpOworICAgICAgICBhdG9taWNfaW5jKCZsaXZlcGF0Y2hfd29yay5z ZW1hcGhvcmUpOwogCiAgICAgICAgIC8qIFdhaXQgZm9yIHBhdGNoaW5nIHRvIGNvbXBsZXRlLiAq LwotICAgICAgICB3aGlsZSAoIHhzcGxpY2Vfd29yay5kb193b3JrICkKKyAgICAgICAgd2hpbGUg KCBsaXZlcGF0Y2hfd29yay5kb193b3JrICkKICAgICAgICAgICAgIGNwdV9yZWxheCgpOwogCiAg ICAgICAgIC8qIFRvIGZsdXNoIG91dCBwaXBlbGluZS4gKi8KLSAgICAgICAgYXJjaF94c3BsaWNl X3Bvc3RfYWN0aW9uKCk7CisgICAgICAgIGFyY2hfbGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKCk7CiAg ICAgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAogICAgICAgICBwZXJfY3B1KHdvcmtf dG9fZG8sIGNwdSkgPSAwOwpAQCAtMTM0MywxNyArMTM0MywxNyBAQCBzdGF0aWMgaW50IGJ1aWxk X2lkX2RlcChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgYm9vbF90IGludGVybmFsKQogICAgICAg ICAgbWVtY21wKGlkLCBwYXlsb2FkLT5kZXAucCwgbGVuKSApCiAgICAgewogICAgICAgICBkcHJp bnRrKFhFTkxPR19FUlIsICIlcyVzOiBjaGVjayBhZ2FpbnN0ICVzIGJ1aWxkLWlkIGZhaWxlZCFc biIsCi0gICAgICAgICAgICAgICAgWFNQTElDRSwgcGF5bG9hZC0+bmFtZSwgbmFtZSk7CisgICAg ICAgICAgICAgICAgTElWRVBBVENILCBwYXlsb2FkLT5uYW1lLCBuYW1lKTsKICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgeHNw bGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCitzdGF0aWMg aW50IGxpdmVwYXRjaF9hY3Rpb24oeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uX3QgKmFjdGlv bikKIHsKICAgICBzdHJ1Y3QgcGF5bG9hZCAqZGF0YTsKLSAgICBjaGFyIG5bWEVOX1hTUExJQ0Vf TkFNRV9TSVpFXTsKKyAgICBjaGFyIG5bWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkVdOwogICAgIGlu dCByYzsKIAogICAgIHJjID0gZ2V0X25hbWUoJmFjdGlvbi0+bmFtZSwgbik7CkBAIC0xMzgxLDgg KzEzODEsOCBAQCBzdGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9h Y3Rpb25fdCAqYWN0aW9uKQogCiAgICAgc3dpdGNoICggYWN0aW9uLT5jbWQgKQogICAgIHsKLSAg ICBjYXNlIFhTUExJQ0VfQUNUSU9OX1VOTE9BRDoKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9 PSBYU1BMSUNFX1NUQVRFX0NIRUNLRUQgKQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9VTkxP QUQ6CisgICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gTElWRVBBVENIX1NUQVRFX0NIRUNLRUQg KQogICAgICAgICB7CiAgICAgICAgICAgICBmcmVlX3BheWxvYWQoZGF0YSk7CiAgICAgICAgICAg ICAvKiBObyB0b3VjaGluZyAnZGF0YScgZnJvbSBoZXJlIG9uISAqLwpAQCAtMTM5Miw4ICsxMzky LDggQEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9u X3QgKmFjdGlvbikKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CiAK LSAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFVkVSVDoKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0 ZSA9PSBYU1BMSUNFX1NUQVRFX0FQUExJRUQgKQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9S RVZFUlQ6CisgICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gTElWRVBBVENIX1NUQVRFX0FQUExJ RUQgKQogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGF5bG9hZCAqcDsKIApA QCAtMTQwMyw3ICsxNDAzLDcgQEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3Rs X3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikKICAgICAgICAgICAgIGlmICggcCAhPSBkYXRhICkK ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICIlcyVz OiBjYW4ndCB1bmxvYWQuIFRvcCBpcyAlcyFcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBY U1BMSUNFLCBkYXRhLT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExJ VkVQQVRDSCwgZGF0YS0+bmFtZSwgcC0+bmFtZSk7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUJV U1k7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNDEyLDggKzE0 MTIsOCBAQCBzdGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rp b25fdCAqYWN0aW9uKQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBYU1BM SUNFX0FDVElPTl9BUFBMWToKLSAgICAgICAgaWYgKCBkYXRhLT5zdGF0ZSA9PSBYU1BMSUNFX1NU QVRFX0NIRUNLRUQgKQorICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9BUFBMWToKKyAgICAgICAg aWYgKCBkYXRhLT5zdGF0ZSA9PSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsK ICAgICAgICAgICAgIHJjID0gYnVpbGRfaWRfZGVwKGRhdGEsICEhbGlzdF9lbXB0eSgmYXBwbGll ZF9saXN0KSk7CiAgICAgICAgICAgICBpZiAoIHJjICkKQEAgLTE0MjMsOCArMTQyMyw4IEBAIHN0 YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rp b24pCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhTUExJQ0VfQUNUSU9O X1JFUExBQ0U6Ci0gICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9DSEVD S0VEICkKKyAgICBjYXNlIExJVkVQQVRDSF9BQ1RJT05fUkVQTEFDRToKKyAgICAgICAgaWYgKCBk YXRhLT5zdGF0ZSA9PSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKICAgICAg ICAgICAgIHJjID0gYnVpbGRfaWRfZGVwKGRhdGEsIDEgLyogYWdhaW5zdCBoeXBlcnZpc29yLiAq Lyk7CiAgICAgICAgICAgICBpZiAoIHJjICkKQEAgLTE0NDUsMjkgKzE0NDUsMjkgQEAgc3RhdGlj IGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikK ICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4c3BsaWNlX29wKHhlbl9zeXNjdGxfeHNwbGljZV9v cF90ICp4c3BsaWNlKQoraW50IGxpdmVwYXRjaF9vcCh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcF90 ICpsaXZlcGF0Y2gpCiB7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCB4c3BsaWNlLT5wYWQgKQor ICAgIGlmICggbGl2ZXBhdGNoLT5wYWQgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAg IHN3aXRjaCAoIHhzcGxpY2UtPmNtZCApCisgICAgc3dpdGNoICggbGl2ZXBhdGNoLT5jbWQgKQog ICAgIHsKLSAgICBjYXNlIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQ6Ci0gICAgICAgIHJjID0g eHNwbGljZV91cGxvYWQoJnhzcGxpY2UtPnUudXBsb2FkKTsKKyAgICBjYXNlIFhFTl9TWVNDVExf TElWRVBBVENIX1VQTE9BRDoKKyAgICAgICAgcmMgPSBsaXZlcGF0Y2hfdXBsb2FkKCZsaXZlcGF0 Y2gtPnUudXBsb2FkKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhFTl9TWVNDVExfWFNQ TElDRV9HRVQ6Ci0gICAgICAgIHJjID0geHNwbGljZV9nZXQoJnhzcGxpY2UtPnUuZ2V0KTsKKyAg ICBjYXNlIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVDoKKyAgICAgICAgcmMgPSBsaXZlcGF0Y2hf Z2V0KCZsaXZlcGF0Y2gtPnUuZ2V0KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFhFTl9T WVNDVExfWFNQTElDRV9MSVNUOgotICAgICAgICByYyA9IHhzcGxpY2VfbGlzdCgmeHNwbGljZS0+ dS5saXN0KTsKKyAgICBjYXNlIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1Q6CisgICAgICAgIHJj ID0gbGl2ZXBhdGNoX2xpc3QoJmxpdmVwYXRjaC0+dS5saXN0KTsKICAgICAgICAgYnJlYWs7CiAK LSAgICBjYXNlIFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT046Ci0gICAgICAgIHJjID0geHNwbGlj ZV9hY3Rpb24oJnhzcGxpY2UtPnUuYWN0aW9uKTsKKyAgICBjYXNlIFhFTl9TWVNDVExfTElWRVBB VENIX0FDVElPTjoKKyAgICAgICAgcmMgPSBsaXZlcGF0Y2hfYWN0aW9uKCZsaXZlcGF0Y2gtPnUu YWN0aW9uKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMTQ4MCw3ICsxNDgw LDcgQEAgaW50IHhzcGxpY2Vfb3AoeGVuX3N5c2N0bF94c3BsaWNlX29wX3QgKnhzcGxpY2UpCiAK IHN0YXRpYyBjb25zdCBjaGFyICpzdGF0ZTJzdHIodW5zaWduZWQgaW50IHN0YXRlKQogewotI2Rl ZmluZSBTVEFURSh4KSBbWFNQTElDRV9TVEFURV8jI3hdID0gI3gKKyNkZWZpbmUgU1RBVEUoeCkg W0xJVkVQQVRDSF9TVEFURV8jI3hdID0gI3gKICAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg bmFtZXNbXSA9IHsKICAgICAgICAgICAgIFNUQVRFKENIRUNLRUQpLAogICAgICAgICAgICAgU1RB VEUoQVBQTElFRCksCkBAIC0xNDkzLDE0ICsxNDkzLDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyICpz dGF0ZTJzdHIodW5zaWduZWQgaW50IHN0YXRlKQogICAgIHJldHVybiBuYW1lc1tzdGF0ZV07CiB9 CiAKLXN0YXRpYyB2b2lkIHhzcGxpY2VfcHJpbnRhbGwodW5zaWduZWQgY2hhciBrZXkpCitzdGF0 aWMgdm9pZCBsaXZlcGF0Y2hfcHJpbnRhbGwodW5zaWduZWQgY2hhciBrZXkpCiB7CiAgICAgc3Ry dWN0IHBheWxvYWQgKmRhdGE7CiAgICAgY29uc3Qgdm9pZCAqYmluYXJ5X2lkID0gTlVMTDsKICAg ICB1bnNpZ25lZCBpbnQgbGVuID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAgIHByaW50 aygiJyVjJyBwcmVzc2VkIC0gRHVtcGluZyBhbGwgeHNwbGljZSBwYXRjaGVzXG4iLCBrZXkpOwor ICAgIHByaW50aygiJyVjJyBwcmVzc2VkIC0gRHVtcGluZyBhbGwgbGl2ZXBhdGNoIHBhdGNoZXNc biIsIGtleSk7CiAKICAgICBpZiAoICF4ZW5fYnVpbGRfaWQoJmJpbmFyeV9pZCwgJmxlbikgKQog ICAgICAgICBwcmludGsoImJ1aWxkLWlkOiAlKnBoTlxuIiwgbGVuLCBiaW5hcnlfaWQpOwpAQCAt MTUxOSw3ICsxNTE5LDcgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9wcmludGFsbCh1bnNpZ25lZCBj aGFyIGtleSkKIAogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5mdW5jczsgaSsrICkK ICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZiA9ICYo ZGF0YS0+ZnVuY3NbaV0pOworICAgICAgICAgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmID0g JihkYXRhLT5mdW5jc1tpXSk7CiAgICAgICAgICAgICBwcmludGsoIiAgICAlcyBwYXRjaCAlcCgl dSkgd2l0aCAlcCAoJXUpXG4iLAogICAgICAgICAgICAgICAgICAgIGYtPm5hbWUsIGYtPm9sZF9h ZGRyLCBmLT5vbGRfc2l6ZSwgZi0+bmV3X2FkZHIsIGYtPm5ld19zaXplKTsKIApAQCAtMTU0NCwy MCArMTU0NCwyMCBAQCBzdGF0aWMgdm9pZCB4c3BsaWNlX3ByaW50YWxsKHVuc2lnbmVkIGNoYXIg a2V5KQogICAgIHNwaW5fdW5sb2NrKCZwYXlsb2FkX2xvY2spOwogfQogCi1zdGF0aWMgaW50IF9f aW5pdCB4c3BsaWNlX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGxpdmVwYXRjaF9pbml0 KHZvaWQpCiB7CiAgICAgY29uc3Qgdm9pZCAqYmluYXJ5X2lkOwogICAgIHVuc2lnbmVkIGludCBs ZW47CiAKICAgICBpZiAoICF4ZW5fYnVpbGRfaWQoJmJpbmFyeV9pZCwgJmxlbikgKQotICAgICAg ICBwcmludGsoWEVOTE9HX0lORk8gWFNQTElDRSAiOiBidWlsZC1pZDogJSpwaE5cbiIsIGxlbiwg YmluYXJ5X2lkKTsKKyAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPIExJVkVQQVRDSCAiOiBidWls ZC1pZDogJSpwaE5cbiIsIGxlbiwgYmluYXJ5X2lkKTsKIAotICAgIHJlZ2lzdGVyX2tleWhhbmRs ZXIoJ3gnLCB4c3BsaWNlX3ByaW50YWxsLCAicHJpbnQgeHNwbGljaW5nIGluZm8iLCAxKTsKKyAg ICByZWdpc3Rlcl9rZXloYW5kbGVyKCd4JywgbGl2ZXBhdGNoX3ByaW50YWxsLCAicHJpbnQgbGl2 ZXBhdGNoIGluZm8iLCAxKTsKIAotICAgIGFyY2hfeHNwbGljZV9pbml0KCk7CisgICAgYXJjaF9s aXZlcGF0Y2hfaW5pdCgpOwogICAgIHJldHVybiAwOwogfQotX19pbml0Y2FsbCh4c3BsaWNlX2lu aXQpOworX19pbml0Y2FsbChsaXZlcGF0Y2hfaW5pdCk7CiAKIC8qCiAgKiBMb2NhbCB2YXJpYWJs ZXM6CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMgYi94ZW4vY29tbW9uL2xp dmVwYXRjaF9lbGYuYwpzaW1pbGFyaXR5IGluZGV4IDcyJQpyZW5hbWUgZnJvbSB4ZW4vY29tbW9u L3hzcGxpY2VfZWxmLmMKcmVuYW1lIHRvIHhlbi9jb21tb24vbGl2ZXBhdGNoX2VsZi5jCmluZGV4 IGQ1OTc1OWYuLjc4OWU4ZmMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24veHNwbGljZV9lbGYuYwor KysgYi94ZW4vY29tbW9uL2xpdmVwYXRjaF9lbGYuYwpAQCAtNSwxMSArNSwxMiBAQAogI2luY2x1 ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc3lt Ym9scy5oPgotI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgotI2luY2x1ZGUgPHhlbi94c3Bs aWNlLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaF9lbGYuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2 ZXBhdGNoLmg+CiAKLWNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnhzcGxpY2VfZWxmX3Nl Y19ieV9uYW1lKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkK K2NvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqCitsaXZlcGF0Y2hfZWxmX3NlY19ieV9u YW1lKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKQEAgLTIy LDcgKzIzLDcgQEAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqeHNwbGljZV9lbGZfc2Vj X2J5X25hbWUoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICoKICAgICByZXR1cm4gTlVMTDsKIH0K IAotc3RhdGljIGludCBlbGZfdmVyaWZ5X3N0cnRhYihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZf c2VjICpzZWMpCitzdGF0aWMgaW50IGVsZl92ZXJpZnlfc3RydGFiKGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZWxmX3NlYyAqc2VjKQogewogICAgIGNvbnN0IEVsZl9TaGRyICpzOwogICAgIGNvbnN0 IGNoYXIgKmNvbnRlbnRzOwpAQCAtNDMsMjUgKzQ0LDI1IEBAIHN0YXRpYyBpbnQgZWxmX3Zlcmlm eV9zdHJ0YWIoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc2VjKQogICAgIHJldHVybiAw OwogfQogCi1zdGF0aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25zKHN0cnVjdCB4c3BsaWNlX2Vs ZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQorc3RhdGljIGludCBlbGZfcmVzb2x2ZV9zZWN0aW9u cyhzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQogewotICAgIHN0 cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnNlYzsKKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KnNlYzsKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBFbGZfT2ZmIGRlbHRhOwogICAgIGludCBy YzsKIAotICAgIC8qIHhzcGxpY2VfZWxmX2xvYWQgc2FuaXR5IGNoZWNrZWQgZV9zaG51bS4gKi8K LSAgICBzZWMgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMsIGVsZi0+aGRy LT5lX3NobnVtKTsKKyAgICAvKiBsaXZlcGF0Y2hfZWxmX2xvYWQgc2FuaXR5IGNoZWNrZWQgZV9z aG51bS4gKi8KKyAgICBzZWMgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3Nl YywgZWxmLT5oZHItPmVfc2hudW0pOwogICAgIGlmICggIXNlYyApCiAgICAgewotICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UiJXM6IENvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkg Zm9yIHNlY3Rpb24gdGFibGUhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQ QVRDSCIlczogQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc2VjdGlvbiB0YWJsZSFcbiIs CiAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1cm4gLUVOT01FTTsKICAg ICB9CiAKICAgICBlbGYtPnNlYyA9IHNlYzsKIAotICAgIC8qIGVfc2hvZmYgYW5kIGVfc2hudW0g b3ZlcmZsb3cgY2hlY2tzIGFyZSBkb25lIGluIHhzcGxpY2VfaGVhZGVyX2NoZWNrLiAqLworICAg IC8qIGVfc2hvZmYgYW5kIGVfc2hudW0gb3ZlcmZsb3cgY2hlY2tzIGFyZSBkb25lIGluIGxpdmVw YXRjaF9oZWFkZXJfY2hlY2suICovCiAgICAgZGVsdGEgPSBlbGYtPmhkci0+ZV9zaG9mZiArIGVs Zi0+aGRyLT5lX3NobnVtICogZWxmLT5oZHItPmVfc2hlbnRzaXplOwogICAgIEFTU0VSVChkZWx0 YSA8PSBlbGYtPmxlbik7CiAKQEAgLTgwLDcgKzgxLDcgQEAgc3RhdGljIGludCBlbGZfcmVzb2x2 ZV9zZWN0aW9ucyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKICAg ICAgICAgICAgICAoc2VjW2ldLnNlYy0+c2hfdHlwZSAhPSBTSFRfTk9CSVRTICYmIC8qIFNraXAg U0hUX05PQklUUyAqLwogICAgICAgICAgICAgICAoZGVsdGEgPiBlbGYtPmxlbiB8fCAoZGVsdGEg KyBzZWNbaV0uc2VjLT5zaF9zaXplID4gZWxmLT5sZW4pKSkgKQogICAgICAgICB7Ci0gICAgICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTZWN0aW9uIFsldV0gZGF0YSAl cyBvZiBwYXlsb2FkIVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogU2VjdGlvbiBbJXVdIGRhdGEgJXMgb2YgcGF5bG9hZCFcbiIsCiAgICAgICAgICAg ICAgICAgICAgIGVsZi0+bmFtZSwgaSwKICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPCBzaXpl b2YoRWxmX0VoZHIpID8gImF0IEVMRiBoZWFkZXIiIDogImlzIHBhc3QgZW5kIik7CiAgICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTk0LDcgKzk1LDcgQEAgc3RhdGljIGludCBlbGZfcmVz b2x2ZV9zZWN0aW9ucyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkK ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBlbGYtPnN5bXRhYiApCiAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogVW5zdXBw b3J0ZWQgbXVsdGlwbGUgc3ltYm9sIHRhYmxlcyFcbiIsCisgICAgICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBtdWx0aXBsZSBzeW1ib2wg dGFibGVzIVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwogICAgICAgICAgICAgfQpAQCAtMTA4LDcgKzEw OSw3IEBAIHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxpY2VfZWxm ICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlm ICggZWxmLT5zeW10YWItPnNlYy0+c2hfbGluayA+PSBlbGYtPmhkci0+ZV9zaG51bSApCiAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFCisg ICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0gKICAgICAgICAgICAg ICAgICAgICAgICAgICIlczogU3ltYm9sIHRhYmxlIGlkeCAoJXUpIHRvIHN0cnRhYiBwYXN0IGVu ZCAoJXUpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnN5bXRh Yi0+c2VjLT5zaF9saW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5oZHItPmVfc2hu dW0pOwpAQCAtMTE5LDcgKzEyMCw3IEBAIHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMo c3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAKICAgICBpZiAoICFl bGYtPnN5bXRhYiApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0Ug IiVzOiBObyBzeW1ib2wgdGFibGUgZm91bmQhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIsIExJVkVQQVRDSCAiJXM6IE5vIHN5bWJvbCB0YWJsZSBmb3VuZCFcbiIsCiAgICAgICAgICAg ICAgICAgZWxmLT5uYW1lKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQpAQCAtMTI4 LDcgKzEyOSw3IEBAIHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgICAgICBlbGYtPnN5bXRhYi0+c2Vj LT5zaF9lbnRzaXplIDwgc2l6ZW9mKEVsZl9TeW0pIHx8CiAgICAgICAgICBlbGYtPnN5bXRhYi0+ c2VjLT5zaF9zaXplICUgZWxmLT5zeW10YWItPnNlYy0+c2hfZW50c2l6ZSApCiAgICAgewotICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTeW1ib2wgdGFibGUgaGVhZGVy IGlzIGNvcnJ1cHRlZCFcbiIsCisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENI ICIlczogU3ltYm9sIHRhYmxlIGhlYWRlciBpcyBjb3JydXB0ZWQhXG4iLAogICAgICAgICAgICAg ICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KQEAgLTE0Miwx OSArMTQzLDE5IEBAIHN0YXRpYyBpbnQgZWxmX3Jlc29sdmVfc2VjdGlvbnMoc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgcmMgPSBlbGZfdmVyaWZ5X3N0cnRh YihlbGYtPnN0cnRhYik7CiAgICAgaWYgKCByYyApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIFhTUExJQ0UgIiVzOiBTdHJpbmcgdGFibGUgc2VjdGlvbiBpcyBjb3JydXB0ZWRc biIsCisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogU3RyaW5nIHRh YmxlIHNlY3Rpb24gaXMgY29ycnVwdGVkXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7 CiAgICAgfQogCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGVsZl9yZXNvbHZlX3Nl Y3Rpb25fbmFtZXMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCitz dGF0aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMoc3RydWN0IGxpdmVwYXRjaF9lbGYg KmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKIHsKICAgICBjb25zdCBjaGFyICpzaHN0cnRhYjsKICAg ICB1bnNpZ25lZCBpbnQgaTsKICAgICBFbGZfT2ZmIG9mZnNldCwgZGVsdGE7Ci0gICAgc3RydWN0 IHhzcGxpY2VfZWxmX3NlYyAqc2VjOworICAgIHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2Vj OwogICAgIGludCByYzsKIAogICAgIC8qCkBAIC0xNjcsNyArMTY4LDcgQEAgc3RhdGljIGludCBl bGZfcmVzb2x2ZV9zZWN0aW9uX25hbWVzKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2 b2lkICpkYXRhKQogICAgIHJjID0gZWxmX3ZlcmlmeV9zdHJ0YWIoc2VjKTsKICAgICBpZiAoIHJj ICkKICAgICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFNlY3Rp b24gc3RyaW5nIHRhYmxlIGlzIGNvcnJ1cHRlZFxuIiwKKyAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBMSVZFUEFUQ0ggIiVzOiBTZWN0aW9uIHN0cmluZyB0YWJsZSBpcyBjb3JydXB0ZWRcbiIs CiAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0K QEAgLTE4NSw3ICsxODYsNyBAQCBzdGF0aWMgaW50IGVsZl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMo c3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgICAgIC8qIEJv dW5kYXJ5IGNoZWNrIG9uIG9mZnNldCBvZiBuYW1lIHdpdGhpbiB0aGUgLnNoc3RydGFiLiAqLwog ICAgICAgICBpZiAoIGRlbHRhID49IHNlYy0+c2VjLT5zaF9zaXplICkKICAgICAgICAgewotICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2VjdGlvbiAldSBuYW1l IGlzIG5vdCB3aXRoaW4gLnNoc3RydGFiIVxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0VSUiwgTElWRVBBVENIICIlczogU2VjdGlvbiAldSBuYW1lIGlzIG5vdCB3aXRoaW4gLnNoc3Ry dGFiIVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBpKTsKICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CkBAIC0xOTYsMTAgKzE5NywxMCBAQCBzdGF0aWMg aW50IGVsZl9yZXNvbHZlX3NlY3Rpb25fbmFtZXMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNv bnN0IHZvaWQgKmRhdGEpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZWxmX2dldF9z eW0oc3RydWN0IHhzcGxpY2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCitzdGF0aWMgaW50 IGVsZl9nZXRfc3ltKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEp CiB7Ci0gICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqc3ltdGFiX3NlYywgKnN0cnRh Yl9zZWM7Ci0gICAgc3RydWN0IHhzcGxpY2VfZWxmX3N5bSAqc3ltOworICAgIGNvbnN0IHN0cnVj dCBsaXZlcGF0Y2hfZWxmX3NlYyAqc3ltdGFiX3NlYywgKnN0cnRhYl9zZWM7CisgICAgc3RydWN0 IGxpdmVwYXRjaF9lbGZfc3ltICpzeW07CiAgICAgdW5zaWduZWQgaW50IGksIG5zeW07CiAgICAg RWxmX09mZiBvZmZzZXQ7CiAgICAgRWxmX1dvcmQgZGVsdGE7CkBAIC0yMjAsMTAgKzIyMSwxMCBA QCBzdGF0aWMgaW50IGVsZl9nZXRfc3ltKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2 b2lkICpkYXRhKQogICAgIC8qIE5vIG5lZWQgdG8gY2hlY2sgdmFsdWVzIGFzIGVsZl9yZXNvbHZl X3NlY3Rpb25zIGRpZCBpdC4gKi8KICAgICBuc3ltID0gc3ltdGFiX3NlYy0+c2VjLT5zaF9zaXpl IC8gc3ltdGFiX3NlYy0+c2VjLT5zaF9lbnRzaXplOwogCi0gICAgc3ltID0geG1hbGxvY19hcnJh eShzdHJ1Y3QgeHNwbGljZV9lbGZfc3ltLCBuc3ltKTsKKyAgICBzeW0gPSB4bWFsbG9jX2FycmF5 KHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3N5bSwgbnN5bSk7CiAgICAgaWYgKCAhc3ltICkKICAgICB7 Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IENvdWxkIG5vdCBhbGxv Y2F0ZSBtZW1vcnkgZm9yIHN5bWJvbHNcbiIsCisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwg TElWRVBBVENIICIlczogQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc3ltYm9sc1xuIiwK ICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAg IH0KQEAgLTIzOSw3ICsyNDAsNyBAQCBzdGF0aWMgaW50IGVsZl9nZXRfc3ltKHN0cnVjdCB4c3Bs aWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQogICAgICAgICAvKiBCb3VuZGFyeSBjaGVj ayB3aXRoaW4gdGhlIC5zdHJ0YWIuICovCiAgICAgICAgIGlmICggZGVsdGEgPj0gc3RydGFiX3Nl Yy0+c2VjLT5zaF9zaXplICkKICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBYU1BMSUNFICIlczogU3ltYm9sIFsldV0gbmFtZSBpcyBub3Qgd2l0aGluIC5zdHJ0YWIh XG4iLAorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTeW1i b2wgWyV1XSBuYW1lIGlzIG5vdCB3aXRoaW4gLnN0cnRhYiFcbiIsCiAgICAgICAgICAgICAgICAg ICAgIGVsZi0+bmFtZSwgaSk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAg fQpAQCAtMjUyLDcgKzI1Myw3IEBAIHN0YXRpYyBpbnQgZWxmX2dldF9zeW0oc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsIGNvbnN0IHZvaWQgKmRhdGEpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCB4 c3BsaWNlX2VsZl9yZXNvbHZlX3N5bWJvbHMoc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCitpbnQg bGl2ZXBhdGNoX2VsZl9yZXNvbHZlX3N5bWJvbHMoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikK IHsKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBpbnQgcmMgPSAwOwpAQCAtMjY4LDcgKzI2OSw3 IEBAIGludCB4c3BsaWNlX2VsZl9yZXNvbHZlX3N5bWJvbHMoc3RydWN0IHhzcGxpY2VfZWxmICpl bGYpCiAgICAgICAgIHN3aXRjaCAoIGlkeCApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBTSE5f Q09NTU9OOgotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogVW5l eHBlY3RlZCBjb21tb24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0VSUiwgTElWRVBBVENIICIlczogVW5leHBlY3RlZCBjb21tb24gc3ltYm9sOiAlc1xuIiwKICAg ICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lKTsKICAgICAgICAg ICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjc3LDIxICsyNzgsMjEg QEAgaW50IHhzcGxpY2VfZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVs ZikKICAgICAgICAgICAgIHN0X3ZhbHVlID0gc3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5 bVtpXS5uYW1lKTsKICAgICAgICAgICAgIGlmICggIXN0X3ZhbHVlICkKICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICBzdF92YWx1ZSA9IHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFt ZShlbGYtPnN5bVtpXS5uYW1lKTsKKyAgICAgICAgICAgICAgICBzdF92YWx1ZSA9IGxpdmVwYXRj aF9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ldLm5hbWUpOwogICAgICAgICAgICAg ICAgIGlmICggIXN0X3ZhbHVlICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFVua25vd24gc3ltYm9sOiAlc1xu IiwKKyAgICAgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVz OiBVbmtub3duIHN5bWJvbDogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxm LT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgcmMgPSAtRU5P RU5UOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6 IFVuZGVmaW5lZCBzeW1ib2wgcmVzb2x2ZWQ6ICVzID0+ICUjIlBSSXhFbGZBZGRyIlxuIiwKKyAg ICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBVbmRlZmluZWQg c3ltYm9sIHJlc29sdmVkOiAlcyA9PiAlIyJQUkl4RWxmQWRkciJcbiIsCiAgICAgICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSwgZWxmLT5zeW1baV0ubmFtZSwgc3RfdmFsdWUpOwogICAgICAgICAg ICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBTSE5fQUJTOgotICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfREVCVUcsIFhTUExJQ0UgIiVzOiBBYnNvbHV0ZSBzeW1ib2w6ICVzID0+ICUjIlBSSXhF bGZBZGRyIlxuIiwKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0gg IiVzOiBBYnNvbHV0ZSBzeW1ib2w6ICVzID0+ICUjIlBSSXhFbGZBZGRyIlxuIiwKICAgICAgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lLCBzeW0tPnN0X3ZhbHVlKTsK ICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0zMDQsNyArMzA1LDcgQEAgaW50IHhzcGxpY2VfZWxm X3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIAogICAgICAgICAgICAg aWYgKCByYyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0df RVJSLCBYU1BMSUNFICIlczogT3V0IG9mIGJvdW5kcyBzeW1ib2wgc2VjdGlvbiAlI3hcbiIsCisg ICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBPdXQgb2Yg Ym91bmRzIHN5bWJvbCBzZWN0aW9uICUjeFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGVs Zi0+bmFtZSwgaWR4KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAg LTMxNSw3ICszMTYsNyBAQCBpbnQgeHNwbGljZV9lbGZfcmVzb2x2ZV9zeW1ib2xzKHN0cnVjdCB4 c3BsaWNlX2VsZiAqZWxmKQogCiAgICAgICAgICAgICBzdF92YWx1ZSArPSAodW5zaWduZWQgbG9u ZyllbGYtPnNlY1tpZHhdLmxvYWRfYWRkcjsKICAgICAgICAgICAgIGlmICggZWxmLT5zeW1baV0u bmFtZSApCi0gICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJQ0UgIiVz OiBTeW1ib2wgcmVzb2x2ZWQ6ICVzID0+ICUjIlBSSXhFbGZBZGRyIiAoJXMpXG4iLAorICAgICAg ICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIiVzOiBTeW1ib2wgcmVz b2x2ZWQ6ICVzID0+ICUjIlBSSXhFbGZBZGRyIiAoJXMpXG4iLAogICAgICAgICAgICAgICAgICAg ICAgICBlbGYtPm5hbWUsIGVsZi0+c3ltW2ldLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg IHN0X3ZhbHVlLCBlbGYtPnNlY1tpZHhdLm5hbWUpOwogICAgICAgICB9CkBAIC0zMjksOSArMzMw LDkgQEAgaW50IHhzcGxpY2VfZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYg KmVsZikKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCB4c3BsaWNlX2VsZl9wZXJmb3JtX3JlbG9j cyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKK2ludCBsaXZlcGF0Y2hfZWxmX3BlcmZvcm1fcmVs b2NzKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7Ci0gICAgc3RydWN0IHhzcGxpY2VfZWxm X3NlYyAqciwgKmJhc2U7CisgICAgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyLCAqYmFzZTsK ICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBpbnQgcmMgPSAwOwogCkBAIC0zNTcsMTYgKzM1OCwx NiBAQCBpbnQgeHNwbGljZV9lbGZfcGVyZm9ybV9yZWxvY3Moc3RydWN0IHhzcGxpY2VfZWxmICpl bGYpCiAKICAgICAgICAgaWYgKCByLT5zZWMtPnNoX2xpbmsgIT0gZWxmLT5zeW10YWJfaWR4ICkK ICAgICAgICAgewotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczog UmVsYXRpdmUgbGluayBvZiAlcyBpcyBpbmNvcnJlY3QgKCVkLCBleHBlY3RlZD0lZClcbiIsCisg ICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFJlbGF0aXZlIGxp bmsgb2YgJXMgaXMgaW5jb3JyZWN0ICglZCwgZXhwZWN0ZWQ9JWQpXG4iLAogICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIHItPm5hbWUsIHItPnNlYy0+c2hfbGluaywgZWxmLT5zeW10YWJf aWR4KTsKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICB9CiAKICAgICAgICAgaWYgKCByLT5zZWMtPnNoX3R5cGUgPT0gU0hUX1JFTEEgKQotICAg ICAgICAgICAgcmMgPSBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKGVsZiwgYmFzZSwgcik7Cisg ICAgICAgICAgICByYyA9IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShlbGYsIGJhc2UsIHIp OwogICAgICAgICBlbHNlIC8qIFNIVF9SRUwgKi8KLSAgICAgICAgICAgIHJjID0gYXJjaF94c3Bs aWNlX3BlcmZvcm1fcmVsKGVsZiwgYmFzZSwgcik7CisgICAgICAgICAgICByYyA9IGFyY2hfbGl2 ZXBhdGNoX3BlcmZvcm1fcmVsKGVsZiwgYmFzZSwgcik7CiAKICAgICAgICAgaWYgKCByYyApCiAg ICAgICAgICAgICBicmVhazsKQEAgLTM3NSwyMSArMzc2LDIxIEBAIGludCB4c3BsaWNlX2VsZl9w ZXJmb3JtX3JlbG9jcyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICByZXR1cm4gcmM7CiB9 CiAKLXN0YXRpYyBpbnQgeHNwbGljZV9oZWFkZXJfY2hlY2soY29uc3Qgc3RydWN0IHhzcGxpY2Vf ZWxmICplbGYpCitzdGF0aWMgaW50IGxpdmVwYXRjaF9oZWFkZXJfY2hlY2soY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9lbGYgKmVsZikKIHsKICAgICBjb25zdCBFbGZfRWhkciAqaGRyID0gZWxmLT5o ZHI7CiAgICAgaW50IHJjOwogCiAgICAgaWYgKCBzaXplb2YoKmVsZi0+aGRyKSA+IGVsZi0+bGVu ICkKICAgICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFNlY3Rp b24gaGVhZGVyIGlzIGJpZ2dlciB0aGFuIHBheWxvYWQhXG4iLAorICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rpb24gaGVhZGVyIGlzIGJpZ2dlciB0aGFuIHBh eWxvYWQhXG4iLAogICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogICAgIH0KIAogICAgIGlmICggIUlTX0VMRigqaGRyKSApCiAgICAgewotICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVzOiBOb3QgYW4gRUxGIHBheWxvYWQhXG4i LCBlbGYtPm5hbWUpOworICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6 IE5vdCBhbiBFTEYgcGF5bG9hZCFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlO VkFMOwogICAgIH0KIApAQCAtNDAyLDE3ICs0MDMsMTcgQEAgc3RhdGljIGludCB4c3BsaWNlX2hl YWRlcl9jaGVjayhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgIGhkci0+ ZV90eXBlICE9IEVUX1JFTCB8fAogICAgICAgICAgaGRyLT5lX3BobnVtICE9IDAgKQogICAgIHsK LSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogSW52YWxpZCBFTEYgcGF5 bG9hZCFcbiIsIGVsZi0+bmFtZSk7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogSW52YWxpZCBFTEYgcGF5bG9hZCFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJl dHVybiAtRU9QTk9UU1VQUDsKICAgICB9CiAKLSAgICByYyA9IGFyY2hfeHNwbGljZV92ZXJpZnlf ZWxmKGVsZik7CisgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZWxmKGVsZik7CiAgICAg aWYgKCByYyApCiAgICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggZWxmLT5oZHItPmVfc2hz dHJuZHggPT0gU0hOX1VOREVGICkKICAgICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwg WFNQTElDRSAiJXM6IFNlY3Rpb24gbmFtZSBpZHggaXMgdW5kZWZpbmVkIT9cbiIsCisgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogU2VjdGlvbiBuYW1lIGlkeCBpcyB1 bmRlZmluZWQhP1xuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKICAgICB9CkBAIC00MjAsNyArNDIxLDcgQEAgc3RhdGljIGludCB4c3BsaWNl X2hlYWRlcl9jaGVjayhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAvKiBBcmJp dHJhcnkgYm91bmRhcnkgbGltaXQuICovCiAgICAgaWYgKCBlbGYtPmhkci0+ZV9zaG51bSA+PSAx MDI0ICkKICAgICB7Ci0gICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFRv byBtYW55ICgldSkgc2VjdGlvbnMhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJ VkVQQVRDSCAiJXM6IFRvbyBtYW55ICgldSkgc2VjdGlvbnMhXG4iLAogICAgICAgICAgICAgICAg IGVsZi0+bmFtZSwgZWxmLT5oZHItPmVfc2hudW0pOwogICAgICAgICByZXR1cm4gLUVPUE5PVFNV UFA7CiAgICAgfQpAQCAtNDI4LDIwICs0MjksMjAgQEAgc3RhdGljIGludCB4c3BsaWNlX2hlYWRl cl9jaGVjayhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAvKiBDaGVjayB0aGF0 IHNlY3Rpb24gbmFtZSBpbmRleCBpcyB3aXRoaW4gdGhlIHNlY3Rpb25zLiAqLwogICAgIGlmICgg ZWxmLT5oZHItPmVfc2hzdHJuZHggPj0gZWxmLT5oZHItPmVfc2hudW0gKQogICAgIHsKLSAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2VjdGlvbiBuYW1lIGlkeCAoJXUp IGlzIHBhc3QgZW5kIG9mIHNlY3Rpb25zICgldSkhXG4iLAorICAgICAgICBkcHJpbnRrKFhFTkxP R19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rpb24gbmFtZSBpZHggKCV1KSBpcyBwYXN0IGVuZCBv ZiBzZWN0aW9ucyAoJXUpIVxuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+aGRy LT5lX3Noc3RybmR4LCBlbGYtPmhkci0+ZV9zaG51bSk7CiAgICAgICAgIHJldHVybiAtRUlOVkFM OwogICAgIH0KIAogICAgIGlmICggZWxmLT5oZHItPmVfc2hvZmYgPj0gZWxmLT5sZW4gKQogICAg IHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogQm9ndXMgZV9zaG9m ZiFcbiIsIGVsZi0+bmFtZSk7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENI ICIlczogQm9ndXMgZV9zaG9mZiFcbiIsIGVsZi0+bmFtZSk7CiAgICAgICAgIHJldHVybiAtRUlO VkFMOwogICAgIH0KIAogICAgIGlmICggZWxmLT5oZHItPmVfc2hlbnRzaXplIDwgc2l6ZW9mKEVs Zl9TaGRyKSApCiAgICAgewotICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIFhTUExJQ0UgIiVz OiBTZWN0aW9uIGhlYWRlciBzaXplIGlzICV1ISBFeHBlY3RlZCAlenUhP1xuIiwKKyAgICAgICAg ZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBTZWN0aW9uIGhlYWRlciBzaXplIGlz ICV1ISBFeHBlY3RlZCAlenUhP1xuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+ aGRyLT5lX3NoZW50c2l6ZSwgc2l6ZW9mKEVsZl9TaGRyKSk7CiAgICAgICAgIHJldHVybiAtRUlO VkFMOwogICAgIH0KQEAgLTQ0OSw3ICs0NTAsNyBAQCBzdGF0aWMgaW50IHhzcGxpY2VfaGVhZGVy X2NoZWNrKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAgIGlmICggKChlbGYtPmxl biAtIGVsZi0+aGRyLT5lX3Nob2ZmKSAvIGVsZi0+aGRyLT5lX3NoZW50c2l6ZSkgPAogICAgICAg ICAgZWxmLT5oZHItPmVfc2hudW0gKQogICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBYU1BMSUNFICIlczogU2VjdGlvbiBoZWFkZXIgc2l6ZSBpcyBjb3JydXB0ZWQhXG4iLAorICAg ICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFNlY3Rpb24gaGVhZGVyIHNp emUgaXMgY29ycnVwdGVkIVxuIiwKICAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOwogICAgICAg ICByZXR1cm4gLUVJTlZBTDsKICAgICB9CkBAIC00NTcsMTMgKzQ1OCwxMyBAQCBzdGF0aWMgaW50 IHhzcGxpY2VfaGVhZGVyX2NoZWNrKGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQogICAg IHJldHVybiAwOwogfQogCi1pbnQgeHNwbGljZV9lbGZfbG9hZChzdHJ1Y3QgeHNwbGljZV9lbGYg KmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKK2ludCBsaXZlcGF0Y2hfZWxmX2xvYWQoc3RydWN0IGxp dmVwYXRjaF9lbGYgKmVsZiwgY29uc3Qgdm9pZCAqZGF0YSkKIHsKICAgICBpbnQgcmM7CiAKICAg ICBlbGYtPmhkciA9IGRhdGE7CiAKLSAgICByYyA9IHhzcGxpY2VfaGVhZGVyX2NoZWNrKGVsZik7 CisgICAgcmMgPSBsaXZlcGF0Y2hfaGVhZGVyX2NoZWNrKGVsZik7CiAgICAgaWYgKCByYyApCiAg ICAgICAgIHJldHVybiByYzsKIApAQCAtNDgyLDcgKzQ4Myw3IEBAIGludCB4c3BsaWNlX2VsZl9s b2FkKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKQogICAgIHJldHVy biAwOwogfQogCi12b2lkIHhzcGxpY2VfZWxmX2ZyZWUoc3RydWN0IHhzcGxpY2VfZWxmICplbGYp Cit2b2lkIGxpdmVwYXRjaF9lbGZfZnJlZShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogewog ICAgIHhmcmVlKGVsZi0+c2VjKTsKICAgICBlbGYtPnNlYyA9IE5VTEw7CmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL3N5c2N0bC5jIGIveGVuL2NvbW1vbi9zeXNjdGwuYwppbmRleCA5YTRjYzFmLi43 NWY0YzA1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3N5c2N0bC5jCisrKyBiL3hlbi9jb21tb24v c3lzY3RsLmMKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5jbHVk ZSA8eGVuL3Btc3RhdC5oPgogI2luY2x1ZGUgPHhlbi9nY292Lmg+Ci0jaW5jbHVkZSA8eGVuL3hz cGxpY2UuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CiAKIGxvbmcgZG9fc3lzY3RsKFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3N5c2N0bF90KSB1X3N5c2N0bCkKIHsKQEAgLTQ2MSw4 ICs0NjEsOCBAQCBsb25nIGRvX3N5c2N0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9zeXNj dGxfdCkgdV9zeXNjdGwpCiAgICAgICAgIHJldCA9IHRtZW1fY29udHJvbCgmb3AtPnUudG1lbV9v cCk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBYRU5fU1lTQ1RMX3hzcGxpY2Vfb3A6Ci0g ICAgICAgIHJldCA9IHhzcGxpY2Vfb3AoJm9wLT51LnhzcGxpY2UpOworICAgIGNhc2UgWEVOX1NZ U0NUTF9saXZlcGF0Y2hfb3A6CisgICAgICAgIHJldCA9IGxpdmVwYXRjaF9vcCgmb3AtPnUubGl2 ZXBhdGNoKTsKICAgICAgICAgaWYgKCByZXQgIT0gLUVOT1NZUyAmJiByZXQgIT0gLUVPUE5PVFNV UFAgKQogICAgICAgICAgICAgY29weWJhY2sgPSAxOwogICAgICAgICBicmVhazsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYyBiL3hlbi9jb21tb24vdmlydHVhbF9yZWdp b24uYwppbmRleCA0MjZkZmEwLi5iNjY2YmM5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZpcnR1 YWxfcmVnaW9uLmMKKysrIGIveGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jCkBAIC0yNSw3ICsy NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHVhbF9yZWdpb24gY29yZV9pbml0IF9faW5pdGRhdGEg PSB7CiAgKiBSQ1UgbG9ja2luZy4gQWRkaXRpb25zIGFyZSBkb25lIGVpdGhlciBhdCBzdGFydHVw ICh3aGVuIHRoZXJlIGlzIG9ubHkKICAqIG9uZSBDUFUpIG9yIHdoZW4gYWxsIENQVXMgYXJlIHJ1 bm5pbmcgd2l0aG91dCBJUlFzLgogICoKLSAqIERlbGV0aW9ucyBhcmUgYml0IHRyaWNreS4gV2Ug ZG8gaXQgd2hlbiB4U3BsaWNpbmcgKGFsbCBDUFVzIHJ1bm5pbmcKKyAqIERlbGV0aW9ucyBhcmUg Yml0IHRyaWNreS4gV2UgZG8gaXQgd2hlbiBsaXZlIHBhdGNoaW5nIChhbGwgQ1BVcyBydW5uaW5n CiAgKiB3aXRob3V0IElSUXMpIG9yIGR1cmluZyBib290dXAgKHdoZW4gY2xlYXJpbmcgdGhlIGlu aXQpLgogICoKICAqIEhlbmNlIHdlIHVzZSBsaXN0X2RlbF9yY3UgKHdoaWNoIHNwb3J0cyBhbiBt ZW1vcnkgZmVuY2UpIGFuZCBhIHNwaW5sb2NrCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyB2b2lk IHJlbW92ZV92aXJ0dWFsX3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIpCiAKIHZvaWQg dW5yZWdpc3Rlcl92aXJ0dWFsX3JlZ2lvbihzdHJ1Y3QgdmlydHVhbF9yZWdpb24gKnIpCiB7Ci0g ICAgLyogRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZyb20geFNwbGljZSAtIHdoaWNoIGhhcyBJUlFz IGRpc2FibGVkLiAqLworICAgIC8qIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmcm9tIGxpdmUgcGF0 Y2hpbmcgLSB3aGljaCBoYXMgSVJRcyBkaXNhYmxlZC4gKi8KICAgICBBU1NFUlQoIWxvY2FsX2ly cV9pc19lbmFibGVkKCkpOwogCiAgICAgcmVtb3ZlX3ZpcnR1YWxfcmVnaW9uKHIpOwpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi92c3ByaW50Zi5jIGIveGVuL2NvbW1vbi92c3ByaW50Zi5jCmluZGV4 IDcwZTFlZGYuLjIyNmVmODYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdnNwcmludGYuYworKysg Yi94ZW4vY29tbW9uL3ZzcHJpbnRmLmMKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlIDx4ZW4v c3ltYm9scy5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4K LSNpbmNsdWRlIDx4ZW4veHNwbGljZS5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KICNp bmNsdWRlIDxhc20vZGl2NjQuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCkBAIC0zNTYsNyAr MzU2LDcgQEAgc3RhdGljIGNoYXIgKnBvaW50ZXIoY2hhciAqc3RyLCBjaGFyICplbmQsIGNvbnN0 IGNoYXIgKipmbXRfcHRyLAogICAgICAgICB9CiAKICAgICAgICAgLyoKLSAgICAgICAgICogbmFt ZWJ1ZiBjb250ZW50cyBhbmQgcyBmb3IgY29yZSBoeXBlcnZpc29yIGFyZSBzYW1lIGJ1dCBmb3Ig eFNwbGljZQorICAgICAgICAgKiBuYW1lYnVmIGNvbnRlbnRzIGFuZCBzIGZvciBjb3JlIGh5cGVy dmlzb3IgYXJlIHNhbWUgYnV0IGZvciBsaXZlIHBhdGNoCiAgICAgICAgICAqIHBheWxvYWRzIHRo ZXkgZGlmZmVyIChuYW1lYnVmIGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBwYXlsb2FkKS4KICAg ICAgICAgICovCiAgICAgICAgIGlmICggbmFtZWJ1ZiAhPSBzICkKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvY3VycmVudC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgK aW5kZXggZmE1NTYwMi4uZTY1ODdlNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9j dXJyZW50LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKQEAgLTg2LDE3ICs4 NiwxNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjcHVfaW5mbyAqZ2V0X2NwdV9pbmZvKHZvaWQp CiB1bnNpZ25lZCBsb25nIGdldF9zdGFja190cmFjZV9ib3R0b20odW5zaWduZWQgbG9uZyBzcCk7 CiB1bnNpZ25lZCBsb25nIGdldF9zdGFja19kdW1wX2JvdHRvbSAodW5zaWduZWQgbG9uZyBzcCk7 CiAKLSNpZmRlZiBDT05GSUdfWFNQTElDRQotIyBkZWZpbmUgQ0hFQ0tfRk9SX1hTUExJQ0VfV09S SyAiY2FsbCBjaGVja19mb3JfeHNwbGljZV93b3JrOyIKKyNpZmRlZiBDT05GSUdfTElWRVBBVENI CisjIGRlZmluZSBDSEVDS19GT1JfTElWRVBBVENIX1dPUksgImNhbGwgY2hlY2tfZm9yX2xpdmVw YXRjaF93b3JrOyIKICNlbHNlCi0jIGRlZmluZSBDSEVDS19GT1JfWFNQTElDRV9XT1JLICIiCisj IGRlZmluZSBDSEVDS19GT1JfTElWRVBBVENIX1dPUksgIiIKICNlbmRpZgogCiAjZGVmaW5lIHJl c2V0X3N0YWNrX2FuZF9qdW1wKF9fZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAi bW92ICUwLCUlIl9fT1Aic3A7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0gICAgICAgICAgICBDSEVDS19GT1JfWFNQTElDRV9XT1JLICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBDSEVDS19GT1JfTElWRVBBVENIX1dP UksgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAi am1wICVjMSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgIDogOiAiciIgKGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSksICJpIiAoX19m bikgOiAibWVtb3J5IiApOyAgIFwKICAgICAgICAgdW5yZWFjaGFibGUoKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaAppbmRl eCBiMmIzMTJiLi44MTk3YzE0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3Rs LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBAIC04NDksNjcgKzg0OSw2NyBA QCB0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2ZlYXR1cmVzZXQgeGVuX3N5c2N0bF9mZWF0dXJl c2V0X3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX2ZlYXR1cmVzZXRfdCk7 CiAKIC8qCi0gKiBYRU5fU1lTQ1RMX1hTUExJQ0Vfb3AKKyAqIFhFTl9TWVNDVExfTElWRVBBVENI X29wCiAgKgotICogUmVmZXIgdG8gdGhlIGRvY3MvdW5zdGFibGUvbWlzYy94c3BsaWNlLm1hcmtk b3duCisgKiBSZWZlciB0byB0aGUgZG9jcy91bnN0YWJsZS9taXNjL2xpdmVwYXRjaC5tYXJrZG93 bgogICogZm9yIHRoZSBkZXNpZ24gZGV0YWlscyBvZiB0aGlzIGh5cGVyY2FsbC4KICAqCiAgKiBU aGVyZSBhcmUgZm91ciBzdWItb3BzOgotICogIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQgKDAp Ci0gKiAgWEVOX1NZU0NUTF9YU1BMSUNFX0dFVCAoMSkKLSAqICBYRU5fU1lTQ1RMX1hTUExJQ0Vf TElTVCAoMikKLSAqICBYRU5fU1lTQ1RMX1hTUExJQ0VfQUNUSU9OICgzKQorICogIFhFTl9TWVND VExfTElWRVBBVENIX1VQTE9BRCAoMCkKKyAqICBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgKDEp CisgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAoMikKKyAqICBYRU5fU1lTQ1RMX0xJVkVQ QVRDSF9BQ1RJT04gKDMpCiAgKgogICogVGhlIG5vcm1hbCBzZXF1ZW5jZSBvZiBzdWItb3BzIGlz IHRvOgotICogIDEpIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQgdG8gdXBsb2FkIHRoZSBwYXls b2FkLiBJZiBlcnJvcnMgU1RPUC4KLSAqICAyKSBYRU5fU1lTQ1RMX1hTUExJQ0VfR0VUIHRvIGNo ZWNrIHRoZSBgLT5yY2AuIElmIC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgMSkgWEVOX1NZU0NUTF9M SVZFUEFUQ0hfVVBMT0FEIHRvIHVwbG9hZCB0aGUgcGF5bG9hZC4gSWYgZXJyb3JzIFNUT1AuCisg KiAgMikgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2AuIElmIC1Y RU5fRUFHQUlOIHNwaW4uCiAgKiAgICAgSWYgemVybyBnbyB0byBuZXh0IHN0ZXAuCi0gKiAgMykg WEVOX1NZU0NUTF9YU1BMSUNFX0FDVElPTiB3aXRoIFhTUExJQ0VfQUNUSU9OX0FQUExZIHRvIGFw cGx5IHRoZSBwYXRjaC4KLSAqICA0KSBYRU5fU1lTQ1RMX1hTUExJQ0VfR0VUIHRvIGNoZWNrIHRo ZSBgLT5yY2AuIElmIGluIC1YRU5fRUFHQUlOIHNwaW4uCisgKiAgMykgWEVOX1NZU0NUTF9MSVZF UEFUQ0hfQUNUSU9OIHdpdGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUgcGF0 Y2guCisgKiAgNCkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIHRvIGNoZWNrIHRoZSBgLT5yY2Au IElmIGluIC1YRU5fRUFHQUlOIHNwaW4uCiAgKiAgICAgSWYgemVybyBleGl0IHdpdGggc3VjY2Vz cy4KICAqLwogCi0jZGVmaW5lIFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OIDEKKyNkZWZpbmUgTElW RVBBVENIX1BBWUxPQURfVkVSU0lPTiAxCiAvKgotICogLnhzcGxpY2UuZnVuY3Mgc3RydWN0dXJl IGxheW91dCBkZWZpbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCi0gKiBzZWN0aW9uIGluIHRo ZSB4U3BsaWNlIGRlc2lnbiBkb2N1bWVudC4KKyAqIC5saXZlcGF0Y2guZnVuY3Mgc3RydWN0dXJl IGxheW91dCBkZWZpbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCisgKiBzZWN0aW9uIGluIHRo ZSBMaXZlIFBhdGNoIGRlc2lnbiBkb2N1bWVudC4KICAqCiAgKiBXZSBndWFyZCB0aGlzIHdpdGgg X19YRU5fXyBhcyB0b29sc3RhY2tzIFNIT1VMRCBub3QgdXNlIGl0LgogICovCiAjaWZkZWYgX19Y RU5fXwotc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyB7CitzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMg ewogICAgIGNvbnN0IGNoYXIgKm5hbWU7ICAgICAgIC8qIE5hbWUgb2YgZnVuY3Rpb24gdG8gYmUg cGF0Y2hlZC4gKi8KICAgICB2b2lkICpuZXdfYWRkcjsKICAgICB2b2lkICpvbGRfYWRkcjsKICAg ICB1aW50MzJfdCBuZXdfc2l6ZTsKICAgICB1aW50MzJfdCBvbGRfc2l6ZTsKLSAgICB1aW50OF90 IHZlcnNpb247ICAgICAgICAvKiBNVVNUIGJlIFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLiAqLwor ICAgIHVpbnQ4X3QgdmVyc2lvbjsgICAgICAgIC8qIE1VU1QgYmUgTElWRVBBVENIX1BBWUxPQURf VkVSU0lPTi4gKi8KICAgICB1aW50OF90IG9wYXF1ZVszMV07CiB9OwotdHlwZWRlZiBzdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfcGF0Y2hfZnVuY190OwordHlwZWRlZiBzdHJ1Y3Qg bGl2ZXBhdGNoX2Z1bmMgbGl2ZXBhdGNoX2Z1bmNfdDsKICNlbmRpZgogCiAvKgogICogU3RydWN0 dXJlIGRlc2NyaWJpbmcgYW4gRUxGIHBheWxvYWQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlCiAg KiBwYXlsb2FkLiBTaG91bGQgYmUgaHVtYW4gcmVhZGFibGUuCi0gKiBSZWNvbW1lbmRlZCBsZW5n dGggaXMgdXB0byBYRU5fWFNQTElDRV9OQU1FX1NJWkUuCisgKiBSZWNvbW1lbmRlZCBsZW5ndGgg aXMgdXB0byBYRU5fTElWRVBBVENIX05BTUVfU0laRS4KICAqIEluY2x1ZGVzIHRoZSBOVUwgdGVy bWluYXRvci4KICAqLwotI2RlZmluZSBYRU5fWFNQTElDRV9OQU1FX1NJWkUgMTI4Ci1zdHJ1Y3Qg eGVuX3hzcGxpY2VfbmFtZSB7CisjZGVmaW5lIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIDEyOAor c3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZSB7CiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFy KSBuYW1lOyAgICAgICAgIC8qIElOOiBwb2ludGVyIHRvIG5hbWUuICovCiAgICAgdWludDE2X3Qg c2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBzaXplIG9mIG5hbWUuIE1heSBi ZSB1cHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhF Tl9YU1BMSUNFX05BTUVfU0laRS4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuICovCiAgICAgdWludDE2X3Qg cGFkWzNdOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNVVNUIGJlIHplcm8uICovCiB9 OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX3hzcGxpY2VfbmFtZSB4ZW5feHNwbGljZV9uYW1lX3Q7Ci1E RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5feHNwbGljZV9uYW1lX3QpOwordHlwZWRlZiBzdHJ1 Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIHhlbl9saXZlcGF0Y2hfbmFtZV90OworREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX2xpdmVwYXRjaF9uYW1lX3QpOwogCiAvKgogICogVXBsb2FkIGEgcGF5 bG9hZCB0byB0aGUgaHlwZXJ2aXNvci4gVGhlIHBheWxvYWQgaXMgdmVyaWZpZWQKICAqIGFnYWlu c3QgYmFzaWMgY2hlY2tzIGFuZCBpZiB0aGVyZSBhcmUgYW55IGlzc3VlcyB0aGUgcHJvcGVyIHJl dHVybiBjb2RlCiAgKiB3aWxsIGJlIHJldHVybmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGll ZCBhdCB0aGlzIHRpbWUgLSB0aGF0IGlzCi0gKiBjb250cm9sbGVkIGJ5IFhFTl9TWVNDVExfWFNQ TElDRV9BQ1RJT04uCisgKiBjb250cm9sbGVkIGJ5IFhFTl9TWVNDVExfTElWRVBBVENIX0FDVElP Ti4KICAqCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQgd2FzIHN1 Y2Nlc2Z1bGx5IHVwbG9hZGVkLgogICogT3RoZXJ3aXNlIGFuIEVYWCByZXR1cm4gdmFsdWUgaXMg cHJvdmlkZWQuIER1cGxpY2F0ZSBgbmFtZWAgYXJlIG5vdApAQCAtOTE4LDQyICs5MTgsNDIgQEAg REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3hzcGxpY2VfbmFtZV90KTsKICAqIFRoZSBwYXls b2FkIGF0IHRoaXMgcG9pbnQgaXMgdmVyaWZpZWQgYWdhaW5zdCBiYXNpYyBjaGVja3MuCiAgKgog ICogVGhlIGBwYXlsb2FkYCBpcyB0aGUgRUxGIHBheWxvYWQgYXMgbWVudGlvbmVkIGluIHRoZSBg UGF5bG9hZCBmb3JtYXRgCi0gKiBzZWN0aW9uIGluIHRoZSB4U3BsaWNlIGRlc2lnbiBkb2N1bWVu dC4KKyAqIHNlY3Rpb24gaW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50LgogICovCi0j ZGVmaW5lIFhFTl9TWVNDVExfWFNQTElDRV9VUExPQUQgMAotc3RydWN0IHhlbl9zeXNjdGxfeHNw bGljZV91cGxvYWQgewotICAgIHhlbl94c3BsaWNlX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAg ICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCisjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBB VENIX1VQTE9BRCAwCitzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHsKKyAgICB4 ZW5fbGl2ZXBhdGNoX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgLyogSU4sIG5hbWUgb2YgdGhl IHBhdGNoLiAqLwogICAgIHVpbnQ2NF90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBJTiwgc2l6ZSBvZiB0aGUgRUxGIGZpbGUuICovCiAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1 aW50OCkgcGF5bG9hZDsgICAgIC8qIElOLCB0aGUgRUxGIGZpbGUuICovCiB9OwotdHlwZWRlZiBz dHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZCB4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2Fk X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2FkX3Qp OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHhlbl9zeXNjdGxf bGl2ZXBhdGNoX3VwbG9hZF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9s aXZlcGF0Y2hfdXBsb2FkX3QpOwogCiAvKgogICogUmV0cmlldmUgYW4gc3RhdHVzIG9mIGFuIHNw ZWNpZmljIHBheWxvYWQuCiAgKgotICogVXBvbiBjb21wbGV0aW9uIHRoZSBgc3RydWN0IHhlbl94 c3BsaWNlX3N0YXR1c2AgaXMgdXBkYXRlZC4KKyAqIFVwb24gY29tcGxldGlvbiB0aGUgYHN0cnVj dCB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2AgaXMgdXBkYXRlZC4KICAqCiAgKiBUaGUgcmV0dXJuIHZh bHVlIGlzIHplcm8gb24gc3VjY2VzcyBhbmQgWEVOX0VYWCBvbiBmYWlsdXJlLiBUaGlzIG9wZXJh dGlvbgogICogaXMgc3luY2hyb25vdXMgYW5kIGRvZXMgbm90IHJlcXVpcmUgcHJlZW1wdGlvbi4K ICAqLwotI2RlZmluZSBYRU5fU1lTQ1RMX1hTUExJQ0VfR0VUIDEKKyNkZWZpbmUgWEVOX1NZU0NU TF9MSVZFUEFUQ0hfR0VUIDEKIAotc3RydWN0IHhlbl94c3BsaWNlX3N0YXR1cyB7Ci0jZGVmaW5l IFhTUExJQ0VfU1RBVEVfQ0hFQ0tFRCAgICAgIDEKLSNkZWZpbmUgWFNQTElDRV9TVEFURV9BUFBM SUVEICAgICAgMgotICAgIHVpbnQzMl90IHN0YXRlOyAgICAgICAgICAgICAgICAvKiBPVVQ6IFhT UExJQ0VfU1RBVEVfKi4gKi8KK3N0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1cyB7CisjZGVmaW5l IExJVkVQQVRDSF9TVEFURV9DSEVDS0VEICAgICAgMQorI2RlZmluZSBMSVZFUEFUQ0hfU1RBVEVf QVBQTElFRCAgICAgIDIKKyAgICB1aW50MzJfdCBzdGF0ZTsgICAgICAgICAgICAgICAgLyogT1VU OiBMSVZFUEFUQ0hfU1RBVEVfKi4gKi8KICAgICBpbnQzMl90IHJjOyAgICAgICAgICAgICAgICAg ICAgLyogT1VUOiAwIGlmIG5vIGVycm9yLCBvdGhlcndpc2UgLVhFTl9FWFguICovCiB9OwotdHlw ZWRlZiBzdHJ1Y3QgeGVuX3hzcGxpY2Vfc3RhdHVzIHhlbl94c3BsaWNlX3N0YXR1c190OwotREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3hzcGxpY2Vfc3RhdHVzX3QpOwordHlwZWRlZiBzdHJ1 Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgeGVuX2xpdmVwYXRjaF9zdGF0dXNfdDsKK0RFRklORV9Y RU5fR1VFU1RfSEFORExFKHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QpOwogCi1zdHJ1Y3QgeGVuX3N5 c2N0bF94c3BsaWNlX2dldCB7Ci0gICAgeGVuX3hzcGxpY2VfbmFtZV90IG5hbWU7ICAgICAgICAg ICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXlsb2FkLiAqLwotICAgIHhlbl94c3BsaWNlX3N0 YXR1c190IHN0YXR1czsgICAgICAgICAgICAvKiBJTi9PVVQsIHN0YXRlIG9mIGl0LiAqLworc3Ry dWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCB7CisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3Qg bmFtZTsgICAgICAgICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXlsb2FkLiAqLworICAgIHhl bl9saXZlcGF0Y2hfc3RhdHVzX3Qgc3RhdHVzOyAgICAgICAgICAvKiBJTi9PVVQsIHN0YXRlIG9m IGl0LiAqLwogfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9nZXQgeGVuX3N5 c2N0bF94c3BsaWNlX2dldF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94 c3BsaWNlX2dldF90KTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldCB4 ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9z eXNjdGxfbGl2ZXBhdGNoX2dldF90KTsKIAogLyoKICAqIFJldHJpZXZlIGFuIGFycmF5IG9mIGFi YnJldmlhdGVkIHN0YXR1cyBhbmQgbmFtZXMgb2YgcGF5bG9hZHMgdGhhdCBhcmUKQEAgLTk3Niw4 ICs5NzYsOCBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2VfZ2V0 X3QpOwogICogZGF0YSBhbmQgc3RhcnQgZnJvbSBzY3JhdGNoLiBJdCBpcyBPSyBmb3IgdGhlIHRv b2xzdGFjayB0byB1c2UgdGhlIG5ldwogICogYHZlcnNpb25gIGZpZWxkLgogICovCi0jZGVmaW5l IFhFTl9TWVNDVExfWFNQTElDRV9MSVNUIDIKLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlz dCB7CisjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgMgorc3RydWN0IHhlbl9zeXNj dGxfbGl2ZXBhdGNoX2xpc3QgewogICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgICAg ICAgICAgICAvKiBPVVQ6IEh5cGVydmlzb3Igc3RhbXBzIHZhbHVlLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB2YXJpZXMgYmV0d2VlbiBjYWxscywg d2UgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGdl dHRpbmcgc3RhbGUgZGF0YS4gKi8KQEAgLTk4Nyw0OSArOTg3LDQ5IEBAIHN0cnVjdCB4ZW5fc3lz Y3RsX3hzcGxpY2VfbGlzdCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFtb3VudCBvZiBwYXlsb2FkcyBhbmQgdmVyc2lvbi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXlsb2FkcyBs ZWZ0LiAqLwogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ TjogTXVzdCBiZSB6ZXJvLiAqLwotICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX3hzcGxpY2Vf c3RhdHVzX3QpIHN0YXR1czsgIC8qIE9VVC4gTXVzdCBoYXZlIGVub3VnaAorICAgIFhFTl9HVUVT VF9IQU5ETEVfNjQoeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0 IGhhdmUgZW5vdWdoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNwYWNlIGFsbG9jYXRlIGZvciBuciBvZiB0aGVtLiAqLwogICAgIFhFTl9HVUVTVF9IQU5E TEVfNjQoY2hhcikgbmFtZTsgICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIG5hbWVzLiBFYWNoIG1l bWJlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVNU IFhFTl9YU1BMSUNFX05BTUVfU0laRSBpbiBzaXplLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIGluIHNp emUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE11c3Qg aGF2ZSBuciBvZiB0aGVtLiAqLwogICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBsZW47 ICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIGxlbmd0aHMgb2YgbmFtZSdzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4g Ki8KIH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2VfbGlzdCB4ZW5fc3lzY3Rs X3hzcGxpY2VfbGlzdF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94c3Bs aWNlX2xpc3RfdCk7Cit0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0IHhl bl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3RfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9z eXNjdGxfbGl2ZXBhdGNoX2xpc3RfdCk7CiAKIC8qCiAgKiBQZXJmb3JtIGFuIG9wZXJhdGlvbiBv biB0aGUgcGF5bG9hZCBzdHJ1Y3R1cmUgcmVmZXJlbmNlZCBieSB0aGUgYG5hbWVgIGZpZWxkLgog ICogVGhlIG9wZXJhdGlvbiByZXF1ZXN0IGlzIGFzeW5jaHJvbm91cyBhbmQgdGhlIHN0YXR1cyBz aG91bGQgYmUgcmV0cmlldmVkCi0gKiBieSB1c2luZyBlaXRoZXIgWEVOX1NZU0NUTF9YU1BMSUNF X0dFVCBvciBYRU5fU1lTQ1RMX1hTUExJQ0VfTElTVCBoeXBlcmNhbGwuCisgKiBieSB1c2luZyBl aXRoZXIgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUIG9yIFhFTl9TWVNDVExfTElWRVBBVENIX0xJ U1QgaHlwZXJjYWxsLgogICovCi0jZGVmaW5lIFhFTl9TWVNDVExfWFNQTElDRV9BQ1RJT04gMwot c3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb24gewotICAgIHhlbl94c3BsaWNlX25hbWVf dCBuYW1lOyAgICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCi0jZGVm aW5lIFhTUExJQ0VfQUNUSU9OX1VOTE9BRCAgICAgICAxCi0jZGVmaW5lIFhTUExJQ0VfQUNUSU9O X1JFVkVSVCAgICAgICAyCi0jZGVmaW5lIFhTUExJQ0VfQUNUSU9OX0FQUExZICAgICAgICAzCi0j ZGVmaW5lIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0UgICAgICA0Ci0gICAgdWludDMyX3QgY21kOyAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYU1BMSUNFX0FDVElPTl8qLiAqLworI2Rl ZmluZSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gMworc3RydWN0IHhlbl9zeXNjdGxfbGl2 ZXBhdGNoX2FjdGlvbiB7CisgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAgICAg ICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4gKi8KKyNkZWZpbmUgTElWRVBBVENIX0FDVElP Tl9VTkxPQUQgICAgICAgMQorI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFVkVSVCAgICAgICAy CisjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fQVBQTFkgICAgICAgIDMKKyNkZWZpbmUgTElWRVBB VENIX0FDVElPTl9SRVBMQUNFICAgICAgNAorICAgIHVpbnQzMl90IGNtZDsgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBJTjogTElWRVBBVENIX0FDVElPTl8qLiAqLwogICAgIHVpbnQzMl90 IHRpbWVvdXQ7ICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogWmVybyBpZiBubyB0aW1lb3V0 LiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPciB1 cHBlciBib3VuZCBvZiB0aW1lIChtcykgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogZm9yIG9wZXJhdGlvbiB0byB0YWtlLiAqLwogfTsKLXR5cGVkZWYg c3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb24geGVuX3N5c2N0bF94c3BsaWNlX2FjdGlv bl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90 KTsKK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbiB4ZW5fc3lzY3Rs X2xpdmVwYXRjaF9hY3Rpb25fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9zeXNjdGxf bGl2ZXBhdGNoX2FjdGlvbl90KTsKIAotc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCB7Ci0g ICAgdWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lT Q1RMX1hTUExJQ0VfKi4gKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB7CisgICAg dWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RM X0xJVkVQQVRDSF8qLiAqLwogICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBJTjogQWx3YXlzIHplcm8uICovCiAgICAgdW5pb24gewotICAgICAgICB4ZW5fc3lz Y3RsX3hzcGxpY2VfdXBsb2FkX3QgdXBsb2FkOwotICAgICAgICB4ZW5fc3lzY3RsX3hzcGxpY2Vf bGlzdF90IGxpc3Q7Ci0gICAgICAgIHhlbl9zeXNjdGxfeHNwbGljZV9nZXRfdCBnZXQ7Ci0gICAg ICAgIHhlbl9zeXNjdGxfeHNwbGljZV9hY3Rpb25fdCBhY3Rpb247CisgICAgICAgIHhlbl9zeXNj dGxfbGl2ZXBhdGNoX3VwbG9hZF90IHVwbG9hZDsKKyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0 Y2hfbGlzdF90IGxpc3Q7CisgICAgICAgIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2dldF90IGdldDsK KyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hfYWN0aW9uX3QgYWN0aW9uOwogICAgIH0gdTsK IH07Ci10eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgeGVuX3N5c2N0bF94c3Bs aWNlX29wX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fc3lzY3RsX3hzcGxpY2Vfb3Bf dCk7Cit0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCB4ZW5fc3lzY3RsX2xp dmVwYXRjaF9vcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3N5c2N0bF9saXZlcGF0 Y2hfb3BfdCk7CiAKIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAgICB1aW50MzJfdCBjbWQ7CkBAIC0x MDU4LDcgKzEwNTgsNyBAQCBzdHJ1Y3QgeGVuX3N5c2N0bCB7CiAjZGVmaW5lIFhFTl9TWVNDVExf dG1lbV9vcCAgICAgICAgICAgICAgICAgICAgICAgMjQKICNkZWZpbmUgWEVOX1NZU0NUTF9nZXRf Y3B1X2xldmVsbGluZ19jYXBzICAgICAgICAyNQogI2RlZmluZSBYRU5fU1lTQ1RMX2dldF9jcHVf ZmVhdHVyZXNldCAgICAgICAgICAgIDI2Ci0jZGVmaW5lIFhFTl9TWVNDVExfeHNwbGljZV9vcCAg ICAgICAgICAgICAgICAgICAgMjcKKyNkZWZpbmUgWEVOX1NZU0NUTF9saXZlcGF0Y2hfb3AgICAg ICAgICAgICAgICAgICAyNwogICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAvKiBYRU5f U1lTQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICovCiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3Qg eGVuX3N5c2N0bF9yZWFkY29uc29sZSAgICAgICByZWFkY29uc29sZTsKQEAgLTEwODYsNyArMTA4 Niw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfdG1l bV9vcCAgICAgICAgICAgdG1lbV9vcDsKICAgICAgICAgc3RydWN0IHhlbl9zeXNjdGxfY3B1X2xl dmVsbGluZ19jYXBzIGNwdV9sZXZlbGxpbmdfY2FwczsKICAgICAgICAgc3RydWN0IHhlbl9zeXNj dGxfY3B1X2ZlYXR1cmVzZXQgICAgY3B1X2ZlYXR1cmVzZXQ7Ci0gICAgICAgIHN0cnVjdCB4ZW5f c3lzY3RsX3hzcGxpY2Vfb3AgICAgICAgIHhzcGxpY2U7CisgICAgICAgIHN0cnVjdCB4ZW5fc3lz Y3RsX2xpdmVwYXRjaF9vcCAgICAgIGxpdmVwYXRjaDsKICAgICAgICAgdWludDhfdCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFkWzEyOF07CiAgICAgfSB1OwogfTsKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmggYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0 cy5oCmluZGV4IDY4OTU0YjAuLjVmMjA4MmUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9l bGZzdHJ1Y3RzLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaApAQCAtMzUzLDcg KzM1Myw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICNkZWZpbmUJRUxGNjRfUl9UWVBFKGluZm8pCSgo aW5mbykgJiAweEZGRkZGRkZGKQogI2RlZmluZSBFTEY2NF9SX0lORk8ocyx0KSAJKCgocykgPDwg MzIpICsgKHVfaW50MzJfdCkodCkpCiAKLS8qIHg4Ni02NCByZWxvY2F0aW9uIHR5cGVzLiBXZSBs aXN0IG9ubHkgdGhlIG9uZXMgeFNwbGljZSBpbXBsZW1lbnRzLiAqLworLyogeDg2LTY0IHJlbG9j YXRpb24gdHlwZXMuIFdlIGxpc3Qgb25seSB0aGUgb25lcyBMaXZlIFBhdGNoIGltcGxlbWVudHMu ICovCiAjZGVmaW5lIFJfWDg2XzY0X05PTkUJCTAJLyogTm8gcmVsb2MgKi8KICNkZWZpbmUgUl9Y ODZfNjRfNjQJICAgIAkxCS8qIERpcmVjdCA2NCBiaXQgICovCiAjZGVmaW5lIFJfWDg2XzY0X1BD MzIJCTIJLyogUEMgcmVsYXRpdmUgMzIgYml0IHNpZ25lZCAqLwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL3hzcGxpY2UuaCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaApzaW1pbGFy aXR5IGluZGV4IDM0JQpyZW5hbWUgZnJvbSB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCnJlbmFt ZSB0byB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKaW5kZXggNWZmYjY5ZC4uYWRmMWMxZSAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAorKysgYi94ZW4vaW5jbHVkZS94 ZW4vbGl2ZXBhdGNoLmgKQEAgLTMsMTEwICszLDExMCBAQAogICoKICAqLwogCi0jaWZuZGVmIF9f WEVOX1hTUExJQ0VfSF9fCi0jZGVmaW5lIF9fWEVOX1hTUExJQ0VfSF9fCisjaWZuZGVmIF9fWEVO X0xJVkVQQVRDSF9IX18KKyNkZWZpbmUgX19YRU5fTElWRVBBVENIX0hfXwogCi1zdHJ1Y3QgeHNw bGljZV9lbGY7Ci1zdHJ1Y3QgeHNwbGljZV9lbGZfc2VjOwotc3RydWN0IHhzcGxpY2VfZWxmX3N5 bTsKLXN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3A7CitzdHJ1Y3QgbGl2ZXBhdGNoX2VsZjsK K3N0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYzsKK3N0cnVjdCBsaXZlcGF0Y2hfZWxmX3N5bTsKK3N0 cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcDsKIAogI2luY2x1ZGUgPHhlbi9lbGZzdHJ1Y3Rz Lmg+Ci0jaWZkZWYgQ09ORklHX1hTUExJQ0UKKyNpZmRlZiBDT05GSUdfTElWRVBBVENICiAKIC8q CiAgKiBXZSB1c2UgYWx0ZXJuYXRpdmUgYW5kIGV4Y2VwdGlvbiB0YWJsZSBjb2RlIC0gd2hpY2gg YnkgZGVmYXVsdCBhcmUgX19pbml0CiAgKiBvbmx5LCBob3dldmVyIHdlIG5lZWQgdGhlbSBkdXJp bmcgcnVudGltZS4gVGhlc2UgbWFjcm9zIGFsbG93cyB1cyB0byBidWlsZAogICogdGhlIGltYWdl IHdpdGggdGhlc2UgZnVuY3Rpb25zIGJ1aWx0LWluLiAoU2VlIHRoZSAjZWxzZSBiZWxvdykuCiAg Ki8KLSNkZWZpbmUgaW5pdF9vcl94c3BsaWNlX2NvbnN0Ci0jZGVmaW5lIGluaXRfb3JfeHNwbGlj ZV9jb25zdHJlbAotI2RlZmluZSBpbml0X29yX3hzcGxpY2VfZGF0YQotI2RlZmluZSBpbml0X29y X3hzcGxpY2UKKyNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2hfY29uc3QKKyNkZWZpbmUgaW5pdF9v cl9saXZlcGF0Y2hfY29uc3RyZWwKKyNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2hfZGF0YQorI2Rl ZmluZSBpbml0X29yX2xpdmVwYXRjaAogCiAvKiBDb252ZW5pZW5jZSBkZWZpbmUgZm9yIHByaW50 ay4gKi8KLSNkZWZpbmUgWFNQTElDRSAgICAgICAgICAgICAieHNwbGljZTogIgorI2RlZmluZSBM SVZFUEFUQ0ggICAgICAgICAgICAgImxpdmVwYXRjaDogIgogLyogRUxGIHBheWxvYWQgc3BlY2lh bCBzZWN0aW9uIG5hbWVzLiAqLwotI2RlZmluZSBFTEZfWFNQTElDRV9GVU5DICAgICIueHNwbGlj ZS5mdW5jcyIKLSNkZWZpbmUgRUxGX1hTUExJQ0VfREVQRU5EUyAiLnhzcGxpY2UuZGVwZW5kcyIK LSNkZWZpbmUgRUxGX0JVSUxEX0lEX05PVEUgICAiLm5vdGUuZ251LmJ1aWxkLWlkIgorI2RlZmlu ZSBFTEZfTElWRVBBVENIX0ZVTkMgICAgIi5saXZlcGF0Y2guZnVuY3MiCisjZGVmaW5lIEVMRl9M SVZFUEFUQ0hfREVQRU5EUyAiLmxpdmVwYXRjaC5kZXBlbmRzIgorI2RlZmluZSBFTEZfQlVJTERf SURfTk9URSAgICAgICIubm90ZS5nbnUuYnVpbGQtaWQiCiAKLXN0cnVjdCB4c3BsaWNlX3N5bWJv bCB7CitzdHJ1Y3QgbGl2ZXBhdGNoX3N5bWJvbCB7CiAgICAgY29uc3QgY2hhciAqbmFtZTsKICAg ICB1bnNpZ25lZCBsb25nIHZhbHVlOwogICAgIHVuc2lnbmVkIGludCBzaXplOwogICAgIGJvb2xf dCBuZXdfc3ltYm9sOwogfTsKIAotaW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNjdGxfeHNw bGljZV9vcCAqKTsKLXZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2b2lkKTsKLXVuc2lnbmVk IGxvbmcgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUp OworaW50IGxpdmVwYXRjaF9vcChzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3AgKik7Cit2 b2lkIGNoZWNrX2Zvcl9saXZlcGF0Y2hfd29yayh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbGl2ZXBh dGNoX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoY29uc3QgY2hhciAqc3ltbmFtZSk7CiBib29sX3Qg aXNfcGF0Y2goY29uc3Qgdm9pZCAqYWRkcik7CiBpbnQgeGVuX2J1aWxkX2lkX2NoZWNrKGNvbnN0 IEVsZl9Ob3RlICpuLCB1bnNpZ25lZCBpbnQgbl9zeiwKICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKTsKIAogLyogQXJjaCBob29rcy4gKi8K LWludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2VsZihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVs Zik7Ci1pbnQgYXJjaF94c3BsaWNlX3BlcmZvcm1fcmVsKHN0cnVjdCB4c3BsaWNlX2VsZiAqZWxm LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZf c2VjICpiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNw bGljZV9lbGZfc2VjICpyZWxhKTsKLWludCBhcmNoX3hzcGxpY2VfcGVyZm9ybV9yZWxhKHN0cnVj dCB4c3BsaWNlX2VsZiAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmX3NlYyAqYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zZWMgKnJlbGEpOworaW50IGFyY2hfbGl2ZXBh dGNoX3ZlcmlmeV9lbGYoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZik7CitpbnQgYXJj aF9saXZlcGF0Y2hfcGVyZm9ybV9yZWwoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVw YXRjaF9lbGZfc2VjICpyZWxhKTsKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3Ry dWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpOwogZW51 bSB2YV90eXBlIHsKLSAgICBYU1BMSUNFX1ZBX1JYLCAvKiAudGV4dCAqLwotICAgIFhTUExJQ0Vf VkFfUlcsIC8qIC5kYXRhICovCi0gICAgWFNQTElDRV9WQV9STywgLyogLnJvZGF0YSAqLworICAg IExJVkVQQVRDSF9WQV9SWCwgLyogLnRleHQgKi8KKyAgICBMSVZFUEFUQ0hfVkFfUlcsIC8qIC5k YXRhICovCisgICAgTElWRVBBVENIX1ZBX1JPLCAvKiAucm9kYXRhICovCiB9OwogCiAvKgotICog RnVuY3Rpb24gdG8gc2VjdXJlIHRoZSBhbGxvY2F0ZSBwYWdlcyAoZnJvbSBhcmNoX3hzcGxpY2Vf YWxsb2NfcGF5bG9hZCkKKyAqIEZ1bmN0aW9uIHRvIHNlY3VyZSB0aGUgYWxsb2NhdGUgcGFnZXMg KGZyb20gYXJjaF9saXZlcGF0Y2hfYWxsb2NfcGF5bG9hZCkKICAqIHdpdGggdGhlIHJpZ2h0IHBh Z2UgcGVybWlzc2lvbnMuCiAgKi8KLWludCBhcmNoX3hzcGxpY2Vfc2VjdXJlKGNvbnN0IHZvaWQg KnZhLCB1bnNpZ25lZCBpbnQgcGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlcyk7CitpbnQgYXJjaF9s aXZlcGF0Y2hfc2VjdXJlKGNvbnN0IHZvaWQgKnZhLCB1bnNpZ25lZCBpbnQgcGFnZXMsIGVudW0g dmFfdHlwZSB0eXBlcyk7CiAKLXZvaWQgYXJjaF94c3BsaWNlX2luaXQodm9pZCk7Cit2b2lkIGFy Y2hfbGl2ZXBhdGNoX2luaXQodm9pZCk7CiAKLSNpbmNsdWRlIDxwdWJsaWMvc3lzY3RsLmg+IC8q IEZvciBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jLiAqLwotaW50IGFyY2hfeHNwbGljZV92ZXJp ZnlfZnVuYyhjb25zdCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5jKTsKKyNpbmNsdWRl IDxwdWJsaWMvc3lzY3RsLmg+IC8qIEZvciBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMuICovCitpbnQg YXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpm dW5jKTsKIC8qCiAgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhcm91bmQgdGhlIGNyaXRp Y2FsIHJlZ2lvbiBwYXRjaGluZyBsaXZlIGNvZGUsCiAgKiBmb3IgYW4gYXJjaGl0ZWN0dXJlIHRv IHRha2UgbWFrZSBhcHByb3ByYXRpZSBnbG9iYWwgc3RhdGUgYWRqdXN0bWVudHMuCiAgKi8KLXZv aWQgYXJjaF94c3BsaWNlX3BhdGNoaW5nX2VudGVyKHZvaWQpOwotdm9pZCBhcmNoX3hzcGxpY2Vf cGF0Y2hpbmdfbGVhdmUodm9pZCk7Cit2b2lkIGFyY2hfbGl2ZXBhdGNoaW5nX2VudGVyKHZvaWQp Owordm9pZCBhcmNoX2xpdmVwYXRjaGluZ19sZWF2ZSh2b2lkKTsKIAotdm9pZCBhcmNoX3hzcGxp Y2VfYXBwbHlfam1wKHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgKmZ1bmMpOwotdm9pZCBhcmNo X3hzcGxpY2VfcmV2ZXJ0X2ptcChjb25zdCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jICpmdW5j KTsKLXZvaWQgYXJjaF94c3BsaWNlX3Bvc3RfYWN0aW9uKHZvaWQpOwordm9pZCBhcmNoX2xpdmVw YXRjaF9hcHBseV9qbXAoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTsKK3ZvaWQgYXJjaF9s aXZlcGF0Y2hfcmV2ZXJ0X2ptcChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwor dm9pZCBhcmNoX2xpdmVwYXRjaF9wb3N0X2FjdGlvbih2b2lkKTsKIAotdm9pZCBhcmNoX3hzcGxp Y2VfbWFzayh2b2lkKTsKLXZvaWQgYXJjaF94c3BsaWNlX3VubWFzayh2b2lkKTsKK3ZvaWQgYXJj aF9saXZlcGF0Y2hfbWFzayh2b2lkKTsKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfdW5tYXNrKHZvaWQp OwogI2Vsc2UKIAogLyoKLSAqIElmIG5vdCBjb21waWxpbmcgd2l0aCB4U3BsaWNlIGNlcnRhaW4g ZnVuY3Rpb25hbGl0eSBzaG91bGQgc3RheSBhcworICogSWYgbm90IGNvbXBpbGluZyB3aXRoIGxp dmUgcGF0Y2hpbmcgY2VydGFpbiBmdW5jdGlvbmFsaXR5IHNob3VsZCBzdGF5IGFzCiAgKiBfX2lu aXQuCiAgKi8KLSNkZWZpbmUgaW5pdF9vcl94c3BsaWNlX2NvbnN0ICAgICAgIF9faW5pdGNvbnN0 Ci0jZGVmaW5lIGluaXRfb3JfeHNwbGljZV9jb25zdHJlbCAgICBfX2luaXRjb25zdHJlbAotI2Rl ZmluZSBpbml0X29yX3hzcGxpY2VfZGF0YSAgICAgICAgX19pbml0ZGF0YQotI2RlZmluZSBpbml0 X29yX3hzcGxpY2UgICAgICAgICAgICAgX19pbml0CisjZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNo X2NvbnN0ICAgICAgIF9faW5pdGNvbnN0CisjZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNoX2NvbnN0 cmVsICAgIF9faW5pdGNvbnN0cmVsCisjZGVmaW5lIGluaXRfb3JfbGl2ZXBhdGNoX2RhdGEgICAg ICAgIF9faW5pdGRhdGEKKyNkZWZpbmUgaW5pdF9vcl9saXZlcGF0Y2ggICAgICAgICAgICAgX19p bml0CiAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4gLyogRm9yIC1FTk9TWVMgKi8KLXN0YXRpYyBp bmxpbmUgaW50IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqb3ApCitz dGF0aWMgaW5saW5lIGludCBsaXZlcGF0Y2hfb3Aoc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNo X29wICpvcCkKIHsKICAgICByZXR1cm4gLUVOT1NZUzsKIH0KIAotc3RhdGljIGlubGluZSB2b2lk IGNoZWNrX2Zvcl94c3BsaWNlX3dvcmsodm9pZCkgeyB9Oworc3RhdGljIGlubGluZSB2b2lkIGNo ZWNrX2Zvcl9saXZlcGF0Y2hfd29yayh2b2lkKSB7IH07CiBzdGF0aWMgaW5saW5lIGJvb2xfdCBp c19wYXRjaChjb25zdCB2b2lkICphZGRyKQogewogICAgIHJldHVybiAwOwogfQotI2VuZGlmIC8q IENPTkZJR19YU1BMSUNFICovCisjZW5kaWYgLyogQ09ORklHX0xJVkVQQVRDSCAqLwogCi0jZW5k aWYgLyogX19YRU5fWFNQTElDRV9IX18gKi8KKyNlbmRpZiAvKiBfX1hFTl9MSVZFUEFUQ0hfSF9f ICovCiAKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4veHNwbGljZV9lbGYuaCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2hfZWxmLmgKc2ltaWxh cml0eSBpbmRleCA1NiUKcmVuYW1lIGZyb20geGVuL2luY2x1ZGUveGVuL3hzcGxpY2VfZWxmLmgK cmVuYW1lIHRvIHhlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2hfZWxmLmgKaW5kZXggNzUwZGM5NC4u N2U3Yzg2ZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2VfZWxmLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaF9lbGYuaApAQCAtMiwxNCArMiwxNCBAQAogICogQ29w eXJpZ2h0IChDKSAyMDE2IENpdHJpeCBTeXN0ZW1zIFImRCBMdGQuCiAgKi8KIAotI2lmbmRlZiBf X1hFTl9YU1BMSUNFX0VMRl9IX18KLSNkZWZpbmUgX19YRU5fWFNQTElDRV9FTEZfSF9fCisjaWZu ZGVmIF9fWEVOX0xJVkVQQVRDSF9FTEZfSF9fCisjZGVmaW5lIF9fWEVOX0xJVkVQQVRDSF9FTEZf SF9fCiAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNpbmNsdWRlIDx4ZW4vZWxmc3RydWN0cy5o PgogCi0vKiBUaGUgZm9sbG93aW5nIGRlc2NyaWJlcyBhbiBFbGYgZmlsZSBhcyBjb25zdW1lZCBi eSB4U3BsaWNlLiAqLwotc3RydWN0IHhzcGxpY2VfZWxmX3NlYyB7CisvKiBUaGUgZm9sbG93aW5n IGRlc2NyaWJlcyBhbiBFbGYgZmlsZSBhcyBjb25zdW1lZCBieSBYZW4gTGl2ZSBQYXRjaC4gKi8K K3N0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyB7CiAgICAgY29uc3QgRWxmX1NoZHIgKnNlYzsgICAg ICAgICAgICAgICAgIC8qIEhvb2tlZCB1cCBpbiBlbGZfcmVzb2x2ZV9zZWN0aW9ucy4qLwogICAg IGNvbnN0IGNoYXIgKm5hbWU7ICAgICAgICAgICAgICAgICAgICAvKiBIdW1hbiByZWFkYWJsZSBu YW1lIGhvb2tlZCBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbGZfcmVzb2x2ZV9zZWN0aW9uX25hbWVzLiAqLwpAQCAtMTksMzMgKzE5LDM0IEBAIHN0cnVj dCB4c3BsaWNlX2VsZl9zZWMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEb25lIGJ5IGxvYWRfcGF5bG9hZF9kYXRhLiAqLwogfTsKIAotc3RydWN0IHhzcGxp Y2VfZWxmX3N5bSB7CitzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zeW0gewogICAgIGNvbnN0IEVsZl9T eW0gKnN5bTsKICAgICBjb25zdCBjaGFyICpuYW1lOwogfTsKIAotc3RydWN0IHhzcGxpY2VfZWxm IHsKK3N0cnVjdCBsaXZlcGF0Y2hfZWxmIHsKICAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAg ICAgICAgICAgICAgLyogUG9pbnRlciB0byBwYXlsb2FkLT5uYW1lLiAqLwogICAgIHNpemVfdCBs ZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMZW5ndGggb2YgdGhlIEVMRiBmaWxlLiAq LwogICAgIGNvbnN0IEVsZl9FaGRyICpoZHI7ICAgICAgICAgICAgICAgICAvKiBFTEYgZmlsZS4g Ki8KLSAgICBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpzZWM7ICAgICAgICAgLyogQXJyYXkgb2Yg c2VjdGlvbnMsIGFsbG9jYXRlZCBieSB1cy4gKi8KLSAgICBzdHJ1Y3QgeHNwbGljZV9lbGZfc3lt ICpzeW07ICAgICAgICAgLyogQXJyYXkgb2Ygc3ltYm9scyAsIGFsbG9jYXRlZCBieSB1cy4gKi8K KyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnNlYzsgICAgICAgLyogQXJyYXkgb2Ygc2Vj dGlvbnMsIGFsbG9jYXRlZCBieSB1cy4gKi8KKyAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zeW0g KnN5bTsgICAgICAgLyogQXJyYXkgb2Ygc3ltYm9scyAsIGFsbG9jYXRlZCBieSB1cy4gKi8KICAg ICB1bnNpZ25lZCBpbnQgbnN5bTsKLSAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGZfc2VjICpz eW10YWI7LyogUG9pbnRlciB0byAuc3ltdGFiIHNlY3Rpb24gLSBha2EgdG8KKyAgICBjb25zdCBz dHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnN5bXRhYjsvKiBQb2ludGVyIHRvIC5zeW10YWIgc2Vj dGlvbiAtIGFrYSB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWNbc3ltdGFiX2lkeF0uICovCi0gICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3NlYyAq c3RydGFiOy8qIFBvaW50ZXIgdG8gLnN0cnRhYiBzZWN0aW9uLiAqLworICAgIGNvbnN0IHN0cnVj dCBsaXZlcGF0Y2hfZWxmX3NlYyAqc3RydGFiOy8qIFBvaW50ZXIgdG8gLnN0cnRhYiBzZWN0aW9u LiAqLwogICAgIHVuc2lnbmVkIGludCBzeW10YWJfaWR4OwogfTsKIAotY29uc3Qgc3RydWN0IHhz cGxpY2VfZWxmX3NlYyAqeHNwbGljZV9lbGZfc2VjX2J5X25hbWUoY29uc3Qgc3RydWN0IHhzcGxp Y2VfZWxmICplbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKLWludCB4c3BsaWNlX2VsZl9sb2FkKHN0cnVj dCB4c3BsaWNlX2VsZiAqZWxmLCBjb25zdCB2b2lkICpkYXRhKTsKLXZvaWQgeHNwbGljZV9lbGZf ZnJlZShzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Citjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Vs Zl9zZWMgKgorbGl2ZXBhdGNoX2VsZl9zZWNfYnlfbmFtZShjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNo X2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsK K2ludCBsaXZlcGF0Y2hfZWxmX2xvYWQoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwgY29uc3Qg dm9pZCAqZGF0YSk7Cit2b2lkIGxpdmVwYXRjaF9lbGZfZnJlZShzdHJ1Y3QgbGl2ZXBhdGNoX2Vs ZiAqZWxmKTsKIAotaW50IHhzcGxpY2VfZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGlj ZV9lbGYgKmVsZik7Ci1pbnQgeHNwbGljZV9lbGZfcGVyZm9ybV9yZWxvY3Moc3RydWN0IHhzcGxp Y2VfZWxmICplbGYpOworaW50IGxpdmVwYXRjaF9lbGZfcmVzb2x2ZV9zeW1ib2xzKHN0cnVjdCBs aXZlcGF0Y2hfZWxmICplbGYpOworaW50IGxpdmVwYXRjaF9lbGZfcGVyZm9ybV9yZWxvY3Moc3Ry dWN0IGxpdmVwYXRjaF9lbGYgKmVsZik7CiAKLSNlbmRpZiAvKiBfX1hFTl9YU1BMSUNFX0VMRl9I X18gKi8KKyNlbmRpZiAvKiBfX1hFTl9MSVZFUEFUQ0hfRUxGX0hfXyAqLwogCiAvKgogICogTG9j YWwgdmFyaWFibGVzOgpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hz bS9mbGFzay9ob29rcy5jCmluZGV4IDc0NzdkYmUuLjIwZDQ2YzggMTAwNjQ0Ci0tLSBhL3hlbi94 c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTgxNCw5ICs4 MTQsOSBAQCBzdGF0aWMgaW50IGZsYXNrX3N5c2N0bChpbnQgY21kKQogICAgIGNhc2UgWEVOX1NZ U0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQ6CiAgICAgICAgIHJldHVybiBkb21haW5faGFzX3hlbihj dXJyZW50LT5kb21haW4sIFhFTjJfX0dFVF9DUFVfRkVBVFVSRVNFVCk7CiAKLSAgICBjYXNlIFhF Tl9TWVNDVExfeHNwbGljZV9vcDoKKyAgICBjYXNlIFhFTl9TWVNDVExfbGl2ZXBhdGNoX29wOgog ICAgICAgICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0oU0VDSU5JVFNJRF9YRU4sIFNFQ0NM QVNTX1hFTjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU4yX19YU1BM SUNFX09QLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTjJf X0xJVkVQQVRDSF9PUCwgTlVMTCk7CiAKICAgICBkZWZhdWx0OgogICAgICAgICBwcmludGsoImZs YXNrX3N5c2N0bDogVW5rbm93biBvcCAlZFxuIiwgY21kKTsKZGlmZiAtLWdpdCBhL3hlbi94c20v Zmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNz X3ZlY3RvcnMKaW5kZXggNGQxYjU0OC4uM2QyOTA0MiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFz ay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNz X3ZlY3RvcnMKQEAgLTk3LDggKzk3LDggQEAgY2xhc3MgeGVuMgogICAgIGdldF9jcHVfbGV2ZWxs aW5nX2NhcHMKICMgWEVOX1NZU0NUTF9nZXRfY3B1X2ZlYXR1cmVzZXQKICAgICBnZXRfY3B1X2Zl YXR1cmVzZXQKLSMgWEVOX1NZU0NUTF94c3BsaWNlX29wCi0gICAgeHNwbGljZV9vcAorIyBYRU5f U1lTQ1RMX2xpdmVwYXRjaF9vcAorICAgIGxpdmVwYXRjaF9vcAogfQogCiAjIENsYXNzZXMgZG9t YWluIGFuZCBkb21haW4yIGNvbnNpc3Qgb2Ygb3BlcmF0aW9ucyB0aGF0IGEgZG9tYWluIHBlcmZv cm1zIG9uCi0tIAoyLjUuNQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==