From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Bastien Nocera To: git-commits@fedoraproject.org Subject: [rpms/bluez] f43: Fix CVE-2026-80186 (Closes: #2524148) Date: Wed, 26 Aug 2026 12:42:08 GMT Message-ID: <178774812818.1.6774506454207803300.rpms-bluez-b097e2619880@fedoraproject.org> List-ID: X-Git-Repo: rpms/bluez X-Git-Branch: f43 X-Git-Rev: b097e26198800da7c2e9dad17acf3f59cab3bea1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYmx1ZXoKQnJhbmNo IDogZjQzCkNvbW1pdCA6IGIwOTdlMjYxOTg4MDBkYTdjMmU5ZGFkMTdhY2YzZjU5Y2FiM2JlYTEK QXV0aG9yIDogQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgpEYXRlICAgOiAyMDI2 LTA4LTI2VDE0OjQxOjQ4KzAyOjAwClN0YXRzICA6ICsxMzUzLy0xIGluIDIgZmlsZShzKQpVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2JsdWV6L2MvYjA5N2UyNjE5 ODgwMGRhN2MyZTlkYWQxN2FjZjNmNTljYWIzYmVhMT9icmFuY2g9ZjQzCgpMb2c6CkZpeCBDVkUt MjAyNi04MDE4NiAoQ2xvc2VzOiAjMjUyNDE0OCkKCi0tLQpkaWZmIC0tZ2l0IGEvYmx1ZXouc3Bl YyBiL2JsdWV6LnNwZWMKaW5kZXggNTc2MTZmOS4uYmY2YjcxYiAxMDA2NDQKLS0tIGEvYmx1ZXou c3BlYworKysgYi9ibHVlei5zcGVjCkBAIC02LDcgKzYsNyBAQAogCiBOYW1lOiAgICBibHVlegog VmVyc2lvbjogNS44NwotUmVsZWFzZTogNCV7P2Rpc3R9CitSZWxlYXNlOiA1JXs/ZGlzdH0KIFN1 bW1hcnk6IEJsdWV0b290aCB1dGlsaXRpZXMKIExpY2Vuc2U6IEdQTC0yLjAtb3ItbGF0ZXIKIFVS TDogICAgIGh0dHA6Ly93d3cuYmx1ZXoub3JnLwpAQCAtMTcsNiArMTcsOCBAQCBTb3VyY2UwOiBo dHRwczovL3d3dy5rZXJuZWwub3JnL3B1Yi9saW51eC9ibHVldG9vdGgvJXtuYW1lfS0le3ZlcnNp b259LnRhci54egogUGF0Y2gxOiA1Ljg3LWJ1Zy1maXhlcy0xLnBhdGNoCiAjIENWRS0yMDI2LTc1 MDMyCiBQYXRjaDI6IGF2cmNwLWdldGZvbGRlcml0ZW1zLnBhdGNoCisjIENWRS0yMDI2LTgwMTg2 CitQYXRjaDM6IG5hbWUydXRmOC1vdmVyZmxvdy5wYXRjaAogCiBCdWlsZFJlcXVpcmVzOiBkYnVz LWRldmVsID49IDEuNgogQnVpbGRSZXF1aXJlczogZ2xpYjItZGV2ZWwKQEAgLTM0Miw2ICszNDQs OSBAQCBpbnN0YWxsIGVtdWxhdG9yL2J0dmlydCAke1JQTV9CVUlMRF9ST09UfS8le19saWJleGVj ZGlyfS9ibHVldG9vdGgvCiAle191c2VydW5pdGRpcn0vb2JleC5zZXJ2aWNlCiAKICVjaGFuZ2Vs b2cKKyogV2VkIEF1ZyAyNiAyMDI2IEJhc3RpZW4gTm9jZXJhIDxibm9jZXJhQHJlZGhhdC5jb20+ IC0gNS44Ny01CistIEZpeCBDVkUtMjAyNi04MDE4NiAoQ2xvc2VzOiAjMjUyNDE0OCkKKwogKiBX ZWQgQXVnIDE5IDIwMjYgQmFzdGllbiBOb2NlcmEgPGJub2NlcmFAcmVkaGF0LmNvbT4gLSA1Ljg3 LTQKIC0gRml4IENWRS0yMDI2LTc1MDMyIChDbG9zZXM6ICMyNTE3ODc3KQogCgpkaWZmIC0tZ2l0 IGEvbmFtZTJ1dGY4LW92ZXJmbG93LnBhdGNoIGIvbmFtZTJ1dGY4LW92ZXJmbG93LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3YjJiNmQKLS0tIC9kZXYvbnVsbAor KysgYi9uYW1lMnV0Zjgtb3ZlcmZsb3cucGF0Y2gKQEAgLTAsMCArMSwxMzQ3IEBACitGcm9tIDM4 MWI1ZDBkMjA4OTcyNTg2MjgyMTE2ZDMzMzg2NWJhOTNiOGRlYzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRl bC5jb20+CitEYXRlOiBXZWQsIDE5IEF1ZyAyMDI2IDE2OjAyOjQ3IC0wNDAwCitTdWJqZWN0OiBb UEFUQ0ggMDEvMTBdIGVpcjogRml4IHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcg dGhlIHJlbW90ZQorIG5hbWUKKworbmFtZTJ1dGY4KCkgY29waWVzIGxlbiBieXRlcyBpbnRvIGEg SENJX01BWF9OQU1FX0xFTkdUSCArIDIsIHNvIDI1MCwKK2J5dGUgc3RhY2sgYnVmZmVyIHdpdGhv dXQgY2xhbXBpbmcgbGVuIGZpcnN0LgorCitlaXJfcGFyc2UoKSBvbmx5IHJlamVjdHMgYSBmaWVs ZCBvbmNlIGl0IHJ1bnMgcGFzdCB0aGUgZW5kIG9mIHRoZSBFSVIKK2RhdGEsIGFuZCB0aGF0IGRh dGEgaXMgdXAgdG8gMjU1IGJ5dGVzLCBzbyBmaWVsZF9sZW4gY2FuIGJlIDI1NCBhbmQgdGhlCitk YXRhX2xlbiBwYXNzZWQgdG8gbmFtZTJ1dGY4KCkgY2FuIHJlYWNoIDI1My4gc3RybmNweSgpIHRo ZW4gd3JpdGVzIDI1MworYnl0ZXMgaW50byB0aGUgMjUwIGJ5dGUgYnVmZmVyIGFuZCBsZWF2ZXMg aXQgdW50ZXJtaW5hdGVkLCBzbyB0aGUKK2ZvbGxvd2luZyBnX3N0cnN0cmlwKCkgYW5kIGdfc3Ry ZHVwKCkgYWxzbyByZWFkIHBhc3QgdGhlIGVuZC4KKworVGhlIEVJUiBkYXRhIGNvbWVzIGZyb20g YSByZW1vdGUgZGV2aWNlLCBlaXRoZXIgaW4gYW4gZXh0ZW5kZWQgaW5xdWlyeQorcmVzcG9uc2Ug b3IgaW4gYW4gYWR2ZXJ0aXNpbmcgcmVwb3J0LCBzbyB0aGUgbGVuZ3RoIGlzIGF0dGFja2VyCitj b250cm9sbGVkLgorCitDbGFtcCBsZW4gdG8gSENJX01BWF9OQU1FX0xFTkdUSCwgd2hpY2ggaXMg d2hhdCB0aGUgbG9jYWwgbmFtZSBpcworbGltaXRlZCB0byBhbnl3YXksIGFuZCB3aGF0IGFkX3Jl cGxhY2VfbmFtZSgpIGFscmVhZHkgY2xhbXBzIHRvLgorCitGaXhlczogaHR0cHM6Ly9naXRodWIu Y29tL2JsdWV6L2JsdWV6L3NlY3VyaXR5L2Fkdmlzb3JpZXMvR0hTQS02OGg2LTVxZ3AtMzk3NQor QXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1ZGUtb3B1cy01CistLS0KKyBzcmMvZWlyLmMgfCAyICsr CisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL2Vp ci5jIGIvc3JjL2Vpci5jCitpbmRleCA4OWMxNTk5NWE1NDYuLjQ0MjFiMTY2MmQ2NSAxMDA2NDQK Ky0tLSBhL3NyYy9laXIuYworKysrIGIvc3JjL2Vpci5jCitAQCAtMTM3LDYgKzEzNyw4IEBAIHN0 YXRpYyBjaGFyICpuYW1lMnV0ZjgoY29uc3QgdWludDhfdCAqbmFtZSwgdWludDhfdCBsZW4pCisg eworIAljaGFyIHV0ZjhfbmFtZVtIQ0lfTUFYX05BTUVfTEVOR1RIICsgMl07CisgCisrCWxlbiA9 IE1JTihsZW4sIEhDSV9NQVhfTkFNRV9MRU5HVEgpOworKworIAltZW1zZXQodXRmOF9uYW1lLCAw LCBzaXplb2YodXRmOF9uYW1lKSk7CisgCXN0cm5jcHkodXRmOF9uYW1lLCAoY2hhciAqKSBuYW1l LCBsZW4pOworIAlzdHJ0b3V0ZjgodXRmOF9uYW1lLCBsZW4pOworLS0gCisyLjU1LjAKKworCitG cm9tIDc4NDIwMzE2MGUyZmI5MDYwOTAwNTkzMzZkODZhMjRmMjgzNDliMDIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50 ekBpbnRlbC5jb20+CitEYXRlOiBUaHUsIDIwIEF1ZyAyMDI2IDEzOjQyOjEyIC0wNDAwCitTdWJq ZWN0OiBbUEFUQ0ggMDIvMTBdIHNoYXJlZC9hZDogRml4IHJlYWRpbmcgcGFzdCB0aGUgbmFtZSB0 aGF0IHdhcyBjb3BpZWQKKworYWRfcmVwbGFjZV9uYW1lKCkgY29waWVzIGF0IG1vc3QgSENJX01B WF9OQU1FX0xFTkdUSCBieXRlcyBvZiB0aGUgbmFtZQoraW50byBpdHMgYnVmZmVyLCBidXQgdGhl biBoYW5kcyB0aGUgZnVsbCBpb3ZfbGVuIHRvIHN0cmlzdXRmOCgpIGFuZAorc3RydG91dGY4KCku CisKK1RoZSBhZHZlcnRpc2luZyBkYXRhIGlzIHVwIHRvIDI1NSBieXRlcywgc28gYSBjb21wbGV0 ZSBsb2NhbCBuYW1lIGZpZWxkCitjYW4gaG9sZCAyNTMgb2YgdGhlbSwgYW5kIGJvdGggZW5kIHVw IHJlYWRpbmcgMjUzIGJ5dGVzIG91dCBvZiBhIDI1MAorYnl0ZSBidWZmZXIsIDMgb2YgdGhlbSBw YXN0IGl0cyBlbmQuCisKK1VzZSB0aGUgc2FtZSBjbGFtcGVkIGxlbmd0aCB0aHJvdWdob3V0Lgor CitBc3Npc3RlZC1ieTogQ2xhdWRlOmNsYXVkZS1vcHVzLTUKKy0tLQorIHNyYy9zaGFyZWQvYWQu YyB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC9hZC5jIGIvc3JjL3NoYXJlZC9hZC5j CitpbmRleCBiMWQxYjg0NjExYWEuLmViZWUwNzg1MDBjNiAxMDA2NDQKKy0tLSBhL3NyYy9zaGFy ZWQvYWQuYworKysrIGIvc3JjL3NoYXJlZC9hZC5jCitAQCAtMjc2LDE1ICsyNzYsMTUgQEAgc3Rh dGljIGJvb2wgYWRfcmVwbGFjZV91dWlkMTI4KHN0cnVjdCBidF9hZCAqYWQsIHN0cnVjdCBpb3Zl YyAqaW92KQorIHN0YXRpYyBib29sIGFkX3JlcGxhY2VfbmFtZShzdHJ1Y3QgYnRfYWQgKmFkLCBz dHJ1Y3QgaW92ZWMgKmlvdikKKyB7CisgCWNoYXIgdXRmOF9uYW1lW0hDSV9NQVhfTkFNRV9MRU5H VEggKyAyXTsKKysJc2l6ZV90IGxlbiA9IE1JTihpb3YtPmlvdl9sZW4sIChzaXplX3QpIEhDSV9N QVhfTkFNRV9MRU5HVEgpOworIAorIAltZW1zZXQodXRmOF9uYW1lLCAwLCBzaXplb2YodXRmOF9u YW1lKSk7CistCXN0cm5jcHkodXRmOF9uYW1lLCAoY29uc3QgY2hhciAqKWlvdi0+aW92X2Jhc2Us CistCQkJTUlOKGlvdi0+aW92X2xlbiwgSENJX01BWF9OQU1FX0xFTkdUSCkpOworKwlzdHJuY3B5 KHV0ZjhfbmFtZSwgKGNvbnN0IGNoYXIgKilpb3YtPmlvdl9iYXNlLCBsZW4pOworIAorLQlpZiAo c3RyaXN1dGY4KHV0ZjhfbmFtZSwgaW92LT5pb3ZfbGVuKSkKKysJaWYgKHN0cmlzdXRmOCh1dGY4 X25hbWUsIGxlbikpCisgCQlnb3RvIGRvbmU7CisgCistCXN0cnRvdXRmOCh1dGY4X25hbWUsIGlv di0+aW92X2xlbik7CisrCXN0cnRvdXRmOCh1dGY4X25hbWUsIGxlbik7CisgCisgCS8qIFJlbW92 ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKi8KKyAJc3Ryc3Ry aXAodXRmOF9uYW1lKTsKKy0tIAorMi41NS4wCisKKworRnJvbSBkZWJkNDMyZWYxM2M1ZWE5ZmZh YjlmZmNiZmNiNDUzNzI5NDY5MjBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVp eiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwuY29tPgorRGF0ZTogVGh1 LCAyMCBBdWcgMjAyNiAxMzoyODozOCAtMDQwMAorU3ViamVjdDogW1BBVENIIDAzLzEwXSB1bml0 L3Rlc3QtZWlyOiBBZGQgdGVzdHMgZm9yIHRoZSBsb25nZXN0IGxvY2FsIG5hbWVzCisKK05vdGhp bmcgY292ZXJlZCBhIG5hbWUgYW55d2hlcmUgbmVhciB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGl0 IGlzIGNvcGllZAoraW50bywgd2hpY2ggaXMgd2h5IHRoZSBtaXNzaW5nIGNsYW1wIHdlbnQgdW5u b3RpY2VkLgorCitBZGQgdHdvIHRlc3RzLiBUaGUgZmlyc3QgdXNlcyBhIG5hbWUgb2YgSENJX01B WF9OQU1FX0xFTkdUSCBieXRlcywgdGhlCitsb25nZXN0IG9uZSB0aGF0IGZpdHMsIHRvIHBpbiB0 aGUgYm91bmRhcnkgZG93bi4KKworVGhlIHNlY29uZCB1c2VzIGEgbmFtZSBvZiAyNTMgYnl0ZXMs IGFzIGxhcmdlIGFzIGVpcl9wYXJzZSgpIGNhbiBiZQoraGFuZGVkIGdpdmVuIHRoZSBFSVIgbGVu Z3RoIGlzIGEgc2luZ2xlIGJ5dGUsIGFuZCB3aGljaCBkb2VzIG5vdCBmaXQuCitSdW4gYWdhaW5z dCB0aGUgY29kZSBiZWZvcmUgdGhlIHByZXZpb3VzIHBhdGNoLCBpdCBkaWVzIHdpdGgKKworICAq KiogYnVmZmVyIG92ZXJmbG93IGRldGVjdGVkICoqKjogdGVybWluYXRlZAorCitBc3Npc3RlZC1i eTogQ2xhdWRlOmNsYXVkZS1vcHVzLTUKKy0tLQorIHVuaXQvdGVzdC1laXIuYyB8IDYyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hh bmdlZCwgNjIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvdW5pdC90ZXN0LWVpci5jIGIv dW5pdC90ZXN0LWVpci5jCitpbmRleCA2MjE2NGNhOTkzZjYuLjMyNmJjODk5ZTI1MSAxMDA2NDQK Ky0tLSBhL3VuaXQvdGVzdC1laXIuYworKysrIGIvdW5pdC90ZXN0LWVpci5jCitAQCAtNDQwLDYg KzQ0MCw2NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3RfZGF0YSBpc29fMjAyMl9qcF9uYW1l X3Rlc3QgPSB7CisgCS50eF9wb3dlciA9IDEyNywKKyB9OworIAorKy8qCisrICogQSBjb21wbGV0 ZSBsb2NhbCBuYW1lIG9mIEhDSV9NQVhfTkFNRV9MRU5HVEggYnl0ZXMsIHRoZSBsb25nZXN0IG9u ZSB0aGF0CisrICogZml0cyB0aGUgYnVmZmVyIGVpcl9wYXJzZSgpIGNvcGllcyB0aGUgbmFtZSBp bnRvLgorKyAqLworK3N0YXRpYyB1bnNpZ25lZCBjaGFyIG1heF9uYW1lX2RhdGFbSENJX01BWF9O QU1FX0xFTkdUSCArIDJdOworK3N0YXRpYyBjaGFyIG1heF9uYW1lW0hDSV9NQVhfTkFNRV9MRU5H VEggKyAxXTsKKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3RfZGF0YSBtYXhfbmFtZV90ZXN0 ID0geworKwkuZWlyX2RhdGEgPSBtYXhfbmFtZV9kYXRhLAorKwkuZWlyX3NpemUgPSBzaXplb2Yo bWF4X25hbWVfZGF0YSksCisrCS5uYW1lID0gbWF4X25hbWUsCisrCS5uYW1lX2NvbXBsZXRlID0g dHJ1ZSwKKysJLnR4X3Bvd2VyID0gMTI3LAorK307CisrCisrc3RhdGljIHZvaWQgbWF4X25hbWVf c2V0dXAoY29uc3Qgdm9pZCAqZGF0YSkKKyt7CisrCW1heF9uYW1lX2RhdGFbMF0gPSBzaXplb2Yo bWF4X25hbWVfZGF0YSkgLSAxOworKwltYXhfbmFtZV9kYXRhWzFdID0gRUlSX05BTUVfQ09NUExF VEU7CisrCW1lbXNldChtYXhfbmFtZV9kYXRhICsgMiwgJ0EnLCBIQ0lfTUFYX05BTUVfTEVOR1RI KTsKKysKKysJbWVtc2V0KG1heF9uYW1lLCAnQScsIEhDSV9NQVhfTkFNRV9MRU5HVEgpOworKwlt YXhfbmFtZVtIQ0lfTUFYX05BTUVfTEVOR1RIXSA9ICdcMCc7CisrCisrCXRlc3Rlcl9zZXR1cF9j b21wbGV0ZSgpOworK30KKysKKysvKgorKyAqIFRoZSBsb25nZXN0IGNvbXBsZXRlIGxvY2FsIG5h bWUgZWlyX3BhcnNlKCkgY2FuIGJlIGhhbmRlZCBhdCBhbGwsIHdoaWNoIGlzCisrICogYm91bmRl ZCBieSB0aGUgRUlSIGxlbmd0aCBiZWluZyBhIHNpbmdsZSBieXRlLiBUaGF0IGlzIDI1MyBieXRl cywgbW9yZSB0aGFuCisrICogdGhlIGJ1ZmZlciBpdCBpcyBjb3BpZWQgaW50bywgc28gdGhpcyB1 c2VkIHRvIG92ZXJmbG93IGl0LgorKyAqLworK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGxvbmdfbmFt ZV9kYXRhWzI1NV07Cisrc3RhdGljIGNoYXIgbG9uZ19uYW1lW3NpemVvZihsb25nX25hbWVfZGF0 YSkgLSAyICsgMV07CisrCisrLyogVGhlIG5hbWUgZG9lcyBub3QgZml0LCBzbyBpdCBjb21lcyBi YWNrIGNsYW1wZWQgdG8gSENJX01BWF9OQU1FX0xFTkdUSCAqLworKyNkZWZpbmUgTE9OR19OQU1F X0xFTglIQ0lfTUFYX05BTUVfTEVOR1RICisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0X2Rh dGEgbG9uZ19uYW1lX3Rlc3QgPSB7CisrCS5laXJfZGF0YSA9IGxvbmdfbmFtZV9kYXRhLAorKwku ZWlyX3NpemUgPSBzaXplb2YobG9uZ19uYW1lX2RhdGEpLAorKwkubmFtZSA9IGxvbmdfbmFtZSwK KysJLm5hbWVfY29tcGxldGUgPSB0cnVlLAorKwkudHhfcG93ZXIgPSAxMjcsCisrfTsKKysKKytz dGF0aWMgdm9pZCBsb25nX25hbWVfc2V0dXAoY29uc3Qgdm9pZCAqZGF0YSkKKyt7CisrCWxvbmdf bmFtZV9kYXRhWzBdID0gc2l6ZW9mKGxvbmdfbmFtZV9kYXRhKSAtIDE7CisrCWxvbmdfbmFtZV9k YXRhWzFdID0gRUlSX05BTUVfQ09NUExFVEU7CisrCW1lbXNldChsb25nX25hbWVfZGF0YSArIDIs ICdCJywgc2l6ZW9mKGxvbmdfbmFtZV9kYXRhKSAtIDIpOworKworKwltZW1zZXQobG9uZ19uYW1l LCAnQicsIExPTkdfTkFNRV9MRU4pOworKwlsb25nX25hbWVbTE9OR19OQU1FX0xFTl0gPSAnXDAn OworKworKwl0ZXN0ZXJfc2V0dXBfY29tcGxldGUoKTsKKyt9CisrCisgc3RhdGljIGNvbnN0IHVu c2lnbmVkIGNoYXIgYmx1ZXNjX2RhdGFbXSA9IHsKKyAJCTB4MDIsIDB4MDEsIDB4MDYsIDB4MDMs IDB4MDIsIDB4MTYsIDB4MTgsIDB4MTIsCisgCQkweDA5LCAweDU3LCAweDYxLCAweDY4LCAweDZm LCAweDZmLCAweDIwLCAweDQyLAorQEAgLTc1Niw2ICs4MTQsMTAgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKKyAJCQkJCQkJCQlOVUxMKTsKKyAJdGVzdGVyX2FkZCgiL2Vpci9p c28tMjAyMi1qcC1uYW1lIiwgJmlzb18yMDIyX2pwX25hbWVfdGVzdCwgTlVMTCwKKyAJCQkJCQkJ dGVzdF9wYXJzaW5nLCBOVUxMKTsKKysJdGVzdGVyX2FkZCgiL2Vpci9tYXgtbmFtZSIsICZtYXhf bmFtZV90ZXN0LCBtYXhfbmFtZV9zZXR1cCwKKysJCQkJCQkJdGVzdF9wYXJzaW5nLCBOVUxMKTsK KysJdGVzdGVyX2FkZCgiL2Vpci9sb25nLW5hbWUiLCAmbG9uZ19uYW1lX3Rlc3QsIGxvbmdfbmFt ZV9zZXR1cCwKKysJCQkJCQkJdGVzdF9wYXJzaW5nLCBOVUxMKTsKKyAJdGVzdGVyX2FkZCgiL2Fk L2JsdWVzYyIsICZibHVlc2NfdGVzdCwgTlVMTCwgdGVzdF9wYXJzaW5nLCBOVUxMKTsKKyAJdGVz dGVyX2FkZCgiL2FkL3dhaG9vc2NhbGUiLCAmd2Fob29fc2NhbGVfdGVzdCwgTlVMTCwgdGVzdF9w YXJzaW5nLAorIAkJCQkJCQkJCU5VTEwpOworLS0gCisyLjU1LjAKKworCitGcm9tIDNhZDgzMmEz YzJhOTg5ZWQ5ZjE0NTg2Y2QzYjU2ZjQwYWQ2MDg2NzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+ CitEYXRlOiBXZWQsIDE5IEF1ZyAyMDI2IDE2OjEwOjM2IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0gg MDQvMTBdIHNoYXJlZC91dGlsOiBNYWtlIHN0cm5sZW51dGY4IHJlamVjdCBpbGwtZm9ybWVkCisg c2VxdWVuY2VzCisKK3N0cm5sZW51dGY4KCkgb25seSBjaGVja3MgdGhlIHNoYXBlIG9mIHRoZSBs ZWFkIGJ5dGUgYW5kIHRoYXQgdGhlCitmb2xsb3dpbmcgYnl0ZXMgYXJlIGNvbnRpbnVhdGlvbiBi eXRlcywgc28gaXQgYWNjZXB0cyBzZXF1ZW5jZXMgdGhhdCBhcmUKK25vdCB3ZWxsLWZvcm1lZCBV VEYtODoKKworICBDMCA4MCAgICAgICAgb3ZlcmxvbmcgZW5jb2Rpbmcgb2YgVSswMDAwCisgIEMw IEFGICAgICAgICBvdmVybG9uZyBlbmNvZGluZyBvZiAnLycKKyAgRUQgQTAgODAgICAgIFVURi0x NiBzdXJyb2dhdGUgVStEODAwCisgIEY1IDgwIDgwIDgwICBwYXN0IHRoZSBVKzEwRkZGRiBsaW1p dAorCitzdHJpc3V0ZjgoKSBhbmQgc3RydG91dGY4KCkgYXJlIGJ1aWx0IG9uIGl0LCBzbyBhIHJl bW90ZSBuYW1lIGNvbnRhaW5pbmcKK2FueSBvZiB0aG9zZSBpcyBjb25zaWRlcmVkIHZhbGlkIGFu ZCBwYXNzZWQgb24gdW5jaGFuZ2VkLCBmb3IgaW5zdGFuY2UKK3RvIEQtQnVzLCB3aGljaCBkb2Vz IHZhbGlkYXRlIFVURi04IHN0cmljdGx5IGFuZCByZWplY3RzIHRoZW0uCisKK1ZhbGlkYXRlIHRo ZSBzZXF1ZW5jZXMgYXMgZGVmaW5lZCBieSB0YWJsZSAzLTcgb2YgdGhlIFVuaWNvZGUgU3RhbmRh cmQKK2luc3RlYWQsIHdoaWNoIGNvbnN0cmFpbnMgdGhlIHJhbmdlIG9mIHRoZSBzZWNvbmQgYnl0 ZSBmb3IgdGhlIEUwLCBFRCwKK0YwIGFuZCBGNCBsZWFkIGJ5dGVzIGFuZCByZWplY3RzIHRoZSBD MCwgQzEgYW5kIEY1IHRvIEZGIG9uZXMgb3V0cmlnaHQuCisKK1RoZSBkZWNvZGluZyBpcyBzcGxp dCBvdXQgaW50byBhIGhlbHBlciB0aGF0IGFsc28gcmVwb3J0cyB0aGUgc2l6ZSBvZgordGhlIG1h eGltYWwgc3VicGFydCBvZiBhbiBpbGwtZm9ybWVkIHNlcXVlbmNlLCBzbyB0aGF0IGNhbGxlcnMg Y2FuIHNraXAKK292ZXIgaXQsIGFzIHJlY29tbWVuZGVkIGJ5IHNlY3Rpb24gMy45IG9mIHRoZSBV bmljb2RlIFN0YW5kYXJkLgorCitBc3Npc3RlZC1ieTogQ2xhdWRlOmNsYXVkZS1vcHVzLTUKKy0t LQorIHNyYy9zaGFyZWQvdXRpbC5jIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMjgg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvc2hhcmVkL3V0aWwuYyBiL3NyYy9zaGFy ZWQvdXRpbC5jCitpbmRleCA2MmRkMTM2OWI3MGQuLmU5NDYyMTRlZGJiOSAxMDA2NDQKKy0tLSBh L3NyYy9zaGFyZWQvdXRpbC5jCisrKysgYi9zcmMvc2hhcmVkL3V0aWwuYworQEAgLTIyMTEsNDQg KzIyMTEsNzggQEAgY2hhciAqc3Ryc3RyaXAoY2hhciAqc3RyKQorIAlyZXR1cm4gc3RyOworIH0K KyAKKy1zaXplX3Qgc3RybmxlbnV0ZjgoY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuKQorLQor Ky8qCisrICogRGVjb2RlIHRoZSBVVEYtOCBzZXF1ZW5jZSBhdCBzdHIsIGFzIGRlZmluZWQgYnkg dGFibGUgMy03IG9mIHRoZSBVbmljb2RlCisrICogU3RhbmRhcmQsIGFuZCByZXR1cm4gaXRzIHNp emUsIG9yIDAgaWYgaXQgaXMgaWxsLWZvcm1lZC4KKysgKgorKyAqIHN1YmxlbiBpcyBzZXQgdG8g dGhlIHNpemUgb2YgdGhlIG1heGltYWwgc3VicGFydCBvZiB0aGUgc2VxdWVuY2UsIHRoYXQgaXMK KysgKiB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgYnl0ZXMgdGhhdCBjb3VsZCBzdGlsbCBoYXZlIGZv cm1lZCBhIHdlbGwtZm9ybWVkCisrICogc2VxdWVuY2UsIHdoaWNoIGlzIHdoYXQgdGhlIGNhbGxl ciBuZWVkcyB0byBza2lwIG92ZXIuCisrICovCisrc3RhdGljIHNpemVfdCB1dGY4X3NlcWxlbihj b25zdCB1bnNpZ25lZCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIHNpemVfdCAqc3VibGVuKQorIHsK Ky0Jc2l6ZV90IGkgPSAwOworKwl1bnNpZ25lZCBjaGFyIGxvID0gMHg4MCwgaGkgPSAweGJmOwor KwlzaXplX3Qgc2l6ZSwgaTsKKyAKKy0Jd2hpbGUgKGkgPCBsZW4pIHsKKy0JCXVuc2lnbmVkIGNo YXIgYyA9IHN0cltpXTsKKy0JCXNpemVfdCBzaXplID0gMDsKKysJaWYgKHN0clswXSA8PSAweDdm KSB7CisrCQkqc3VibGVuID0gMTsKKysJCXJldHVybiAxOworKwl9CisgCistCQkvKiBDaGVjayB0 aGUgZmlyc3QgYnl0ZSB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUKKy0J CSAqIFVURi04IGNoYXJhY3Rlci4KKysJaWYgKHN0clswXSA+PSAweGMyICYmIHN0clswXSA8PSAw eGRmKSB7CisrCQlzaXplID0gMjsKKysJfSBlbHNlIGlmIChzdHJbMF0gPj0gMHhlMCAmJiBzdHJb MF0gPD0gMHhlZikgeworKwkJc2l6ZSA9IDM7CisrCQkvKiBSZWplY3QgdGhlIG92ZXJsb25nIGVu Y29kaW5ncyBhbmQgdGhlIFVURi0xNiBzdXJyb2dhdGVzICovCisrCQlpZiAoc3RyWzBdID09IDB4 ZTApCisrCQkJbG8gPSAweGEwOworKwkJZWxzZSBpZiAoc3RyWzBdID09IDB4ZWQpCisrCQkJaGkg PSAweDlmOworKwl9IGVsc2UgaWYgKHN0clswXSA+PSAweGYwICYmIHN0clswXSA8PSAweGY0KSB7 CisrCQlzaXplID0gNDsKKysJCS8qIFJlamVjdCB0aGUgb3ZlcmxvbmcgZW5jb2RpbmdzIGFuZCBh bnl0aGluZyBwYXN0IFUrMTBGRkZGICovCisrCQlpZiAoc3RyWzBdID09IDB4ZjApCisrCQkJbG8g PSAweDkwOworKwkJZWxzZSBpZiAoc3RyWzBdID09IDB4ZjQpCisrCQkJaGkgPSAweDhmOworKwl9 IGVsc2UgeworKwkJLyogQzAgYW5kIEMxIGFyZSBvdmVybG9uZywgRjUgdG8gRkYgYXJlIG91dCBv ZiByYW5nZSwgYW5kIGEKKysJCSAqIGNvbnRpbnVhdGlvbiBieXRlIGNhbm5vdCBzdGFydCBhIHNl cXVlbmNlLgorIAkJICovCistCQlpZiAoKGMgJiAweDgwKSA9PSAweDAwKQorLQkJCXNpemUgPSAx OworLQkJZWxzZSBpZiAoKGMgJiAweEUwKSA9PSAweEMwKQorLQkJCXNpemUgPSAyOworLQkJZWxz ZSBpZiAoKGMgJiAweEYwKSA9PSAweEUwKQorLQkJCXNpemUgPSAzOworLQkJZWxzZSBpZiAoKGMg JiAweEY4KSA9PSAweEYwKQorLQkJCXNpemUgPSA0OworLQkJZWxzZQorLQkJCS8qIEludmFsaWQg VVRGLTggc2VxdWVuY2UgKi8KKy0JCQlnb3RvIGRvbmU7CisrCQkqc3VibGVuID0gMTsKKysJCXJl dHVybiAwOworKwl9CisgCistCQkvKiBDaGVjayB0aGUgZm9sbG93aW5nIGJ5dGVzIHRvIGVuc3Vy ZSB0aGV5IGhhdmUgdGhlIGNvcnJlY3QKKy0JCSAqIGZvcm1hdC4KKy0JCSAqLworLQkJZm9yIChz aXplX3QgaiA9IDE7IGogPCBzaXplOyArK2opIHsKKy0JCQlpZiAoaSArIGogPj0gbGVuIHx8IChz dHJbaSArIGpdICYgMHhDMCkgIT0gMHg4MCkKKy0JCQkJLyogSW52YWxpZCBVVEYtOCBzZXF1ZW5j ZSAqLworLQkJCQlnb3RvIGRvbmU7CisrCWZvciAoaSA9IDE7IGkgPCBzaXplOyBpKyspIHsKKysJ CWlmIChpID49IGxlbiB8fCBzdHJbaV0gPCBsbyB8fCBzdHJbaV0gPiBoaSkgeworKwkJCSpzdWJs ZW4gPSBpOworKwkJCXJldHVybiAwOworIAkJfQorIAorKwkJLyogT25seSB0aGUgc2Vjb25kIGJ5 dGUgaGFzIGEgcmVzdHJpY3RlZCByYW5nZSAqLworKwkJbG8gPSAweDgwOworKwkJaGkgPSAweGJm OworKwl9CisrCisrCSpzdWJsZW4gPSBzaXplOworKwlyZXR1cm4gc2l6ZTsKKyt9CisrCisrc2l6 ZV90IHN0cm5sZW51dGY4KGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbikKKyt7CisrCXNpemVf dCBpID0gMDsKKysKKysJd2hpbGUgKGkgPCBsZW4pIHsKKysJCXNpemVfdCBzdWJsZW47CisrCisr CQlpZiAoIXV0Zjhfc2VxbGVuKChjb25zdCB1bnNpZ25lZCBjaGFyICopIHN0ciArIGksIGxlbiAt IGksCisrCQkJCQkJCQkmc3VibGVuKSkKKysJCQlicmVhazsKKysKKyAJCS8qIE1vdmUgdG8gdGhl IG5leHQgY2hhcmFjdGVyICovCistCQlpICs9IHNpemU7CisrCQlpICs9IHN1YmxlbjsKKyAJfQor IAorLWRvbmU6CisgCXJldHVybiBpOworIH0KKyAKKy0tIAorMi41NS4wCisKKworRnJvbSAxMTA4 MWY2MGQ5NWY2NDFkZGJjYTRhNTM5MjJkODg2OTcyYzg3YWExIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50ZWwu Y29tPgorRGF0ZTogV2VkLCAxOSBBdWcgMjAyNiAxNjoxMTowMyAtMDQwMAorU3ViamVjdDogW1BB VENIIDA1LzEwXSBzaGFyZWQvdXRpbDogQWRkIHN0cjJ1dGY4CisKK1RoZXJlIGFyZSBmaXZlIG5l YXIgY29waWVzIG9mIHRoZSBzYW1lICJ0dXJuIGEgcmVtb3RlIG5hbWUgaW50byBhIFVURi04Citz dHJpbmciIGhlbHBlciwgaW4gbW9uaXRvci9hdHQuYywgcHJvZmlsZXMvYXVkaW8vbWNwLmMsIHBy b2ZpbGVzL2dhcC9nYXMuYywKK3NyYy9laXIuYyBhbmQgc3JjL3NoYXJlZC9hZC5jLCBhbmQgdGhl eSBkbyBub3QgYWdyZWUgd2l0aCBlYWNoIG90aGVyLgorCitNb3N0IHRydW5jYXRlIGF0IHRoZSBm aXJzdCBpbGwtZm9ybWVkIHNlcXVlbmNlLCB3aGljaCB0aHJvd3MgYXdheSB0aGUKK3Jlc3Qgb2Yg dGhlIG5hbWUsIHdoaWxlIHRoZSBtb25pdG9yIHJlcGxhY2VzIGV2ZXJ5IG5vbi1BU0NJSSBieXRl IHdpdGggYQorc3BhY2UsIHdoaWNoIG1hbmdsZXMgcGVyZmVjdGx5IHZhbGlkIFVURi04IG5hbWVz IGFzIHNvb24gYXMgb25lIGJhZCBieXRlCithcHBlYXJzLiBNb3N0IGFsc28gY29weSBpbnRvIGEg Zml4ZWQgc2l6ZSBzdGFjayBidWZmZXIgZmlyc3QsIHdoaWNoIGlzCit3aGF0IG1hZGUgdGhlIG1p c3NpbmcgY2xhbXAgaW4gc3JjL2Vpci5jIGEgYnVmZmVyIG92ZXJmbG93LgorCitBZGQgYSBzaW5n bGUgaGVscGVyIHRoZXkgY2FuIHNoYXJlLiBJdCBhbGxvY2F0ZXMgdGhlIHJlc3VsdCwgc28gdGhl cmUgaXMKK25vIHRydW5jYXRpb24gdG8gYSBidWZmZXIgc2l6ZSwgYW5kIHJlcGxhY2VzIGVhY2gg aWxsLWZvcm1lZCBzZXF1ZW5jZQord2l0aCBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSIHJh dGhlciB0aGFuIGRyb3BwaW5nIHRoZSByZXN0IG9mIHRoZQorc3RyaW5nLCBtYXRjaGluZyB3aGF0 IGdfdXRmOF9tYWtlX3ZhbGlkKCkgYW5kIHRoZSBXSEFUV0cgRW5jb2RpbmcKK1N0YW5kYXJkIGRv LgorCitUaGUgcmVzdWx0IGhhcyBiZWVuIGNoZWNrZWQgYnl0ZSBmb3IgYnl0ZSBhZ2FpbnN0IFB5 dGhvbidzCitieXRlcy5kZWNvZGUoJ3V0Zi04JywgZXJyb3JzPSdyZXBsYWNlJykgb3ZlciBhbGwg b25lIGFuZCB0d28gYnl0ZQorc2VxdWVuY2VzLCBhIHNhbXBsZSBvZiB0aGUgdGhyZWUgYnl0ZSBv bmVzIGFuZCAyMDAwMDAgcmFuZG9tIGlucHV0cy4KKworQXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1 ZGUtb3B1cy01CistLS0KKyBzcmMvc2hhcmVkL3V0aWwuYyB8IDQ2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMvc2hhcmVkL3V0aWwuaCB8ICA3ICsr KysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L3NyYy9zaGFyZWQvdXRpbC5jIGIvc3JjL3NoYXJlZC91dGlsLmMKK2luZGV4IGU5NDYyMTRlZGJi OS4uOGVjOWI1MmU2NDAxIDEwMDY0NAorLS0tIGEvc3JjL3NoYXJlZC91dGlsLmMKKysrKyBiL3Ny Yy9zaGFyZWQvdXRpbC5jCitAQCAtMjMxNSwzICsyMzE1LDQ5IEBAIGNoYXIgKnN0cnRvdXRmOChj aGFyICpzdHIsIHNpemVfdCBsZW4pCisgCW1lbXNldChzdHIgKyBpLCAwLCBsZW4gLSBpKTsKKyAJ cmV0dXJuIHN0cjsKKyB9CisrCisrY2hhciAqc3RyMnV0ZjgoY29uc3QgdWludDhfdCAqc3RyLCBz aXplX3QgbGVuKQorK3sKKysJY2hhciAqdXRmOCwgKm91dCwgKnN0cmlwcGVkOworKwlzaXplX3Qg aSA9IDA7CisrCisrCWlmICghc3RyKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCS8qCisrCSAqIElu dmFsaWQgYnl0ZXMgYXJlIHJlcGxhY2VkIHdpdGggVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RF Uiwgd2hpY2gKKysJICogaXMgMyBieXRlcyBsb25nLCBzbyB0aGF0IGlzIHRoZSB3b3JzdCBjYXNl IHNpemUgb2YgdGhlIHJlc3VsdC4KKysJICovCisrCXV0ZjggPSBtYWxsb2MobGVuICogMyArIDEp OworKwlpZiAoIXV0ZjgpCisrCQlyZXR1cm4gTlVMTDsKKysKKysJb3V0ID0gdXRmODsKKysKKysJ d2hpbGUgKGkgPCBsZW4pIHsKKysJCXNpemVfdCBzdWJsZW47CisrCQlzaXplX3Qgc2l6ZSA9IHV0 Zjhfc2VxbGVuKHN0ciArIGksIGxlbiAtIGksICZzdWJsZW4pOworKworKwkJaWYgKHNpemUpIHsK KysJCQltZW1jcHkob3V0LCBzdHIgKyBpLCBzaXplKTsKKysJCQlvdXQgKz0gc2l6ZTsKKysJCQlp ICs9IHNpemU7CisrCQkJY29udGludWU7CisrCQl9CisrCisrCQkvKiBSZXBsYWNlIHRoZSBtYXhp bWFsIHN1YnBhcnQgd2l0aCBVK0ZGRkQgKi8KKysJCSpvdXQrKyA9IDB4ZWY7CisrCQkqb3V0Kysg PSAweGJmOworKwkJKm91dCsrID0gMHhiZDsKKysJCWkgKz0gc3VibGVuOworKwl9CisrCisrCSpv dXQgPSAnXDAnOworKworKwkvKiBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFj ZSBjaGFyYWN0ZXJzICovCisrCXN0cmlwcGVkID0gc3Ryc3RyaXAodXRmOCk7CisrCWlmIChzdHJp cHBlZCAhPSB1dGY4KQorKwkJbWVtbW92ZSh1dGY4LCBzdHJpcHBlZCwgc3RybGVuKHN0cmlwcGVk KSArIDEpOworKworKwlyZXR1cm4gdXRmODsKKyt9CitkaWZmIC0tZ2l0IGEvc3JjL3NoYXJlZC91 dGlsLmggYi9zcmMvc2hhcmVkL3V0aWwuaAoraW5kZXggNTYyYTVhZjMxNzUxLi4xOTg0ZmI3NWYw OWUgMTAwNjQ0CistLS0gYS9zcmMvc2hhcmVkL3V0aWwuaAorKysrIGIvc3JjL3NoYXJlZC91dGls LmgKK0BAIC0xNDMsNiArMTQzLDEzIEBAIGJvb2wgc3RyaXN1dGY4KGNvbnN0IGNoYXIgKnN0ciwg c2l6ZV90IGxlbmd0aCk7CisgYm9vbCBhcmdzaXN1dGY4KGludCBhcmdjLCBjaGFyICphcmd2W10p OworIGNoYXIgKnN0cnRvdXRmOChjaGFyICpzdHIsIHNpemVfdCBsZW4pOworIAorKy8qCisrICog UmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkLCBOVUwgdGVybWluYXRlZCBhbmQgd2hpdGVzcGFjZSBz dHJpcHBlZCBVVEYtOAorKyAqIGNvcHkgb2YgdGhlIGZpcnN0IGxlbiBieXRlcyBvZiBzdHIsIHdp dGggZWFjaCBpbGwtZm9ybWVkIHNlcXVlbmNlIHJlcGxhY2VkCisrICogYnkgVStGRkZEIFJFUExB Q0VNRU5UIENIQVJBQ1RFUi4gVGhlIHJlc3VsdCBtdXN0IGJlIGZyZWVkIHdpdGggZnJlZSgpLgor KyAqLworK2NoYXIgKnN0cjJ1dGY4KGNvbnN0IHVpbnQ4X3QgKnN0ciwgc2l6ZV90IGxlbik7Cisr Cisgdm9pZCAqdXRpbF9tYWxsb2Moc2l6ZV90IHNpemUpOworIHZvaWQgKnV0aWxfbWVtZHVwKGNv bnN0IHZvaWQgKnNyYywgc2l6ZV90IHNpemUpOworIAorLS0gCisyLjU1LjAKKworCitGcm9tIDc0 YzU2ZGZmMmFhNWQ1ZjNjZjQxZTQ0NmEwYWZlZWJiMjFmZmM0ZTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRl bC5jb20+CitEYXRlOiBXZWQsIDE5IEF1ZyAyMDI2IDE2OjEyOjExIC0wNDAwCitTdWJqZWN0OiBb UEFUQ0ggMDYvMTBdIHVuaXQvdGVzdC11dGlsOiBBZGQgc3RyMnV0ZjggdGVzdHMKKworQ292ZXIg dGhlIGNhc2VzIHN0cjJ1dGY4KCkgaXMgbWVhbnQgdG8gaGFuZGxlOiB3ZWxsLWZvcm1lZCBpbnB1 dCB0aGF0CitoYXMgdG8gYmUgbGVmdCBhbG9uZSwgd2hpdGVzcGFjZSBzdHJpcHBpbmcsIGlucHV0 IHRoYXQgaXMgbm90IE5VTAordGVybWluYXRlZCwgYW5kIHRoZSBpbGwtZm9ybWVkIHNlcXVlbmNl cyB0aGF0IGhhdmUgdG8gYmUgcmVwbGFjZWQsCitpbmNsdWRpbmcgdGhlIG92ZXJsb25nIGVuY29k aW5ncywgdGhlIFVURi0xNiBzdXJyb2dhdGVzIGFuZCB0aGUgY29kZQorcG9pbnRzIHBhc3QgVSsx MEZGRkYuCisKK0Fsc28gY2hlY2sgdGhhdCBhIG1heGltYWwgc3VicGFydCBpcyByZXBsYWNlZCBi eSBhIHNpbmdsZSBVK0ZGRkQgcmF0aGVyCit0aGFuIG9uZSBwZXIgYnl0ZSwgYW5kIHRoYXQgdGhl IHJlc3VsdCBpcyBhbHdheXMgd2VsbC1mb3JtZWQgVVRGLTguCisKK0Fzc2lzdGVkLWJ5OiBDbGF1 ZGU6Y2xhdWRlLW9wdXMtNQorLS0tCisgdW5pdC90ZXN0LXV0aWwuYyB8IDgzICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4 MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS91bml0L3Rlc3QtdXRpbC5jIGIvdW5pdC90 ZXN0LXV0aWwuYworaW5kZXggMTY3MmIzMmViMzljLi5mMGIxYmI3OTk0ZmIgMTAwNjQ0CistLS0g YS91bml0L3Rlc3QtdXRpbC5jCisrKysgYi91bml0L3Rlc3QtdXRpbC5jCitAQCAtODMsNiArODMs ODUgQEAgc3RhdGljIHZvaWQgdGVzdF9taW5fbWF4KGNvbnN0IHZvaWQgKmRhdGEpCisgCXRlc3Rl cl90ZXN0X3Bhc3NlZCgpOworIH0KKyAKKytzdHJ1Y3Qgc3RyMnV0ZjhfZGF0YSB7CisrCWNvbnN0 IGNoYXIgKmlucHV0OwkvKiBOb3QgTlVMIHRlcm1pbmF0ZWQsIGxlbiBieXRlcyBhcmUgdXNlZCAq LworKwlzaXplX3QgbGVuOworKwljb25zdCBjaGFyICpleHBlY3RlZDsKKyt9OworKworKyNkZWZp bmUgRkZGRCAiXHhlZlx4YmZceGJkIgkJLyogVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUiAq LworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RyMnV0ZjhfZGF0YSBzdHIydXRmOF90ZXN0c1td ID0geworKwkvKiBOb3RoaW5nIHRvIGRvICovCisrCXsgIiIsIDAsICIiIH0sCisrCXsgIlBpeGVs IDciLCA3LCAiUGl4ZWwgNyIgfSwKKysJLyogV2VsbC1mb3JtZWQgbXVsdGktYnl0ZSBzZXF1ZW5j ZXMgYXJlIGtlcHQgYXMgdGhleSBhcmUgKi8KKysJeyAiXHhlMlx4ODJceGFjIDUiLCA1LCAiXHhl Mlx4ODJceGFjIDUiIH0sCQkvKiBVKzIwQUMgKi8KKysJeyAiXHhmMFx4OWZceDk0XHg4YSIsIDQs ICJceGYwXHg5Zlx4OTRceDhhIiB9LAkJLyogVSsxRjUwQSAqLworKwkvKiBMZWFkaW5nIGFuZCB0 cmFpbGluZyB3aGl0ZXNwYWNlIGlzIHJlbW92ZWQgKi8KKysJeyAiICBzcGFjZWQgICIsIDEwLCAi c3BhY2VkIiB9LAorKwl7ICJcdFxyXG5uYW1lXG5cclx0IiwgMTAsICJuYW1lIiB9LAorKwl7ICIg ICAiLCAzLCAiIiB9LAorKwkvKiBUaGUgbmFtZSBpcyBub3QgTlVMIHRlcm1pbmF0ZWQsIG9ubHkg bGVuIGJ5dGVzIGFyZSB1c2VkICovCisrCXsgInRydW5jYXRlZCIsIDQsICJ0cnVuIiB9LAorKwkv KiBBIGJ5dGUgdGhhdCBjYW4gbmV2ZXIgYXBwZWFyIGluIFVURi04ICovCisrCXsgImFiXHhmZiIi Y2QiLCA1LCAiYWIiIEZGRkQgImNkIiB9LAorKwkvKiBBIGNvbnRpbnVhdGlvbiBieXRlIGNhbm5v dCBzdGFydCBhIHNlcXVlbmNlICovCisrCXsgImFiXHg4MCIiY2QiLCA1LCAiYWIiIEZGRkQgImNk IiB9LAorKwkvKiBPbmUgVStGRkZEIHBlciBtYXhpbWFsIHN1YnBhcnQsIG5vdCBwZXIgYnl0ZSAq LworKwl7ICJhYlx4ZTJceDgyIiJjZCIsIDYsICJhYiIgRkZGRCAiY2QiIH0sCisrCS8qIEEgc2Vx dWVuY2UgY3V0IHNob3J0IGJ5IGxlbiBpcyBzdGlsbCBvbmUgbWF4aW1hbCBzdWJwYXJ0ICovCisr CXsgImFiXHhlMlx4ODJceGFjIiwgNCwgImFiIiBGRkZEIH0sCisrCS8qIExhdGluLTEgdGV4dCBp cyBub3QgdmFsaWQgVVRGLTggKi8KKysJeyAiY2FmXHhlOSIsIDQsICJjYWYiIEZGRkQgfSwKKysJ LyogT3ZlcmxvbmcgZW5jb2RpbmdzIGFyZSByZWplY3RlZCwgQzAgYW5kIEMxIGFyZSBuZXZlciB2 YWxpZCAqLworKwl7ICJceGMwXHg4MCIsIDIsIEZGRkQgRkZGRCB9LAorKwl7ICJceGMwXHhhZiIs IDIsIEZGRkQgRkZGRCB9LAorKwkvKiBVVEYtMTYgc3Vycm9nYXRlcyBoYXZlIG5vIFVURi04IGVu Y29kaW5nICovCisrCXsgIlx4ZWRceGEwXHg4MCIsIDMsIEZGRkQgRkZGRCBGRkZEIH0sCisrCS8q IFUrMTBGRkZGIGlzIHRoZSBsYXN0IGNvZGUgcG9pbnQsIEY1IHRvIEZGIGFyZSBvdXQgb2YgcmFu Z2UgKi8KKysJeyAiXHhmNFx4OTBceDgwXHg4MCIsIDQsIEZGRkQgRkZGRCBGRkZEIEZGRkQgfSwK KysJeyAiXHhmNVx4ODBceDgwXHg4MCIsIDQsIEZGRkQgRkZGRCBGRkZEIEZGRkQgfSwKKysJLyog VGhlIGxhc3QgY29kZSBwb2ludCBpdHNlbGYgaXMgZmluZSAqLworKwl7ICJceGY0XHg4Zlx4YmZc eGJmIiwgNCwgIlx4ZjRceDhmXHhiZlx4YmYiIH0sCisrCS8qIFJlcGxhY2VtZW50IGFuZCBzdHJp cHBpbmcgY29tYmluZWQgKi8KKysJeyAiIFx4ZmYgIiwgMywgRkZGRCB9LAorK307CisrCisrc3Rh dGljIHZvaWQgdGVzdF9zdHIydXRmOChjb25zdCB2b2lkICpkYXRhKQorK3sKKysJc2l6ZV90IGk7 CisrCisrCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc3RyMnV0ZjhfdGVzdHMpIC8KKysJCQkJc2l6 ZW9mKHN0cjJ1dGY4X3Rlc3RzWzBdKTsgaSsrKSB7CisrCQljb25zdCBzdHJ1Y3Qgc3RyMnV0Zjhf ZGF0YSAqdGVzdCA9ICZzdHIydXRmOF90ZXN0c1tpXTsKKysJCWNoYXIgKnN0ciA9IHN0cjJ1dGY4 KChjb25zdCB1aW50OF90ICopIHRlc3QtPmlucHV0LAorKwkJCQkJCQkJdGVzdC0+bGVuKTsKKysK KysJCWFzc2VydChzdHIpOworKwkJaWYgKHN0cmNtcChzdHIsIHRlc3QtPmV4cGVjdGVkKSkgewor KwkJCXByaW50ZigidGVzdCAlenU6IGV4cGVjdGVkIFwiJXNcIiwgZ290IFwiJXNcIlxuIiwgaSwK KysJCQkJCQkJdGVzdC0+ZXhwZWN0ZWQsIHN0cik7CisrCQkJZnJlZShzdHIpOworKwkJCXRlc3Rl cl90ZXN0X2ZhaWxlZCgpOworKwkJCXJldHVybjsKKysJCX0KKysKKysJCS8qIFRoZSByZXN1bHQg aXMgYWx3YXlzIHdlbGwtZm9ybWVkIFVURi04ICovCisrCQlhc3NlcnQoc3RyaXN1dGY4KHN0ciwg c3RybGVuKHN0cikpKTsKKysKKysJCWZyZWUoc3RyKTsKKysJfQorKworKwl0ZXN0ZXJfdGVzdF9w YXNzZWQoKTsKKyt9CisrCisrc3RhdGljIHZvaWQgdGVzdF9zdHIydXRmOF9udWxsKGNvbnN0IHZv aWQgKmRhdGEpCisreworKwlhc3NlcnQoIXN0cjJ1dGY4KE5VTEwsIDApKTsKKysJdGVzdGVyX3Rl c3RfcGFzc2VkKCk7CisrfQorKworIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisg eworIAl0ZXN0ZXJfaW5pdCgmYXJnYywgJmFyZ3YpOworQEAgLTk1LDYgKzE3NCwxMCBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorIAkJCXRlc3RfY2xlYW51cF90eXBlLCBOVUxM KTsKKyAJdGVzdGVyX2FkZCgiL3V0aWwvY2xlYW51cF9mZCIsIE5VTEwsIE5VTEwsCisgCQkJdGVz dF9jbGVhbnVwX2ZkLCBOVUxMKTsKKysJdGVzdGVyX2FkZCgiL3V0aWwvc3RyMnV0ZjgiLCBOVUxM LCBOVUxMLAorKwkJCXRlc3Rfc3RyMnV0ZjgsIE5VTEwpOworKwl0ZXN0ZXJfYWRkKCIvdXRpbC9z dHIydXRmOF9udWxsIiwgTlVMTCwgTlVMTCwKKysJCQl0ZXN0X3N0cjJ1dGY4X251bGwsIE5VTEwp OworIAorIAlyZXR1cm4gdGVzdGVyX3J1bigpOworIH0KKy0tIAorMi41NS4wCisKKworRnJvbSA4 YzgxYWIxMDhiMDkxNTRiODg0YjFiMDU0OWRjOWMyM2ZmZTNlYzZmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTHVpeiBBdWd1c3RvIHZvbiBEZW50eiA8bHVpei52b24uZGVudHpAaW50 ZWwuY29tPgorRGF0ZTogV2VkLCAxOSBBdWcgMjAyNiAxNjoxODozOCAtMDQwMAorU3ViamVjdDog W1BBVENIIDA3LzEwXSBSZXBsYWNlIHRoZSBuYW1lMnV0ZjggY29waWVzIHdpdGggc3RyMnV0ZjgK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworbW9uaXRvci9hdHQuYywgcHJv ZmlsZXMvYXVkaW8vbWNwLmMsIHByb2ZpbGVzL2dhcC9nYXMuYyBhbmQgc3JjL2Vpci5jCitlYWNo IGNhcnJpZWQgdGhlaXIgb3duIG5hbWUydXRmOCgpLCBhbmQgc3JjL3NoYXJlZC9hZC5jIG9wZW4g Y29kZWQgdGhlCitzYW1lIHRoaW5nIGluIGFkX3JlcGxhY2VfbmFtZSgpLCB3aXRoIG5vbmUgb2Yg dGhlbSBhZ3JlZWluZy4KKworVXNlIHRoZSBzaGFyZWQgaGVscGVyIGluc3RlYWQsIHdoaWNoIGRy b3BzIGFyb3VuZCAxMjAgbGluZXMgYW5kIGdpdmVzCitldmVyeSBjYWxsZXIgdGhlIHNhbWUgYmVo YXZpb3VyLgorCitUd28gdGhpbmdzIGNoYW5nZSBhcyBhIHJlc3VsdC4gVGhlIG1vbml0b3IgdXNl ZCB0byByZXBsYWNlIGV2ZXJ5Citub24tQVNDSUkgYnl0ZSB3aXRoIGEgc3BhY2UgYXMgc29vbiBh cyBvbmUgYmFkIGJ5dGUgYXBwZWFyZWQsIG1hbmdsaW5nCit0aGUgdmFsaWQgcGFydCBvZiB0aGUg bmFtZSwgYW5kIG5vdyBvbmx5IHRoZSBpbGwtZm9ybWVkIHNlcXVlbmNlcyBhcmUKK3JlcGxhY2Vk LiBFdmVyeXRoaW5nIGVsc2UgdXNlZCB0byB0cnVuY2F0ZSBhdCB0aGUgZmlyc3QgaWxsLWZvcm1l ZAorc2VxdWVuY2UsIHRocm93aW5nIGF3YXkgdGhlIHJlc3Qgb2YgdGhlIG5hbWUsIGFuZCBub3cg a2VlcHMgaXQuCisKK1RoZSB1bml0L3Rlc3QtZWlyIGV4cGVjdGF0aW9ucyBhcmUgdXBkYXRlZCBh Y2NvcmRpbmdseSwgYW5kIHRoZXkgc2hvdwordGhlIGltcHJvdmVtZW50OiB0aGUgbmFtZSB0aGF0 IHVzZWQgdG8gYmUgcmVwb3J0ZWQgYXMgInRlc3Qg4KSq4KSw4KWAIiBpcyBub3cKK3JlcG9ydGVk IGFzICJ0ZXN0IOCkquCksOClgDxVK0ZGRkQ+4KWN4KS34KS+IGludmFsaWQiLgorCitzdHIydXRm OCgpIHJldHVybnMgbWVtb3J5IGZyb20gbWFsbG9jKCksIHNvIHRoZSBjYWxsZXJzIHRoYXQgdXNl ZAorZ19mcmVlKCkgbm93IHVzZSBmcmVlKCkuCisKK0Fzc2lzdGVkLWJ5OiBDbGF1ZGU6Y2xhdWRl LW9wdXMtNQorLS0tCisgbW9uaXRvci9hdHQuYyAgICAgICAgfCA2NiArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHByb2ZpbGVzL2F1ZGlvL21jcC5jIHwgMjQg KystLS0tLS0tLS0tLS0tLQorIHByb2ZpbGVzL2dhcC9nYXMuYyAgIHwgMjAgKystLS0tLS0tLS0t LS0KKyBzcmMvZWlyLmMgICAgICAgICAgICB8IDIyICsrLS0tLS0tLS0tLS0tLQorIHNyYy9zaGFy ZWQvYWQuYyAgICAgIHwgMjAgKysrKysrLS0tLS0tLS0KKyB1bml0L3Rlc3QtZWlyLmMgICAgICB8 IDExICsrKysrLS0tCisgNiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxMjEgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tb25pdG9yL2F0dC5jIGIvbW9uaXRvci9hdHQuYwor aW5kZXggNzUwNmRjNTI4ZTg1Li40NDk2NWEyYWFmM2IgMTAwNjQ0CistLS0gYS9tb25pdG9yL2F0 dC5jCisrKysgYi9tb25pdG9yL2F0dC5jCitAQCAtMTUsNyArMTUsNiBAQAorICNlbmRpZgorIAor ICNkZWZpbmUgX0dOVV9TT1VSQ0UKKy0jaW5jbHVkZSA8Y3R5cGUuaD4KKyAjaW5jbHVkZSA8c3Rk aW8uaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTIz MjUsNDAgKzIzMjQsMTUgQEAgc3RhdGljIHZvaWQgdm9sX2ZsYWdfbm90aWZ5KGNvbnN0IHN0cnVj dCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgCXByaW50X3Zjc19mbGFnKGZyYW1lKTsKKyB9CisgCist c3RhdGljIGNoYXIgKm5hbWUydXRmOChjb25zdCB1aW50OF90ICpuYW1lLCB1aW50MTZfdCBsZW4p CisteworLQljaGFyIHV0ZjhfbmFtZVtIQ0lfTUFYX05BTUVfTEVOR1RIICsgMl07CistCWludCBp OworLQorLQlpZiAoZ191dGY4X3ZhbGlkYXRlKChjb25zdCBjaGFyICopIG5hbWUsIGxlbiwgTlVM TCkpCistCQlyZXR1cm4gZ19zdHJuZHVwKChjaGFyICopIG5hbWUsIGxlbik7CistCistCWxlbiA9 IE1JTihsZW4sIHNpemVvZih1dGY4X25hbWUpIC0gMSk7CistCistCW1lbXNldCh1dGY4X25hbWUs IDAsIHNpemVvZih1dGY4X25hbWUpKTsKKy0Jc3RybmNweSh1dGY4X25hbWUsIChjaGFyICopIG5h bWUsIGxlbik7CistCistCS8qIEFzc3VtZSBBU0NJSSwgYW5kIHJlcGxhY2UgYWxsIG5vbi1BU0NJ SSB3aXRoIHNwYWNlcyAqLworLQlmb3IgKGkgPSAwOyB1dGY4X25hbWVbaV0gIT0gJ1wwJzsgaSsr KSB7CistCQlpZiAoIWlzYXNjaWkodXRmOF9uYW1lW2ldKSkKKy0JCQl1dGY4X25hbWVbaV0gPSAn ICc7CistCX0KKy0KKy0JLyogUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ug Y2hhcmFjdGVycyAqLworLQlnX3N0cnN0cmlwKHV0ZjhfbmFtZSk7CistCistCXJldHVybiBnX3N0 cmR1cCh1dGY4X25hbWUpOworLX0KKy0KKyBzdGF0aWMgdm9pZCBwcmludF9tcF9uYW1lKGNvbnN0 IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgeworIAljaGFyICpuYW1lOworIAorLQluYW1l ID0gbmFtZTJ1dGY4KCh1aW50OF90ICopZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKysJbmFt ZSA9IHN0cjJ1dGY4KGZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisgCisgCXByaW50X2ZpZWxk KCIgIE1lZGlhIFBsYXllciBOYW1lOiAlcyIsIG5hbWUpOworIAorLQlnX2ZyZWUobmFtZSk7Cisr CWZyZWUobmFtZSk7CisgfQorIAorIHN0YXRpYyB2b2lkIG1wX25hbWVfcmVhZChjb25zdCBzdHJ1 Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorQEAgLTIzODUsMTEgKzIzNTksMTEgQEAgc3RhdGljIHZv aWQgcHJpbnRfdHJhY2tfdGl0bGUoY29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKKyB7 CisgCWNoYXIgKm5hbWU7CisgCistCW5hbWUgPSBuYW1lMnV0ZjgoKHVpbnQ4X3QgKilmcmFtZS0+ ZGF0YSwgZnJhbWUtPnNpemUpOworKwluYW1lID0gc3RyMnV0ZjgoZnJhbWUtPmRhdGEsIGZyYW1l LT5zaXplKTsKKyAKKyAJcHJpbnRfZmllbGQoIiAgVHJhY2sgVGl0bGU6ICVzIiwgbmFtZSk7Cisg CistCWdfZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsKKyB9CisgCisgc3RhdGljIHZvaWQgdHJh Y2tfdGl0bGVfcmVhZChjb25zdCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorQEAgLTI1MjAs MTEgKzI0OTQsMTEgQEAgc3RhdGljIHZvaWQgcHJpbnRfYmVhcmVyX25hbWUoY29uc3Qgc3RydWN0 IGwyY2FwX2ZyYW1lICpmcmFtZSkKKyB7CisgCWNoYXIgKm5hbWU7CisgCistCW5hbWUgPSBuYW1l MnV0ZjgoKHVpbnQ4X3QgKilmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOworKwluYW1lID0gc3Ry MnV0ZjgoZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKyAKKyAJcHJpbnRfZmllbGQoIiAgQmVh cmVyIE5hbWU6ICVzIiwgbmFtZSk7CisgCistCWdfZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsK KyB9CisgCisgc3RhdGljIHZvaWQgYmVhcmVyX25hbWVfcmVhZChjb25zdCBzdHJ1Y3QgbDJjYXBf ZnJhbWUgKmZyYW1lKQorQEAgLTI1NDEsMTEgKzI1MTUsMTEgQEAgc3RhdGljIHZvaWQgYmVhcmVy X3VjaV9yZWFkKGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgeworIAljaGFyICpu YW1lOworIAorLQluYW1lID0gbmFtZTJ1dGY4KCh1aW50OF90ICopZnJhbWUtPmRhdGEsIGZyYW1l LT5zaXplKTsKKysJbmFtZSA9IHN0cjJ1dGY4KGZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7Cisg CisgCXByaW50X2ZpZWxkKCIgIEJlYXJlciBVY2kgTmFtZTogJXMiLCBuYW1lKTsKKyAKKy0JZ19m cmVlKG5hbWUpOworKwlmcmVlKG5hbWUpOworIH0KKyAKKyBzdGF0aWMgdm9pZCBwcmludF90ZWNo bm9sb2d5X25hbWUoY29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKK0BAIC0yNjEyLDEx ICsyNTg2LDExIEBAIHN0YXRpYyB2b2lkIHByaW50X3VyaV9zY2hlbWVfbGlzdChjb25zdCBzdHJ1 Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIHsKKyAJY2hhciAqbmFtZTsKKyAKKy0JbmFtZSA9IG5h bWUydXRmOCgodWludDhfdCAqKWZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6ZSk7CisrCW5hbWUgPSBz dHIydXRmOChmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOworIAorIAlwcmludF9maWVsZCgiICBV cmkgc2NoZW1lIE5hbWU6ICVzIiwgbmFtZSk7CisgCistCWdfZnJlZShuYW1lKTsKKysJZnJlZShu YW1lKTsKKyB9CisgCisgc3RhdGljIHZvaWQgYmVhcmVyX3VyaV9zY2hlbWVzX2xpc3RfcmVhZChj b25zdCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorQEAgLTI3MjYsMTEgKzI3MDAsMTEgQEAg c3RhdGljIHZvaWQgcHJpbnRfY2FsbF9saXN0KGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJh bWUpCisgCisgCXByaW50X2ZpZWxkKCIgIGNhbGxfZmxhZzogMHgleCIsIGNhbGxfZmxhZyk7Cisg CistCWNhbGxfdXJpID0gbmFtZTJ1dGY4KCh1aW50OF90ICopZnJhbWUtPmRhdGEsIGZyYW1lLT5z aXplKTsKKysJY2FsbF91cmkgPSBzdHIydXRmOChmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOwor IAorIAlwcmludF9maWVsZCgiICBjYWxsX3VyaTogJXMiLCBjYWxsX3VyaSk7CisgCistCWdfZnJl ZShjYWxsX3VyaSk7CisrCWZyZWUoY2FsbF91cmkpOworIAorIGRvbmU6CisgCWlmIChmcmFtZS0+ c2l6ZSkKK0BAIC0yODE2LDExICsyNzkwLDExIEBAIHN0YXRpYyB2b2lkIHByaW50X3RhcmdldF91 cmkoY29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1lICpmcmFtZSkKKyAKKyAJcHJpbnRfZmllbGQoIiAg Y2FsbF9pZHg6ICV4IiwgY2FsbF9pZHgpOworIAorLQluYW1lID0gbmFtZTJ1dGY4KCh1aW50OF90 ICopZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKysJbmFtZSA9IHN0cjJ1dGY4KGZyYW1lLT5k YXRhLCBmcmFtZS0+c2l6ZSk7CisgCisgCXByaW50X2ZpZWxkKCIgIFVyaTogJXMiLCBuYW1lKTsK KyAKKy0JZ19mcmVlKG5hbWUpOworKwlmcmVlKG5hbWUpOworIAorIGRvbmU6CisgCWlmIChmcmFt ZS0+c2l6ZSkKK0BAIC0yOTI4LDkgKzI5MDIsOSBAQCBzdGF0aWMgdm9pZCBwcmludF9jYWxsX2Nw KGNvbnN0IHN0cnVjdCBsMmNhcF9mcmFtZSAqZnJhbWUpCisgCQlicmVhazsKKyAJY2FzZSAweDA0 OgorIAkJc3RyID0gIk9yaWdpbmF0ZSI7CistCQluYW1lID0gbmFtZTJ1dGY4KCh1aW50OF90ICop ZnJhbWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKysJCW5hbWUgPSBzdHIydXRmOChmcmFtZS0+ZGF0 YSwgZnJhbWUtPnNpemUpOworIAkJcHJpbnRfZmllbGQoIiAgT3BlcmF0aW9uOiAlcyAgVXJpOiAl cyIsIHN0ciwgbmFtZSk7CistCQlnX2ZyZWUobmFtZSk7CisrCQlmcmVlKG5hbWUpOworIAkJYnJl YWs7CisgCWNhc2UgMHgwNToKKyAJCXN0ciA9ICJKb2luIjsKK0BAIC0zMTI0LDExICszMDk4LDEx IEBAIHN0YXRpYyB2b2lkIHByaW50X2luY29tX2NhbGwoY29uc3Qgc3RydWN0IGwyY2FwX2ZyYW1l ICpmcmFtZSkKKyAKKyAJcHJpbnRfZmllbGQoIiAgQ2FsbCBJbmRleDogJXUiLCBjYWxsX2lkKTsK KyAKKy0JbmFtZSA9IG5hbWUydXRmOCgodWludDhfdCAqKWZyYW1lLT5kYXRhLCBmcmFtZS0+c2l6 ZSk7CisrCW5hbWUgPSBzdHIydXRmOChmcmFtZS0+ZGF0YSwgZnJhbWUtPnNpemUpOworIAorIAlw cmludF9maWVsZCgiICBjYWxsX3N0cmluZzogJXMiLCBuYW1lKTsKKyAKKy0JZ19mcmVlKG5hbWUp OworKwlmcmVlKG5hbWUpOworIAorIGRvbmU6CisgCWlmIChmcmFtZS0+c2l6ZSkKK0BAIC0zMTU3 LDExICszMTMxLDExIEBAIHN0YXRpYyB2b2lkIHByaW50X2NhbGxfZnJpZW5kbHlfbmFtZShjb25z dCBzdHJ1Y3QgbDJjYXBfZnJhbWUgKmZyYW1lKQorIAorIAlwcmludF9maWVsZCgiICBDYWxsIElu ZGV4OiAldSIsIGNhbGxfaWQpOworIAorLQluYW1lID0gbmFtZTJ1dGY4KCh1aW50OF90ICopZnJh bWUtPmRhdGEsIGZyYW1lLT5zaXplKTsKKysJbmFtZSA9IHN0cjJ1dGY4KGZyYW1lLT5kYXRhLCBm cmFtZS0+c2l6ZSk7CisgCisgCXByaW50X2ZpZWxkKCIgIEZyaWVuZGx5IE5hbWU6ICVzIiwgbmFt ZSk7CisgCistCWdfZnJlZShuYW1lKTsKKysJZnJlZShuYW1lKTsKKyAKKyBkb25lOgorIAlpZiAo ZnJhbWUtPnNpemUpCitkaWZmIC0tZ2l0IGEvcHJvZmlsZXMvYXVkaW8vbWNwLmMgYi9wcm9maWxl cy9hdWRpby9tY3AuYworaW5kZXggMGMyZTBkZTBiMTU2Li44YWRmODE0ZThkNzMgMTAwNjQ0Cist LS0gYS9wcm9maWxlcy9hdWRpby9tY3AuYworKysrIGIvcHJvZmlsZXMvYXVkaW8vbWNwLmMKK0BA IC03MywyNiArNzMsNiBAQCBzdHJ1Y3QgcmVtb3RlX3BsYXllciB7CisgCXVpbnQ4X3QgcGxheWlu Z19vcmRlcjsKKyB9OworIAorLXN0YXRpYyBjaGFyICpuYW1lMnV0ZjgoY29uc3QgdWludDhfdCAq bmFtZSwgdWludDE2X3QgbGVuKQorLXsKKy0JY2hhciAqdXRmOF9uYW1lOworLQorLQl1dGY4X25h bWUgPSBtYWxsb2MobGVuICsgMSk7CistCWlmICghdXRmOF9uYW1lKQorLQkJcmV0dXJuIE5VTEw7 CistCistCWlmIChsZW4pCistCQltZW1jcHkodXRmOF9uYW1lLCBuYW1lLCBsZW4pOworLQorLQl1 dGY4X25hbWVbbGVuXSA9IDA7CistCXN0cnRvdXRmOCh1dGY4X25hbWUsIGxlbik7CistCistCS8q IFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKi8KKy0J Z19zdHJzdHJpcCh1dGY4X25hbWUpOworLQorLQlyZXR1cm4gdXRmOF9uYW1lOworLX0KKy0KKyBz dGF0aWMgY29uc3QgY2hhciAqbWNwX3N0YXR1c192YWxfdG9fc3RyaW5nKHVpbnQ4X3Qgc3RhdHVz KQorIHsKKyAJc3dpdGNoIChzdGF0dXMpIHsKK0BAIC0xMTgsNyArOTgsNyBAQCBzdGF0aWMgdm9p ZCByZW1vdGVfbWVkaWFfcGxheWVyX25hbWUodm9pZCAqZGF0YSwgY29uc3QgdWludDhfdCAqdmFs dWUsCisgCXN0cnVjdCByZW1vdGVfcGxheWVyICpyZW1vdGUgPSBkYXRhOworIAljaGFyICpuYW1l OworIAorLQluYW1lID0gbmFtZTJ1dGY4KHZhbHVlLCBsZW5ndGgpOworKwluYW1lID0gc3RyMnV0 ZjgodmFsdWUsIGxlbmd0aCk7CisgCWlmICghbmFtZSkKKyAJCXJldHVybjsKKyAKK0BAIC0xNDUs NyArMTI1LDcgQEAgc3RhdGljIHZvaWQgcmVtb3RlX3RyYWNrX3RpdGxlKHZvaWQgKmRhdGEsIGNv bnN0IHVpbnQ4X3QgKnZhbHVlLAorIAljaGFyICpuYW1lOworIAl1aW50MTZfdCBsZW47CisgCist CW5hbWUgPSBuYW1lMnV0ZjgodmFsdWUsIGxlbmd0aCk7CisrCW5hbWUgPSBzdHIydXRmOCh2YWx1 ZSwgbGVuZ3RoKTsKKyAJaWYgKCFuYW1lKQorIAkJcmV0dXJuOworIAorZGlmZiAtLWdpdCBhL3By b2ZpbGVzL2dhcC9nYXMuYyBiL3Byb2ZpbGVzL2dhcC9nYXMuYworaW5kZXggMGY0MWM5ZTZjMmE1 Li41MTg0ZDc0ZThmMDcgMTAwNjQ0CistLS0gYS9wcm9maWxlcy9nYXAvZ2FzLmMKKysrKyBiL3By b2ZpbGVzL2dhcC9nYXMuYworQEAgLTY2LDIyICs2Niw2IEBAIHN0YXRpYyB2b2lkIGdhc19mcmVl KHN0cnVjdCBnYXMgKmdhcykKKyAJZ19mcmVlKGdhcyk7CisgfQorIAorLXN0YXRpYyBjaGFyICpu YW1lMnV0ZjgoY29uc3QgdWludDhfdCAqbmFtZSwgdWludDE2X3QgbGVuKQorLXsKKy0JY2hhciB1 dGY4X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSCArIDJdOworLQorLQlsZW4gPSBNSU4obGVuLCBz aXplb2YodXRmOF9uYW1lKSAtIDEpOworLQorLQltZW1zZXQodXRmOF9uYW1lLCAwLCBzaXplb2Yo dXRmOF9uYW1lKSk7CistCXN0cm5jcHkodXRmOF9uYW1lLCAoY2hhciAqKSBuYW1lLCBsZW4pOwor LQlzdHJ0b3V0ZjgodXRmOF9uYW1lLCBsZW4pOworLQorLQkvKiBSZW1vdmUgbGVhZGluZyBhbmQg dHJhaWxpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzICovCistCWdfc3Ryc3RyaXAodXRmOF9uYW1l KTsKKy0KKy0JcmV0dXJuIGdfc3RyZHVwKHV0ZjhfbmFtZSk7CistfQorLQorIHN0YXRpYyB2b2lk IHJlYWRfZGV2aWNlX25hbWVfY2IoYm9vbCBzdWNjZXNzLCB1aW50OF90IGF0dF9lY29kZSwKKyAJ CQkJCWNvbnN0IHVpbnQ4X3QgKnZhbHVlLCB1aW50MTZfdCBsZW5ndGgsCisgCQkJCQl2b2lkICp1 c2VyX2RhdGEpCitAQCAtOTgsMTMgKzgyLDEzIEBAIHN0YXRpYyB2b2lkIHJlYWRfZGV2aWNlX25h bWVfY2IoYm9vbCBzdWNjZXNzLCB1aW50OF90IGF0dF9lY29kZSwKKyAJaWYgKCFsZW5ndGgpCisg CQlyZXR1cm47CisgCistCW5hbWUgPSBuYW1lMnV0ZjgodmFsdWUsIGxlbmd0aCk7CisrCW5hbWUg PSBzdHIydXRmOCh2YWx1ZSwgbGVuZ3RoKTsKKyAKKyAJREJHKCJHQVAgRGV2aWNlIE5hbWU6ICVz IiwgbmFtZSk7CisgCisgCWJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKGdhcy0+ZGV2aWNlLCBu YW1lKTsKKyAKKy0JZ19mcmVlKG5hbWUpOworKwlmcmVlKG5hbWUpOworIH0KKyAKKyBzdGF0aWMg dm9pZCBoYW5kbGVfZGV2aWNlX25hbWUoc3RydWN0IGdhcyAqZ2FzLCB1aW50MTZfdCB2YWx1ZV9o YW5kbGUpCitkaWZmIC0tZ2l0IGEvc3JjL2Vpci5jIGIvc3JjL2Vpci5jCitpbmRleCA0NDIxYjE2 NjJkNjUuLjVjOWViZTJhZjNhMyAxMDA2NDQKKy0tLSBhL3NyYy9laXIuYworKysrIGIvc3JjL2Vp ci5jCitAQCAtNjAsNyArNjAsNyBAQCB2b2lkIGVpcl9kYXRhX2ZyZWUoc3RydWN0IGVpcl9kYXRh ICplaXIpCisgeworIAlxdWV1ZV9kZXN0cm95KGVpci0+c2VydmljZXMsIGdfZnJlZSk7CisgCWVp ci0+c2VydmljZXMgPSBOVUxMOworLQlnX2ZyZWUoZWlyLT5uYW1lKTsKKysJZnJlZShlaXItPm5h bWUpOworIAllaXItPm5hbWUgPSBOVUxMOworIAlmcmVlKGVpci0+aGFzaCk7CisgCWVpci0+aGFz aCA9IE5VTEw7CitAQCAtMTMzLDIyICsxMzMsNiBAQCBzdGF0aWMgdm9pZCBlaXJfcGFyc2VfdXVp ZDEyOChzdHJ1Y3QgZWlyX2RhdGEgKmVpciwgY29uc3QgdWludDhfdCAqZGF0YSwKKyAJfQorIH0K KyAKKy1zdGF0aWMgY2hhciAqbmFtZTJ1dGY4KGNvbnN0IHVpbnQ4X3QgKm5hbWUsIHVpbnQ4X3Qg bGVuKQorLXsKKy0JY2hhciB1dGY4X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSCArIDJdOworLQor LQlsZW4gPSBNSU4obGVuLCBIQ0lfTUFYX05BTUVfTEVOR1RIKTsKKy0KKy0JbWVtc2V0KHV0Zjhf bmFtZSwgMCwgc2l6ZW9mKHV0ZjhfbmFtZSkpOworLQlzdHJuY3B5KHV0ZjhfbmFtZSwgKGNoYXIg KikgbmFtZSwgbGVuKTsKKy0Jc3RydG91dGY4KHV0ZjhfbmFtZSwgbGVuKTsKKy0KKy0JLyogUmVt b3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAqLworLQlnX3N0 cnN0cmlwKHV0ZjhfbmFtZSk7CistCistCXJldHVybiBnX3N0cmR1cCh1dGY4X25hbWUpOworLX0K Ky0KKyBzdGF0aWMgdm9pZCBlaXJfcGFyc2VfbXNkKHN0cnVjdCBlaXJfZGF0YSAqZWlyLCBjb25z dCB1aW50OF90ICpkYXRhLAorIAkJCQkJCQkJdWludDhfdCBsZW4pCisgeworQEAgLTMwMSw5ICsy ODUsOSBAQCB2b2lkIGVpcl9wYXJzZShzdHJ1Y3QgZWlyX2RhdGEgKmVpciwgY29uc3QgdWludDhf dCAqZWlyX2RhdGEsIHVpbnQ4X3QgZWlyX2xlbikKKyAJCQl3aGlsZSAoZGF0YV9sZW4gPiAwICYm IGRhdGFbZGF0YV9sZW4gLSAxXSA9PSAnXDAnKQorIAkJCQlkYXRhX2xlbi0tOworIAorLQkJCWdf ZnJlZShlaXItPm5hbWUpOworKwkJCWZyZWUoZWlyLT5uYW1lKTsKKyAKKy0JCQllaXItPm5hbWUg PSBuYW1lMnV0ZjgoZGF0YSwgZGF0YV9sZW4pOworKwkJCWVpci0+bmFtZSA9IHN0cjJ1dGY4KGRh dGEsIGRhdGFfbGVuKTsKKyAJCQllaXItPm5hbWVfY29tcGxldGUgPSBlaXJfZGF0YVsxXSAhPSBF SVJfTkFNRV9TSE9SVDsKKyAJCQlicmVhazsKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2hhcmVkL2Fk LmMgYi9zcmMvc2hhcmVkL2FkLmMKK2luZGV4IGViZWUwNzg1MDBjNi4uMjM2ZTcxOTUwN2U0IDEw MDY0NAorLS0tIGEvc3JjL3NoYXJlZC9hZC5jCisrKysgYi9zcmMvc2hhcmVkL2FkLmMKK0BAIC0y NzUsMjIgKzI3NSwxOCBAQCBzdGF0aWMgYm9vbCBhZF9yZXBsYWNlX3V1aWQxMjgoc3RydWN0IGJ0 X2FkICphZCwgc3RydWN0IGlvdmVjICppb3YpCisgCisgc3RhdGljIGJvb2wgYWRfcmVwbGFjZV9u YW1lKHN0cnVjdCBidF9hZCAqYWQsIHN0cnVjdCBpb3ZlYyAqaW92KQorIHsKKy0JY2hhciB1dGY4 X25hbWVbSENJX01BWF9OQU1FX0xFTkdUSCArIDJdOworLQlzaXplX3QgbGVuID0gTUlOKGlvdi0+ aW92X2xlbiwgKHNpemVfdCkgSENJX01BWF9OQU1FX0xFTkdUSCk7CisrCWNoYXIgKnV0ZjhfbmFt ZTsKKysJYm9vbCByZXQ7CisgCistCW1lbXNldCh1dGY4X25hbWUsIDAsIHNpemVvZih1dGY4X25h bWUpKTsKKy0Jc3RybmNweSh1dGY4X25hbWUsIChjb25zdCBjaGFyICopaW92LT5pb3ZfYmFzZSwg bGVuKTsKKy0KKy0JaWYgKHN0cmlzdXRmOCh1dGY4X25hbWUsIGxlbikpCistCQlnb3RvIGRvbmU7 CisrCXV0ZjhfbmFtZSA9IHN0cjJ1dGY4KGlvdi0+aW92X2Jhc2UsIGlvdi0+aW92X2xlbik7Cisr CWlmICghdXRmOF9uYW1lKQorKwkJcmV0dXJuIGZhbHNlOworIAorLQlzdHJ0b3V0ZjgodXRmOF9u YW1lLCBsZW4pOworKwlyZXQgPSBidF9hZF9hZGRfbmFtZShhZCwgdXRmOF9uYW1lKTsKKyAKKy0J LyogUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgY2hhcmFjdGVycyAqLwor LQlzdHJzdHJpcCh1dGY4X25hbWUpOworKwlmcmVlKHV0ZjhfbmFtZSk7CisgCistZG9uZToKKy0J cmV0dXJuIGJ0X2FkX2FkZF9uYW1lKGFkLCB1dGY4X25hbWUpOworKwlyZXR1cm4gcmV0OworIH0K KyAKKyBzdGF0aWMgYm9vbCBhZF9yZXBsYWNlX3V1aWQxNl9kYXRhKHN0cnVjdCBidF9hZCAqYWQs IHN0cnVjdCBpb3ZlYyAqaW92KQorZGlmZiAtLWdpdCBhL3VuaXQvdGVzdC1laXIuYyBiL3VuaXQv dGVzdC1laXIuYworaW5kZXggMzI2YmM4OTllMjUxLi4zODBmY2JhMmYzOGUgMTAwNjQ0CistLS0g YS91bml0L3Rlc3QtZWlyLmMKKysrKyBiL3VuaXQvdGVzdC1laXIuYworQEAgLTQwNyw3ICs0MDcs OCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBpbnZhbGlkX3V0ZjhfbmFtZV9kYXRhW10g PSB7Cisgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0X2RhdGEgaW52YWxpZF91dGY4X25hbWVfdGVz dCA9IHsKKyAJLmVpcl9kYXRhID0gaW52YWxpZF91dGY4X25hbWVfZGF0YSwKKyAJLmVpcl9zaXpl ID0gc2l6ZW9mKGludmFsaWRfdXRmOF9uYW1lX2RhdGEpLAorLQkubmFtZSA9ICJ0ZXN0IOCkquCk sOClgCIsCisrCS8qIFRoZSB0cnVuY2F0ZWQgc2VxdWVuY2UgaXMgcmVwbGFjZWQgYnkgVStGRkZE LCB0aGUgcmVzdCBpcyBrZXB0ICovCisrCS5uYW1lID0gInRlc3Qg4KSq4KSw4KWAIiAiXHhlZlx4 YmZceGJkIiAi4KWN4KS34KS+IGludmFsaWQiLAorIAkubmFtZV9jb21wbGV0ZSA9IHRydWUsCisg CS50eF9wb3dlciA9IDEyNywKKyB9OworQEAgLTQzNSw3ICs0MzYsOSBAQCBzdGF0aWMgY29uc3Qg dW5zaWduZWQgY2hhciBpc29fMjAyMl9qcF9uYW1lX2RhdGFbXSA9IHsKKyBzdGF0aWMgY29uc3Qg c3RydWN0IHRlc3RfZGF0YSBpc29fMjAyMl9qcF9uYW1lX3Rlc3QgPSB7CisgCS5laXJfZGF0YSA9 IGlzb18yMDIyX2pwX25hbWVfZGF0YSwKKyAJLmVpcl9zaXplID0gc2l6ZW9mKGlzb18yMDIyX2pw X25hbWVfZGF0YSksCistCS5uYW1lID0gInRlc3QgXDAzMyRCIiwKKysJLyogVGhlIDQgSklTIGJ5 dGVzIGFyZSByZXBsYWNlZCBieSBVK0ZGRkQsIHRoZSBlc2NhcGVzIGFyZSBBU0NJSSAqLworKwku bmFtZSA9ICJ0ZXN0IFwwMzMkQiIgIlx4ZWZceGJmXHhiZFx4ZWZceGJmXHhiZFx4ZWZceGJmXHhi ZFx4ZWZceGJmXHhiZCIKKysJCQkJCQkJCSJcMDMzKEIgT0siLAorIAkubmFtZV9jb21wbGV0ZSA9 IHRydWUsCisgCS50eF9wb3dlciA9IDEyNywKKyB9OworQEAgLTQ3NSw4ICs0NzgsOCBAQCBzdGF0 aWMgdm9pZCBtYXhfbmFtZV9zZXR1cChjb25zdCB2b2lkICpkYXRhKQorIHN0YXRpYyB1bnNpZ25l ZCBjaGFyIGxvbmdfbmFtZV9kYXRhWzI1NV07Cisgc3RhdGljIGNoYXIgbG9uZ19uYW1lW3NpemVv Zihsb25nX25hbWVfZGF0YSkgLSAyICsgMV07CisgCistLyogVGhlIG5hbWUgZG9lcyBub3QgZml0 LCBzbyBpdCBjb21lcyBiYWNrIGNsYW1wZWQgdG8gSENJX01BWF9OQU1FX0xFTkdUSCAqLworLSNk ZWZpbmUgTE9OR19OQU1FX0xFTglIQ0lfTUFYX05BTUVfTEVOR1RICisrLyogc3RyMnV0ZjgoKSBk b2VzIG5vdCBjbGFtcCwgc28gdGhlIHdob2xlIG5hbWUgaXMga2VwdCAqLworKyNkZWZpbmUgTE9O R19OQU1FX0xFTgkoc2l6ZW9mKGxvbmdfbmFtZV9kYXRhKSAtIDIpCisgCisgc3RhdGljIGNvbnN0 IHN0cnVjdCB0ZXN0X2RhdGEgbG9uZ19uYW1lX3Rlc3QgPSB7CisgCS5laXJfZGF0YSA9IGxvbmdf bmFtZV9kYXRhLAorLS0gCisyLjU1LjAKKworCitGcm9tIDJiZjgyODZjNGViZTYyNTZiMTUyYzNh ZGFiNmVhMGZlZDhhODM0ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMdWl6IEF1 Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDE5 IEF1ZyAyMDI2IDE2OjI3OjA3IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMDgvMTBdIGRldmljZTog Rml4IHRoZSBuYW1lIHRydW5jYXRpb24gc3BsaXR0aW5nIFVURi04Cisgc2VxdWVuY2VzCisKK2J0 ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKCkgY29waWVzIHRoZSBuYW1lIHdpdGgKKworCXN0cm5j cHkoZGV2aWNlLT5uYW1lLCBuYW1lLCBNQVhfTkFNRV9MRU5HVEgpOworCit3aGljaCBjdXRzIGF0 IDI0OCBieXRlcyB3aXRob3V0IGFueSByZWdhcmQgZm9yIHdoZXJlIHRoZSBVVEYtOAorY2hhcmFj dGVycyBzdGFydCBhbmQgZW5kLCBzbyBhIGxvbmdlciBuYW1lIGNhbiBiZSBsZWZ0IHdpdGggYSBw YXJ0aWFsCitzZXF1ZW5jZS4gVGhlIHJlc3VsdCBpcyBubyBsb25nZXIgdmFsaWQgVVRGLTggYW5k IEQtQnVzIHJlamVjdHMgaXQgd2hlbgordGhlIE5hbWUgcHJvcGVydHkgaXMgZW1pdHRlZC4KKwor QSBuYW1lIG1hZGUgb2YgMjQ5IFUrRkZGRCBjaGFyYWN0ZXJzIGlzIDc0NyBieXRlcyBsb25nIGFu ZCBjdXR0aW5nIGl0IGF0CisyNDggbGVhdmVzIGEgdHJhaWxpbmcgImVmIGJmIiwgdHdvIHRoaXJk cyBvZiBhIGNoYXJhY3Rlci4KKworVHJ1bmNhdGUgb24gYSBjaGFyYWN0ZXIgYm91bmRhcnkgaW5z dGVhZC4gVGhlIHNhbWUgbmFtZSBub3cgZW5kcyB1cCAyNDYKK2J5dGVzIGxvbmcgYW5kIHN0YXlz IHZhbGlkLgorCitUaGlzIGFsc28gbWVhbnMgYSBuYW1lIHRoYXQgaXMgbm90IHZhbGlkIFVURi04 IHRvIGJlZ2luIHdpdGgsIGFzIGNhbiBiZQoraGFkIGZyb20gdGhlIG5lYXJkIGFuZCBzaXhheGlz IHBsdWdpbnMsIGlzIG5vdyBjdXQgYXQgdGhlIGZpcnN0CitpbGwtZm9ybWVkIHNlcXVlbmNlIHJh dGhlciB0aGFuIHBhc3NlZCBvbiBhcyBpcy4KKworQXNzaXN0ZWQtYnk6IENsYXVkZTpjbGF1ZGUt b3B1cy01CistLS0KKyBzcmMvZGV2aWNlLmMgfCAxMiArKysrKysrKysrKy0KKyAxIGZpbGUgY2hh bmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L2RldmljZS5jIGIvc3JjL2RldmljZS5jCitpbmRleCA2NWQ4NGJlNTZjYTUuLmRmNjA3ZjcxOGJl MSAxMDA2NDQKKy0tLSBhL3NyYy9kZXZpY2UuYworKysrIGIvc3JjL2RldmljZS5jCitAQCAtNTEw MywxMiArNTEwMywyMiBAQCBjaGFyICpidGRfZGV2aWNlX2dldF9zdG9yYWdlX3BhdGgoc3RydWN0 IGJ0ZF9kZXZpY2UgKmRldmljZSwgY29uc3QgY2hhciAqbmFtZSkKKyAKKyB2b2lkIGJ0ZF9kZXZp Y2VfZGV2aWNlX3NldF9uYW1lKHN0cnVjdCBidGRfZGV2aWNlICpkZXZpY2UsIGNvbnN0IGNoYXIg Km5hbWUpCisgeworKwlzaXplX3QgbGVuOworKworIAlpZiAoc3RybmNtcChuYW1lLCBkZXZpY2Ut Pm5hbWUsIE1BWF9OQU1FX0xFTkdUSCkgPT0gMCkKKyAJCXJldHVybjsKKyAKKyAJREJHKCIlcyAl cyIsIGRldmljZS0+cGF0aCwgbmFtZSk7CisgCistCXN0cm5jcHkoZGV2aWNlLT5uYW1lLCBuYW1l LCBNQVhfTkFNRV9MRU5HVEgpOworKwkvKgorKwkgKiBUcnVuY2F0ZSBvbiBhIGNoYXJhY3RlciBi b3VuZGFyeSwgc28gdGhhdCBhIG5hbWUgbG9uZ2VyIHRoYW4KKysJICogTUFYX05BTUVfTEVOR1RI IGRvZXMgbm90IGVuZCB1cCB3aXRoIGEgcGFydGlhbCBzZXF1ZW5jZSwgd2hpY2gKKysJICogd291 bGQgbm8gbG9uZ2VyIGJlIHZhbGlkIFVURi04IGFuZCB3b3VsZCBiZSByZWplY3RlZCBieSBELUJ1 cy4KKysJICovCisrCWxlbiA9IHN0cm5sZW51dGY4KG5hbWUsIE1JTihzdHJsZW4obmFtZSksIChz aXplX3QpIE1BWF9OQU1FX0xFTkdUSCkpOworKworKwltZW1jcHkoZGV2aWNlLT5uYW1lLCBuYW1l LCBsZW4pOworKwlkZXZpY2UtPm5hbWVbbGVuXSA9ICdcMCc7CisgCisgCXN0b3JlX2RldmljZV9p bmZvKGRldmljZSk7CisgCistLSAKKzIuNTUuMAorCisKK0Zyb20gYmVmMGZhYTMxMmVlYjgzMzQ0 YmIyYmVhZDViYmJkMGI1Mzg0MTRlNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1 aXogQXVndXN0byB2b24gRGVudHogPGx1aXoudm9uLmRlbnR6QGludGVsLmNvbT4KK0RhdGU6IFdl ZCwgMTkgQXVnIDIwMjYgMTY6Mjc6MTkgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwOS8xMF0gZGV2 aWNlOiBSZW5hbWUgYnRkX2RldmljZV9kZXZpY2Vfc2V0X25hbWUgdG8KKyBidGRfZGV2aWNlX3Nl dF9uYW1lCisKK1RoZSAiZGV2aWNlIiB3YXMgaW4gdGhlcmUgdHdpY2UuCisKK0Fzc2lzdGVkLWJ5 OiBDbGF1ZGU6Y2xhdWRlLW9wdXMtNQorLS0tCisgcGx1Z2lucy9uZWFyZC5jICAgIHwgMiArLQor IHBsdWdpbnMvc2l4YXhpcy5jICB8IDIgKy0KKyBwcm9maWxlcy9nYXAvZ2FzLmMgfCAyICstCisg c3JjL2FkYXB0ZXIuYyAgICAgIHwgNCArKy0tCisgc3JjL2RldmljZS5jICAgICAgIHwgMiArLQor IHNyYy9kZXZpY2UuaCAgICAgICB8IDIgKy0KKyA2IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3BsdWdpbnMvbmVhcmQuYyBiL3Bs dWdpbnMvbmVhcmQuYworaW5kZXggZWRmYzExNTM3M2VmLi4xNjMzZGQ1NzY3NDcgMTAwNjQ0Cist LS0gYS9wbHVnaW5zL25lYXJkLmMKKysrKyBiL3BsdWdpbnMvbmVhcmQuYworQEAgLTYyOSw3ICs2 MjksNyBAQCBzdGF0aWMgdm9pZCBzdG9yZV9wYXJhbXMoc3RydWN0IGJ0ZF9hZGFwdGVyICphZGFw dGVyLCBzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLAorIAorIAlpZiAocGFyYW1zLT5uYW1lKSB7 CisgCQlkZXZpY2Vfc3RvcmVfY2FjaGVkX25hbWUoZGV2aWNlLCBwYXJhbXMtPm5hbWUpOworLQkJ YnRkX2RldmljZV9kZXZpY2Vfc2V0X25hbWUoZGV2aWNlLCBwYXJhbXMtPm5hbWUpOworKwkJYnRk X2RldmljZV9zZXRfbmFtZShkZXZpY2UsIHBhcmFtcy0+bmFtZSk7CisgCX0KKyAKKyAJaWYgKHBh cmFtcy0+c2VydmljZXMpCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zaXhheGlzLmMgYi9wbHVnaW5z L3NpeGF4aXMuYworaW5kZXggYTA0YTc2ZDM5NGViLi5mYzJiMmE5ZDAxNTYgMTAwNjQ0CistLS0g YS9wbHVnaW5zL3NpeGF4aXMuYworKysrIGIvcGx1Z2lucy9zaXhheGlzLmMKK0BAIC0zNjIsNyAr MzYyLDcgQEAgc3RhdGljIGJvb2wgc2V0dXBfZGV2aWNlKGludCBmZCwgY29uc3QgY2hhciAqc3lz ZnNfcGF0aCwKKyAKKyAJaW5mbygic2l4YXhpczogc2V0dGluZyB1cCBuZXcgZGV2aWNlIik7Cisg CistCWJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKGRldmljZSwgY3AtPm5hbWUpOworKwlidGRf ZGV2aWNlX3NldF9uYW1lKGRldmljZSwgY3AtPm5hbWUpOworIAlidGRfZGV2aWNlX3NldF9wbnBp ZChkZXZpY2UsIGNwLT5zb3VyY2UsIGNwLT52aWQsIGNwLT5waWQsIGNwLT52ZXJzaW9uKTsKKyAJ YnRkX2RldmljZV9zZXRfdGVtcG9yYXJ5KGRldmljZSwgdHJ1ZSk7CisgCitkaWZmIC0tZ2l0IGEv cHJvZmlsZXMvZ2FwL2dhcy5jIGIvcHJvZmlsZXMvZ2FwL2dhcy5jCitpbmRleCA1MTg0ZDc0ZThm MDcuLjQ5NTc5OWU2NDFkOSAxMDA2NDQKKy0tLSBhL3Byb2ZpbGVzL2dhcC9nYXMuYworKysrIGIv cHJvZmlsZXMvZ2FwL2dhcy5jCitAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCByZWFkX2Rl dmljZV9uYW1lX2NiKGJvb2wgc3VjY2VzcywgdWludDhfdCBhdHRfZWNvZGUsCisgCisgCURCRygi R0FQIERldmljZSBOYW1lOiAlcyIsIG5hbWUpOworIAorLQlidGRfZGV2aWNlX2RldmljZV9zZXRf bmFtZShnYXMtPmRldmljZSwgbmFtZSk7CisrCWJ0ZF9kZXZpY2Vfc2V0X25hbWUoZ2FzLT5kZXZp Y2UsIG5hbWUpOworIAorIAlmcmVlKG5hbWUpOworIH0KK2RpZmYgLS1naXQgYS9zcmMvYWRhcHRl ci5jIGIvc3JjL2FkYXB0ZXIuYworaW5kZXggYzIxYjNlN2ZiY2MyLi5jZjU5ZGI0YWE1YTkgMTAw NjQ0CistLS0gYS9zcmMvYWRhcHRlci5jCisrKysgYi9zcmMvYWRhcHRlci5jCitAQCAtNzYyOCw3 ICs3NjI4LDcgQEAgdm9pZCBidGRfYWRhcHRlcl9kZXZpY2VfZm91bmQoc3RydWN0IGJ0ZF9hZGFw dGVyICphZGFwdGVyLAorIAluYW1lX2tub3duID0gZGV2aWNlX25hbWVfa25vd24oZGV2KTsKKyAK KyAJaWYgKGVpcl9kYXRhLm5hbWUgJiYgKGVpcl9kYXRhLm5hbWVfY29tcGxldGUgfHwgIW5hbWVf a25vd24pKQorLQkJYnRkX2RldmljZV9kZXZpY2Vfc2V0X25hbWUoZGV2LCBlaXJfZGF0YS5uYW1l KTsKKysJCWJ0ZF9kZXZpY2Vfc2V0X25hbWUoZGV2LCBlaXJfZGF0YS5uYW1lKTsKKyAKKyAJaWYg KGVpcl9kYXRhLmNsYXNzICE9IDApCisgCQlkZXZpY2Vfc2V0X2NsYXNzKGRldiwgZWlyX2RhdGEu Y2xhc3MpOworQEAgLTk4MTQsNyArOTgxNCw3IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3RlZF9jYWxs YmFjayh1aW50MTZfdCBpbmRleCwgdWludDE2X3QgbGVuZ3RoLAorIAorIAlpZiAoZWlyX2RhdGEu bmFtZSAmJiAoZWlyX2RhdGEubmFtZV9jb21wbGV0ZSB8fCAhbmFtZV9rbm93bikpIHsKKyAJCWRl dmljZV9zdG9yZV9jYWNoZWRfbmFtZShkZXZpY2UsIGVpcl9kYXRhLm5hbWUpOworLQkJYnRkX2Rl dmljZV9kZXZpY2Vfc2V0X25hbWUoZGV2aWNlLCBlaXJfZGF0YS5uYW1lKTsKKysJCWJ0ZF9kZXZp Y2Vfc2V0X25hbWUoZGV2aWNlLCBlaXJfZGF0YS5uYW1lKTsKKyAJfQorIAorIAlpZiAoZWlyX2Rh dGEubXNkX2xpc3QpCitkaWZmIC0tZ2l0IGEvc3JjL2RldmljZS5jIGIvc3JjL2RldmljZS5jCitp bmRleCBkZjYwN2Y3MThiZTEuLjk2MDlhMTRmNzg4MyAxMDA2NDQKKy0tLSBhL3NyYy9kZXZpY2Uu YworKysrIGIvc3JjL2RldmljZS5jCitAQCAtNTEwMSw3ICs1MTAxLDcgQEAgY2hhciAqYnRkX2Rl dmljZV9nZXRfc3RvcmFnZV9wYXRoKHN0cnVjdCBidGRfZGV2aWNlICpkZXZpY2UsIGNvbnN0IGNo YXIgKm5hbWUpCisgCXJldHVybiBzdHJkdXAoZmlsZW5hbWUpOworIH0KKyAKKy12b2lkIGJ0ZF9k ZXZpY2VfZGV2aWNlX3NldF9uYW1lKHN0cnVjdCBidGRfZGV2aWNlICpkZXZpY2UsIGNvbnN0IGNo YXIgKm5hbWUpCisrdm9pZCBidGRfZGV2aWNlX3NldF9uYW1lKHN0cnVjdCBidGRfZGV2aWNlICpk ZXZpY2UsIGNvbnN0IGNoYXIgKm5hbWUpCisgeworIAlzaXplX3QgbGVuOworIAorZGlmZiAtLWdp dCBhL3NyYy9kZXZpY2UuaCBiL3NyYy9kZXZpY2UuaAoraW5kZXggYjg5MGYyM2Q0NjQyLi43Njgz YmU4MmVlM2YgMTAwNjQ0CistLS0gYS9zcmMvZGV2aWNlLmgKKysrKyBiL3NyYy9kZXZpY2UuaAor QEAgLTIzLDcgKzIzLDcgQEAgY2hhciAqYnRkX2RldmljZV9nZXRfc3RvcmFnZV9wYXRoKHN0cnVj dCBidGRfZGV2aWNlICpkZXZpY2UsCisgCQkJCWNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKKyAKKyAK Ky12b2lkIGJ0ZF9kZXZpY2VfZGV2aWNlX3NldF9uYW1lKHN0cnVjdCBidGRfZGV2aWNlICpkZXZp Y2UsIGNvbnN0IGNoYXIgKm5hbWUpOworK3ZvaWQgYnRkX2RldmljZV9zZXRfbmFtZShzdHJ1Y3Qg YnRkX2RldmljZSAqZGV2aWNlLCBjb25zdCBjaGFyICpuYW1lKTsKKyB2b2lkIGRldmljZV9zdG9y ZV9jYWNoZWRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lKTsK KyB2b2lkIGRldmljZV9nZXRfbmFtZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLCBjaGFyICpu YW1lLCBzaXplX3QgbGVuKTsKKyBib29sIGRldmljZV9uYW1lX2tub3duKHN0cnVjdCBidGRfZGV2 aWNlICpkZXZpY2UpOworLS0gCisyLjU1LjAKKworCitGcm9tIGYwZTQwYzViM2U2YWY2OTc0YzQ0 MDc3Y2NkMGNkYzAxYTIxNzJmMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMdWl6 IEF1Z3VzdG8gdm9uIERlbnR6IDxsdWl6LnZvbi5kZW50ekBpbnRlbC5jb20+CitEYXRlOiBXZWQs IDE5IEF1ZyAyMDI2IDE2OjI5OjE5IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMTAvMTBdIHVuaXQv dGVzdC11dGlsOiBDb3ZlciBzdHJ0b3V0Zjggd2l0aCB0aGUgc3RyMnV0ZjggdGVzdHMKKworc3Ry dG91dGY4KCkgYW5kIHN0cjJ1dGY4KCkgYXJlIHRoZSB0d28gd2F5cyBvZiBkZWFsaW5nIHdpdGgg YSBuYW1lIHRoYXQKK2lzIG5vdCB2YWxpZCBVVEYtOCwgc28gcnVuIHRoZW0gb3ZlciB0aGUgc2Ft ZSBpbnB1dHMgYW5kIGtlZXAgdGhlIHR3bworZXhwZWN0ZWQgcmVzdWx0cyBzaWRlIGJ5IHNpZGUs IHdoaWNoIGRvY3VtZW50cyBob3cgdGhleSBkaWZmZXI6CitzdHJ0b3V0ZjgoKSB0cnVuY2F0ZXMg YXQgdGhlIGZpcnN0IGlsbC1mb3JtZWQgc2VxdWVuY2UgYW5kIGxlYXZlcyB0aGUKK3doaXRlc3Bh Y2UgYWxvbmUsIHN0cjJ1dGY4KCkgcmVwbGFjZXMgdGhlIGlsbC1mb3JtZWQgc2VxdWVuY2VzIGFu ZAorc3RyaXBzLgorCitUaGUgZXhwZWN0ZWQgcmVzdWx0cyB3ZXJlIGNoZWNrZWQgYWdhaW5zdCBQ eXRob24sIHRha2luZyB0aGUgbG9uZ2VzdAorcHJlZml4IHRoYXQgZGVjb2RlcyBhcyBzdHJpY3Qg VVRGLTgsIG92ZXIgZXZlcnkgb25lLCB0d28gYW5kIHRocmVlIGJ5dGUKK3NlcXVlbmNlLCAxNjY0 NjY1NSBvZiB0aGVtLCB3aXRoIG5vIG1pc21hdGNoLgorCitBc3Npc3RlZC1ieTogQ2xhdWRlOmNs YXVkZS1vcHVzLTUKKy0tLQorIHVuaXQvdGVzdC11dGlsLmMgfCA5NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNjYgaW5z ZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91bml0L3Rlc3QtdXRp bC5jIGIvdW5pdC90ZXN0LXV0aWwuYworaW5kZXggZjBiMWJiNzk5NGZiLi5lNjA1ZDE3YjZiNTYg MTAwNjQ0CistLS0gYS91bml0L3Rlc3QtdXRpbC5jCisrKysgYi91bml0L3Rlc3QtdXRpbC5jCitA QCAtODMsNjUgKzgzLDEwMSBAQCBzdGF0aWMgdm9pZCB0ZXN0X21pbl9tYXgoY29uc3Qgdm9pZCAq ZGF0YSkKKyAJdGVzdGVyX3Rlc3RfcGFzc2VkKCk7CisgfQorIAorLXN0cnVjdCBzdHIydXRmOF9k YXRhIHsKKytzdHJ1Y3QgdXRmOF9kYXRhIHsKKyAJY29uc3QgY2hhciAqaW5wdXQ7CS8qIE5vdCBO VUwgdGVybWluYXRlZCwgbGVuIGJ5dGVzIGFyZSB1c2VkICovCisgCXNpemVfdCBsZW47CistCWNv bnN0IGNoYXIgKmV4cGVjdGVkOworKwljb25zdCBjaGFyICpzdHIydXRmODsJLyogSWxsLWZvcm1l ZCBzZXF1ZW5jZXMgcmVwbGFjZWQsIHN0cmlwcGVkICovCisrCWNvbnN0IGNoYXIgKnN0cnRvdXRm ODsJLyogVHJ1bmNhdGVkIGF0IHRoZSBmaXJzdCBpbGwtZm9ybWVkIG9uZSAqLworIH07CisgCisg I2RlZmluZSBGRkZEICJceGVmXHhiZlx4YmQiCQkvKiBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFD VEVSICovCisgCistc3RhdGljIGNvbnN0IHN0cnVjdCBzdHIydXRmOF9kYXRhIHN0cjJ1dGY4X3Rl c3RzW10gPSB7Cisrc3RhdGljIGNvbnN0IHN0cnVjdCB1dGY4X2RhdGEgdXRmOF90ZXN0c1tdID0g eworIAkvKiBOb3RoaW5nIHRvIGRvICovCistCXsgIiIsIDAsICIiIH0sCistCXsgIlBpeGVsIDci LCA3LCAiUGl4ZWwgNyIgfSwKKysJeyAiIiwgMCwgIiIsICIiIH0sCisrCXsgIlBpeGVsIDciLCA3 LCAiUGl4ZWwgNyIsICJQaXhlbCA3IiB9LAorIAkvKiBXZWxsLWZvcm1lZCBtdWx0aS1ieXRlIHNl cXVlbmNlcyBhcmUga2VwdCBhcyB0aGV5IGFyZSAqLworLQl7ICJceGUyXHg4Mlx4YWMgNSIsIDUs ICJceGUyXHg4Mlx4YWMgNSIgfSwJCS8qIFUrMjBBQyAqLworLQl7ICJceGYwXHg5Zlx4OTRceDhh IiwgNCwgIlx4ZjBceDlmXHg5NFx4OGEiIH0sCQkvKiBVKzFGNTBBICovCisrCXsgIlx4ZTJceDgy XHhhYyA1IiwgNSwgIlx4ZTJceDgyXHhhYyA1IiwJCS8qIFUrMjBBQyAqLworKwkJCQkJCSJceGUy XHg4Mlx4YWMgNSIgfSwKKysJeyAiXHhmMFx4OWZceDk0XHg4YSIsIDQsICJceGYwXHg5Zlx4OTRc eDhhIiwJLyogVSsxRjUwQSAqLworKwkJCQkJCSJceGYwXHg5Zlx4OTRceDhhIiB9LAorIAkvKiBM ZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIGlzIHJlbW92ZWQgKi8KKy0JeyAiICBzcGFj ZWQgICIsIDEwLCAic3BhY2VkIiB9LAorLQl7ICJcdFxyXG5uYW1lXG5cclx0IiwgMTAsICJuYW1l IiB9LAorLQl7ICIgICAiLCAzLCAiIiB9LAorKwl7ICIgIHNwYWNlZCAgIiwgMTAsICJzcGFjZWQi LCAiICBzcGFjZWQgICIgfSwKKysJeyAiXHRcclxubmFtZVxuXHJcdCIsIDEwLCAibmFtZSIsICJc dFxyXG5uYW1lXG5cclx0IiB9LAorKwl7ICIgICAiLCAzLCAiIiwgIiAgICIgfSwKKyAJLyogVGhl IG5hbWUgaXMgbm90IE5VTCB0ZXJtaW5hdGVkLCBvbmx5IGxlbiBieXRlcyBhcmUgdXNlZCAqLwor LQl7ICJ0cnVuY2F0ZWQiLCA0LCAidHJ1biIgfSwKKysJeyAidHJ1bmNhdGVkIiwgNCwgInRydW4i LCAidHJ1biIgfSwKKyAJLyogQSBieXRlIHRoYXQgY2FuIG5ldmVyIGFwcGVhciBpbiBVVEYtOCAq LworLQl7ICJhYlx4ZmYiImNkIiwgNSwgImFiIiBGRkZEICJjZCIgfSwKKysJeyAiYWJceGZmIiJj ZCIsIDUsICJhYiIgRkZGRCAiY2QiLCAiYWIiIH0sCisgCS8qIEEgY29udGludWF0aW9uIGJ5dGUg Y2Fubm90IHN0YXJ0IGEgc2VxdWVuY2UgKi8KKy0JeyAiYWJceDgwIiJjZCIsIDUsICJhYiIgRkZG RCAiY2QiIH0sCisrCXsgImFiXHg4MCIiY2QiLCA1LCAiYWIiIEZGRkQgImNkIiwgImFiIiB9LAor IAkvKiBPbmUgVStGRkZEIHBlciBtYXhpbWFsIHN1YnBhcnQsIG5vdCBwZXIgYnl0ZSAqLworLQl7 ICJhYlx4ZTJceDgyIiJjZCIsIDYsICJhYiIgRkZGRCAiY2QiIH0sCisrCXsgImFiXHhlMlx4ODIi ImNkIiwgNiwgImFiIiBGRkZEICJjZCIsICJhYiIgfSwKKyAJLyogQSBzZXF1ZW5jZSBjdXQgc2hv cnQgYnkgbGVuIGlzIHN0aWxsIG9uZSBtYXhpbWFsIHN1YnBhcnQgKi8KKy0JeyAiYWJceGUyXHg4 Mlx4YWMiLCA0LCAiYWIiIEZGRkQgfSwKKysJeyAiYWJceGUyXHg4Mlx4YWMiLCA0LCAiYWIiIEZG RkQsICJhYiIgfSwKKyAJLyogTGF0aW4tMSB0ZXh0IGlzIG5vdCB2YWxpZCBVVEYtOCAqLworLQl7 ICJjYWZceGU5IiwgNCwgImNhZiIgRkZGRCB9LAorKwl7ICJjYWZceGU5IiwgNCwgImNhZiIgRkZG RCwgImNhZiIgfSwKKyAJLyogT3ZlcmxvbmcgZW5jb2RpbmdzIGFyZSByZWplY3RlZCwgQzAgYW5k IEMxIGFyZSBuZXZlciB2YWxpZCAqLworLQl7ICJceGMwXHg4MCIsIDIsIEZGRkQgRkZGRCB9LAor LQl7ICJceGMwXHhhZiIsIDIsIEZGRkQgRkZGRCB9LAorKwl7ICJceGMwXHg4MCIsIDIsIEZGRkQg RkZGRCwgIiIgfSwKKysJeyAiXHhjMFx4YWYiLCAyLCBGRkZEIEZGRkQsICIiIH0sCisgCS8qIFVU Ri0xNiBzdXJyb2dhdGVzIGhhdmUgbm8gVVRGLTggZW5jb2RpbmcgKi8KKy0JeyAiXHhlZFx4YTBc eDgwIiwgMywgRkZGRCBGRkZEIEZGRkQgfSwKKysJeyAiXHhlZFx4YTBceDgwIiwgMywgRkZGRCBG RkZEIEZGRkQsICIiIH0sCisgCS8qIFUrMTBGRkZGIGlzIHRoZSBsYXN0IGNvZGUgcG9pbnQsIEY1 IHRvIEZGIGFyZSBvdXQgb2YgcmFuZ2UgKi8KKy0JeyAiXHhmNFx4OTBceDgwXHg4MCIsIDQsIEZG RkQgRkZGRCBGRkZEIEZGRkQgfSwKKy0JeyAiXHhmNVx4ODBceDgwXHg4MCIsIDQsIEZGRkQgRkZG RCBGRkZEIEZGRkQgfSwKKysJeyAiXHhmNFx4OTBceDgwXHg4MCIsIDQsIEZGRkQgRkZGRCBGRkZE IEZGRkQsICIiIH0sCisrCXsgIlx4ZjVceDgwXHg4MFx4ODAiLCA0LCBGRkZEIEZGRkQgRkZGRCBG RkZELCAiIiB9LAorIAkvKiBUaGUgbGFzdCBjb2RlIHBvaW50IGl0c2VsZiBpcyBmaW5lICovCist CXsgIlx4ZjRceDhmXHhiZlx4YmYiLCA0LCAiXHhmNFx4OGZceGJmXHhiZiIgfSwKKysJeyAiXHhm NFx4OGZceGJmXHhiZiIsIDQsICJceGY0XHg4Zlx4YmZceGJmIiwKKysJCQkJCQkiXHhmNFx4OGZc eGJmXHhiZiIgfSwKKyAJLyogUmVwbGFjZW1lbnQgYW5kIHN0cmlwcGluZyBjb21iaW5lZCAqLwor LQl7ICIgXHhmZiAiLCAzLCBGRkZEIH0sCisrCXsgIiBceGZmICIsIDMsIEZGRkQsICIgIiB9LAor IH07CisgCisgc3RhdGljIHZvaWQgdGVzdF9zdHIydXRmOChjb25zdCB2b2lkICpkYXRhKQorIHsK KyAJc2l6ZV90IGk7CisgCistCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc3RyMnV0ZjhfdGVzdHMp IC8KKy0JCQkJc2l6ZW9mKHN0cjJ1dGY4X3Rlc3RzWzBdKTsgaSsrKSB7CistCQljb25zdCBzdHJ1 Y3Qgc3RyMnV0ZjhfZGF0YSAqdGVzdCA9ICZzdHIydXRmOF90ZXN0c1tpXTsKKysJZm9yIChpID0g MDsgaSA8IHNpemVvZih1dGY4X3Rlc3RzKSAvIHNpemVvZih1dGY4X3Rlc3RzWzBdKTsgaSsrKSB7 CisrCQljb25zdCBzdHJ1Y3QgdXRmOF9kYXRhICp0ZXN0ID0gJnV0ZjhfdGVzdHNbaV07CisgCQlj aGFyICpzdHIgPSBzdHIydXRmOCgoY29uc3QgdWludDhfdCAqKSB0ZXN0LT5pbnB1dCwKKyAJCQkJ CQkJCXRlc3QtPmxlbik7CisgCisgCQlhc3NlcnQoc3RyKTsKKy0JCWlmIChzdHJjbXAoc3RyLCB0 ZXN0LT5leHBlY3RlZCkpIHsKKysJCWlmIChzdHJjbXAoc3RyLCB0ZXN0LT5zdHIydXRmOCkpIHsK KyAJCQlwcmludGYoInRlc3QgJXp1OiBleHBlY3RlZCBcIiVzXCIsIGdvdCBcIiVzXCJcbiIsIGks CistCQkJCQkJCXRlc3QtPmV4cGVjdGVkLCBzdHIpOworKwkJCQkJCQl0ZXN0LT5zdHIydXRmOCwg c3RyKTsKKysJCQlmcmVlKHN0cik7CisrCQkJdGVzdGVyX3Rlc3RfZmFpbGVkKCk7CisrCQkJcmV0 dXJuOworKwkJfQorKworKwkJLyogVGhlIHJlc3VsdCBpcyBhbHdheXMgd2VsbC1mb3JtZWQgVVRG LTggKi8KKysJCWFzc2VydChzdHJpc3V0Zjgoc3RyLCBzdHJsZW4oc3RyKSkpOworKworKwkJZnJl ZShzdHIpOworKwl9CisrCisrCXRlc3Rlcl90ZXN0X3Bhc3NlZCgpOworK30KKysKKytzdGF0aWMg dm9pZCB0ZXN0X3N0cnRvdXRmOChjb25zdCB2b2lkICpkYXRhKQorK3sKKysJc2l6ZV90IGk7Cisr CisrCWZvciAoaSA9IDA7IGkgPCBzaXplb2YodXRmOF90ZXN0cykgLyBzaXplb2YodXRmOF90ZXN0 c1swXSk7IGkrKykgeworKwkJY29uc3Qgc3RydWN0IHV0ZjhfZGF0YSAqdGVzdCA9ICZ1dGY4X3Rl c3RzW2ldOworKwkJY2hhciAqc3RyOworKworKwkJLyogc3RydG91dGY4KCkgd29ya3MgaW4gcGxh Y2UsIHNvIGl0IG5lZWRzIGEgd3JpdGFibGUgY29weSAqLworKwkJc3RyID0gbWFsbG9jKHRlc3Qt PmxlbiArIDEpOworKwkJYXNzZXJ0KHN0cik7CisrCQltZW1jcHkoc3RyLCB0ZXN0LT5pbnB1dCwg dGVzdC0+bGVuKTsKKysJCXN0clt0ZXN0LT5sZW5dID0gJ1wwJzsKKysKKysJCWFzc2VydChzdHJ0 b3V0Zjgoc3RyLCB0ZXN0LT5sZW4pID09IHN0cik7CisrCisrCQlpZiAoc3RyY21wKHN0ciwgdGVz dC0+c3RydG91dGY4KSkgeworKwkJCXByaW50ZigidGVzdCAlenU6IGV4cGVjdGVkIFwiJXNcIiwg Z290IFwiJXNcIlxuIiwgaSwKKysJCQkJCQkJdGVzdC0+c3RydG91dGY4LCBzdHIpOworIAkJCWZy ZWUoc3RyKTsKKyAJCQl0ZXN0ZXJfdGVzdF9mYWlsZWQoKTsKKyAJCQlyZXR1cm47CitAQCAtMTc4 LDYgKzIxNCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgCQkJdGVzdF9z dHIydXRmOCwgTlVMTCk7CisgCXRlc3Rlcl9hZGQoIi91dGlsL3N0cjJ1dGY4X251bGwiLCBOVUxM LCBOVUxMLAorIAkJCXRlc3Rfc3RyMnV0ZjhfbnVsbCwgTlVMTCk7CisrCXRlc3Rlcl9hZGQoIi91 dGlsL3N0cnRvdXRmOCIsIE5VTEwsIE5VTEwsCisrCQkJdGVzdF9zdHJ0b3V0ZjgsIE5VTEwpOwor IAorIAlyZXR1cm4gdGVzdGVyX3J1bigpOworIH0KKy0tIAorMi41NS4wCisK