Content-Type: multipart/mixed; boundary="===============0389925964821072896==" MIME-Version: 1.0 From: Jaroslav Skarvada Subject: [Powertop] [Patches] snprintf, PATH_MAX + improvement of handling reporting filenames Date: Tue, 12 May 2015 12:35:58 -0400 Message-ID: <1581639328.16307870.1431448558175.JavaMail.zimbra@redhat.com> In-Reply-To: 55521005.16299399.1431447409161.JavaMail.zimbra@redhat.com To: powertop@lists.01.org List-ID: --===============0389925964821072896== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi, I have noticed there are some sprintf that may lead to buffer overflows, e.g. the following can crash powertop: # powertop --csv=3D`printf 'a%.0s' {1..5000}` I attempted to fix hopefully most of them by converting the code to snprintf. For data returned by kernel it's probably unlikely to cause overflows, but why not cover it all. I also tried to unify buffer sizes for paths/filenames to PATH_MAX. The second patch tries to improve handling of reporting filenames. It works the following way: powertop --html generates 'powertop.html' file powertop --html=3Dmyfile.suffix generates 'myfile.suffix' file powertop -i 2 --html generates 'powertop-TIMESTAMPS.html' files powertop -i 2 --html=3Dmyfile.suffix generates 'myfile-TIMESTAMPS.suffix' files powertop -i 2 --html=3Dmyfile generates 'myfile-TIMESTAMPS' files Similarly for CSV. I think this is more logical behavior regards Jaroslav --===============0389925964821072896== Content-Type: text/x-patch MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Use-PATH_MAX-from-limits.h-and-snprintf-insteaf-of-s.patch" RnJvbSBiMGQ4NDQ3MWMxZDg3ZjEzODZiOTQyMzJhOTM5MmVkNmZlMDA0YmIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/SmFyb3NsYXY9MjA9QzU9QTBrYXJ2YWRhPz0g PGpza2FydmFkQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMTIgTWF5IDIwMTUgMTc6MTk6MzQgKzAy MDAKU3ViamVjdDogW1BBVENIIDEvMl0gVXNlIFBBVEhfTUFYIGZyb20gbGltaXRzLmggYW5kIHNu cHJpbnRmIGluc3RlYWYgb2YKIHNwcmludGYKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKClNpZ25lZC1vZmYtYnk6IEphcm9zbGF2IMWga2FydmFkYSA8anNrYXJ2YWRAcmVkaGF0LmNv bT4KLS0tCiBzcmMvY2FsaWJyYXRlL2NhbGlicmF0ZS5jcHAgICAgfCAyMyArKysrKysrKysrKy0t LS0tLS0tLS0tCiBzcmMvY3B1L2Fic3RyYWN0X2NwdS5jcHAgICAgICAgfCAgOSArKysrKy0tLS0K IHNyYy9jcHUvaW50ZWxfY3B1cy5jcHAgICAgICAgICB8ICA5ICsrKysrLS0tLQogc3JjL2Rldmlj ZXMvYWhjaS5jcHAgICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiBzcmMvZGV2aWNlcy9haGNpLmggICAgICAgICAgICAgfCAgMyArKy0KIHNy Yy9kZXZpY2VzL2Fsc2EuY3BwICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0KIHNyYy9kZXZpY2VzL2Fsc2EuaCAgICAgICAgICAgICB8ICAzICsrLQogc3JjL2Rl dmljZXMvYmFja2xpZ2h0LmNwcCAgICAgIHwgMjMgKysrKysrKysrKystLS0tLS0tLS0tLQogc3Jj L2RldmljZXMvYmFja2xpZ2h0LmggICAgICAgIHwgIDMgKystCiBzcmMvZGV2aWNlcy9pOTE1LWdw dS5jcHAgICAgICAgfCAgMyArKy0KIHNyYy9kZXZpY2VzL25ldHdvcmsuaCAgICAgICAgICB8ICAz ICsrLQogc3JjL2RldmljZXMvcmZraWxsLmNwcCAgICAgICAgIHwgMzcgKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZGV2aWNlcy9yZmtpbGwuaCAgICAgICAgICAgfCAg MyArKy0KIHNyYy9kZXZpY2VzL3J1bnRpbWVfcG0uY3BwICAgICB8IDM1ICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9kZXZpY2VzL3J1bnRpbWVfcG0uaCAgICAgICB8ICAz ICsrLQogc3JjL2RldmljZXMvdGhpbmtwYWQtZmFuLmNwcCAgIHwgIDMgKystCiBzcmMvZGV2aWNl cy90aGlua3BhZC1saWdodC5jcHAgfCAgMyArKy0KIHNyYy9kZXZpY2VzL3VzYi5jcHAgICAgICAg ICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3Jj L2RldmljZXMvdXNiLmggICAgICAgICAgICAgIHwgIDMgKystCiBzcmMvZGV2bGlzdC5jcHAgICAg ICAgICAgICAgICAgfCAxMSArKysrKystLS0tLQogc3JjL2xpYi5jcHAgICAgICAgICAgICAgICAg ICAgIHwgIDUgKysrLS0KIHNyYy9tYWluLmNwcCAgICAgICAgICAgICAgICAgICB8ICA1ICsrKy0t CiBzcmMvbWVhc3VyZW1lbnQvYWNwaS5jcHAgICAgICAgfCAgNSArKystLQogc3JjL21lYXN1cmVt ZW50L3N5c2ZzLmNwcCAgICAgIHwgIDUgKysrLS0KIHNyYy9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMu Y3BwICB8ICAzICsrLQogc3JjL3JlcG9ydC9yZXBvcnQuY3BwICAgICAgICAgIHwgIDkgKysrKyst LS0tCiBzcmMvcmVwb3J0L3JlcG9ydC5oICAgICAgICAgICAgfCAgMyArKy0KIHNyYy90dW5pbmcv cnVudGltZS5jcHAgICAgICAgICB8ICA5ICsrKysrLS0tLQogc3JjL3R1bmluZy9ydW50aW1lLmgg ICAgICAgICAgIHwgIDMgKystCiBzcmMvdHVuaW5nL3R1bmluZ2kyYy5jcHAgICAgICAgfCAzMSAr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy90dW5pbmcvdHVuaW5naTJjLmggICAg ICAgICB8ICAzICsrLQogc3JjL3R1bmluZy90dW5pbmdzeXNmcy5jcHAgICAgIHwgIDcgKysrKy0t LQogc3JjL3R1bmluZy90dW5pbmdzeXNmcy5oICAgICAgIHwgIDMgKystCiBzcmMvdHVuaW5nL3R1 bmluZ3VzYi5jcHAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQog c3JjL3R1bmluZy90dW5pbmd1c2IuaCAgICAgICAgIHwgIDMgKystCiAzNSBmaWxlcyBjaGFuZ2Vk LCAyMjggaW5zZXJ0aW9ucygrKSwgMTk0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9j YWxpYnJhdGUvY2FsaWJyYXRlLmNwcCBiL3NyYy9jYWxpYnJhdGUvY2FsaWJyYXRlLmNwcAppbmRl eCA5OGFiZmU5Li5lYWNhZWVjIDEwMDY0NAotLS0gYS9zcmMvY2FsaWJyYXRlL2NhbGlicmF0ZS5j cHAKKysrIGIvc3JjL2NhbGlicmF0ZS9jYWxpYnJhdGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj aW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPGVycm5v Lmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICIuLi9wYXJhbWV0ZXJzL3BhcmFt ZXRlcnMuaCIKIGV4dGVybiAiQyIgewpAQCAtODcsMTQgKzg4LDE0IEBAIHN0YXRpYyB2b2lkIHJl c3RvcmVfYWxsX3N5c2ZzKHZvaWQpCiAKIHN0YXRpYyB2b2lkIGZpbmRfYWxsX3VzYl9jYWxsYmFj ayhjb25zdCBjaGFyICpkX25hbWUpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZp bGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBmaWxlOwogCi0Jc3ByaW50ZihmaWxlbmFtZSwg Ii9zeXMvYnVzL3VzYi9kZXZpY2VzLyVzL3Bvd2VyL2FjdGl2ZV9kdXJhdGlvbiIsIGRfbmFtZSk7 CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvdXNiL2RldmljZXMvJXMv cG93ZXIvYWN0aXZlX2R1cmF0aW9uIiwgZF9uYW1lKTsKIAlpZiAoYWNjZXNzKGZpbGVuYW1lLCBS X09LKSAhPSAwKQogCQlyZXR1cm47CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvdXNi L2RldmljZXMvJXMvcG93ZXIvaWRWZW5kb3IiLCBkX25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1l LCBQQVRIX01BWCwgIi9zeXMvYnVzL3VzYi9kZXZpY2VzLyVzL3Bvd2VyL2lkVmVuZG9yIiwgZF9u YW1lKTsKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJCWZp bGUuZ2V0bGluZShmaWxlbmFtZSwgNDA5Nik7CkBAIC0xMDMsNyArMTA0LDcgQEAgc3RhdGljIHZv aWQgZmluZF9hbGxfdXNiX2NhbGxiYWNrKGNvbnN0IGNoYXIgKmRfbmFtZSkKIAkJCXJldHVybjsK IAl9CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvdXNiL2RldmljZXMvJXMvcG93ZXIv Y29udHJvbCIsIGRfbmFtZSk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9i dXMvdXNiL2RldmljZXMvJXMvcG93ZXIvY29udHJvbCIsIGRfbmFtZSk7CiAJc2F2ZV9zeXNmcyhm aWxlbmFtZSk7CiAJdXNiX2RldmljZXMucHVzaF9iYWNrKGZpbGVuYW1lKTsKIH0KQEAgLTEyMyw4 ICsxMjQsOCBAQCBzdGF0aWMgdm9pZCBzdXNwZW5kX2FsbF91c2JfZGV2aWNlcyh2b2lkKQogCiBz dGF0aWMgdm9pZCBmaW5kX2FsbF9yZmtpbGxfY2FsbGJhY2soY29uc3QgY2hhciAqZF9uYW1lKQog ewotCWNoYXIgZmlsZW5hbWVbNDA5Nl07Ci0Jc3ByaW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3Mv cmZraWxsLyVzL3NvZnQiLCBkX25hbWUpOworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOworCXNu cHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvY2xhc3MvcmZraWxsLyVzL3NvZnQiLCBk X25hbWUpOwogCWlmIChhY2Nlc3MoZmlsZW5hbWUsIFJfT0spICE9IDApCiAJCXJldHVybjsKIAlz YXZlX3N5c2ZzKGZpbGVuYW1lKTsKQEAgLTE1MywxNCArMTU0LDE0IEBAIHN0YXRpYyB2b2lkIHVu cmZraWxsX2FsbF9yYWRpb3Modm9pZCkKIAogc3RhdGljIHZvaWQgZmluZF9iYWNrbGlnaHRfY2Fs bGJhY2soY29uc3QgY2hhciAqZF9uYW1lKQogewotCWNoYXIgZmlsZW5hbWVbNDA5Nl07Ci0Jc3By aW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3MvYmFja2xpZ2h0LyVzL2JyaWdodG5lc3MiLCBkX25h bWUpOworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRI X01BWCwgIi9zeXMvY2xhc3MvYmFja2xpZ2h0LyVzL2JyaWdodG5lc3MiLCBkX25hbWUpOwogCWlm IChhY2Nlc3MoZmlsZW5hbWUsIFJfT0spICE9IDApCiAJCXJldHVybjsKIAogCXNhdmVfc3lzZnMo ZmlsZW5hbWUpOwogCWJhY2tsaWdodF9kZXZpY2VzLnB1c2hfYmFjayhmaWxlbmFtZSk7Ci0Jc3By aW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3MvYmFja2xpZ2h0LyVzL21heF9icmlnaHRuZXNzIiwg ZF9uYW1lKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2NsYXNzL2JhY2ts aWdodC8lcy9tYXhfYnJpZ2h0bmVzcyIsIGRfbmFtZSk7CiAJYmxtYXggPSByZWFkX3N5c2ZzKGZp bGVuYW1lKTsKIH0KIApAQCAtMTc5LDggKzE4MCw4IEBAIHN0YXRpYyB2b2lkIGxvd2VyX2JhY2ts aWdodCh2b2lkKQogCiBzdGF0aWMgdm9pZCBmaW5kX3Njc2lfbGlua19jYWxsYmFjayhjb25zdCBj aGFyICpkX25hbWUpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKLQlzcHJpbnRmKGZpbGVuYW1l LCAiL3N5cy9jbGFzcy9zY3NpX2hvc3QvJXMvbGlua19wb3dlcl9tYW5hZ2VtZW50X3BvbGljeSIs IGRfbmFtZSk7CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CisJc25wcmludGYoZmlsZW5hbWUs IFBBVEhfTUFYLCAiL3N5cy9jbGFzcy9zY3NpX2hvc3QvJXMvbGlua19wb3dlcl9tYW5hZ2VtZW50 X3BvbGljeSIsIGRfbmFtZSk7CiAJaWYgKGFjY2VzcyhmaWxlbmFtZSwgUl9PSykhPTApCiAJCXJl dHVybjsKIApkaWZmIC0tZ2l0IGEvc3JjL2NwdS9hYnN0cmFjdF9jcHUuY3BwIGIvc3JjL2NwdS9h YnN0cmFjdF9jcHUuY3BwCmluZGV4IGEzYTlmZmEuLjBkMTViM2YgMTAwNjQ0Ci0tLSBhL3NyYy9j cHUvYWJzdHJhY3RfY3B1LmNwcAorKysgYi9zcmMvY3B1L2Fic3RyYWN0X2NwdS5jcHAKQEAgLTI3 LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgImNwdS5oIgog I2luY2x1ZGUgIi4uL2xpYi5oIgogCkBAIC00MzgsMTkgKzQzOSwxOSBAQCB2b2lkIGFic3RyYWN0 X2NwdTo6Y2hhbmdlX2VmZmVjdGl2ZV9mcmVxdWVuY3kodWludDY0X3QgdGltZSwgdWludDY0X3Qg ZnJlcXVlbmN5KQogCiB2b2lkIGFic3RyYWN0X2NwdTo6d2lnZ2xlKHZvaWQpCiB7Ci0JY2hhciBm aWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBpZmls ZTsKIAlvZnN0cmVhbSBvZmlsZTsKIAl1aW50NjRfdCBtaW5mLG1heGY7CiAKIAkvKiB3aWdnbGUg YSBDUFUgc28gdGhhdCB3ZSBoYXZlIGEgcmVjb3JkIG9mIGl0IGF0IHRoZSBzdGFydCBhbmQgZW5k IG9mIHRoZSBwZXJmIHRyYWNlICovCiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9kZXZpY2Vz L3N5c3RlbS9jcHUvY3B1JWkvY3B1ZnJlcS9zY2FsaW5nX21heF9mcmVxIiwgZmlyc3RfY3B1KTsK KwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9j cHUlaS9jcHVmcmVxL3NjYWxpbmdfbWF4X2ZyZXEiLCBmaXJzdF9jcHUpOwogCWlmaWxlLm9wZW4o ZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmaWxlID4+IG1heGY7CiAJaWZpbGUuY2xvc2UoKTsKIAot CXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUlaS9jcHVmcmVx L3NjYWxpbmdfbWluX2ZyZXEiLCBmaXJzdF9jcHUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRI X01BWCwgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdSVpL2NwdWZyZXEvc2NhbGluZ19taW5f ZnJlcSIsIGZpcnN0X2NwdSk7CiAJaWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWZp bGUgPj4gbWluZjsKIAlpZmlsZS5jbG9zZSgpOwpAQCAtNDYxLDcgKzQ2Miw3IEBAIHZvaWQgYWJz dHJhY3RfY3B1Ojp3aWdnbGUodm9pZCkKIAlvZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6Om91dCk7 CiAJb2ZpbGUgPDwgbWluZjsKIAlvZmlsZS5jbG9zZSgpOwotCXNwcmludGYoZmlsZW5hbWUsICIv c3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUlaS9jcHVmcmVxL3NjYWxpbmdfbWF4X2ZyZXEiLCBm aXJzdF9jcHUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvZGV2aWNlcy9z eXN0ZW0vY3B1L2NwdSVpL2NwdWZyZXEvc2NhbGluZ19tYXhfZnJlcSIsIGZpcnN0X2NwdSk7CiAJ b2ZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjpvdXQpOwogCW9maWxlIDw8IG1pbmY7CiAJb2ZpbGUu Y2xvc2UoKTsKZGlmZiAtLWdpdCBhL3NyYy9jcHUvaW50ZWxfY3B1cy5jcHAgYi9zcmMvY3B1L2lu dGVsX2NwdXMuY3BwCmluZGV4IDFmMzY0N2EuLmE1MDUzOWQgMTAwNjQ0Ci0tLSBhL3NyYy9jcHUv aW50ZWxfY3B1cy5jcHAKKysrIGIvc3JjL2NwdS9pbnRlbF9jcHVzLmNwcApAQCAtMzUsNiArMzUs NyBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8 dW5pc3RkLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICIuLi9saWIuaCIKICNp bmNsdWRlICIuLi9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBu aG1fY29yZTo6bmhtX2NvcmUoaW50IG1vZGVsKQogdm9pZCBuaG1fY29yZTo6bWVhc3VyZW1lbnRf c3RhcnQodm9pZCkKIHsKIAlpZnN0cmVhbSBmaWxlOwotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJ Y2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAKIAkvKiB0aGUgYWJzdHJhY3QgZnVuY3Rpb24gbmVl ZHMgdG8gYmUgZmlyc3Qgc2luY2UgaXQgY2xlYXJzIGFsbCBzdGF0ZSAqLwogCWFic3RyYWN0X2Nw dTo6bWVhc3VyZW1lbnRfc3RhcnQoKTsKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lkIG5obV9jb3Jl OjptZWFzdXJlbWVudF9zdGFydCh2b2lkKQogCX0KIAogCi0Jc3ByaW50ZihmaWxlbmFtZSwgIi9z eXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdSVpL2NwdWZyZXEvc3RhdHMvdGltZV9pbl9zdGF0ZSIs IGZpcnN0X2NwdSk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9kZXZpY2Vz L3N5c3RlbS9jcHUvY3B1JWkvY3B1ZnJlcS9zdGF0cy90aW1lX2luX3N0YXRlIiwgZmlyc3RfY3B1 KTsKIAogCWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAKQEAgLTQ5MSw3ICs0OTIsNyBA QCB2b2lkIG5obV9wYWNrYWdlOjptZWFzdXJlbWVudF9lbmQodm9pZCkKIHZvaWQgbmhtX2NwdTo6 bWVhc3VyZW1lbnRfc3RhcnQodm9pZCkKIHsKIAlpZnN0cmVhbSBmaWxlOwotCWNoYXIgZmlsZW5h bWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAKIAljcHVfbGludXg6Om1lYXN1 cmVtZW50X3N0YXJ0KCk7CiAKQEAgLTUwMyw3ICs1MDQsNyBAQCB2b2lkIG5obV9jcHU6Om1lYXN1 cmVtZW50X3N0YXJ0KHZvaWQpCiAKIAlpbnNlcnRfY3N0YXRlKCJhY3RpdmUiLCBfKCJDMCBhY3Rp dmUiKSwgMCwgYXBlcmZfYmVmb3JlLCAxKTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2Rl dmljZXMvc3lzdGVtL2NwdS9jcHUlaS9jcHVmcmVxL3N0YXRzL3RpbWVfaW5fc3RhdGUiLCBmaXJz dF9jcHUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvZGV2aWNlcy9zeXN0 ZW0vY3B1L2NwdSVpL2NwdWZyZXEvc3RhdHMvdGltZV9pbl9zdGF0ZSIsIGZpcnN0X2NwdSk7CiAK IAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCmRpZmYgLS1naXQgYS9zcmMvZGV2aWNl cy9haGNpLmNwcCBiL3NyYy9kZXZpY2VzL2FoY2kuY3BwCmluZGV4IDcyZTg4OWYuLmEzOTRmOTgg MTAwNjQ0Ci0tLSBhL3NyYy9kZXZpY2VzL2FoY2kuY3BwCisrKyBiL3NyYy9kZXZpY2VzL2FoY2ku Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KICNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KIAogCiB1 c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMTMwLDM3ICsxMzEsMzcgQEAgYWhjaTo6YWhjaShjaGFy ICpfbmFtZSwgY2hhciAqcGF0aCk6IGRldmljZSgpCiAKIAlyZWdpc3Rlcl9zeXNmc19wYXRoKHN5 c2ZzX3BhdGgpOwogCi0Jc3ByaW50ZihkZXZuYW1lLCAiYWhjaTolcyIsIF9uYW1lKTsKKwlzbnBy aW50ZihkZXZuYW1lLCAxMjgsICJhaGNpOiVzIiwgX25hbWUpOwogCXN0cm5jcHkobmFtZSwgZGV2 bmFtZSwgc2l6ZW9mKG5hbWUpKTsKIAlhY3RpdmVfaW5kZXggPSBnZXRfcGFyYW1faW5kZXgoImFo Y2ktbGluay1wb3dlci1hY3RpdmUiKTsKIAlwYXJ0aWFsX2luZGV4ID0gZ2V0X3BhcmFtX2luZGV4 KCJhaGNpLWxpbmstcG93ZXItcGFydGlhbCIpOwogCi0Jc3ByaW50ZihidWZmZXIsICIlcy1hY3Rp dmUiLCBuYW1lKTsKKwlzbnByaW50ZihidWZmZXIsIDQwOTYsICIlcy1hY3RpdmUiLCBuYW1lKTsK IAlhY3RpdmVfcmluZGV4ID0gZ2V0X3Jlc3VsdF9pbmRleChidWZmZXIpOwogCi0Jc3ByaW50Zihi dWZmZXIsICIlcy1wYXJ0aWFsIiwgbmFtZSk7CisJc25wcmludGYoYnVmZmVyLCA0MDk2LCAiJXMt cGFydGlhbCIsIG5hbWUpOwogCXBhcnRpYWxfcmluZGV4ID0gZ2V0X3Jlc3VsdF9pbmRleChidWZm ZXIpOwogCi0Jc3ByaW50ZihidWZmZXIsICIlcy1zbHVtYmVyIiwgbmFtZSk7CisJc25wcmludGYo YnVmZmVyLCA0MDk2LCAiJXMtc2x1bWJlciIsIG5hbWUpOwogCXNsdW1iZXJfcmluZGV4ID0gZ2V0 X3Jlc3VsdF9pbmRleChidWZmZXIpOwogCi0Jc3ByaW50ZihidWZmZXIsICIlcy1kZXZzbHAiLCBu YW1lKTsKKwlzbnByaW50ZihidWZmZXIsIDQwOTYsICIlcy1kZXZzbHAiLCBuYW1lKTsKIAlkZXZz bHBfcmluZGV4ID0gZ2V0X3Jlc3VsdF9pbmRleChidWZmZXIpOwogCiAJZGlza25hbWUgPSBtb2Rl bF9uYW1lKHBhdGgsIF9uYW1lKTsKIAogCWlmIChzdHJsZW4oZGlza25hbWUuY19zdHIoKSkgPT0g MCkKLQkJc3ByaW50ZihodW1hbm5hbWUsIF8oIlNBVEEgbGluazogJXMiKSwgX25hbWUpOworCQlz bnByaW50ZihodW1hbm5hbWUsIDQwOTYsIF8oIlNBVEEgbGluazogJXMiKSwgX25hbWUpOwogCWVs c2UKLQkJc3ByaW50ZihodW1hbm5hbWUsIF8oIlNBVEEgZGlzazogJXMiKSwgZGlza25hbWUuY19z dHIoKSk7CisJCXNucHJpbnRmKGh1bWFubmFtZSwgNDA5NiwgXygiU0FUQSBkaXNrOiAlcyIpLCBk aXNrbmFtZS5jX3N0cigpKTsKIH0KIAogdm9pZCBhaGNpOjpzdGFydF9tZWFzdXJlbWVudCh2b2lk KQogewotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJ aWZzdHJlYW0gZmlsZTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9haGNpX2FscG1fYWN0aXZl Iiwgc3lzZnNfcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMvYWhjaV9h bHBtX2FjdGl2ZSIsIHN5c2ZzX3BhdGgpOwogCXRyeSB7CiAJCWZpbGUub3BlbihmaWxlbmFtZSwg aW9zOjppbik7CiAJCWlmIChmaWxlKSB7CkBAIC0xOTUsMzIgKzE5NiwzMiBAQCB2b2lkIGFoY2k6 OnN0YXJ0X21lYXN1cmVtZW50KHZvaWQpCiAKIHZvaWQgYWhjaTo6ZW5kX21lYXN1cmVtZW50KHZv aWQpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsK IAljaGFyIHBvd2VybmFtZVs0MDk2XTsKIAlpZnN0cmVhbSBmaWxlOwogCWRvdWJsZSBwOwogCWRv dWJsZSB0b3RhbDsKIAogCXRyeSB7Ci0JCXNwcmludGYoZmlsZW5hbWUsICIlcy9haGNpX2FscG1f YWN0aXZlIiwgc3lzZnNfcGF0aCk7CisJCXNucHJpbnRmKGZpbGVuYW1lLCA0MDk2LCAiJXMvYWhj aV9hbHBtX2FjdGl2ZSIsIHN5c2ZzX3BhdGgpOwogCQlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6 aW4pOwogCQlpZiAoZmlsZSkgewogCQkJZmlsZSA+PiBlbmRfYWN0aXZlOwogCQl9CiAJCWZpbGUu Y2xvc2UoKTsKLQkJc3ByaW50ZihmaWxlbmFtZSwgIiVzL2FoY2lfYWxwbV9wYXJ0aWFsIiwgc3lz ZnNfcGF0aCk7CisJCXNucHJpbnRmKGZpbGVuYW1lLCA0MDk2LCAiJXMvYWhjaV9hbHBtX3BhcnRp YWwiLCBzeXNmc19wYXRoKTsKIAkJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6OmluKTsKIAkJaWYg KGZpbGUpIHsKIAkJCWZpbGUgPj4gZW5kX3BhcnRpYWw7CiAJCX0KIAkJZmlsZS5jbG9zZSgpOwot CQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMvYWhjaV9hbHBtX3NsdW1iZXIiLCBzeXNmc19wYXRoKTsK KwkJc25wcmludGYoZmlsZW5hbWUsIDQwOTYsICIlcy9haGNpX2FscG1fc2x1bWJlciIsIHN5c2Zz X3BhdGgpOwogCQlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCQlpZiAoZmlsZSkgewog CQkJZmlsZSA+PiBlbmRfc2x1bWJlcjsKIAkJfQogCQlmaWxlLmNsb3NlKCk7Ci0JCXNwcmludGYo ZmlsZW5hbWUsICIlcy9haGNpX2FscG1fZGV2c2xwIiwgc3lzZnNfcGF0aCk7CisJCXNucHJpbnRm KGZpbGVuYW1lLCA0MDk2LCAiJXMvYWhjaV9hbHBtX2RldnNscCIsIHN5c2ZzX3BhdGgpOwogCQlm aWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCQlpZiAoZmlsZSkgewogCQkJZmlsZSA+PiBl bmRfZGV2c2xwOwpAQCAtMjQ0LDI4ICsyNDUsMjggQEAgdm9pZCBhaGNpOjplbmRfbWVhc3VyZW1l bnQodm9pZCkKIAlwID0gKGVuZF9hY3RpdmUgLSBzdGFydF9hY3RpdmUpIC8gdG90YWwgKiAxMDAu MDsKIAlpZiAocCA8IDApCiAJCSBwID0gMDsKLQlzcHJpbnRmKHBvd2VybmFtZSwgIiVzLWFjdGl2 ZSIsIG5hbWUpOworCXNucHJpbnRmKHBvd2VybmFtZSwgNDA5NiwgIiVzLWFjdGl2ZSIsIG5hbWUp OwogCXJlcG9ydF91dGlsaXphdGlvbihwb3dlcm5hbWUsIHApOwogCiAJLyogcGVyY2VudCBpbiBw YXJ0aWFsICovCiAJcCA9IChlbmRfcGFydGlhbCAtIHN0YXJ0X3BhcnRpYWwpIC8gdG90YWwgKiAx MDAuMDsKIAlpZiAocCA8IDApCiAJCSBwID0gMDsKLQlzcHJpbnRmKHBvd2VybmFtZSwgIiVzLXBh cnRpYWwiLCBuYW1lKTsKKwlzbnByaW50Zihwb3dlcm5hbWUsIDQwOTYsICIlcy1wYXJ0aWFsIiwg bmFtZSk7CiAJcmVwb3J0X3V0aWxpemF0aW9uKHBvd2VybmFtZSwgcCk7CiAKIAkvKiBwZXJjZW50 IGluIHNsdW1iZXIgKi8KIAlwID0gKGVuZF9zbHVtYmVyIC0gc3RhcnRfc2x1bWJlcikgLyB0b3Rh bCAqIDEwMC4wOwogCWlmIChwIDwgMCkKIAkJIHAgPSAwOwotCXNwcmludGYocG93ZXJuYW1lLCAi JXMtc2x1bWJlciIsIG5hbWUpOworCXNucHJpbnRmKHBvd2VybmFtZSwgNDA5NiwgIiVzLXNsdW1i ZXIiLCBuYW1lKTsKIAlyZXBvcnRfdXRpbGl6YXRpb24ocG93ZXJuYW1lLCBwKTsKIAogCS8qIHBl cmNlbnQgaW4gZGV2c2xwICovCiAJcCA9IChlbmRfZGV2c2xwIC0gc3RhcnRfZGV2c2xwKSAvIHRv dGFsICogMTAwLjA7CiAJaWYgKHAgPCAwKQogCQkgcCA9IDA7Ci0Jc3ByaW50Zihwb3dlcm5hbWUs ICIlcy1kZXZzbHAiLCBuYW1lKTsKKwlzbnByaW50Zihwb3dlcm5hbWUsIDQwOTYsICIlcy1kZXZz bHAiLCBuYW1lKTsKIAlyZXBvcnRfdXRpbGl6YXRpb24ocG93ZXJuYW1lLCBwKTsKIH0KIApAQCAt MjkxLDcgKzI5Miw3IEBAIHZvaWQgY3JlYXRlX2FsbF9haGNpcyh2b2lkKQogewogCXN0cnVjdCBk aXJlbnQgKmVudHJ5OwogCURJUiAqZGlyOwotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hhciBm aWxlbmFtZVtQQVRIX01BWF07CiAKIAlkaXIgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL3Njc2lfaG9z dC8iKTsKIAlpZiAoIWRpcikKQEAgLTMwNSw3ICszMDYsNyBAQCB2b2lkIGNyZWF0ZV9hbGxfYWhj aXModm9pZCkKIAkJCWJyZWFrOwogCQlpZiAoZW50cnktPmRfbmFtZVswXSA9PSAnLicpCiAJCQlj b250aW51ZTsKLQkJc3ByaW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3Mvc2NzaV9ob3N0LyVzL2Fo Y2lfYWxwbV9hY2NvdW50aW5nIiwgZW50cnktPmRfbmFtZSk7CisJCXNucHJpbnRmKGZpbGVuYW1l LCBQQVRIX01BWCwgIi9zeXMvY2xhc3Mvc2NzaV9ob3N0LyVzL2FoY2lfYWxwbV9hY2NvdW50aW5n IiwgZW50cnktPmRfbmFtZSk7CiAKIAkJY2hlY2tfZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6Omlu KTsKIAkJY2hlY2tfZmlsZS5nZXQoKTsKQEAgLTMxOCw3ICszMTksNyBAQCB2b2lkIGNyZWF0ZV9h bGxfYWhjaXModm9pZCkKIAkJCWNvbnRpbnVlOwogCQlmaWxlIDw8IDEgOwogCQlmaWxlLmNsb3Nl KCk7Ci0JCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2NsYXNzL3Njc2lfaG9zdC8lcyIsIGVudHJ5 LT5kX25hbWUpOworCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2NsYXNzL3Nj c2lfaG9zdC8lcyIsIGVudHJ5LT5kX25hbWUpOwogCiAJCWJsID0gbmV3IGNsYXNzIGFoY2koZW50 cnktPmRfbmFtZSwgZmlsZW5hbWUpOwogCQlhbGxfZGV2aWNlcy5wdXNoX2JhY2soYmwpOwpkaWZm IC0tZ2l0IGEvc3JjL2RldmljZXMvYWhjaS5oIGIvc3JjL2RldmljZXMvYWhjaS5oCmluZGV4IDk5 ODEzZDcuLjc0MzFmYjUgMTAwNjQ0Ci0tLSBhL3NyYy9kZXZpY2VzL2FoY2kuaAorKysgYi9zcmMv ZGV2aWNlcy9haGNpLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogCiAjaW5jbHVkZSA8c3RyaW5nPgor I2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgImRldmljZS5oIgogI2luY2x1ZGUgIi4uL3Bh cmFtZXRlcnMvcGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPHN0ZGludC5oPgpAQCAtMzYsNyArMzcs NyBAQCBjbGFzcyBhaGNpOiBwdWJsaWMgZGV2aWNlIHsKIAl1aW50NjRfdCBzdGFydF9wYXJ0aWFs LCBlbmRfcGFydGlhbDsKIAl1aW50NjRfdCBzdGFydF9zbHVtYmVyLCBlbmRfc2x1bWJlcjsKIAl1 aW50NjRfdCBzdGFydF9kZXZzbHAsIGVuZF9kZXZzbHA7Ci0JY2hhciBzeXNmc19wYXRoWzQwOTZd OworCWNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07CiAJY2hhciBuYW1lWzQwOTZdOwogCWludCBw YXJ0aWFsX3JpbmRleDsKIAlpbnQgYWN0aXZlX3JpbmRleDsKZGlmZiAtLWdpdCBhL3NyYy9kZXZp Y2VzL2Fsc2EuY3BwIGIvc3JjL2RldmljZXMvYWxzYS5jcHAKaW5kZXggYTFmY2E3MS4uOTYxYTll NSAxMDA2NDQKLS0tIGEvc3JjL2RldmljZXMvYWxzYS5jcHAKKysrIGIvc3JjL2RldmljZXMvYWxz YS5jcHAKQEAgLTUzLDQ3ICs1Myw0NyBAQCBhbHNhOjphbHNhKGNvbnN0IGNoYXIgKl9uYW1lLCBj b25zdCBjaGFyICpwYXRoKTogZGV2aWNlKCkKIAlzdGFydF9pbmFjdGl2ZSA9IDA7CiAJc3RybmNw eShzeXNmc19wYXRoLCBwYXRoLCBzaXplb2Yoc3lzZnNfcGF0aCkpOwogCi0Jc3ByaW50ZihkZXZu YW1lLCAiYWxzYTolcyIsIF9uYW1lKTsKLQlzcHJpbnRmKGh1bWFubmFtZSwgImFsc2E6JXMiLCBf bmFtZSk7CisJc25wcmludGYoZGV2bmFtZSwgNDA5NiwgImFsc2E6JXMiLCBfbmFtZSk7CisJc25w cmludGYoaHVtYW5uYW1lLCA0MDk2LCAiYWxzYTolcyIsIF9uYW1lKTsKIAlzdHJuY3B5KG5hbWUs IGRldm5hbWUsIHNpemVvZihuYW1lKSk7CiAJcmluZGV4ID0gZ2V0X3Jlc3VsdF9pbmRleChuYW1l KTsKIAogCWd1aWx0eVswXSA9IDA7CiAJbW9kZWxbMF0gPSAwOwogCXZlbmRvclswXSA9IDA7Ci0J c3ByaW50ZihkZXZuYW1lLCAiJXMvbW9kZWxuYW1lIiwgcGF0aCk7CisJc25wcmludGYoZGV2bmFt ZSwgNDA5NiwgIiVzL21vZGVsbmFtZSIsIHBhdGgpOwogCWZpbGUub3BlbihkZXZuYW1lKTsKIAlp ZiAoZmlsZSkgewogCQlmaWxlLmdldGxpbmUobW9kZWwsIDQwOTYpOwogCQlmaWxlLmNsb3NlKCk7 CiAJfQotCXNwcmludGYoZGV2bmFtZSwgIiVzL3ZlbmRvcl9uYW1lIiwgcGF0aCk7CisJc25wcmlu dGYoZGV2bmFtZSwgNDA5NiwgIiVzL3ZlbmRvcl9uYW1lIiwgcGF0aCk7CiAJZmlsZS5vcGVuKGRl dm5hbWUpOwogCWlmIChmaWxlKSB7CiAJCWZpbGUuZ2V0bGluZSh2ZW5kb3IsIDQwOTYpOwogCQlm aWxlLmNsb3NlKCk7CiAJfQogCWlmIChzdHJsZW4obW9kZWwpICYmIHN0cmxlbih2ZW5kb3IpKQot CQlzcHJpbnRmKGh1bWFubmFtZSwgXygiQXVkaW8gY29kZWMgJXM6ICVzICglcykiKSwgbmFtZSwg bW9kZWwsIHZlbmRvcik7CisJCXNucHJpbnRmKGh1bWFubmFtZSwgNDA5NiwgXygiQXVkaW8gY29k ZWMgJXM6ICVzICglcykiKSwgbmFtZSwgbW9kZWwsIHZlbmRvcik7CiAJZWxzZSBpZiAoc3RybGVu KG1vZGVsKSkKLQkJc3ByaW50ZihodW1hbm5hbWUsIF8oIkF1ZGlvIGNvZGVjICVzOiAlcyIpLCBf bmFtZSwgbW9kZWwpOworCQlzbnByaW50ZihodW1hbm5hbWUsIDQwOTYsIF8oIkF1ZGlvIGNvZGVj ICVzOiAlcyIpLCBfbmFtZSwgbW9kZWwpOwogCWVsc2UgaWYgKHN0cmxlbih2ZW5kb3IpKQotCQlz cHJpbnRmKGh1bWFubmFtZSwgXygiQXVkaW8gY29kZWMgJXM6ICVzIiksIF9uYW1lLCB2ZW5kb3Ip OworCQlzbnByaW50ZihodW1hbm5hbWUsIDQwOTYsIF8oIkF1ZGlvIGNvZGVjICVzOiAlcyIpLCBf bmFtZSwgdmVuZG9yKTsKIH0KIAogdm9pZCBhbHNhOjpzdGFydF9tZWFzdXJlbWVudCh2b2lkKQog ewotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJaWZz dHJlYW0gZmlsZTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9wb3dlcl9vZmZfYWNjdCIsIHN5 c2ZzX3BhdGgpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIiVzL3Bvd2VyX29mZl9h Y2N0Iiwgc3lzZnNfcGF0aCk7CiAJdHJ5IHsKIAkJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6Omlu KTsKIAkJaWYgKGZpbGUpIHsKIAkJCWZpbGUgPj4gc3RhcnRfaW5hY3RpdmU7CiAJCX0KIAkJZmls ZS5jbG9zZSgpOwotCQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMvcG93ZXJfb25fYWNjdCIsIHN5c2Zz X3BhdGgpOworCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9wb3dlcl9vbl9hY2N0 Iiwgc3lzZnNfcGF0aCk7CiAJCWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAKIAkJaWYg KGZpbGUpIHsKQEAgLTEwOCwxOCArMTA4LDE4IEBAIHZvaWQgYWxzYTo6c3RhcnRfbWVhc3VyZW1l bnQodm9pZCkKIAogdm9pZCBhbHNhOjplbmRfbWVhc3VyZW1lbnQodm9pZCkKIHsKLQljaGFyIGZp bGVuYW1lWzQwOTZdOworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwogCWlmc3RyZWFtIGZpbGU7 CiAJZG91YmxlIHA7CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMvcG93ZXJfb2ZmX2FjY3QiLCBz eXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9wb3dlcl9vZmZf YWNjdCIsIHN5c2ZzX3BhdGgpOwogCXRyeSB7CiAJCWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjpp bik7CiAJCWlmIChmaWxlKSB7CiAJCQlmaWxlID4+IGVuZF9pbmFjdGl2ZTsKIAkJfQogCQlmaWxl LmNsb3NlKCk7Ci0JCXNwcmludGYoZmlsZW5hbWUsICIlcy9wb3dlcl9vbl9hY2N0Iiwgc3lzZnNf cGF0aCk7CisJCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIiVzL3Bvd2VyX29uX2FjY3Qi LCBzeXNmc19wYXRoKTsKIAkJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6OmluKTsKIAogCQlpZiAo ZmlsZSkgewpAQCAtMTUyLDE3ICsxNTIsMTcgQEAgY29uc3QgY2hhciAqIGFsc2E6OmRldmljZV9u YW1lKHZvaWQpCiAKIHN0YXRpYyB2b2lkIGNyZWF0ZV9hbGxfYWxzYV9jYWxsYmFjayhjb25zdCBj aGFyICpkX25hbWUpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BB VEhfTUFYXTsKIAljbGFzcyBhbHNhICpibDsKIAogCWlmIChzdHJuY21wKGRfbmFtZSwgImh3QyIs IDMpICE9IDApCiAJCXJldHVybjsKIAotCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2NsYXNzL3Nv dW5kL2NhcmQwLyVzL3Bvd2VyX29uX2FjY3QiLCBkX25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1l LCBQQVRIX01BWCwgIi9zeXMvY2xhc3Mvc291bmQvY2FyZDAvJXMvcG93ZXJfb25fYWNjdCIsIGRf bmFtZSk7CiAJaWYgKGFjY2VzcyhmaWxlbmFtZSwgUl9PSykgIT0gMCkKIAkJcmV0dXJuOwogCi0J c3ByaW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3Mvc291bmQvY2FyZDAvJXMiLCBkX25hbWUpOwor CXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvY2xhc3Mvc291bmQvY2FyZDAvJXMi LCBkX25hbWUpOwogCWJsID0gbmV3IGNsYXNzIGFsc2EoZF9uYW1lLCBmaWxlbmFtZSk7CiAJYWxs X2RldmljZXMucHVzaF9iYWNrKGJsKTsKIAlyZWdpc3Rlcl9wYXJhbWV0ZXIoImFsc2EtY29kZWMt cG93ZXIiLCAwLjUpOwpkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMvYWxzYS5oIGIvc3JjL2Rldmlj ZXMvYWxzYS5oCmluZGV4IGY3YjRiOTcuLmI2ODIwM2YgMTAwNjQ0Ci0tLSBhL3NyYy9kZXZpY2Vz L2Fsc2EuaAorKysgYi9zcmMvZGV2aWNlcy9hbHNhLmgKQEAgLTMwLDExICszMCwxMiBAQAogI2lu Y2x1ZGUgIi4uL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5oIgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+ CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKIGNsYXNzIGFsc2E6IHB1YmxpYyBkZXZpY2UgewogCXVp bnQ2NF90IHN0YXJ0X2FjdGl2ZSwgZW5kX2FjdGl2ZTsKIAl1aW50NjRfdCBzdGFydF9pbmFjdGl2 ZSwgZW5kX2luYWN0aXZlOwotCWNoYXIgc3lzZnNfcGF0aFs0MDk2XTsKKwljaGFyIHN5c2ZzX3Bh dGhbUEFUSF9NQVhdOwogCWNoYXIgbmFtZVs0MDk2XTsKIAljaGFyIGh1bWFubmFtZVs0MDk2XTsK IAljaGFyIHRlbXBfYnVmWzQwOTZdOwpkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMvYmFja2xpZ2h0 LmNwcCBiL3NyYy9kZXZpY2VzL2JhY2tsaWdodC5jcHAKaW5kZXggNzNiZGFjOS4uZDEyY2Y5OCAx MDA2NDQKLS0tIGEvc3JjL2RldmljZXMvYmFja2xpZ2h0LmNwcAorKysgYi9zcmMvZGV2aWNlcy9i YWNrbGlnaHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxsaW1pdHMu aD4KIAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNTQsMTcgKzU1LDE3IEBAIGJhY2tsaWdo dDo6YmFja2xpZ2h0KGNvbnN0IGNoYXIgKl9uYW1lLCBjb25zdCBjaGFyICpwYXRoKTogZGV2aWNl KCkKIAogdm9pZCBiYWNrbGlnaHQ6OnN0YXJ0X21lYXN1cmVtZW50KHZvaWQpCiB7Ci0JY2hhciBm aWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBmaWxl OwogCi0Jc3ByaW50ZihmaWxlbmFtZSwgIiVzL21heF9icmlnaHRuZXNzIiwgc3lzZnNfcGF0aCk7 CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMvbWF4X2JyaWdodG5lc3MiLCBzeXNm c19wYXRoKTsKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJ CWZpbGUgPj4gbWF4X2xldmVsOwogCX0KIAlmaWxlLmNsb3NlKCk7CiAKLQlzcHJpbnRmKGZpbGVu YW1lLCAiJXMvYWN0dWFsX2JyaWdodG5lc3MiLCBzeXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxl bmFtZSwgUEFUSF9NQVgsICIlcy9hY3R1YWxfYnJpZ2h0bmVzcyIsIHN5c2ZzX3BhdGgpOwogCWZp bGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWYgKGZpbGUpIHsKIAkJZmlsZSA+PiBzdGFy dF9sZXZlbDsKQEAgLTc2LDcgKzc3LDcgQEAgc3RhdGljIGludCBkcG1zX3NjcmVlbl9vbih2b2lk KQogewogCURJUiAqZGlyOwogCXN0cnVjdCBkaXJlbnQgKmVudHJ5OwotCWNoYXIgZmlsZW5hbWVb NDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJY2hhciBsaW5lWzQwOTZdOwogCWlm c3RyZWFtIGZpbGU7CiAKQEAgLTkwLDcgKzkxLDcgQEAgc3RhdGljIGludCBkcG1zX3NjcmVlbl9v bih2b2lkKQogCiAJCWlmIChzdHJuY21wKGVudHJ5LT5kX25hbWUsICJjYXJkIiwgNCkgIT0gMCkK IAkJCWNvbnRpbnVlOwotCQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9jbGFzcy9kcm0vY2FyZDAv JXMvZW5hYmxlZCIsIGVudHJ5LT5kX25hbWUpOworCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9N QVgsICIvc3lzL2NsYXNzL2RybS9jYXJkMC8lcy9lbmFibGVkIiwgZW50cnktPmRfbmFtZSk7CiAJ CWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJCWlmICghZmlsZSkKIAkJCWNvbnRpbnVl OwpAQCAtOTgsNyArOTksNyBAQCBzdGF0aWMgaW50IGRwbXNfc2NyZWVuX29uKHZvaWQpCiAJCWZp bGUuY2xvc2UoKTsKIAkJaWYgKHN0cmNtcChsaW5lLCAiZW5hYmxlZCIpICE9IDApCiAJCQljb250 aW51ZTsKLQkJc3ByaW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3MvZHJtL2NhcmQwLyVzL2RwbXMi LCBlbnRyeS0+ZF9uYW1lKTsKKwkJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9j bGFzcy9kcm0vY2FyZDAvJXMvZHBtcyIsIGVudHJ5LT5kX25hbWUpOwogCQlmaWxlLm9wZW4oZmls ZW5hbWUsIGlvczo6aW4pOwogCQlpZiAoIWZpbGUpCiAJCQljb250aW51ZTsKQEAgLTExNSwxMyAr MTE2LDEzIEBAIHN0YXRpYyBpbnQgZHBtc19zY3JlZW5fb24odm9pZCkKIAogdm9pZCBiYWNrbGln aHQ6OmVuZF9tZWFzdXJlbWVudCh2b2lkKQogewotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hh ciBmaWxlbmFtZVtQQVRIX01BWF07CiAJY2hhciBwb3dlcm5hbWVbNDA5Nl07CiAJaWZzdHJlYW0g ZmlsZTsKIAlkb3VibGUgcDsKIAlpbnQgX2JhY2tsaWdodCA9IDA7CiAKLQlzcHJpbnRmKGZpbGVu YW1lLCAiJXMvYWN0dWFsX2JyaWdodG5lc3MiLCBzeXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxl bmFtZSwgUEFUSF9NQVgsICIlcy9hY3R1YWxfYnJpZ2h0bmVzcyIsIHN5c2ZzX3BhdGgpOwogCWZp bGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWYgKGZpbGUpIHsKIAkJZmlsZSA+PiBlbmRf bGV2ZWw7CkBAIC0xMzYsNyArMTM3LDcgQEAgdm9pZCBiYWNrbGlnaHQ6OmVuZF9tZWFzdXJlbWVu dCh2b2lkKQogCX0KIAogCXJlcG9ydF91dGlsaXphdGlvbihuYW1lLCBwKTsKLQlzcHJpbnRmKHBv d2VybmFtZSwgIiVzLXBvd2VyIiwgbmFtZSk7CisJc25wcmludGYocG93ZXJuYW1lLCA0MDk2LCAi JXMtcG93ZXIiLCBuYW1lKTsKIAlyZXBvcnRfdXRpbGl6YXRpb24ocG93ZXJuYW1lLCBfYmFja2xp Z2h0KTsKIH0KIApAQCAtMTU3LDggKzE1OCw4IEBAIGNvbnN0IGNoYXIgKiBiYWNrbGlnaHQ6OmRl dmljZV9uYW1lKHZvaWQpCiBzdGF0aWMgdm9pZCBjcmVhdGVfYWxsX2JhY2tsaWdodHNfY2FsbGJh Y2soY29uc3QgY2hhciAqZF9uYW1lKQogewogCWNsYXNzIGJhY2tsaWdodCAqYmw7Ci0JY2hhciBm aWxlbmFtZVs0MDk2XTsKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9jbGFzcy9iYWNrbGlnaHQv JXMiLCBkX25hbWUpOworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOworCXNucHJpbnRmKGZpbGVu YW1lLCBQQVRIX01BWCwgIi9zeXMvY2xhc3MvYmFja2xpZ2h0LyVzIiwgZF9uYW1lKTsKIAlibCA9 IG5ldyBjbGFzcyBiYWNrbGlnaHQoZF9uYW1lLCBmaWxlbmFtZSk7CiAJYWxsX2RldmljZXMucHVz aF9iYWNrKGJsKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9kZXZpY2VzL2JhY2tsaWdodC5oIGIvc3Jj L2RldmljZXMvYmFja2xpZ2h0LmgKaW5kZXggM2Q1Mzc3YS4uMWRhYzc3OCAxMDA2NDQKLS0tIGEv c3JjL2RldmljZXMvYmFja2xpZ2h0LmgKKysrIGIvc3JjL2RldmljZXMvYmFja2xpZ2h0LmgKQEAg LTI1LDEzICsyNSwxNCBAQAogI2lmbmRlZiBfSU5DTFVERV9HVUFSRF9CQUNLTElHSFRfSAogI2Rl ZmluZSBfSU5DTFVERV9HVUFSRF9CQUNLTElHSFRfSAogCisjaW5jbHVkZSA8bGltaXRzLmg+CiAK ICNpbmNsdWRlICJkZXZpY2UuaCIKIAogY2xhc3MgYmFja2xpZ2h0OiBwdWJsaWMgZGV2aWNlIHsK IAlpbnQgbWluX2xldmVsLCBtYXhfbGV2ZWw7CiAJaW50IHN0YXJ0X2xldmVsLCBlbmRfbGV2ZWw7 Ci0JY2hhciBzeXNmc19wYXRoWzQwOTZdOworCWNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07CiAJ Y2hhciBuYW1lWzQwOTZdOwogCWludCByX2luZGV4OwogCWludCByX2luZGV4X3Bvd2VyOwpkaWZm IC0tZ2l0IGEvc3JjL2RldmljZXMvaTkxNS1ncHUuY3BwIGIvc3JjL2RldmljZXMvaTkxNS1ncHUu Y3BwCmluZGV4IGEyY2ZhYTUuLmM2M2UxMWYgMTAwNjQ0Ci0tLSBhL3NyYy9kZXZpY2VzL2k5MTUt Z3B1LmNwcAorKysgYi9zcmMvZGV2aWNlcy9pOTE1LWdwdS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDx1 bmlzdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KIAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpA QCAtNzMsNyArNzQsNyBAQCBkb3VibGUgaTkxNWdwdTo6dXRpbGl6YXRpb24odm9pZCkKIAogdm9p ZCBjcmVhdGVfaTkxNV9ncHUodm9pZCkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZdOworCWNoYXIg ZmlsZW5hbWVbUEFUSF9NQVhdOwogCWNsYXNzIGk5MTVncHUgKmdwdTsKIAlncHVfcmFwbF9kZXZp Y2UgKnJhcGxfZGV2OwogCmRpZmYgLS1naXQgYS9zcmMvZGV2aWNlcy9uZXR3b3JrLmggYi9zcmMv ZGV2aWNlcy9uZXR3b3JrLmgKaW5kZXggNDVkYzEzMC4uN2ZiNGNjNiAxMDA2NDQKLS0tIGEvc3Jj L2RldmljZXMvbmV0d29yay5oCisrKyBiL3NyYy9kZXZpY2VzL25ldHdvcmsuaApAQCAtMjYsNiAr MjYsNyBAQAogI2RlZmluZSBfSU5DTFVERV9HVUFSRF9ORVRXT1JLX0gKIAogI2luY2x1ZGUgPHN5 cy90aW1lLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICJkZXZpY2UuaCIKICNp bmNsdWRlICIuLi9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuaCIKQEAgLTM4LDcgKzM5LDcgQEAgY2xh c3MgbmV0d29yazogcHVibGljIGRldmljZSB7CiAJaW50IHN0YXJ0X3NwZWVkOyAvKiAwIGlzICJu byBsaW5rIiAqLwogCWludCBlbmRfc3BlZWQ7IC8qIDAgaXMgIm5vIGxpbmsiICovCiAKLQljaGFy IHN5c2ZzX3BhdGhbNDA5Nl07CisJY2hhciBzeXNmc19wYXRoW1BBVEhfTUFYXTsKIAljaGFyIG5h bWVbNDA5Nl07CiAJY2hhciBodW1hbm5hbWVbNDA5Nl07CiAJaW50IGluZGV4X3VwOwpkaWZmIC0t Z2l0IGEvc3JjL2RldmljZXMvcmZraWxsLmNwcCBiL3NyYy9kZXZpY2VzL3Jma2lsbC5jcHAKaW5k ZXggMDFhZWMyMy4uN2RlYTEyZSAxMDA2NDQKLS0tIGEvc3JjL2RldmljZXMvcmZraWxsLmNwcAor KysgYi9zcmMvZGV2aWNlcy9yZmtpbGwuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8bGliZ2VuLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+Cisj aW5jbHVkZSA8bGltaXRzLmg+CiAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTQzLDcgKzQ0 LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHJma2lsbDo6cmZraWxsKGNoYXIgKl9uYW1lLCBj aGFyICpwYXRoKTogZGV2aWNlKCkKIHsKIAljaGFyIGxpbmVbNDA5Nl07Ci0JY2hhciBmaWxlbmFt ZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAljaGFyIGRldm5hbWVbMTI4XTsK IAlzdGFydF9zb2Z0ID0gMDsKIAlzdGFydF9oYXJkID0gMDsKQEAgLTUxLDI3ICs1MiwyNyBAQCBy ZmtpbGw6OnJma2lsbChjaGFyICpfbmFtZSwgY2hhciAqcGF0aCk6IGRldmljZSgpCiAJZW5kX2hh cmQgPSAwOwogCXN0cm5jcHkoc3lzZnNfcGF0aCwgcGF0aCwgc2l6ZW9mKHN5c2ZzX3BhdGgpKTsK IAlyZWdpc3Rlcl9zeXNmc19wYXRoKHN5c2ZzX3BhdGgpOwotCXNwcmludGYoZGV2bmFtZSwgInJh ZGlvOiVzIiwgX25hbWUpOwotCXNwcmludGYoaHVtYW5uYW1lLCAicmFkaW86JXMiLCBfbmFtZSk7 CisJc25wcmludGYoZGV2bmFtZSwgMTI4LCAicmFkaW86JXMiLCBfbmFtZSk7CisJc25wcmludGYo aHVtYW5uYW1lLCA0MDk2LCAicmFkaW86JXMiLCBfbmFtZSk7CiAJc3RybmNweShuYW1lLCBkZXZu YW1lLCBzaXplb2YobmFtZSkpOwogCXJlZ2lzdGVyX3BhcmFtZXRlcihkZXZuYW1lKTsKIAlpbmRl eCA9IGdldF9wYXJhbV9pbmRleChkZXZuYW1lKTsKIAlyaW5kZXggPSBnZXRfcmVzdWx0X2luZGV4 KG5hbWUpOwogCiAJbWVtc2V0KGxpbmUsIDAsIDQwOTYpOwotCXNwcmludGYoZmlsZW5hbWUsICIl cy9kZXZpY2UvZHJpdmVyIiwgcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAi JXMvZGV2aWNlL2RyaXZlciIsIHBhdGgpOwogCWlmIChyZWFkbGluayhmaWxlbmFtZSwgbGluZSwg NDA5NikgPiAwKSB7Ci0JCXNwcmludGYoaHVtYW5uYW1lLCBfKCJSYWRpbyBkZXZpY2U6ICVzIiks IGJhc2VuYW1lKGxpbmUpKTsKKwkJc25wcmludGYoaHVtYW5uYW1lLCA0MDk2LCBfKCJSYWRpbyBk ZXZpY2U6ICVzIiksIGJhc2VuYW1lKGxpbmUpKTsKIAl9Ci0Jc3ByaW50ZihmaWxlbmFtZSwgIiVz L2RldmljZS9kZXZpY2UvZHJpdmVyIiwgcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhf TUFYLCAiJXMvZGV2aWNlL2RldmljZS9kcml2ZXIiLCBwYXRoKTsKIAlpZiAocmVhZGxpbmsoZmls ZW5hbWUsIGxpbmUsIDQwOTYpID4gMCkgewotCQlzcHJpbnRmKGh1bWFubmFtZSwgXygiUmFkaW8g ZGV2aWNlOiAlcyIpLCBiYXNlbmFtZShsaW5lKSk7CisJCXNucHJpbnRmKGh1bWFubmFtZSwgNDA5 NiwgXygiUmFkaW8gZGV2aWNlOiAlcyIpLCBiYXNlbmFtZShsaW5lKSk7CiAJfQogfQogCiB2b2lk IHJma2lsbDo6c3RhcnRfbWVhc3VyZW1lbnQodm9pZCkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZd OworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwogCWlmc3RyZWFtIGZpbGU7CiAKIAlzdGFydF9o YXJkID0gMTsKQEAgLTc5LDE0ICs4MCwxNCBAQCB2b2lkIHJma2lsbDo6c3RhcnRfbWVhc3VyZW1l bnQodm9pZCkKIAllbmRfaGFyZCA9IDE7CiAJZW5kX3NvZnQgPSAxOwogCi0Jc3ByaW50ZihmaWxl bmFtZSwgIiVzL2hhcmQiLCBzeXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9N QVgsICIlcy9oYXJkIiwgc3lzZnNfcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6Omlu KTsKIAlpZiAoZmlsZSkgewogCQlmaWxlID4+IHN0YXJ0X2hhcmQ7CiAJfQogCWZpbGUuY2xvc2Uo KTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9zb2Z0Iiwgc3lzZnNfcGF0aCk7CisJc25wcmlu dGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMvc29mdCIsIHN5c2ZzX3BhdGgpOwogCWZpbGUub3Bl bihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWYgKGZpbGUpIHsKIAkJZmlsZSA+PiBzdGFydF9zb2Z0 OwpAQCAtOTYsMTYgKzk3LDE2IEBAIHZvaWQgcmZraWxsOjpzdGFydF9tZWFzdXJlbWVudCh2b2lk KQogCiB2b2lkIHJma2lsbDo6ZW5kX21lYXN1cmVtZW50KHZvaWQpCiB7Ci0JY2hhciBmaWxlbmFt ZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBmaWxlOwogCi0J c3ByaW50ZihmaWxlbmFtZSwgIiVzL2hhcmQiLCBzeXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxl bmFtZSwgUEFUSF9NQVgsICIlcy9oYXJkIiwgc3lzZnNfcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVu YW1lLCBpb3M6OmluKTsKIAlpZiAoZmlsZSkgewogCQlmaWxlID4+IGVuZF9oYXJkOwogCX0KIAlm aWxlLmNsb3NlKCk7Ci0Jc3ByaW50ZihmaWxlbmFtZSwgIiVzL3NvZnQiLCBzeXNmc19wYXRoKTsK KwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9zb2Z0Iiwgc3lzZnNfcGF0aCk7CiAJ ZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6OmluKTsKIAlpZiAoZmlsZSkgewogCQlmaWxlID4+IGVu ZF9zb2Z0OwpAQCAtMTM3LDIwICsxMzgsMjAgQEAgY29uc3QgY2hhciAqIHJma2lsbDo6ZGV2aWNl X25hbWUodm9pZCkKIAogc3RhdGljIHZvaWQgY3JlYXRlX2FsbF9yZmtpbGxzX2NhbGxiYWNrKGNv bnN0IGNoYXIgKmRfbmFtZSkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZdOwotCWNoYXIgbmFtZVs0 MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKKwljaGFyIG5hbWVbNDA5Nl0gPSB7MH07 CiAJY2xhc3MgcmZraWxsICpibDsKIAlpZnN0cmVhbSBmaWxlOwogCi0Jc3ByaW50ZihmaWxlbmFt ZSwgIi9zeXMvY2xhc3MvcmZraWxsLyVzL25hbWUiLCBkX25hbWUpOwotCXN0cmNweShuYW1lLCBk X25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvY2xhc3MvcmZraWxs LyVzL25hbWUiLCBkX25hbWUpOworCXN0cm5jcHkobmFtZSwgZF9uYW1lLCA0MDk1KTsKIAlmaWxl Lm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJCWZpbGUuZ2V0bGluZShu YW1lLCAxMDApOwogCQlmaWxlLmNsb3NlKCk7CiAJfQogCi0Jc3ByaW50ZihmaWxlbmFtZSwgIi9z eXMvY2xhc3MvcmZraWxsLyVzIiwgZF9uYW1lKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9N QVgsICIvc3lzL2NsYXNzL3Jma2lsbC8lcyIsIGRfbmFtZSk7CiAJYmwgPSBuZXcgY2xhc3MgcmZr aWxsKG5hbWUsIGZpbGVuYW1lKTsKIAlhbGxfZGV2aWNlcy5wdXNoX2JhY2soYmwpOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2RldmljZXMvcmZraWxsLmggYi9zcmMvZGV2aWNlcy9yZmtpbGwuaAppbmRl eCBjMjRlMDNiLi40MjliYTE4IDEwMDY0NAotLS0gYS9zcmMvZGV2aWNlcy9yZmtpbGwuaAorKysg Yi9zcmMvZGV2aWNlcy9yZmtpbGwuaApAQCAtMjUsNiArMjUsNyBAQAogI2lmbmRlZiBfSU5DTFVE RV9HVUFSRF9SRktJTExfSAogI2RlZmluZSBfSU5DTFVERV9HVUFSRF9SRktJTExfSAogCisjaW5j bHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICJkZXZpY2UuaCIKICNpbmNsdWRlICIuLi9wYXJh bWV0ZXJzL3BhcmFtZXRlcnMuaCIKQEAgLTMyLDcgKzMzLDcgQEAKIGNsYXNzIHJma2lsbDogcHVi bGljIGRldmljZSB7CiAJaW50IHN0YXJ0X3NvZnQsIGVuZF9zb2Z0OwogCWludCBzdGFydF9oYXJk LCBlbmRfaGFyZDsKLQljaGFyIHN5c2ZzX3BhdGhbNDA5Nl07CisJY2hhciBzeXNmc19wYXRoW1BB VEhfTUFYXTsKIAljaGFyIG5hbWVbNDA5Nl07CiAJY2hhciBodW1hbm5hbWVbNDA5Nl07CiAJaW50 IGluZGV4OwpkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMvcnVudGltZV9wbS5jcHAgYi9zcmMvZGV2 aWNlcy9ydW50aW1lX3BtLmNwcAppbmRleCBlZWRlMDI3Li4wZjljNWE0IDEwMDY0NAotLS0gYS9z cmMvZGV2aWNlcy9ydW50aW1lX3BtLmNwcAorKysgYi9zcmMvZGV2aWNlcy9ydW50aW1lX3BtLmNw cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgogI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5j bHVkZSAiLi4vcGFyYW1ldGVycy9wYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiLi4vbGliLmgiCkBA IC01Nyw3ICs1OCw3IEBAIHJ1bnRpbWVfcG1kZXZpY2U6OnJ1bnRpbWVfcG1kZXZpY2UoY29uc3Qg Y2hhciAqX25hbWUsIGNvbnN0IGNoYXIgKnBhdGgpIDogZGV2aWNlCiAKIHZvaWQgcnVudGltZV9w bWRldmljZTo6c3RhcnRfbWVhc3VyZW1lbnQodm9pZCkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZd OworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwogCWlmc3RyZWFtIGZpbGU7CiAKIAliZWZvcmVf c3VzcGVuZGVkX3RpbWUgPSAwOwpAQCAtNjUsMTQgKzY2LDE0IEBAIHZvaWQgcnVudGltZV9wbWRl dmljZTo6c3RhcnRfbWVhc3VyZW1lbnQodm9pZCkKICAgICAgICAgYWZ0ZXJfc3VzcGVuZGVkX3Rp bWUgPSAwOwogCWFmdGVyX2FjdGl2ZV90aW1lID0gMDsKIAotCXNwcmludGYoZmlsZW5hbWUsICIl cy9wb3dlci9ydW50aW1lX3N1c3BlbmRlZF90aW1lIiwgc3lzZnNfcGF0aCk7CisJc25wcmludGYo ZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMvcG93ZXIvcnVudGltZV9zdXNwZW5kZWRfdGltZSIsIHN5 c2ZzX3BhdGgpOwogCWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWYgKCFmaWxlKQog CQlyZXR1cm47CiAJZmlsZSA+PiBiZWZvcmVfc3VzcGVuZGVkX3RpbWU7CiAJZmlsZS5jbG9zZSgp OwogCi0Jc3ByaW50ZihmaWxlbmFtZSwgIiVzL3Bvd2VyL3J1bnRpbWVfYWN0aXZlX3RpbWUiLCBz eXNmc19wYXRoKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9wb3dlci9ydW50 aW1lX2FjdGl2ZV90aW1lIiwgc3lzZnNfcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6 OmluKTsKIAlpZiAoIWZpbGUpCiAJCXJldHVybjsKQEAgLTgyLDE3ICs4MywxNyBAQCB2b2lkIHJ1 bnRpbWVfcG1kZXZpY2U6OnN0YXJ0X21lYXN1cmVtZW50KHZvaWQpCiAKIHZvaWQgcnVudGltZV9w bWRldmljZTo6ZW5kX21lYXN1cmVtZW50KHZvaWQpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsK KwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBmaWxlOwogCi0Jc3ByaW50Zihm aWxlbmFtZSwgIiVzL3Bvd2VyL3J1bnRpbWVfc3VzcGVuZGVkX3RpbWUiLCBzeXNmc19wYXRoKTsK KwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9wb3dlci9ydW50aW1lX3N1c3BlbmRl ZF90aW1lIiwgc3lzZnNfcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6OmluKTsKIAlp ZiAoIWZpbGUpCiAJCXJldHVybjsKIAlmaWxlID4+IGFmdGVyX3N1c3BlbmRlZF90aW1lOwogCWZp bGUuY2xvc2UoKTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9wb3dlci9ydW50aW1lX2FjdGl2 ZV90aW1lIiwgc3lzZnNfcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMv cG93ZXIvcnVudGltZV9hY3RpdmVfdGltZSIsIHN5c2ZzX3BhdGgpOwogCWZpbGUub3BlbihmaWxl bmFtZSwgaW9zOjppbik7CiAJaWYgKCFmaWxlKQogCQlyZXR1cm47CkBAIC0xNDYsMTEgKzE0Nywx MSBAQCB2b2lkIHJ1bnRpbWVfcG1kZXZpY2U6OnNldF9odW1hbl9uYW1lKGNoYXIgKl9uYW1lKQog CiBpbnQgZGV2aWNlX2hhc19ydW50aW1lX3BtKGNvbnN0IGNoYXIgKnN5c2ZzX3BhdGgpCiB7Ci0J Y2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVh bSBmaWxlOwogCXVuc2lnbmVkIGxvbmcgdmFsdWU7CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMv cG93ZXIvcnVudGltZV9zdXNwZW5kZWRfdGltZSIsIHN5c2ZzX3BhdGgpOworCXNucHJpbnRmKGZp bGVuYW1lLCBQQVRIX01BWCwgIiVzL3Bvd2VyL3J1bnRpbWVfc3VzcGVuZGVkX3RpbWUiLCBzeXNm c19wYXRoKTsKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmICghZmlsZSkKIAkJ cmV0dXJuIDA7CkBAIC0xNTksNyArMTYwLDcgQEAgaW50IGRldmljZV9oYXNfcnVudGltZV9wbShj b25zdCBjaGFyICpzeXNmc19wYXRoKQogCWlmICh2YWx1ZSkKIAkJcmV0dXJuIDE7CiAKLQlzcHJp bnRmKGZpbGVuYW1lLCAiJXMvcG93ZXIvcnVudGltZV9hY3RpdmVfdGltZSIsIHN5c2ZzX3BhdGgp OworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIiVzL3Bvd2VyL3J1bnRpbWVfYWN0aXZl X3RpbWUiLCBzeXNmc19wYXRoKTsKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlm ICghZmlsZSkKIAkJcmV0dXJuIDA7CkBAIC0xNzcsOSArMTc4LDkgQEAgc3RhdGljIHZvaWQgZG9f YnVzKGNvbnN0IGNoYXIgKmJ1cykKIAogCXN0cnVjdCBkaXJlbnQgKmVudHJ5OwogCURJUiAqZGly OwotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAKLQlz cHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvJXMvZGV2aWNlcy8iLCBidXMpOworCXNucHJpbnRm KGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvYnVzLyVzL2RldmljZXMvIiwgYnVzKTsKIAlkaXIg PSBvcGVuZGlyKGZpbGVuYW1lKTsKIAlpZiAoIWRpcikKIAkJcmV0dXJuOwpAQCAtMjAwLDI1ICsy MDEsMjUgQEAgc3RhdGljIHZvaWQgZG9fYnVzKGNvbnN0IGNoYXIgKmJ1cykKIAkJCWNoYXIgZGV2 X25hbWVbNDA5Nl07CiAJCQlib29sIGlzX2FkYXB0ZXIgPSBmYWxzZTsKIAotCQkJc3ByaW50Zihm aWxlbmFtZSwgIi9zeXMvYnVzLyVzL2RldmljZXMvJXMvbmV3X2RldmljZSIsIGJ1cywgZW50cnkt PmRfbmFtZSk7CisJCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2J1cy8lcy9k ZXZpY2VzLyVzL25ld19kZXZpY2UiLCBidXMsIGVudHJ5LT5kX25hbWUpOwogCQkJaWYgKGFjY2Vz cyhmaWxlbmFtZSwgV19PSykgPT0gMCkKIAkJCQlpc19hZGFwdGVyID0gdHJ1ZTsKIAotCQkJc3By aW50ZihmaWxlbmFtZSwgIi9zeXMvYnVzLyVzL2RldmljZXMvJXMvbmFtZSIsIGJ1cywgZW50cnkt PmRfbmFtZSk7CisJCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2J1cy8lcy9k ZXZpY2VzLyVzL25hbWUiLCBidXMsIGVudHJ5LT5kX25hbWUpOwogCQkJZmlsZS5vcGVuKGZpbGVu YW1lLCBpb3M6OmluKTsKIAkJCWlmIChmaWxlKSB7CiAJCQkJZ2V0bGluZShmaWxlLCBkZXZuYW1l KTsKIAkJCQlmaWxlLmNsb3NlKCk7CiAJCQl9CiAKLQkJCXNwcmludGYoZGV2X25hbWUsIF8oIkky QyAlcyAoJXMpOiAlcyIpLCAoaXNfYWRhcHRlciA/IF8oIkFkYXB0ZXIiKSA6IF8oIkRldmljZSIp KSwgZW50cnktPmRfbmFtZSwgZGV2bmFtZS5jX3N0cigpKTsKKwkJCXNucHJpbnRmKGRldl9uYW1l LCA0MDk2LCBfKCJJMkMgJXMgKCVzKTogJXMiKSwgKGlzX2FkYXB0ZXIgPyBfKCJBZGFwdGVyIikg OiBfKCJEZXZpY2UiKSksIGVudHJ5LT5kX25hbWUsIGRldm5hbWUuY19zdHIoKSk7CiAJCQlkZXYt PnNldF9odW1hbl9uYW1lKGRldl9uYW1lKTsKIAkJfQogCiAJCWlmIChzdHJjbXAoYnVzLCAicGNp IikgPT0gMCkgewogCQkJdWludDE2X3QgdmVuZG9yID0gMCwgZGV2aWNlID0gMDsKIAotCQkJc3By aW50ZihmaWxlbmFtZSwgIi9zeXMvYnVzLyVzL2RldmljZXMvJXMvdmVuZG9yIiwgYnVzLCBlbnRy eS0+ZF9uYW1lKTsKKwkJCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvYnVzLyVz L2RldmljZXMvJXMvdmVuZG9yIiwgYnVzLCBlbnRyeS0+ZF9uYW1lKTsKIAogCQkJZmlsZS5vcGVu KGZpbGVuYW1lLCBpb3M6OmluKTsKIAkJCWlmIChmaWxlKSB7CkBAIC0yMjcsNyArMjI4LDcgQEAg c3RhdGljIHZvaWQgZG9fYnVzKGNvbnN0IGNoYXIgKmJ1cykKIAkJCX0KIAogCi0JCQlzcHJpbnRm KGZpbGVuYW1lLCAiL3N5cy9idXMvJXMvZGV2aWNlcy8lcy9kZXZpY2UiLCBidXMsIGVudHJ5LT5k X25hbWUpOworCQkJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvJXMvZGV2 aWNlcy8lcy9kZXZpY2UiLCBidXMsIGVudHJ5LT5kX25hbWUpOwogCQkJZmlsZS5vcGVuKGZpbGVu YW1lLCBpb3M6OmluKTsKIAkJCWlmIChmaWxlKSB7CiAJCQkJZmlsZSA+PiBoZXggPj4gZGV2aWNl OwpAQCAtMjM2LDcgKzIzNyw3IEBAIHN0YXRpYyB2b2lkIGRvX2J1cyhjb25zdCBjaGFyICpidXMp CiAKIAkJCWlmICh2ZW5kb3IgJiYgZGV2aWNlKSB7CiAJCQkJY2hhciBkZXZuYW1lWzQwOTZdOwot CQkJCXNwcmludGYoZGV2bmFtZSwgXygiUENJIERldmljZTogJXMiKSwKKwkJCQlzbnByaW50Zihk ZXZuYW1lLCA0MDk2LCBfKCJQQ0kgRGV2aWNlOiAlcyIpLAogCQkJCQlwY2lfaWRfdG9fbmFtZSh2 ZW5kb3IsIGRldmljZSwgZmlsZW5hbWUsIDQwOTUpKTsKIAkJCQlkZXYtPnNldF9odW1hbl9uYW1l KGRldm5hbWUpOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMvcnVudGltZV9wbS5oIGIv c3JjL2RldmljZXMvcnVudGltZV9wbS5oCmluZGV4IGVhMDlkYWMuLjc3YmYzOTggMTAwNjQ0Ci0t LSBhL3NyYy9kZXZpY2VzL3J1bnRpbWVfcG0uaAorKysgYi9zcmMvZGV2aWNlcy9ydW50aW1lX3Bt LmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpZm5kZWYgX0lOQ0xVREVfR1VBUkRfUlVOVElNRVBNX0gK ICNkZWZpbmUgX0lOQ0xVREVfR1VBUkRfUlVOVElNRVBNX0gKIAorI2luY2x1ZGUgPGxpbWl0cy5o PgogCiAjaW5jbHVkZSAiZGV2aWNlLmgiCiAjaW5jbHVkZSAiLi4vcGFyYW1ldGVycy9wYXJhbWV0 ZXJzLmgiCkBAIC0zMiw3ICszMyw3IEBACiBjbGFzcyBydW50aW1lX3BtZGV2aWNlOiBwdWJsaWMg ZGV2aWNlIHsKIAl1aW50NjRfdCBiZWZvcmVfc3VzcGVuZGVkX3RpbWUsIGJlZm9yZV9hY3RpdmVf dGltZTsKIAl1aW50NjRfdCBhZnRlcl9zdXNwZW5kZWRfdGltZSwgYWZ0ZXJfYWN0aXZlX3RpbWU7 Ci0JY2hhciBzeXNmc19wYXRoWzQwOTZdOworCWNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07CiAJ Y2hhciBuYW1lWzQwOTZdOwogCWNoYXIgaHVtYW5uYW1lWzQwOTZdOwogCWludCBpbmRleDsKZGlm ZiAtLWdpdCBhL3NyYy9kZXZpY2VzL3RoaW5rcGFkLWZhbi5jcHAgYi9zcmMvZGV2aWNlcy90aGlu a3BhZC1mYW4uY3BwCmluZGV4IDlmNDcwZTQuLmQ5YmIwMjYgMTAwNjQ0Ci0tLSBhL3NyYy9kZXZp Y2VzL3RoaW5rcGFkLWZhbi5jcHAKKysrIGIvc3JjL2RldmljZXMvdGhpbmtwYWQtZmFuLmNwcApA QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGRpcmVudC5oPgogI2luY2x1ZGUgPG1hdGguaD4K ICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KIAogI2luY2x1ZGUgIi4u L2xpYi5oIgogCkBAIC03NCw3ICs3NSw3IEBAIGRvdWJsZSB0aGlua3BhZF9mYW46OnV0aWxpemF0 aW9uKHZvaWQpCiAKIHZvaWQgY3JlYXRlX3RoaW5rcGFkX2Zhbih2b2lkKQogewotCWNoYXIgZmls ZW5hbWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJY2xhc3MgdGhpbmtwYWRf ZmFuICpmYW47CiAKIAlzdHJjcHkoZmlsZW5hbWUsICIvc3lzL2RldmljZXMvcGxhdGZvcm0vdGhp bmtwYWRfaHdtb24vZmFuMV9pbnB1dCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMvdGhpbmtw YWQtbGlnaHQuY3BwIGIvc3JjL2RldmljZXMvdGhpbmtwYWQtbGlnaHQuY3BwCmluZGV4IGU1ZmRl MTAuLjk0NTE2MWEgMTAwNjQ0Ci0tLSBhL3NyYy9kZXZpY2VzL3RoaW5rcGFkLWxpZ2h0LmNwcAor KysgYi9zcmMvZGV2aWNlcy90aGlua3BhZC1saWdodC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp bmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+ CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICIuLi9saWIuaCIKIApAQCAtNzIsNyAr NzMsNyBAQCBkb3VibGUgdGhpbmtwYWRfbGlnaHQ6OnV0aWxpemF0aW9uKHZvaWQpCiAKIHZvaWQg Y3JlYXRlX3RoaW5rcGFkX2xpZ2h0KHZvaWQpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwlj aGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAljbGFzcyB0aGlua3BhZF9saWdodCAqbGlnaHQ7CiAK IAlzdHJjcHkoZmlsZW5hbWUsICIvc3lzL2RldmljZXMvcGxhdGZvcm0vdGhpbmtwYWRfYWNwaS9s ZWRzL3RwYWNwaTo6dGhpbmtsaWdodC9icmlnaHRuZXNzIik7CmRpZmYgLS1naXQgYS9zcmMvZGV2 aWNlcy91c2IuY3BwIGIvc3JjL2RldmljZXMvdXNiLmNwcAppbmRleCAyYzVkMzhiLi5lYjhjNzE4 IDEwMDY0NAotLS0gYS9zcmMvZGV2aWNlcy91c2IuY3BwCisrKyBiL3NyYy9kZXZpY2VzL3VzYi5j cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHVuaXN0 ZC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5j bHVkZSAiLi4vbGliLmgiCiAjaW5jbHVkZSAiLi4vcGFyYW1ldGVycy9wYXJhbWV0ZXJzLmgiCkBA IC0zOCw3ICszOSw3IEBACiB1c2JkZXZpY2U6OnVzYmRldmljZShjb25zdCBjaGFyICpfbmFtZSwg Y29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZGV2aWQpOiBkZXZpY2UoKQogewogCWlmc3Ry ZWFtIGZpbGU7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFY XTsKIAljaGFyIHZlbmRvcls0MDk2XTsKIAljaGFyIHByb2R1Y3RbNDA5Nl07CiAKQEAgLTU5LDcg KzYwLDcgQEAgdXNiZGV2aWNlOjp1c2JkZXZpY2UoY29uc3QgY2hhciAqX25hbWUsIGNvbnN0IGNo YXIgKnBhdGgsIGNvbnN0IGNoYXIgKmRldmlkKTogZGUKIAogCiAJLyogcm9vdCBwb3J0cyBhbmQg aHVicyBzaG91bGQgY291bnQgYXMgMCBwb3dlciAuLi4gdGhlaXIgYWN0aXZpdHkgaXMgZGVyaXZl ZCAqLwotCXNwcmludGYoZmlsZW5hbWUsICIlcy9iRGV2aWNlQ2xhc3MiLCBwYXRoKTsKKwlzbnBy aW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9iRGV2aWNlQ2xhc3MiLCBwYXRoKTsKIAlmaWxl Lm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJCWludCBkY2xhc3MgPSAw OwpAQCAtNzIsNyArNzMsNyBAQCB1c2JkZXZpY2U6OnVzYmRldmljZShjb25zdCBjaGFyICpfbmFt ZSwgY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZGV2aWQpOiBkZQogCiAJdmVuZG9yWzBd ID0gMDsKIAlwcm9kdWN0WzBdID0gMDsKLQlzcHJpbnRmKGZpbGVuYW1lLCAiJXMvbWFudWZhY3R1 cmVyIiwgcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMvbWFudWZhY3R1 cmVyIiwgcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVuYW1lLCBpb3M6OmluKTsKIAlpZiAoZmlsZSkg ewogCQlmaWxlLmdldGxpbmUodmVuZG9yLCAyMDQ3KTsKQEAgLTgwLDE4ICs4MSwxOCBAQCB1c2Jk ZXZpY2U6OnVzYmRldmljZShjb25zdCBjaGFyICpfbmFtZSwgY29uc3QgY2hhciAqcGF0aCwgY29u c3QgY2hhciAqZGV2aWQpOiBkZQogCQkJdmVuZG9yWzBdID0gMDsKIAkJZmlsZS5jbG9zZSgpOwog CX07Ci0Jc3ByaW50ZihmaWxlbmFtZSwgIiVzL3Byb2R1Y3QiLCBwYXRoKTsKKwlzbnByaW50Zihm aWxlbmFtZSwgUEFUSF9NQVgsICIlcy9wcm9kdWN0IiwgcGF0aCk7CiAJZmlsZS5vcGVuKGZpbGVu YW1lLCBpb3M6OmluKTsKIAlpZiAoZmlsZSkgewogCQlmaWxlLmdldGxpbmUocHJvZHVjdCwgMjA0 MCk7CiAJCWZpbGUuY2xvc2UoKTsKIAl9OwogCWlmIChzdHJsZW4odmVuZG9yKSAmJiBzdHJsZW4o cHJvZHVjdCkpCi0JCXNwcmludGYoaHVtYW5uYW1lLCBfKCJVU0IgZGV2aWNlOiAlcyAoJXMpIiks IHByb2R1Y3QsIHZlbmRvcik7CisJCXNucHJpbnRmKGh1bWFubmFtZSwgNDA5NiwgXygiVVNCIGRl dmljZTogJXMgKCVzKSIpLCBwcm9kdWN0LCB2ZW5kb3IpOwogCWVsc2UgaWYgKHN0cmxlbihwcm9k dWN0KSkKLQkJc3ByaW50ZihodW1hbm5hbWUsIF8oIlVTQiBkZXZpY2U6ICVzIiksIHByb2R1Y3Qp OworCQlzbnByaW50ZihodW1hbm5hbWUsIDQwOTYsIF8oIlVTQiBkZXZpY2U6ICVzIiksIHByb2R1 Y3QpOwogCWVsc2UgaWYgKHN0cmxlbih2ZW5kb3IpKQotCQlzcHJpbnRmKGh1bWFubmFtZSwgXygi VVNCIGRldmljZTogJXMiKSwgdmVuZG9yKTsKKwkJc25wcmludGYoaHVtYW5uYW1lLCA0MDk2LCBf KCJVU0IgZGV2aWNlOiAlcyIpLCB2ZW5kb3IpOwogfQogCiAKQEAgLTk5LDIxICsxMDAsMjEgQEAg dXNiZGV2aWNlOjp1c2JkZXZpY2UoY29uc3QgY2hhciAqX25hbWUsIGNvbnN0IGNoYXIgKnBhdGgs IGNvbnN0IGNoYXIgKmRldmlkKTogZGUKIHZvaWQgdXNiZGV2aWNlOjpzdGFydF9tZWFzdXJlbWVu dCh2b2lkKQogewogCWlmc3RyZWFtIGZpbGU7Ci0JY2hhciBmdWxscGF0aFs0MDk2XTsKKwljaGFy IGZ1bGxwYXRoW1BBVEhfTUFYXTsKIAogCWFjdGl2ZV9iZWZvcmUgPSAwOwogCWFjdGl2ZV9hZnRl ciA9IDA7CiAJY29ubmVjdGVkX2JlZm9yZSA9IDA7CiAJY29ubmVjdGVkX2FmdGVyID0gMDsKIAot CXNwcmludGYoZnVsbHBhdGgsICIlcy9wb3dlci9hY3RpdmVfZHVyYXRpb24iLCBzeXNmc19wYXRo KTsKKwlzbnByaW50ZihmdWxscGF0aCwgUEFUSF9NQVgsICIlcy9wb3dlci9hY3RpdmVfZHVyYXRp b24iLCBzeXNmc19wYXRoKTsKIAlmaWxlLm9wZW4oZnVsbHBhdGgsIGlvczo6aW4pOwogCWlmIChm aWxlKSB7CiAJCWZpbGUgPj4gYWN0aXZlX2JlZm9yZTsKIAl9CiAJZmlsZS5jbG9zZSgpOwogCi0J c3ByaW50ZihmdWxscGF0aCwgIiVzL3Bvd2VyL2Nvbm5lY3RlZF9kdXJhdGlvbiIsIHN5c2ZzX3Bh dGgpOworCXNucHJpbnRmKGZ1bGxwYXRoLCBQQVRIX01BWCwgIiVzL3Bvd2VyL2Nvbm5lY3RlZF9k dXJhdGlvbiIsIHN5c2ZzX3BhdGgpOwogCWZpbGUub3BlbihmdWxscGF0aCwgaW9zOjppbik7CiAJ aWYgKGZpbGUpIHsKIAkJZmlsZSA+PiBjb25uZWN0ZWRfYmVmb3JlOwpAQCAtMTI0LDE2ICsxMjUs MTYgQEAgdm9pZCB1c2JkZXZpY2U6OnN0YXJ0X21lYXN1cmVtZW50KHZvaWQpCiB2b2lkIHVzYmRl dmljZTo6ZW5kX21lYXN1cmVtZW50KHZvaWQpCiB7CiAJaWZzdHJlYW0gZmlsZTsKLQljaGFyIGZ1 bGxwYXRoWzQwOTZdOworCWNoYXIgZnVsbHBhdGhbUEFUSF9NQVhdOwogCi0Jc3ByaW50ZihmdWxs cGF0aCwgIiVzL3Bvd2VyL2FjdGl2ZV9kdXJhdGlvbiIsIHN5c2ZzX3BhdGgpOworCXNucHJpbnRm KGZ1bGxwYXRoLCBQQVRIX01BWCwgIiVzL3Bvd2VyL2FjdGl2ZV9kdXJhdGlvbiIsIHN5c2ZzX3Bh dGgpOwogCWZpbGUub3BlbihmdWxscGF0aCwgaW9zOjppbik7CiAJaWYgKGZpbGUpIHsKIAkJZmls ZSA+PiBhY3RpdmVfYWZ0ZXI7CiAJfQogCWZpbGUuY2xvc2UoKTsKIAotCXNwcmludGYoZnVsbHBh dGgsICIlcy9wb3dlci9jb25uZWN0ZWRfZHVyYXRpb24iLCBzeXNmc19wYXRoKTsKKwlzbnByaW50 ZihmdWxscGF0aCwgUEFUSF9NQVgsICIlcy9wb3dlci9jb25uZWN0ZWRfZHVyYXRpb24iLCBzeXNm c19wYXRoKTsKIAlmaWxlLm9wZW4oZnVsbHBhdGgsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJ CWZpbGUgPj4gY29ubmVjdGVkX2FmdGVyOwpAQCAtMTg2LDMxICsxODcsMzEgQEAgZG91YmxlIHVz YmRldmljZTo6cG93ZXJfdXNhZ2Uoc3RydWN0IHJlc3VsdF9idW5kbGUgKnJlc3VsdCwgc3RydWN0 IHBhcmFtZXRlcl9idW4KIAogc3RhdGljIHZvaWQgY3JlYXRlX2FsbF91c2JfZGV2aWNlc19jYWxs YmFjayhjb25zdCBjaGFyICpkX25hbWUpCiB7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFy IGZpbGVuYW1lW1BBVEhfTUFYXTsKIAlpZnN0cmVhbSBmaWxlOwogCWNsYXNzIHVzYmRldmljZSAq dXNiOwotCWNoYXIgZGV2aWNlX25hbWVbNDA5Nl07CisJY2hhciBkZXZpY2VfbmFtZVtQQVRIX01B WF07CiAJY2hhciB2ZW5kb3JpZFs2NF0sIGRldmlkWzY0XTsKIAljaGFyIGRldmlkX25hbWVbNDA5 Nl07CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvdXNiL2RldmljZXMvJXMiLCBkX25h bWUpOwotCXNwcmludGYoZGV2aWNlX25hbWUsICIlcy9wb3dlci9hY3RpdmVfZHVyYXRpb24iLCBm aWxlbmFtZSk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvdXNiL2Rl dmljZXMvJXMiLCBkX25hbWUpOworCXNucHJpbnRmKGRldmljZV9uYW1lLCBQQVRIX01BWCwgIiVz L3Bvd2VyL2FjdGl2ZV9kdXJhdGlvbiIsIGZpbGVuYW1lKTsKIAlpZiAoYWNjZXNzKGRldmljZV9u YW1lLCBSX09LKSAhPSAwKQogCQlyZXR1cm47CiAKLQlzcHJpbnRmKGRldmljZV9uYW1lLCAiJXMv aWRWZW5kb3IiLCBmaWxlbmFtZSk7CisJc25wcmludGYoZGV2aWNlX25hbWUsIFBBVEhfTUFYLCAi JXMvaWRWZW5kb3IiLCBmaWxlbmFtZSk7CiAJZmlsZS5vcGVuKGRldmljZV9uYW1lLCBpb3M6Omlu KTsKIAlpZiAoZmlsZSkKIAkJZmlsZS5nZXRsaW5lKHZlbmRvcmlkLCA2NCk7CiAJZmlsZS5jbG9z ZSgpOwotCXNwcmludGYoZGV2aWNlX25hbWUsICIlcy9pZFByb2R1Y3QiLCBmaWxlbmFtZSk7CisJ c25wcmludGYoZGV2aWNlX25hbWUsIFBBVEhfTUFYLCAiJXMvaWRQcm9kdWN0IiwgZmlsZW5hbWUp OwogCWZpbGUub3BlbihkZXZpY2VfbmFtZSwgaW9zOjppbik7CiAJaWYgKGZpbGUpCiAJCWZpbGUu Z2V0bGluZShkZXZpZCwgNjQpOwogCWZpbGUuY2xvc2UoKTsKIAotCXNwcmludGYoZGV2aWRfbmFt ZSwgInVzYi1kZXZpY2UtJXMtJXMiLCB2ZW5kb3JpZCwgZGV2aWQpOwotCXNwcmludGYoZGV2aWNl X25hbWUsICJ1c2ItZGV2aWNlLSVzLSVzLSVzIiwgZF9uYW1lLCB2ZW5kb3JpZCwgZGV2aWQpOwor CXNucHJpbnRmKGRldmlkX25hbWUsIDQwOTYsICJ1c2ItZGV2aWNlLSVzLSVzIiwgdmVuZG9yaWQs IGRldmlkKTsKKwlzbnByaW50ZihkZXZpY2VfbmFtZSwgUEFUSF9NQVgsICJ1c2ItZGV2aWNlLSVz LSVzLSVzIiwgZF9uYW1lLCB2ZW5kb3JpZCwgZGV2aWQpOwogCWlmIChyZXN1bHRfZGV2aWNlX2V4 aXN0cyhkZXZpY2VfbmFtZSkpCiAJCXJldHVybjsKIApkaWZmIC0tZ2l0IGEvc3JjL2RldmljZXMv dXNiLmggYi9zcmMvZGV2aWNlcy91c2IuaAppbmRleCAzOWE3NDZhLi4wOTdkZjUxIDEwMDY0NAot LS0gYS9zcmMvZGV2aWNlcy91c2IuaAorKysgYi9zcmMvZGV2aWNlcy91c2IuaApAQCAtMjUsNiAr MjUsNyBAQAogI2lmbmRlZiBfSU5DTFVERV9HVUFSRF9VU0JfSAogI2RlZmluZSBfSU5DTFVERV9H VUFSRF9VU0JfSAogCisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICJkZXZpY2UuaCIK ICNpbmNsdWRlICIuLi9wYXJhbWV0ZXJzL3BhcmFtZXRlcnMuaCIKQEAgLTMyLDcgKzMzLDcgQEAK IGNsYXNzIHVzYmRldmljZTogcHVibGljIGRldmljZSB7CiAJaW50IGFjdGl2ZV9iZWZvcmUsIGFj dGl2ZV9hZnRlcjsKIAlpbnQgY29ubmVjdGVkX2JlZm9yZSwgY29ubmVjdGVkX2FmdGVyOwotCWNo YXIgc3lzZnNfcGF0aFs0MDk2XTsKKwljaGFyIHN5c2ZzX3BhdGhbUEFUSF9NQVhdOwogCWNoYXIg bmFtZVs0MDk2XTsKIAljaGFyIGRldm5hbWVbNDA5Nl07CiAJY2hhciBodW1hbm5hbWVbNDA5Nl07 CmRpZmYgLS1naXQgYS9zcmMvZGV2bGlzdC5jcHAgYi9zcmMvZGV2bGlzdC5jcHAKaW5kZXggN2Y1 OTlhYy4uNzg3ZjVmNiAxMDA2NDQKLS0tIGEvc3JjL2Rldmxpc3QuY3BwCisrKyBiL3NyYy9kZXZs aXN0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGRpcmVudC5oPgogI2luY2x1ZGUg PHN0cmluZy5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKIHVz aW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTkzLDggKzk0LDggQEAgdm9pZCBjb2xsZWN0X29wZW5f ZGV2aWNlcyh2b2lkKQogewogCXN0cnVjdCBkaXJlbnQgKmVudHJ5OwogCURJUiAqZGlyOwotCWNo YXIgZmlsZW5hbWVbNDA5Nl07Ci0JY2hhciBsaW5rWzQwOTZdOworCWNoYXIgZmlsZW5hbWVbUEFU SF9NQVhdOworCWNoYXIgbGlua1tQQVRIX01BWF07CiAJdW5zaWduZWQgaW50IGk7CiAJdmVjdG9y PHN0cnVjdCBkZXZ1c2VyICo+ICp0YXJnZXQ7CiAKQEAgLTEzNyw5ICsxMzgsOSBAQCB2b2lkIGNv bGxlY3Rfb3Blbl9kZXZpY2VzKHZvaWQpCiAJCQkJYnJlYWs7CiAJCQlpZiAoIWlzZGlnaXQoZW50 cnkyLT5kX25hbWVbMF0pKQogCQkJCWNvbnRpbnVlOwotCQkJc3ByaW50ZihmaWxlbmFtZSwgIi9w cm9jLyVzL2ZkLyVzIiwgZW50cnktPmRfbmFtZSwgZW50cnkyLT5kX25hbWUpOwotCQkJbWVtc2V0 KGxpbmssIDAsIDQwOTYpOwotCQkJcmV0ID0gcmVhZGxpbmsoZmlsZW5hbWUsIGxpbmssIDQwOTUp OworCQkJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3Byb2MvJXMvZmQvJXMiLCBlbnRy eS0+ZF9uYW1lLCBlbnRyeTItPmRfbmFtZSk7CisJCQltZW1zZXQobGluaywgMCwgUEFUSF9NQVgp OworCQkJcmV0ID0gcmVhZGxpbmsoZmlsZW5hbWUsIGxpbmssIFBBVEhfTUFYIC0gMSk7CiAJCQlp ZiAocmV0IDwgMCkKIAkJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2xpYi5jcHAgYi9z cmMvbGliLmNwcAppbmRleCA0Mzc4MDNiLi41MTQ4YmQ4IDEwMDY0NAotLS0gYS9zcmMvbGliLmNw cAorKysgYi9zcmMvbGliLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+ CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpbWl0 cy5oPgogCiAjaW5jbHVkZSAibGliLmgiCiAKQEAgLTIzNiwxMCArMjM3LDEwIEBAIHN0cmluZyBy ZWFkX3N5c2ZzX3N0cmluZyhjb25zdCBjaGFyICpmb3JtYXQsIGNvbnN0IGNoYXIgKnBhcmFtKQog CWlmc3RyZWFtIGZpbGU7CiAJY2hhciBjb250ZW50WzQwOTZdOwogCWNoYXIgKmM7Ci0JY2hhciBm aWxlbmFtZVs4MTkyXTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAogCi0Jc25wcmludGYo ZmlsZW5hbWUsIDgxOTEsIGZvcm1hdCwgcGFyYW0pOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRI X01BWCwgZm9ybWF0LCBwYXJhbSk7CiAKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwog CWlmICghZmlsZSkKZGlmZiAtLWdpdCBhL3NyYy9tYWluLmNwcCBiL3NyYy9tYWluLmNwcAppbmRl eCBkYzY5ZmNhLi4xNmFjYzczIDEwMDY0NAotLS0gYS9zcmMvbWFpbi5jcHAKKysrIGIvc3JjL21h aW4uY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8 bG9jYWxlLmg+CiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+ CiAKICNpbmNsdWRlICJjcHUvY3B1LmgiCiAjaW5jbHVkZSAicHJvY2Vzcy9wcm9jZXNzLmgiCkBA IC0zODgsOCArMzg5LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlu dCBvcHRpb25faW5kZXg7CiAJaW50IGM7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKLQljaGFyIHdv cmtsb2FkWzQwOTZdID0gezAsfTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKKwljaGFyIHdv cmtsb2FkW1BBVEhfTUFYXSA9IHswfTsKIAlpbnQgIGl0ZXJhdGlvbnMgPSAxLCBhdXRvX3R1bmUg PSAwOwogCiAJc2V0X25ld19oYW5kbGVyKG91dF9vZl9tZW1vcnkpOwpkaWZmIC0tZ2l0IGEvc3Jj L21lYXN1cmVtZW50L2FjcGkuY3BwIGIvc3JjL21lYXN1cmVtZW50L2FjcGkuY3BwCmluZGV4IGI5 YjEwZmIuLmE1NTEwOWIgMTAwNjQ0Ci0tLSBhL3NyYy9tZWFzdXJlbWVudC9hY3BpLmNwcAorKysg Yi9zcmMvbWVhc3VyZW1lbnQvYWNwaS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxz dHJpbmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1 ZGUgPGxpbWl0cy5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC01MSw3ICs1Miw3IEBA IHByZXNlbnQgdm9sdGFnZTogICAgICAgICAxMjAwMSBtVgogCiB2b2lkIGFjcGlfcG93ZXJfbWV0 ZXI6Om1lYXN1cmUodm9pZCkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZdOworCWNoYXIgZmlsZW5h bWVbUEFUSF9NQVhdOwogCWNoYXIgbGluZVs0MDk2XTsKIAlpZnN0cmVhbSBmaWxlOwogCkBAIC03 MSw3ICs3Miw3IEBAIHZvaWQgYWNwaV9wb3dlcl9tZXRlcjo6bWVhc3VyZSh2b2lkKQogCXZvbHRh Z2UgPSAwOwogCWNhcGFjaXR5ID0gMDsKIAotCXNwcmludGYoZmlsZW5hbWUsICIvcHJvYy9hY3Bp L2JhdHRlcnkvJXMvc3RhdGUiLCBiYXR0ZXJ5X25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQ QVRIX01BWCwgIi9wcm9jL2FjcGkvYmF0dGVyeS8lcy9zdGF0ZSIsIGJhdHRlcnlfbmFtZSk7CiAK IAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmICghZmlsZSkKZGlmZiAtLWdpdCBh L3NyYy9tZWFzdXJlbWVudC9zeXNmcy5jcHAgYi9zcmMvbWVhc3VyZW1lbnQvc3lzZnMuY3BwCmlu ZGV4IGVkNDJlZDQuLjc5NGY4OGYgMTAwNjQ0Ci0tLSBhL3NyYy9tZWFzdXJlbWVudC9zeXNmcy5j cHAKKysrIGIvc3JjL21lYXN1cmVtZW50L3N5c2ZzLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2lu Y2x1ZGUgIi4uL2xpYi5oIgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+ CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKIHN5c2ZzX3Bvd2VyX21ldGVyOjpzeXNmc19wb3dlcl9t ZXRlcihjb25zdCBjaGFyICpwb3dlcl9zdXBwbHlfbmFtZSkKIHsKQEAgLTM3LDEwICszOCwxMCBA QCBzeXNmc19wb3dlcl9tZXRlcjo6c3lzZnNfcG93ZXJfbWV0ZXIoY29uc3QgY2hhciAqcG93ZXJf c3VwcGx5X25hbWUpCiAKIGJvb2wgc3lzZnNfcG93ZXJfbWV0ZXI6OmdldF9zeXNmc19hdHRyKGNv bnN0IGNoYXIgKmF0dHJpYnV0ZSwgaW50ICp2YWx1ZSkKIHsKLQljaGFyIGZpbGVuYW1lWzQwOTZd OworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwogCWJvb2wgb2s7CiAKLQlzbnByaW50ZihmaWxl bmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LyVzLyVzIiwg bmFtZSwgYXR0cmlidXRlKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2Ns YXNzL3Bvd2VyX3N1cHBseS8lcy8lcyIsIG5hbWUsIGF0dHJpYnV0ZSk7CiAJKnZhbHVlID0gcmVh ZF9zeXNmcyhmaWxlbmFtZSwgJm9rKTsKIAogCXJldHVybiBvazsKZGlmZiAtLWdpdCBhL3NyYy9w YXJhbWV0ZXJzL3BhcmFtZXRlcnMuY3BwIGIvc3JjL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5jcHAK aW5kZXggZWMxMTliNi4uMWMyMTRmOSAxMDA2NDQKLS0tIGEvc3JjL3BhcmFtZXRlcnMvcGFyYW1l dGVycy5jcHAKKysrIGIvc3JjL3BhcmFtZXRlcnMvcGFyYW1ldGVycy5jcHAKQEAgLTMwLDYgKzMw LDcgQEAKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8dmVjdG9yPgogI2luY2x1ZGUgPHVu aXN0ZC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAKIHN0cnVjdCBwYXJhbWV0ZXJfYnVuZGxl IGFsbF9wYXJhbWV0ZXJzOwpAQCAtNDUwLDcgKzQ1MSw3IEBAIGludCBnbG9iYWxfcG93ZXJfdmFs aWQodm9pZCkKIC8qIGZpbmQgdGhlIGRpcmVjdG9yeSB0byBzdG9yZSBwb3dlcnRvcCByZXN1bHRz L3BhcmFtZXRlcnMgYmFzZWQgb24gZGlzdHJpYnV0aW9uKi8KIGNoYXIqIGdldF9wYXJhbV9kaXJl Y3RvcnkoY29uc3QgY2hhciAqZmlsZW5hbWUpCiB7Ci0Jc3RhdGljIGNoYXIgdGVtcGZpbGVuYW1l WzQwOTZdOworCXN0YXRpYyBjaGFyIHRlbXBmaWxlbmFtZVtQQVRIX01BWF07CiAKIAlpZiAoYWNj ZXNzKCIvdmFyL2NhY2hlL3Bvd2VydG9wIiwgV19PSyApID09IDApCiAJCXNwcmludGYodGVtcGZp bGVuYW1lLCAiL3Zhci9jYWNoZS9wb3dlcnRvcC8lcyIsIGZpbGVuYW1lKTsKZGlmZiAtLWdpdCBh L3NyYy9yZXBvcnQvcmVwb3J0LmNwcCBiL3NyYy9yZXBvcnQvcmVwb3J0LmNwcAppbmRleCBjZDNj OTYxLi4zNTcyMjAwIDEwMDY0NAotLS0gYS9zcmMvcmVwb3J0L3JlcG9ydC5jcHAKKysrIGIvc3Jj L3JlcG9ydC9yZXBvcnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+ CiAjaW5jbHVkZSA8bWFsbG9jLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8bGlt aXRzLmg+CiAjaW5jbHVkZSAicmVwb3J0LWRhdGEtaHRtbC5oIgogCiB1c2luZyBuYW1lc3BhY2Ug c3RkOwpAQCAtMTY4LDcgKzE2OSw3IEBAIHN0YXRpYyB2b2lkIHN5c3RlbV9pbmZvKHZvaWQpCiB2 b2lkIGluaXRfcmVwb3J0X291dHB1dChjaGFyICpmaWxlbmFtZV9zdHIsIGludCBpdGVyYXRpb25z KQogewogCXNpemVfdCBwZXJpb2Q7Ci0JY2hhciBmaWxlX3ByZWZpeFs0MDk2XTsKKwljaGFyIGZp bGVfcHJlZml4W1BBVEhfTUFYXTsKIAljaGFyIGZpbGVfcG9zdGZpeFs4XTsKIAl0aW1lX3Qgc3Rh bXA7CiAJY2hhciBkYXRlc3RyWzIwMF07CkBAIC0xNzcsMTcgKzE3OCwxNyBAQCB2b2lkIGluaXRf cmVwb3J0X291dHB1dChjaGFyICpmaWxlbmFtZV9zdHIsIGludCBpdGVyYXRpb25zKQogCXNwcmlu dGYoZmlsZV9wb3N0Zml4LCAiJXMiLAogCQkocmVwb3J0dHlwZSA9PSBSRVBPUlRfSFRNTCA/ICJo dG1sIiA6ICJjc3YiKSk7CiAJcGVyaW9kPW15c3RyaW5nLmZpbmRfbGFzdF9vZigiLiIpOwotCXNw cmludGYoZmlsZV9wcmVmaXgsICIlcyIsbXlzdHJpbmcuc3Vic3RyKDAscGVyaW9kKS5jX3N0cigp KTsKKwlzbnByaW50ZihmaWxlX3ByZWZpeCwgUEFUSF9NQVgsICIlcyIsbXlzdHJpbmcuc3Vic3Ry KDAscGVyaW9kKS5jX3N0cigpKTsKIAltZW1zZXQoJmRhdGVzdHIsIDAsIDIwMCk7CiAJbWVtc2V0 KCZzdGFtcCwgMCwgc2l6ZW9mKHRpbWVfdCkpOwogCXN0YW1wPXRpbWUoTlVMTCk7CiAJc3RyZnRp bWUoZGF0ZXN0ciwgc2l6ZW9mKGRhdGVzdHIpLCAiJVklbSVkLSVIJU0lUyIsIGxvY2FsdGltZSgm c3RhbXApKTsKIAogCWlmIChpdGVyYXRpb25zICE9IDEpCi0JCXNwcmludGYocmVwb3J0b3V0LmZp bGVuYW1lLCAiJXMtJXMuJXMiLAorCQlzbnByaW50ZihyZXBvcnRvdXQuZmlsZW5hbWUsIFBBVEhf TUFYLCAiJXMtJXMuJXMiLAogCQkJZmlsZV9wcmVmaXgsIGRhdGVzdHIsZmlsZV9wb3N0Zml4KTsK IAllbHNlCi0JCXNwcmludGYocmVwb3J0b3V0LmZpbGVuYW1lLCAiJXMuJXMiLAorCQlzbnByaW50 ZihyZXBvcnRvdXQuZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMuJXMiLAogCQkJZmlsZV9wcmVmaXgs IGZpbGVfcG9zdGZpeCk7CiAKIAlyZXBvcnRvdXQucmVwb3J0X2ZpbGUgPSBmb3BlbihyZXBvcnRv dXQuZmlsZW5hbWUsICJ3bSIpOwpkaWZmIC0tZ2l0IGEvc3JjL3JlcG9ydC9yZXBvcnQuaCBiL3Ny Yy9yZXBvcnQvcmVwb3J0LmgKaW5kZXggNzdiZjJkNy4uYzFhZWUxYiAxMDA2NDQKLS0tIGEvc3Jj L3JlcG9ydC9yZXBvcnQuaAorKysgYi9zcmMvcmVwb3J0L3JlcG9ydC5oCkBAIC0yNyw2ICsyNyw3 IEBACiAKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxs aW1pdHMuaD4KIAogI2luY2x1ZGUgInJlcG9ydC1tYWtlci5oIgogCkBAIC0zNCw3ICszNSw3IEBA IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0cnVjdCByZXBvcnRzdHJlYW0gewogCUZJTEUgKnJl cG9ydF9maWxlOwotCWNoYXIgZmlsZW5hbWVbNDA5Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01B WF07CiB9OwogCiBleHRlcm4gcmVwb3J0X3R5cGUgcmVwb3J0dHlwZTsKZGlmZiAtLWdpdCBhL3Ny Yy90dW5pbmcvcnVudGltZS5jcHAgYi9zcmMvdHVuaW5nL3J1bnRpbWUuY3BwCmluZGV4IDMyMDFm ZGQuLmRjY2ViMWEgMTAwNjQ0Ci0tLSBhL3NyYy90dW5pbmcvcnVudGltZS5jcHAKKysrIGIvc3Jj L3R1bmluZy9ydW50aW1lLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5o PgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUg PGxpbWl0cy5oPgogCiAjaW5jbHVkZSAiLi4vbGliLmgiCiAjaW5jbHVkZSAiLi4vZGV2aWNlcy9y dW50aW1lX3BtLmgiCkBAIC0xMjMsOSArMTI0LDkgQEAgdm9pZCBhZGRfcnVudGltZV90dW5hYmxl cyhjb25zdCBjaGFyICpidXMpCiB7CiAJc3RydWN0IGRpcmVudCAqZW50cnk7CiAJRElSICpkaXI7 Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAotCXNw cmludGYoZmlsZW5hbWUsICIvc3lzL2J1cy8lcy9kZXZpY2VzLyIsIGJ1cyk7CisJc25wcmludGYo ZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvJXMvZGV2aWNlcy8iLCBidXMpOwogCWRpciA9 IG9wZW5kaXIoZmlsZW5hbWUpOwogCWlmICghZGlyKQogCQlyZXR1cm47CkBAIC0xMzksMTMgKzE0 MCwxMyBAQCB2b2lkIGFkZF9ydW50aW1lX3R1bmFibGVzKGNvbnN0IGNoYXIgKmJ1cykKIAkJaWYg KGVudHJ5LT5kX25hbWVbMF0gPT0gJy4nKQogCQkJY29udGludWU7CiAKLQkJc3ByaW50ZihmaWxl bmFtZSwgIi9zeXMvYnVzLyVzL2RldmljZXMvJXMvcG93ZXIvY29udHJvbCIsIGJ1cywgZW50cnkt PmRfbmFtZSk7CisJCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvYnVzLyVzL2Rl dmljZXMvJXMvcG93ZXIvY29udHJvbCIsIGJ1cywgZW50cnktPmRfbmFtZSk7CiAKIAkJaWYgKGFj Y2VzcyhmaWxlbmFtZSwgUl9PSykgIT0gMCkKIAkJCWNvbnRpbnVlOwogCiAKLQkJc3ByaW50Zihm aWxlbmFtZSwgIi9zeXMvYnVzLyVzL2RldmljZXMvJXMiLCBidXMsIGVudHJ5LT5kX25hbWUpOwor CQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2J1cy8lcy9kZXZpY2VzLyVzIiwg YnVzLCBlbnRyeS0+ZF9uYW1lKTsKIAogCQlydW50aW1lID0gbmV3IGNsYXNzIHJ1bnRpbWVfdHVu YWJsZShmaWxlbmFtZSwgYnVzLCBlbnRyeS0+ZF9uYW1lKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3R1 bmluZy9ydW50aW1lLmggYi9zcmMvdHVuaW5nL3J1bnRpbWUuaAppbmRleCBhM2MzZTIwLi5iMjky YTBmIDEwMDY0NAotLS0gYS9zcmMvdHVuaW5nL3J1bnRpbWUuaAorKysgYi9zcmMvdHVuaW5nL3J1 bnRpbWUuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjZGVmaW5lIF9JTkNMVURFX0dVQVJEX1JVTlRJ TUVfVFVORV9ICiAKICNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNp bmNsdWRlICJ0dW5hYmxlLmgiCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBjbGFzcyBydW50aW1l X3R1bmFibGUgOiBwdWJsaWMgdHVuYWJsZSB7Ci0JY2hhciBydW50aW1lX3BhdGhbNDA5Nl07CisJ Y2hhciBydW50aW1lX3BhdGhbUEFUSF9NQVhdOwogcHVibGljOgogCXJ1bnRpbWVfdHVuYWJsZShj b25zdCBjaGFyICpydW50aW1lX3BhdGgsIGNvbnN0IGNoYXIgKmJ1cywgY29uc3QgY2hhciAqZGV2 KTsKIApkaWZmIC0tZ2l0IGEvc3JjL3R1bmluZy90dW5pbmdpMmMuY3BwIGIvc3JjL3R1bmluZy90 dW5pbmdpMmMuY3BwCmluZGV4IDYwYTA4NWIuLmQyMDdjYTAgMTAwNjQ0Ci0tLSBhL3NyYy90dW5p bmcvdHVuaW5naTJjLmNwcAorKysgYi9zcmMvdHVuaW5nL3R1bmluZ2kyYy5jcHAKQEAgLTI3LDYg KzI3LDcgQEAKICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxmc3RyZWFtPgogI2luY2x1 ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICIuLi9saWIuaCIK ICNpbmNsdWRlICIuLi9kZXZpY2VzL3J1bnRpbWVfcG0uaCIKQEAgLTM0LDEwICszNSwxMCBAQAog aTJjX3R1bmFibGU6OmkyY190dW5hYmxlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKm5h bWUsIGJvb2wgaXNfYWRhcHRlcikgOiB0dW5hYmxlKCIiLCAwLjksIF8oIkdvb2QiKSwgXygiQmFk IiksIF8oIlVua25vd24iKSkKIHsKIAlpZnN0cmVhbSBmaWxlOwotCWNoYXIgZmlsZW5hbWVbNDA5 Nl07CisJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJc3RyaW5nIGRldm5hbWU7CiAKLQlzcHJp bnRmKGZpbGVuYW1lLCAiJXMvbmFtZSIsIHBhdGgpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRI X01BWCwgIiVzL25hbWUiLCBwYXRoKTsKIAlmaWxlLm9wZW4oZmlsZW5hbWUsIGlvczo6aW4pOwog CWlmIChmaWxlKSB7CiAJCWdldGxpbmUoZmlsZSwgZGV2bmFtZSk7CkBAIC00NSwyMCArNDYsMjAg QEAgaTJjX3R1bmFibGU6OmkyY190dW5hYmxlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIg Km5hbWUsIGJvb2wgaXNfYWRhcHRlcikgOgogCX0KIAogCWlmIChpc19hZGFwdGVyKSB7Ci0JCXNw cmludGYoaTJjX3BhdGgsICIlcy9kZXZpY2UvcG93ZXIvY29udHJvbCIsIHBhdGgpOwotCQlzcHJp bnRmKGZpbGVuYW1lLCAiJXMvZGV2aWNlIiwgcGF0aCk7CisJCXNucHJpbnRmKGkyY19wYXRoLCBQ QVRIX01BWCwgIiVzL2RldmljZS9wb3dlci9jb250cm9sIiwgcGF0aCk7CisJCXNucHJpbnRmKGZp bGVuYW1lLCBQQVRIX01BWCwgIiVzL2RldmljZSIsIHBhdGgpOwogCX0gZWxzZSB7Ci0JCXNwcmlu dGYoaTJjX3BhdGgsICIlcy9wb3dlci9jb250cm9sIiwgcGF0aCk7Ci0JCXNwcmludGYoZmlsZW5h bWUsICIlcy9kZXZpY2UiLCBwYXRoKTsKKwkJc25wcmludGYoaTJjX3BhdGgsIFBBVEhfTUFYLCAg IiVzL3Bvd2VyL2NvbnRyb2wiLCBwYXRoKTsKKwkJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFY LCAiJXMvZGV2aWNlIiwgcGF0aCk7CiAJfQogCiAJaWYgKGRldmljZV9oYXNfcnVudGltZV9wbShm aWxlbmFtZSkpCi0JCXNwcmludGYoZGVzYywgXygiUnVudGltZSBQTSBmb3IgSTJDICVzICVzICgl cykiKSwgKGlzX2FkYXB0ZXIgPyBfKCJBZGFwdGVyIikgOiBfKCJEZXZpY2UiKSksIG5hbWUsIChk ZXZuYW1lLmVtcHR5KCkgPyAiIiA6IGRldm5hbWUuY19zdHIoKSkpOworCQlzbnByaW50ZihkZXNj LCA0MDk2LCBfKCJSdW50aW1lIFBNIGZvciBJMkMgJXMgJXMgKCVzKSIpLCAoaXNfYWRhcHRlciA/ IF8oIkFkYXB0ZXIiKSA6IF8oIkRldmljZSIpKSwgbmFtZSwgKGRldm5hbWUuZW1wdHkoKSA/ICIi IDogZGV2bmFtZS5jX3N0cigpKSk7CiAJZWxzZQotCQlzcHJpbnRmKGRlc2MsIF8oIkkyQyAlcyAl cyBoYXMgbm8gcnVudGltZSBwb3dlciBtYW5hZ2VtZW50IiksIChpc19hZGFwdGVyID8gXygiQWRh cHRlciIpIDogXygiRGV2aWNlIikpLCBuYW1lKTsKKwkJc25wcmludGYoZGVzYywgNDA5NiwgXygi STJDICVzICVzIGhhcyBubyBydW50aW1lIHBvd2VyIG1hbmFnZW1lbnQiKSwgKGlzX2FkYXB0ZXIg PyBfKCJBZGFwdGVyIikgOiBfKCJEZXZpY2UiKSksIG5hbWUpOwogCi0Jc3ByaW50Zih0b2dnbGVf Z29vZCwgImVjaG8gJ2F1dG8nID4gJyVzJzsiLCBpMmNfcGF0aCk7Ci0Jc3ByaW50Zih0b2dnbGVf YmFkLCAiZWNobyAnb24nID4gJyVzJzsiLCBpMmNfcGF0aCk7CisJc25wcmludGYodG9nZ2xlX2dv b2QsIDQwOTYsICJlY2hvICdhdXRvJyA+ICclcyc7IiwgaTJjX3BhdGgpOworCXNucHJpbnRmKHRv Z2dsZV9iYWQsIDQwOTYsICJlY2hvICdvbicgPiAnJXMnOyIsIGkyY19wYXRoKTsKIH0KIAogaW50 IGkyY190dW5hYmxlOjpnb29kX2JhZCh2b2lkKQpAQCAtMTAxLDIwICsxMDIsMjAgQEAgY29uc3Qg Y2hhciAqaTJjX3R1bmFibGU6OnRvZ2dsZV9zY3JpcHQodm9pZCkKIHN0YXRpYyB2b2lkIGFkZF9p MmNfY2FsbGJhY2soY29uc3QgY2hhciAqZF9uYW1lKQogewogCWNsYXNzIGkyY190dW5hYmxlICpp MmM7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BBVEhfTUFYXTsKIAli b29sIGlzX2FkYXB0ZXIgPSBmYWxzZTsKIAotCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2J1cy9p MmMvZGV2aWNlcy8lcy9uZXdfZGV2aWNlIiwgZF9uYW1lKTsKKwlzbnByaW50ZihmaWxlbmFtZSwg UEFUSF9NQVgsICIvc3lzL2J1cy9pMmMvZGV2aWNlcy8lcy9uZXdfZGV2aWNlIiwgZF9uYW1lKTsK IAlpZiAoYWNjZXNzKGZpbGVuYW1lLCBXX09LKSA9PSAwKQogCQlpc19hZGFwdGVyID0gdHJ1ZTsK IAotCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2J1cy9pMmMvZGV2aWNlcy8lcyIsIGRfbmFtZSk7 CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvaTJjL2RldmljZXMvJXMi LCBkX25hbWUpOwogCWkyYyA9IG5ldyBjbGFzcyBpMmNfdHVuYWJsZShmaWxlbmFtZSwgZF9uYW1l LCBpc19hZGFwdGVyKTsKIAogCWlmIChpc19hZGFwdGVyKQotCQlzcHJpbnRmKGZpbGVuYW1lLCAi L3N5cy9idXMvaTJjL2RldmljZXMvJXMvZGV2aWNlIiwgZF9uYW1lKTsKKwkJc25wcmludGYoZmls ZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9idXMvaTJjL2RldmljZXMvJXMvZGV2aWNlIiwgZF9uYW1l KTsKIAllbHNlCi0JCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2J1cy9pMmMvZGV2aWNlcy8lcyIs IGRfbmFtZSk7CisJCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvYnVzL2kyYy9k ZXZpY2VzLyVzIiwgZF9uYW1lKTsKIAogCWlmIChkZXZpY2VfaGFzX3J1bnRpbWVfcG0oZmlsZW5h bWUpKQogCQlhbGxfdHVuYWJsZXMucHVzaF9iYWNrKGkyYyk7CmRpZmYgLS1naXQgYS9zcmMvdHVu aW5nL3R1bmluZ2kyYy5oIGIvc3JjL3R1bmluZy90dW5pbmdpMmMuaAppbmRleCBhOTcwZmFmLi44 ZmQ4Nzg0IDEwMDY0NAotLS0gYS9zcmMvdHVuaW5nL3R1bmluZ2kyYy5oCisrKyBiL3NyYy90dW5p bmcvdHVuaW5naTJjLmgKQEAgLTIxLDEzICsyMSwxNCBAQAogI2RlZmluZSBfSU5DTFVERV9HVUFS RF9JMkNfVFVORV9ICiAKICNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAK ICNpbmNsdWRlICJ0dW5hYmxlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIGNsYXNzIGky Y190dW5hYmxlIDogcHVibGljIHR1bmFibGUgewotCWNoYXIgaTJjX3BhdGhbNDA5Nl07CisJY2hh ciBpMmNfcGF0aFtQQVRIX01BWF07CiBwdWJsaWM6CiAJaTJjX3R1bmFibGUoY29uc3QgY2hhciAq cGF0aCwgY29uc3QgY2hhciAqbmFtZSwgYm9vbCBpc19hZGFwdGVyKTsKIApkaWZmIC0tZ2l0IGEv c3JjL3R1bmluZy90dW5pbmdzeXNmcy5jcHAgYi9zcmMvdHVuaW5nL3R1bmluZ3N5c2ZzLmNwcApp bmRleCAwODU5YTBjLi44ZDU1OTY5IDEwMDY0NAotLS0gYS9zcmMvdHVuaW5nL3R1bmluZ3N5c2Zz LmNwcAorKysgYi9zcmMvdHVuaW5nL3R1bmluZ3N5c2ZzLmNwcApAQCAtMzcsNiArMzcsNyBAQAog I2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPGRp cmVudC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAKICNpbmNsdWRlICIuLi9saWIuaCIKQEAg LTExNSwxMSArMTE2LDExIEBAIHZvaWQgYWRkX3N5c2ZzX3R1bmFibGUoY29uc3QgY2hhciAqc3Ry LCBjb25zdCBjaGFyICpfc3lzZnNfcGF0aCwgY29uc3QgY2hhciAqX3RhCiAKIHN0YXRpYyB2b2lk IGFkZF9zYXRhX3R1bmFibGVzX2NhbGxiYWNrKGNvbnN0IGNoYXIgKmRfbmFtZSkKIHsKLQljaGFy IGZpbGVuYW1lWzQwOTZdOworCWNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwogCWNoYXIgbXNnWzQw OTZdOwogCi0Jc3ByaW50ZihmaWxlbmFtZSwgIi9zeXMvY2xhc3Mvc2NzaV9ob3N0LyVzL2xpbmtf cG93ZXJfbWFuYWdlbWVudF9wb2xpY3kiLCBkX25hbWUpOwotCXNwcmludGYobXNnLCBfKCJFbmFi bGUgU0FUQSBsaW5rIHBvd2VyIG1hbmFnZW1lbnQgZm9yICVzIiksIGRfbmFtZSk7CisJc25wcmlu dGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiL3N5cy9jbGFzcy9zY3NpX2hvc3QvJXMvbGlua19wb3dl cl9tYW5hZ2VtZW50X3BvbGljeSIsIGRfbmFtZSk7CisJc25wcmludGYobXNnLCA0MDk2LCBfKCJF bmFibGUgU0FUQSBsaW5rIHBvd2VyIG1hbmFnZW1lbnQgZm9yICVzIiksIGRfbmFtZSk7CiAJYWRk X3N5c2ZzX3R1bmFibGUobXNnLCBmaWxlbmFtZSwibWluX3Bvd2VyIik7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy90dW5pbmcvdHVuaW5nc3lzZnMuaCBiL3NyYy90dW5pbmcvdHVuaW5nc3lzZnMuaApp bmRleCBhZDg5NzE3Li41N2I5ZGU3IDEwMDY0NAotLS0gYS9zcmMvdHVuaW5nL3R1bmluZ3N5c2Zz LmgKKysrIGIvc3JjL3R1bmluZy90dW5pbmdzeXNmcy5oCkBAIC0yNiwxMyArMjYsMTQgQEAKICNk ZWZpbmUgX0lOQ0xVREVfR1VBUkRfU1lTRlNfVFVORV9ICiAKICNpbmNsdWRlIDx2ZWN0b3I+Cisj aW5jbHVkZSA8bGltaXRzLmg+CiAKICNpbmNsdWRlICJ0dW5hYmxlLmgiCiAKIHVzaW5nIG5hbWVz cGFjZSBzdGQ7CiAKIGNsYXNzIHN5c2ZzX3R1bmFibGUgOiBwdWJsaWMgdHVuYWJsZSB7Ci0JY2hh ciBzeXNmc19wYXRoWzQwOTZdOworCWNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07CiAJY2hhciB0 YXJnZXRfdmFsdWVbNDA5Nl07CiAJY2hhciBiYWRfdmFsdWVbNDA5Nl07CiBwdWJsaWM6CmRpZmYg LS1naXQgYS9zcmMvdHVuaW5nL3R1bmluZ3VzYi5jcHAgYi9zcmMvdHVuaW5nL3R1bmluZ3VzYi5j cHAKaW5kZXggZDJhMGMxMS4uMTJmOWNlMiAxMDA2NDQKLS0tIGEvc3JjL3R1bmluZy90dW5pbmd1 c2IuY3BwCisrKyBiL3NyYy90dW5pbmcvdHVuaW5ndXNiLmNwcApAQCAtMzIsMTcgKzMyLDE4IEBA CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxmc3Ry ZWFtPgorI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5jbHVkZSAiLi4vbGliLmgiCiAKIHVzYl90 dW5hYmxlOjp1c2JfdHVuYWJsZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpuYW1lKSA6 IHR1bmFibGUoIiIsIDAuOSwgXygiR29vZCIpLCBfKCJCYWQiKSwgXygiVW5rbm93biIpKQogewog CWlmc3RyZWFtIGZpbGU7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1lW1BB VEhfTUFYXTsKIAljaGFyIHZlbmRvclsyMDQ4XTsKIAljaGFyIHByb2R1Y3RbMjA0OF07CiAJc3Ry aW5nIHN0cjEsIHN0cjI7Ci0Jc3ByaW50Zih1c2JfcGF0aCwgIiVzL3Bvd2VyL2NvbnRyb2wiLCBw YXRoKTsKKwlzbnByaW50Zih1c2JfcGF0aCwgUEFUSF9NQVgsICIlcy9wb3dlci9jb250cm9sIiwg cGF0aCk7CiAKIAl2ZW5kb3JbMF0gPSAwOwogCXByb2R1Y3RbMF0gPSAwOwpAQCAtNTAsOSArNTEs OSBAQCB1c2JfdHVuYWJsZTo6dXNiX3R1bmFibGUoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hh ciAqbmFtZSkgOiB0dW5hYmxlKCIiLCAwLjksCiAJc3RyMSA9IHJlYWRfc3lzZnNfc3RyaW5nKCIl cy9pZFZlbmRvciIsIHBhdGgpOwogCXN0cjIgPSByZWFkX3N5c2ZzX3N0cmluZygiJXMvaWRQcm9k dWN0IiwgcGF0aCk7CiAKLQlzcHJpbnRmKGRlc2MsIF8oIkF1dG9zdXNwZW5kIGZvciB1bmtub3du IFVTQiBkZXZpY2UgJXMgKCVzOiVzKSIpLCBuYW1lLCBzdHIxLmNfc3RyKCksIHN0cjIuY19zdHIo KSk7CisJc25wcmludGYoZGVzYywgNDA5NiwgXygiQXV0b3N1c3BlbmQgZm9yIHVua25vd24gVVNC IGRldmljZSAlcyAoJXM6JXMpIiksIG5hbWUsIHN0cjEuY19zdHIoKSwgc3RyMi5jX3N0cigpKTsK IAotCXNwcmludGYoZmlsZW5hbWUsICIlcy9tYW51ZmFjdHVyZXIiLCBwYXRoKTsKKwlzbnByaW50 ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIlcy9tYW51ZmFjdHVyZXIiLCBwYXRoKTsKIAlmaWxlLm9w ZW4oZmlsZW5hbWUsIGlvczo6aW4pOwogCWlmIChmaWxlKSB7CiAJCWZpbGUuZ2V0bGluZSh2ZW5k b3IsIDIwNDcpOwpAQCAtNjAsMjEgKzYxLDIxIEBAIHVzYl90dW5hYmxlOjp1c2JfdHVuYWJsZShj b25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpuYW1lKSA6IHR1bmFibGUoIiIsIDAuOSwKIAkJ CXZlbmRvclswXSA9IDA7CiAJCWZpbGUuY2xvc2UoKTsKIAl9OwotCXNwcmludGYoZmlsZW5hbWUs ICIlcy9wcm9kdWN0IiwgcGF0aCk7CisJc25wcmludGYoZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMv cHJvZHVjdCIsIHBhdGgpOwogCWZpbGUub3BlbihmaWxlbmFtZSwgaW9zOjppbik7CiAJaWYgKGZp bGUpIHsKIAkJZmlsZS5nZXRsaW5lKHByb2R1Y3QsIDIwNDApOwogCQlmaWxlLmNsb3NlKCk7CiAJ fTsKIAlpZiAoc3RybGVuKHZlbmRvcikgJiYgc3RybGVuKHByb2R1Y3QpKQotCQlzcHJpbnRmKGRl c2MsIF8oIkF1dG9zdXNwZW5kIGZvciBVU0IgZGV2aWNlICVzIFslc10iKSwgcHJvZHVjdCwgdmVu ZG9yKTsKKwkJc25wcmludGYoZGVzYywgNDA5NiwgXygiQXV0b3N1c3BlbmQgZm9yIFVTQiBkZXZp Y2UgJXMgWyVzXSIpLCBwcm9kdWN0LCB2ZW5kb3IpOwogCWVsc2UgaWYgKHN0cmxlbihwcm9kdWN0 KSkKLQkJc3ByaW50ZihkZXNjLCBfKCJBdXRvc3VzcGVuZCBmb3IgVVNCIGRldmljZSAlcyBbJXNd IiksIHByb2R1Y3QsIG5hbWUpOworCQlzbnByaW50ZihkZXNjLCA0MDk2LCBfKCJBdXRvc3VzcGVu ZCBmb3IgVVNCIGRldmljZSAlcyBbJXNdIiksIHByb2R1Y3QsIG5hbWUpOwogCWVsc2UgaWYgKHN0 cmxlbih2ZW5kb3IpKQotCQlzcHJpbnRmKGRlc2MsIF8oIkF1dG9zdXNwZW5kIGZvciBVU0IgZGV2 aWNlICVzIFslc10iKSwgdmVuZG9yLCBuYW1lKTsKKwkJc25wcmludGYoZGVzYywgNDA5NiwgXygi QXV0b3N1c3BlbmQgZm9yIFVTQiBkZXZpY2UgJXMgWyVzXSIpLCB2ZW5kb3IsIG5hbWUpOwogCi0J c3ByaW50Zih0b2dnbGVfZ29vZCwgImVjaG8gJ2F1dG8nID4gJyVzJzsiLCB1c2JfcGF0aCk7Ci0J c3ByaW50Zih0b2dnbGVfYmFkLCAiZWNobyAnb24nID4gJyVzJzsiLCB1c2JfcGF0aCk7CisJc25w cmludGYodG9nZ2xlX2dvb2QsIDQwOTYsICJlY2hvICdhdXRvJyA+ICclcyc7IiwgdXNiX3BhdGgp OworCXNucHJpbnRmKHRvZ2dsZV9iYWQsIDQwOTYsICJlY2hvICdvbicgPiAnJXMnOyIsIHVzYl9w YXRoKTsKIH0KIAogaW50IHVzYl90dW5hYmxlOjpnb29kX2JhZCh2b2lkKQpAQCAtMTE3LDI2ICsx MTgsMjYgQEAgY29uc3QgY2hhciAqdXNiX3R1bmFibGU6OnRvZ2dsZV9zY3JpcHQodm9pZCkKIHN0 YXRpYyB2b2lkIGFkZF91c2JfY2FsbGJhY2soY29uc3QgY2hhciAqZF9uYW1lKQogewogCWNsYXNz IHVzYl90dW5hYmxlICp1c2I7Ci0JY2hhciBmaWxlbmFtZVs0MDk2XTsKKwljaGFyIGZpbGVuYW1l W1BBVEhfTUFYXTsKIAlESVIgKmRpcjsKIAotCXNwcmludGYoZmlsZW5hbWUsICIvc3lzL2J1cy91 c2IvZGV2aWNlcy8lcy9wb3dlci9jb250cm9sIiwgZF9uYW1lKTsKKwlzbnByaW50ZihmaWxlbmFt ZSwgUEFUSF9NQVgsICIvc3lzL2J1cy91c2IvZGV2aWNlcy8lcy9wb3dlci9jb250cm9sIiwgZF9u YW1lKTsKIAlpZiAoYWNjZXNzKGZpbGVuYW1lLCBSX09LKSAhPSAwKQogCQlyZXR1cm47CiAKLQlz cHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvdXNiL2RldmljZXMvJXMvcG93ZXIvYWN0aXZlX2R1 cmF0aW9uIiwgZF9uYW1lKTsKKwlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9NQVgsICIvc3lzL2J1 cy91c2IvZGV2aWNlcy8lcy9wb3dlci9hY3RpdmVfZHVyYXRpb24iLCBkX25hbWUpOwogCWlmIChh Y2Nlc3MoZmlsZW5hbWUsIFJfT0spIT0wKQogCQlyZXR1cm47CiAKIAkvKiBldmVyeSBpbnRlcmZh Y2Ugb2YgdGhpcyBkZXZpY2Ugc2hvdWxkIHN1cHBvcnQgYXV0b3N1c3BlbmQgKi8KLQlzcHJpbnRm KGZpbGVuYW1lLCAiL3N5cy9idXMvdXNiL2RldmljZXMvJXMiLCBkX25hbWUpOworCXNucHJpbnRm KGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMvYnVzL3VzYi9kZXZpY2VzLyVzIiwgZF9uYW1lKTsK IAlpZiAoKGRpciA9IG9wZW5kaXIoZmlsZW5hbWUpKSkgewogCQlzdHJ1Y3QgZGlyZW50ICplbnRy eTsKIAkJd2hpbGUgKChlbnRyeSA9IHJlYWRkaXIoZGlyKSkpIHsKIAkJCS8qIGRpcm5hbWU6IDxi dXNudW0+LTxkZXZudW0+Li4uOjxjb25maWcgbnVtPi08aW50ZXJmYWNlIG51bT4gKi8KIAkJCWlm ICghaXNkaWdpdChlbnRyeS0+ZF9uYW1lWzBdKSkKIAkJCQljb250aW51ZTsKLQkJCXNwcmludGYo ZmlsZW5hbWUsICIvc3lzL2J1cy91c2IvZGV2aWNlcy8lcy8lcy9zdXBwb3J0c19hdXRvc3VzcGVu ZCIsIGRfbmFtZSwgZW50cnktPmRfbmFtZSk7CisJCQlzbnByaW50ZihmaWxlbmFtZSwgUEFUSF9N QVgsICIvc3lzL2J1cy91c2IvZGV2aWNlcy8lcy8lcy9zdXBwb3J0c19hdXRvc3VzcGVuZCIsIGRf bmFtZSwgZW50cnktPmRfbmFtZSk7CiAJCQlpZiAoYWNjZXNzKGZpbGVuYW1lLCBSX09LKSA9PSAw ICYmIHJlYWRfc3lzZnMoZmlsZW5hbWUpID09IDApCiAJCQkJYnJlYWs7CiAJCX0KQEAgLTE0NSw3 ICsxNDYsNyBAQCBzdGF0aWMgdm9pZCBhZGRfdXNiX2NhbGxiYWNrKGNvbnN0IGNoYXIgKmRfbmFt ZSkKIAkJCXJldHVybjsKIAl9CiAKLQlzcHJpbnRmKGZpbGVuYW1lLCAiL3N5cy9idXMvdXNiL2Rl dmljZXMvJXMiLCBkX25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBQQVRIX01BWCwgIi9zeXMv YnVzL3VzYi9kZXZpY2VzLyVzIiwgZF9uYW1lKTsKIAl1c2IgPSBuZXcgY2xhc3MgdXNiX3R1bmFi bGUoZmlsZW5hbWUsIGRfbmFtZSk7CiAJYWxsX3R1bmFibGVzLnB1c2hfYmFjayh1c2IpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL3R1bmluZy90dW5pbmd1c2IuaCBiL3NyYy90dW5pbmcvdHVuaW5ndXNi LmgKaW5kZXggYTI1NzkwNC4uNGUyN2UzYSAxMDA2NDQKLS0tIGEvc3JjL3R1bmluZy90dW5pbmd1 c2IuaAorKysgYi9zcmMvdHVuaW5nL3R1bmluZ3VzYi5oCkBAIC0yNiwxMyArMjYsMTQgQEAKICNk ZWZpbmUgX0lOQ0xVREVfR1VBUkRfVVNCX1RVTkVfSAogCiAjaW5jbHVkZSA8dmVjdG9yPgorI2lu Y2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5jbHVkZSAidHVuYWJsZS5oIgogCiB1c2luZyBuYW1lc3Bh Y2Ugc3RkOwogCiBjbGFzcyB1c2JfdHVuYWJsZSA6IHB1YmxpYyB0dW5hYmxlIHsKLQljaGFyIHVz Yl9wYXRoWzQwOTZdOworCWNoYXIgdXNiX3BhdGhbUEFUSF9NQVhdOwogcHVibGljOgogCXVzYl90 dW5hYmxlKGNvbnN0IGNoYXIgKnVzYl9wYXRoLCBjb25zdCBjaGFyICpwYXRoKTsKIAotLSAKMi4x LjAKCg== --===============0389925964821072896== Content-Type: text/x-patch MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Improve-handling-of-reporting-filenames.patch" RnJvbSBjZDUxMWQ1YjhlZGYyZjFhNTNkY2M0YmQ4MzliZGI2NzZlNjAyNThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/SmFyb3NsYXY9MjA9QzU9QTBrYXJ2YWRhPz0g PGpza2FydmFkQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMTIgTWF5IDIwMTUgMTg6MDY6NTYgKzAy MDAKU3ViamVjdDogW1BBVENIIDIvMl0gSW1wcm92ZSBoYW5kbGluZyBvZiByZXBvcnRpbmcgZmls ZW5hbWVzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpwb3dlcnRvcCAtLWh0bWwK Z2VuZXJhdGVzICdwb3dlcnRvcC5odG1sJyBmaWxlCgpwb3dlcnRvcCAtLWh0bWw9bXlmaWxlLnN1 ZmZpeApnZW5lcmF0ZXMgJ215ZmlsZS5zdWZmaXgnIGZpbGUKCnBvd2VydG9wIC1pIDIgLS1odG1s CmdlbmVyYXRlcyAncG93ZXJ0b3AtVElNRVNUQU1QUy5odG1sJyBmaWxlcwoKcG93ZXJ0b3AgLWkg MiAtLWh0bWw9bXlmaWxlLnN1ZmZpeApnZW5lcmF0ZXMgJ215ZmlsZS1USU1FU1RBTVBTLnN1ZmZp eCcgZmlsZXMKCnBvd2VydG9wIC1pIDIgLS1odG1sPW15ZmlsZQpnZW5lcmF0ZXMgJ215ZmlsZS1U SU1FU1RBTVBTJyBmaWxlcwoKU2ltaWxhcmx5IGZvciBDU1YuCgpTaWduZWQtb2ZmLWJ5OiBKYXJv c2xhdiDFoGthcnZhZGEgPGpza2FydmFkQHJlZGhhdC5jb20+Ci0tLQogc3JjL21haW4uY3BwICAg ICAgICAgIHwgMTAgKysrKysrKysrKwogc3JjL3JlcG9ydC9yZXBvcnQuY3BwIHwgMzUgKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0 aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL21haW4uY3BwIGIvc3Jj L21haW4uY3BwCmluZGV4IDE2YWNjNzMuLjI3MDllNzEgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmNw cAorKysgYi9zcmMvbWFpbi5jcHAKQEAgLTQyMCw2ICs0MjAsMTEgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCQljYXNlICdDJzoJCS8qIGNzdiByZXBvcnQgKi8KIAkJCXJlcG9y dHR5cGUgPSBSRVBPUlRfQ1NWOwogCQkJc3ByaW50ZihmaWxlbmFtZSwgIiVzIiwgb3B0YXJnID8g b3B0YXJnIDogInBvd2VydG9wLmNzdiIpOworCQkJaWYgKCFzdHJsZW4oZmlsZW5hbWUpKQorCQkJ eworCQkJCWZwcmludGYoc3RkZXJyLCBfKCJJbnZhbGlkIENTViBmaWxlbmFtZVxuIikpOworCQkJ CWV4aXQoMSk7CisJCQl9CiAJCQlicmVhazsKIAkJY2FzZSBPUFRfREVCVUc6CiAJCQkvKiBpbXBs ZW1lbnRlZCB1c2luZyBnZXRvcHRfbG9uZygzKSBmbGFnICovCkBAIC00MzEsNiArNDM2LDExIEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJY2FzZSAncic6CQkvKiBodG1sIHJl cG9ydCAqLwogCQkJcmVwb3J0dHlwZSA9IFJFUE9SVF9IVE1MOwogCQkJc3ByaW50ZihmaWxlbmFt ZSwgIiVzIiwgb3B0YXJnID8gb3B0YXJnIDogInBvd2VydG9wLmh0bWwiKTsKKwkJCWlmICghc3Ry bGVuKGZpbGVuYW1lKSkKKwkJCXsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgXygiSW52YWxpZCBIVE1M IGZpbGVuYW1lXG4iKSk7CisJCQkJZXhpdCgxKTsKKwkJCX0KIAkJCWJyZWFrOwogCQljYXNlICdp JzoKIAkJCWl0ZXJhdGlvbnMgPSAob3B0YXJnID8gYXRvaShvcHRhcmcpIDogMSk7CmRpZmYgLS1n aXQgYS9zcmMvcmVwb3J0L3JlcG9ydC5jcHAgYi9zcmMvcmVwb3J0L3JlcG9ydC5jcHAKaW5kZXgg MzU3MjIwMC4uYTA5YTNhOCAxMDA2NDQKLS0tIGEvc3JjL3JlcG9ydC9yZXBvcnQuY3BwCisrKyBi L3NyYy9yZXBvcnQvcmVwb3J0LmNwcApAQCAtMTY5LDI4ICsxNjksMjcgQEAgc3RhdGljIHZvaWQg c3lzdGVtX2luZm8odm9pZCkKIHZvaWQgaW5pdF9yZXBvcnRfb3V0cHV0KGNoYXIgKmZpbGVuYW1l X3N0ciwgaW50IGl0ZXJhdGlvbnMpCiB7CiAJc2l6ZV90IHBlcmlvZDsKLQljaGFyIGZpbGVfcHJl Zml4W1BBVEhfTUFYXTsKLQljaGFyIGZpbGVfcG9zdGZpeFs4XTsKKwlzdHJpbmcgZmlsZW5hbWU7 CiAJdGltZV90IHN0YW1wOwogCWNoYXIgZGF0ZXN0clsyMDBdOwogCi0Jc3RyaW5nIG15c3RyaW5n ID0gc3RyaW5nKGZpbGVuYW1lX3N0cik7Ci0Jc3ByaW50ZihmaWxlX3Bvc3RmaXgsICIlcyIsCi0J CShyZXBvcnR0eXBlID09IFJFUE9SVF9IVE1MID8gImh0bWwiIDogImNzdiIpKTsKLQlwZXJpb2Q9 bXlzdHJpbmcuZmluZF9sYXN0X29mKCIuIik7Ci0Jc25wcmludGYoZmlsZV9wcmVmaXgsIFBBVEhf TUFYLCAiJXMiLG15c3RyaW5nLnN1YnN0cigwLHBlcmlvZCkuY19zdHIoKSk7Ci0JbWVtc2V0KCZk YXRlc3RyLCAwLCAyMDApOwotCW1lbXNldCgmc3RhbXAsIDAsIHNpemVvZih0aW1lX3QpKTsKLQlz dGFtcD10aW1lKE5VTEwpOwotCXN0cmZ0aW1lKGRhdGVzdHIsIHNpemVvZihkYXRlc3RyKSwgIiVZ JW0lZC0lSCVNJVMiLCBsb2NhbHRpbWUoJnN0YW1wKSk7Ci0KLQlpZiAoaXRlcmF0aW9ucyAhPSAx KQotCQlzbnByaW50ZihyZXBvcnRvdXQuZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMtJXMuJXMiLAot CQkJZmlsZV9wcmVmaXgsIGRhdGVzdHIsZmlsZV9wb3N0Zml4KTsKKwlpZiAoaXRlcmF0aW9ucyA9 PSAxKQorCQlzbnByaW50ZihyZXBvcnRvdXQuZmlsZW5hbWUsIFBBVEhfTUFYLCAiJXMiLCBmaWxl bmFtZV9zdHIpOwogCWVsc2UKLQkJc25wcmludGYocmVwb3J0b3V0LmZpbGVuYW1lLCBQQVRIX01B WCwgIiVzLiVzIiwKLQkJCWZpbGVfcHJlZml4LCBmaWxlX3Bvc3RmaXgpOwotCisJeworCQlmaWxl bmFtZSA9IHN0cmluZyhmaWxlbmFtZV9zdHIpOworCQlwZXJpb2QgPSBmaWxlbmFtZS5maW5kX2xh c3Rfb2YoIi4iKTsKKwkJaWYgKHBlcmlvZCA+IGZpbGVuYW1lLmxlbmd0aCgpKQorCQkJcGVyaW9k ID0gZmlsZW5hbWUubGVuZ3RoKCk7CisJCW1lbXNldCgmZGF0ZXN0ciwgMCwgMjAwKTsKKwkJbWVt c2V0KCZzdGFtcCwgMCwgc2l6ZW9mKHRpbWVfdCkpOworCQlzdGFtcCA9IHRpbWUoTlVMTCk7CisJ CXN0cmZ0aW1lKGRhdGVzdHIsIHNpemVvZihkYXRlc3RyKSwgIiVZJW0lZC0lSCVNJVMiLCBsb2Nh bHRpbWUoJnN0YW1wKSk7CisJCXNucHJpbnRmKHJlcG9ydG91dC5maWxlbmFtZSwgUEFUSF9NQVgs ICIlcy0lcyVzIiwKKwkJCWZpbGVuYW1lLnN1YnN0cigwLCBwZXJpb2QpLmNfc3RyKCksIGRhdGVz dHIsCisJCQlmaWxlbmFtZS5zdWJzdHIocGVyaW9kKS5jX3N0cigpKTsKKwl9CisJCiAJcmVwb3J0 b3V0LnJlcG9ydF9maWxlID0gZm9wZW4ocmVwb3J0b3V0LmZpbGVuYW1lLCAid20iKTsKIAlpZiAo IXJlcG9ydG91dC5yZXBvcnRfZmlsZSkgewogCQlmcHJpbnRmKHN0ZGVyciwgXygiQ2Fubm90IG9w ZW4gb3V0cHV0IGZpbGUgJXMgKCVzKVxuIiksCi0tIAoyLjEuMAoK --===============0389925964821072896==--