From: marko.makela Date: May 30 2012 12:57pm Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3907 to 3909) WL#6255 List-Archive: http://lists.mysql.com/commits/144026 Message-Id: <201205301257.q4UCvqY6007788@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5MDkgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0zMAogICAgICBXTCM2MjU1OiBGaXggdGhlIG9u bGluZSByZWJ1aWxkIGxvZ2dpbmcgb2YgUk9XX0ZPUk1BVD1SRURVTkRBTlQgdGFibGVzLgogICAg ICAKICAgICAgTW92ZSBzb21lIGFjY2Vzc29yIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kICNkZWZp bmVzIGZyb20gcmVtMHJlYy5pYwogICAgICB0byByZW0wcmVjLmguCiAgICAgIAogICAgICByZWNf Ml9pc19maWVsZF9leHRlcm4oKTogRGV0ZXJtaW5lIGlmIGEgZmllbGQgaXMgc3RvcmVkIGV4dGVy bmFsbHkuCiAgICAgIAogICAgICByb3dfbG9nX3RhYmxlX2xvd19yZWR1bmRhbnQoKTogTGlrZSBy b3dfbG9nX3RhYmxlX2xvdygpLCBidXQgZm9yCiAgICAgIFJPV19GT1JNQVQ9UkVEVU5EQU5UIHJl Y29yZHMuIENvbnZlcnQgdGhlIHJlY190IHRvIGEgZHR1cGxlX3QgYW5kCiAgICAgIHRoZW4gdG8g dGhlIHJlYnVpbGQgbG9nIGZvcm1hdC4gQWRkIHNvbWUgYXNzZXJ0aW9ucy4KCiAgICBtb2RpZmll ZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAogICAgICBzdG9yYWdl L2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9y b3cwbG9nLmNjCiAzOTA4IE1hcmtvIE3DpGtlbMOkCTIwMTItMDUtMzAKICAgICAgYnRyX3BhZ2Vf c3BsaXRfYW5kX2luc2VydCgpOiBEbyBub3QgcmVsZWFzZSB0aGUgaW5kZXggdHJlZSBYLWxhdGNo CiAgICAgIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nIHJlYnVpbHQgb25saW5lLgoKICAgIG1vZGlm aWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmNjCiAzOTA3IE1hcmtvIE3D pGtlbMOkCTIwMTItMDUtMzAKICAgICAgV0wjNjI1NSByZWZhY3RvcmluZyAobm9uLWZ1bmN0aW9u YWwgY2hhbmdlKToKICAgICAgCiAgICAgIHJvd19sb2dfdGFibGVfbG93KCk6IENvbW1vbiBmdW5j dGlvbiBmb3Igcm93X2xvZ190YWJsZV91cGRhdGUoKQogICAgICBhbmQgcm93X2xvZ190YWJsZV9p bnNlcnQoKS4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxv Zy5jYwo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jYycK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jYwlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEyMDUzMDExMjMyNi01ZWRxMHhjOWxpbnVwNHl0CisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvYnRyL2J0cjBidHIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MjA1MzAxMjU0NDQtbTg5c2cyMDJxc3dhNDRoNApAQCAtMjU5OCw2ICsyNTk4LDggQEAgZnVuY19z dGFydDoKIAogCXV0X2FkKG10cl9tZW1vX2NvbnRhaW5zKG10ciwgZGljdF9pbmRleF9nZXRfbG9j ayhjdXJzb3ItPmluZGV4KSwKIAkJCQlNVFJfTUVNT19YX0xPQ0spKTsKKwl1dF9hZCghZGljdF9p bmRleF9pc19vbmxpbmVfZGRsKGN1cnNvci0+aW5kZXgpCisJICAgICAgfHwgZGljdF9pbmRleF9p c19jbHVzdChjdXJzb3ItPmluZGV4KSk7CiAjaWZkZWYgVU5JVl9TWU5DX0RFQlVHCiAJdXRfYWQo cndfbG9ja19vd24oZGljdF9pbmRleF9nZXRfbG9jayhjdXJzb3ItPmluZGV4KSwgUldfTE9DS19F WCkpOwogI2VuZGlmIC8qIFVOSVZfU1lOQ19ERUJVRyAqLwpAQCAtMjcyMSw3ICsyNzIzLDggQEAg aW5zZXJ0X2VtcHR5OgogCQkJCQkJb2Zmc2V0cywgdHVwbGUsIG5fZXh0LCBoZWFwKTsKIAl9CiAK LQlpZiAoaW5zZXJ0X3dpbGxfZml0ICYmIHBhZ2VfaXNfbGVhZihwYWdlKSkgeworCWlmIChpbnNl cnRfd2lsbF9maXQgJiYgcGFnZV9pc19sZWFmKHBhZ2UpCisJICAgICYmICFkaWN0X2luZGV4X2lz X29ubGluZV9kZGwoY3Vyc29yLT5pbmRleCkpIHsKIAogCQltdHJfbWVtb19yZWxlYXNlKG10ciwg ZGljdF9pbmRleF9nZXRfbG9jayhjdXJzb3ItPmluZGV4KSwKIAkJCQkgTVRSX01FTU9fWF9MT0NL KTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5o JwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5oCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTIwNTMwMTEyMzI2LTVlZHEweGM5bGludXA0eXQKKysrIGIvc3Rv cmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEyMDUzMDEyNTQ0NC1tODlzZzIwMnFzd2E0NGg0CkBAIC02Niw2ICs2NiwxNSBAQCBU aGUgc3RhdHVzIGlzIHN0b3JlZCBpbiB0aGUgbG93LW9yZGVyIGJpCiAvKiBMZW5ndGggb2YgYSBC LXRyZWUgbm9kZSBwb2ludGVyLCBpbiBieXRlcyAqLwogI2RlZmluZSBSRUNfTk9ERV9QVFJfU0la RQk0CiAKKy8qKiBTUUwgbnVsbCBmbGFnIGluIGEgMS1ieXRlIG9mZnNldCBvZiBST1dfRk9STUFU PVJFRFVOREFOVCByZWNvcmQgcyovCisjZGVmaW5lIFJFQ18xQllURV9TUUxfTlVMTF9NQVNLCTB4 ODBVTAorLyoqIFNRTCBudWxsIGZsYWcgaW4gYSAyLWJ5dGUgb2Zmc2V0IG9mIFJPV19GT1JNQVQ9 UkVEVU5EQU5UIHJlY29yZCBzKi8KKyNkZWZpbmUgUkVDXzJCWVRFX1NRTF9OVUxMX01BU0sJMHg4 MDAwVUwKKworLyoqIEluIGEgMi1ieXRlIG9mZnNldCBvZiBST1dfRk9STUFUPVJFRFVOREFOVCBy ZWNvcmRzLCB0aGUgc2Vjb25kIG1vc3QKK3NpZ25pZmljYW50IGJpdCBkZW5vdGVzIHRoYXQgdGhl IHRhaWwgb2YgYSBmaWVsZCBpcyBzdG9yZWQgb2ZmLXBhZ2UuICovCisjZGVmaW5lIFJFQ18yQllU RV9FWFRFUk5fTUFTSwkweDQwMDBVTAorCiAjaWZkZWYgVU5JVl9ERUJVRwogLyogTGVuZ3RoIG9m IHRoZSByZWNfZ2V0X29mZnNldHMoKSBoZWFkZXIgKi8KICMgZGVmaW5lIFJFQ19PRkZTX0hFQURF Ul9TSVpFCTQKQEAgLTM1Myw2ICszNjIsNTUgQEAgcmVjX2dldF8xYnl0ZV9vZmZzX2ZsYWcoCiAJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCwgcHVyZSwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CitUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc2V0IHRoZSAxLWJ5dGUgb2Zmc2V0 cyBmbGFnLiAqLworVU5JVl9JTkxJTkUKK3ZvaWQKK3JlY19zZXRfMWJ5dGVfb2Zmc19mbGFnKAor Lyo9PT09PT09PT09PT09PT09PT09PSovCisJcmVjX3QqCXJlYywJLyohPCBpbjogcGh5c2ljYWwg cmVjb3JkICovCisJaWJvb2wJZmxhZykJLyohPCBpbjogVFJVRSBpZiAxYnl0ZSBmb3JtICovCisJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorUmV0dXJucyB0aGUgb2Zmc2V0IG9mIG50 aCBmaWVsZCBlbmQgaWYgdGhlIHJlY29yZCBpcyBzdG9yZWQgaW4gdGhlIDEtYnl0ZQorb2Zmc2V0 cyBmb3JtLiBJZiB0aGUgZmllbGQgaXMgU1FMIG51bGwsIHRoZSBmbGFnIGlzIE9SZWQgaW4gdGhl IHJldHVybmVkCit2YWx1ZS4KK0ByZXR1cm4Jb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgZmll bGQsIFNRTCBudWxsIGZsYWcgT1JlZCAqLworVU5JVl9JTkxJTkUKK3VsaW50CityZWNfMV9nZXRf ZmllbGRfZW5kX2luZm8oCisvKj09PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgcmVjX3Qq CXJlYywJLyohPCBpbjogcmVjb3JkICovCisJdWxpbnQJCW4pCS8qITwgaW46IGZpZWxkIGluZGV4 ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgcHVyZSwgd2Fybl91bnVzZWRfcmVzdWx0KSk7 CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCitSZXR1cm5zIHRoZSBvZmZzZXQgb2YgbnRoIGZpZWxkIGVuZCBpZiB0aGUgcmVjb3Jk IGlzIHN0b3JlZCBpbiB0aGUgMi1ieXRlCitvZmZzZXRzIGZvcm0uIElmIHRoZSBmaWVsZCBpcyBT UUwgbnVsbCwgdGhlIGZsYWcgaXMgT1JlZCBpbiB0aGUgcmV0dXJuZWQKK3ZhbHVlLgorQHJldHVy biBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBmaWVsZCwgU1FMIG51bGwgZmxhZyBhbmQgZXh0 ZXJuCitzdG9yYWdlIGZsYWcgT1JlZCAqLworVU5JVl9JTkxJTkUKK3VsaW50CityZWNfMl9nZXRf ZmllbGRfZW5kX2luZm8oCisvKj09PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgcmVjX3Qq CXJlYywJLyohPCBpbjogcmVjb3JkICovCisJdWxpbnQJCW4pCS8qITwgaW46IGZpZWxkIGluZGV4 ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgcHVyZSwgd2Fybl91bnVzZWRfcmVzdWx0KSk7 CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCitSZXR1cm5zIG5vbnplcm8gaWYgdGhlIGZpZWxkIGlzIHN0b3JlZCBvZmYtcGFnZS4K K0ByZXR2YWwgMCBpZiB0aGUgZmllbGQgaXMgc3RvcmVkIGluLXBhZ2UKK0ByZXR2YWwgUkVDXzJC WVRFX0VYVEVSTl9NQVNLIGlmIHRoZSBmaWVsZCBpcyBzdG9yZWQgZXh0ZXJuYWxseSAqLworVU5J Vl9JTkxJTkUKK3VsaW50CityZWNfMl9pc19maWVsZF9leHRlcm4oCisvKj09PT09PT09PT09PT09 PT09PSovCisJY29uc3QgcmVjX3QqCXJlYywJLyohPCBpbjogcmVjb3JkICovCisJdWxpbnQJCW4p CS8qITwgaW46IGZpZWxkIGluZGV4ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgcHVyZSwg d2Fybl91bnVzZWRfcmVzdWx0KSk7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBEZXRlcm1pbmUgaG93IG1hbnkgb2YgdGhlIGZp cnN0IG4gY29sdW1ucyBpbiBhIGNvbXBhY3QKIHBoeXNpY2FsIHJlY29yZCBhcmUgc3RvcmVkIGV4 dGVybmFsbHkuCiBAcmV0dXJuCW51bWJlciBvZiBleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW5zICov Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaWMn Ci0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmljCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTIwNTMwMTEyMzI2LTVlZHEweGM5bGludXA0eXQKKysrIGIvc3Rv cmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMjA1MzAxMjU0NDQtbTg5c2cyMDJxc3dhNDRoNApAQCAtMSw2ICsxLDYgQEAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTQsIDIwMTEsIE9yYWNsZSBh bmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMp IDE5OTQsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVz ZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAt MTE4LDE3ICsxMTgsNiBAQCBhbmQgdGhlIHNoaWZ0IG5lZWRlZCB0byBvYnRhaW4gZWFjaCBiaXQt CiAjZGVmaW5lCVJFQ19JTkZPX0JJVFNfTUFTSwkweEYwVUwKICNkZWZpbmUgUkVDX0lORk9fQklU U19TSElGVAkwCiAKLS8qIFRoZSBmb2xsb3dpbmcgbWFza3MgYXJlIHVzZWQgdG8gZmlsdGVyIHRo ZSBTUUwgbnVsbCBiaXQgZnJvbQotb25lLWJ5dGUgYW5kIHR3by1ieXRlIG9mZnNldHMgKi8KLQot I2RlZmluZSBSRUNfMUJZVEVfU1FMX05VTExfTUFTSwkweDgwVUwKLSNkZWZpbmUgUkVDXzJCWVRF X1NRTF9OVUxMX01BU0sJMHg4MDAwVUwKLQotLyogSW4gYSAyLWJ5dGUgb2Zmc2V0IHRoZSBzZWNv bmQgbW9zdCBzaWduaWZpY2FudCBiaXQgZGVub3RlcwotYSBmaWVsZCBzdG9yZWQgdG8gYW5vdGhl ciBwYWdlOiAqLwotCi0jZGVmaW5lIFJFQ18yQllURV9FWFRFUk5fTUFTSwkweDQwMDBVTAotCiAj aWYgUkVDX09MRF9TSE9SVF9NQVNLIDw8ICg4ICogKFJFQ19PTERfU0hPUlQgLSAzKSkgXAogCQle IFJFQ19PTERfTl9GSUVMRFNfTUFTSyA8PCAoOCAqIChSRUNfT0xEX05fRklFTERTIC0gNCkpIFwK IAkJXiBSRUNfSEVBUF9OT19NQVNLIDw8ICg4ICogKFJFQ19PTERfSEVBUF9OTyAtIDQpKSBcCkBA IC04ODMsNiArODcyLDIwIEBAIHJlY18yX2dldF9maWVsZF9lbmRfaW5mbygKIAlyZXR1cm4obWFj aF9yZWFkX2Zyb21fMihyZWMgLSAoUkVDX05fT0xEX0VYVFJBX0JZVEVTICsgMiAqIG4gKyAyKSkp OwogfQogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgorUmV0dXJucyBub256ZXJvIGlmIHRoZSBmaWVsZCBpcyBzdG9yZWQgb2ZmLXBh Z2UuCitAcmV0dmFsIDAgaWYgdGhlIGZpZWxkIGlzIHN0b3JlZCBpbi1wYWdlCitAcmV0dmFsIFJF Q18yQllURV9FWFRFUk5fTUFTSyBpZiB0aGUgZmllbGQgaXMgc3RvcmVkIGV4dGVybmFsbHkgKi8K K1VOSVZfSU5MSU5FCit1bGludAorcmVjXzJfaXNfZmllbGRfZXh0ZXJuKAorLyo9PT09PT09PT09 PT09PT09PT0qLworCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJlY29yZCAqLworCXVsaW50 CQluKQkvKiE8IGluOiBmaWVsZCBpbmRleCAqLworeworCXJldHVybihyZWNfMl9nZXRfZmllbGRf ZW5kX2luZm8ocmVjLCBuKSAmIFJFQ18yQllURV9FWFRFUk5fTUFTSyk7Cit9CisKIC8qIEdldCB0 aGUgYmFzZSBhZGRyZXNzIG9mIG9mZnNldHMuICBUaGUgZXh0cmFfc2l6ZSBpcyBzdG9yZWQgYXQK IHRoaXMgcG9zaXRpb24sIGFuZCBmb2xsb3dpbmcgcG9zaXRpb25zIGhvbGQgdGhlIGVuZCBvZmZz ZXRzIG9mCiB0aGUgZmllbGRzLiAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2Uvcm93L3JvdzBsb2cuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MzAxMTIzMjYtNWVkcTB4YzlsaW51 cDR5dAorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbG9nLmNjCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTIwNTMwMTI1NDQ0LW04OXNnMjAycXN3YTQ0aDQKQEAgLTUwMyw2 ICs1MDMsMTM0IEBAIHJvd19sb2dfdGFibGVfZGVsZXRlKAogTG9ncyBhbiBpbnNlcnQgb3IgdXBk YXRlIHRvIGEgdGFibGUgdGhhdCBpcyBiZWluZyByZWJ1aWx0LiAqLwogc3RhdGljIF9fYXR0cmli dXRlX18oKG5vbm51bGwoMSwyLDMpKSkKIHZvaWQKK3Jvd19sb2dfdGFibGVfbG93X3JlZHVuZGFu dCgKKy8qPT09PT09PT09PT09PT09PT09PT09PT09Ki8KKwljb25zdCByZWNfdCoJCXJlYywJLyoh PCBpbjogY2x1c3RlcmVkIGluZGV4IGxlYWYKKwkJCQkJcGFnZSByZWNvcmQgaW4gUk9XX0ZPUk1B VD1SRURVTkRBTlQsCisJCQkJCXBhZ2UgWC1sYXRjaGVkICovCisJZGljdF9pbmRleF90KgkJaW5k ZXgsCS8qITwgaW4vb3V0OiBjbHVzdGVyZWQgaW5kZXgsIFMtbGF0Y2hlZAorCQkJCQlvciBYLWxh dGNoZWQgKi8KKwljb25zdCB1bGludCoJCW9mZnNldHMsLyohPCBpbjogcmVjX2dldF9vZmZzZXRz KHJlYyxpbmRleCkgKi8KKwlib29sCQkJaW5zZXJ0LAkvKiE8IGluOiB0cnVlIGlmIGluc2VydCwK KwkJCQkJZmFsc2UgaWYgdXBkYXRlICovCisJY29uc3QgZHR1cGxlX3QqCQlvbGRfcGssCS8qITwg aW46IG9sZCBQUklNQVJZIEtFWSB2YWx1ZQorCQkJCQkoaWYgIWluc2VydCBhbmQgYSBQUklNQVJZ IEtFWQorCQkJCQlpcyBiZWluZyBjcmVhdGVkKSAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJbmV3 X2luZGV4KQorCQkJCQkvKiE8IGluOiBjbHVzdGVyZWQgaW5kZXggb2YgdGhlCisJCQkJCW5ldyB0 YWJsZSwgbm90IGxhdGNoZWQgKi8KK3sKKwl1bGludAkJb2xkX3BrX3NpemU7CisJdWxpbnQJCW9s ZF9wa19leHRyYV9zaXplOworCXVsaW50CQlzaXplOworCXVsaW50CQlleHRyYV9zaXplOworCXVs aW50CQltcmVjX3NpemU7CisJdWxpbnQJCWF2YWlsX3NpemU7CisJbWVtX2hlYXBfdCoJaGVhcAkJ PSBOVUxMOworCWR0dXBsZV90Kgl0dXBsZTsKKworCXV0X2FkKCFwYWdlX2lzX2NvbXAocGFnZV9h bGlnbihyZWMpKSk7CisJdXRfYWQoZGljdF9pbmRleF9nZXRfbl9maWVsZHMoaW5kZXgpID09IHJl Y19nZXRfbl9maWVsZHNfb2xkKHJlYykpOworCisJaGVhcCA9IG1lbV9oZWFwX2NyZWF0ZShEVFVQ TEVfRVNUX0FMTE9DKGluZGV4LT5uX2ZpZWxkcykpOworCXR1cGxlID0gZHR1cGxlX2NyZWF0ZSho ZWFwLCBpbmRleC0+bl9maWVsZHMpOworCWRpY3RfaW5kZXhfY29weV90eXBlcyh0dXBsZSwgaW5k ZXgsIGluZGV4LT5uX2ZpZWxkcyk7CisJZHR1cGxlX3NldF9uX2ZpZWxkc19jbXAodHVwbGUsIGRp Y3RfaW5kZXhfZ2V0X25fdW5pcXVlKGluZGV4KSk7CisKKwlpZiAocmVjX2dldF8xYnl0ZV9vZmZz X2ZsYWcocmVjKSkgeworCQlmb3IgKHVsaW50IGkgPSAwOyBpIDwgaW5kZXgtPm5fZmllbGRzOyBp KyspIHsKKwkJCWRmaWVsZF90KglkZmllbGQ7CisJCQl1bGludAkJbGVuOworCQkJY29uc3Qgdm9p ZCoJZmllbGQ7CisKKwkJCWRmaWVsZCA9IGR0dXBsZV9nZXRfbnRoX2ZpZWxkKHR1cGxlLCBpKTsK KwkJCWZpZWxkID0gcmVjX2dldF9udGhfZmllbGRfb2xkKHJlYywgaSwgJmxlbik7CisKKwkJCWRm aWVsZF9zZXRfZGF0YShkZmllbGQsIGZpZWxkLCBsZW4pOworCQl9CisJfSBlbHNlIHsKKwkJZm9y ICh1bGludCBpID0gMDsgaSA8IGluZGV4LT5uX2ZpZWxkczsgaSsrKSB7CisJCQlkZmllbGRfdCoJ ZGZpZWxkOworCQkJdWxpbnQJCWxlbjsKKwkJCWNvbnN0IHZvaWQqCWZpZWxkOworCisJCQlkZmll bGQgPSBkdHVwbGVfZ2V0X250aF9maWVsZCh0dXBsZSwgaSk7CisJCQlmaWVsZCA9IHJlY19nZXRf bnRoX2ZpZWxkX29sZChyZWMsIGksICZsZW4pOworCisJCQlkZmllbGRfc2V0X2RhdGEoZGZpZWxk LCBmaWVsZCwgbGVuKTsKKworCQkJaWYgKHJlY18yX2lzX2ZpZWxkX2V4dGVybihyZWMsIGkpKSB7 CisJCQkJZGZpZWxkX3NldF9leHQoZGZpZWxkKTsKKwkJCX0KKwkJfQorCX0KKworCXNpemUgPSBy ZWNfZ2V0X2NvbnZlcnRlZF9zaXplX2NvbXBfcHJlZml4KAorCQlpbmRleCwgdHVwbGUtPmZpZWxk cywgdHVwbGUtPm5fZmllbGRzLAorCQlpbmRleC0+bl9udWxsYWJsZSwgJmV4dHJhX3NpemUpIC0g UkVDX05fTkVXX0VYVFJBX0JZVEVTOworCXV0X2FkKGV4dHJhX3NpemUgPj0gUkVDX05fTkVXX0VY VFJBX0JZVEVTKTsKKwlleHRyYV9zaXplIC09IFJFQ19OX05FV19FWFRSQV9CWVRFUzs7CisKKwlt cmVjX3NpemUgPSBST1dfTE9HX0hFQURFUl9TSVpFICsgc2l6ZSArIChleHRyYV9zaXplID49IDB4 ODApOworCisJaWYgKGluc2VydCB8fCBpbmRleC0+b25saW5lX2xvZy0+c2FtZV9waykgeworCQl1 dF9hZCghb2xkX3BrKTsKKwkJb2xkX3BrX2V4dHJhX3NpemUgPSBvbGRfcGtfc2l6ZSA9IDA7CisJ fSBlbHNlIHsKKwkJdXRfYWQob2xkX3BrKTsKKwkJdXRfYWQob2xkX3BrLT5uX2ZpZWxkcyA9PSAy ICsgb2xkX3BrLT5uX2ZpZWxkc19jbXApOworCQl1dF9hZChEQVRBX1RSWF9JRF9MRU4gPT0gZHR1 cGxlX2dldF9udGhfZmllbGQoCisJCQkgICAgICBvbGRfcGssIG9sZF9way0+bl9maWVsZHMgLSAy KS0+bGVuKTsKKwkJdXRfYWQoREFUQV9ST0xMX1BUUl9MRU4gPT0gZHR1cGxlX2dldF9udGhfZmll bGQoCisJCQkgICAgICBvbGRfcGssIG9sZF9way0+bl9maWVsZHMgLSAxKS0+bGVuKTsKKworCQlv bGRfcGtfc2l6ZSA9IHJlY19nZXRfY29udmVydGVkX3NpemVfY29tcF9wcmVmaXgoCisJCQluZXdf aW5kZXgsIG9sZF9way0+ZmllbGRzLCBvbGRfcGstPm5fZmllbGRzLAorCQkJMCwgJm9sZF9wa19l eHRyYV9zaXplKSAtIFJFQ19OX05FV19FWFRSQV9CWVRFUzsKKwkJdXRfYWQob2xkX3BrX2V4dHJh X3NpemUgPj0gUkVDX05fTkVXX0VYVFJBX0JZVEVTKTsKKwkJb2xkX3BrX2V4dHJhX3NpemUgLT0g UkVDX05fTkVXX0VYVFJBX0JZVEVTOworCQl1dF9hZChvbGRfcGtfZXh0cmFfc2l6ZSA8IDB4MTAw KTsKKwkJbXJlY19zaXplICs9IDEvKm9sZF9wa19leHRyYV9zaXplKi8gKyBvbGRfcGtfc2l6ZTsK Kwl9CisKKwlpZiAoYnl0ZSogYiA9IHJvd19sb2dfdGFibGVfb3BlbihpbmRleC0+b25saW5lX2xv ZywKKwkJCQkJIG1yZWNfc2l6ZSwgJmF2YWlsX3NpemUpKSB7CisJCSpiKysgPSBpbnNlcnQgPyBS T1dfVF9JTlNFUlQgOiBST1dfVF9VUERBVEU7CisKKwkJaWYgKG9sZF9wa19zaXplKSB7CisJCQkq YisrID0gb2xkX3BrX2V4dHJhX3NpemU7CisKKwkJCXJlY19jb252ZXJ0X2R0dXBsZV90b19yZWNf Y29tcCgKKwkJCQliICsgb2xkX3BrX2V4dHJhX3NpemUsIDAsIG5ld19pbmRleCwKKwkJCQlSRUNf U1RBVFVTX09SRElOQVJZLAorCQkJCW9sZF9way0+ZmllbGRzLCBvbGRfcGstPm5fZmllbGRzLCAw KTsKKwkJCWIgKz0gb2xkX3BrX3NpemU7CisJCX0KKworCQlpZiAoZXh0cmFfc2l6ZSA8IDB4ODAp IHsKKwkJCSpiKysgPSAoYnl0ZSkgZXh0cmFfc2l6ZTsKKwkJfSBlbHNlIHsKKwkJCXV0X2FkKGV4 dHJhX3NpemUgPCAweDgwMDApOworCQkJKmIrKyA9IChieXRlKSAoMHg4MCB8IChleHRyYV9zaXpl ID4+IDgpKTsKKwkJCSpiKysgPSAoYnl0ZSkgZXh0cmFfc2l6ZTsKKwkJfQorCisJCXJlY19jb252 ZXJ0X2R0dXBsZV90b19yZWNfY29tcCgKKwkJCWIgKyBleHRyYV9zaXplLCAwLCBpbmRleCwgUkVD X1NUQVRVU19PUkRJTkFSWSwKKwkJCXR1cGxlLT5maWVsZHMsIHR1cGxlLT5uX2ZpZWxkcywgaW5k ZXgtPm5fbnVsbGFibGUpOworCQliICs9IHNpemU7CisKKwkJcm93X2xvZ190YWJsZV9jbG9zZSgK KwkJCWluZGV4LT5vbmxpbmVfbG9nLCBiLCBtcmVjX3NpemUsIGF2YWlsX3NpemUpOworCX0KKwor CW1lbV9oZWFwX2ZyZWUoaGVhcCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitMb2dzIGFuIGluc2VydCBvciB1cGRhdGUg dG8gYSB0YWJsZSB0aGF0IGlzIGJlaW5nIHJlYnVpbHQuICovCitzdGF0aWMgX19hdHRyaWJ1dGVf Xygobm9ubnVsbCgxLDIsMykpKQordm9pZAogcm93X2xvZ190YWJsZV9sb3coCiAvKj09PT09PT09 PT09PT09Ki8KIAljb25zdCByZWNfdCoJcmVjLAkvKiE8IGluOiBjbHVzdGVyZWQgaW5kZXggbGVh ZiBwYWdlIHJlY29yZCwKQEAgLTUzMiw2ICs2NjAsOSBAQCByb3dfbG9nX3RhYmxlX2xvdygKIAl1 dF9hZChyd19sb2NrX293bigmaW5kZXgtPmxvY2ssIFJXX0xPQ0tfU0hBUkVEKQogCSAgICAgIHx8 IHJ3X2xvY2tfb3duKCZpbmRleC0+bG9jaywgUldfTE9DS19FWCkpOwogI2VuZGlmIC8qIFVOSVZf U1lOQ19ERUJVRyAqLworCXV0X2FkKGZpbF9wYWdlX2dldF90eXBlKHBhZ2VfYWxpZ24ocmVjKSkg PT0gRklMX1BBR0VfSU5ERVgpOworCXV0X2FkKHBhZ2VfaXNfbGVhZihwYWdlX2FsaWduKHJlYykp KTsKKwl1dF9hZCghcGFnZV9pc19jb21wKHBhZ2VfYWxpZ24ocmVjKSkgPT0gIXJlY19vZmZzX2Nv bXAob2Zmc2V0cykpOwogCiAJaWYgKGRpY3RfaW5kZXhfaXNfY29ycnVwdGVkKGluZGV4KQogCSAg ICB8fCAhZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KQpAQCAtNTM5LDE0ICs2NzAsMTcg QEAgcm93X2xvZ190YWJsZV9sb3coCiAJCXJldHVybjsKIAl9CiAKLQlpZiAocmVjX29mZnNfY29t cChvZmZzZXRzKSkgewotCQl1dF9hZChyZWNfZ2V0X3N0YXR1cyhyZWMpID09IFJFQ19TVEFUVVNf T1JESU5BUlkpOwotCi0JCW9taXRfc2l6ZSA9IFJFQ19OX05FV19FWFRSQV9CWVRFUzsKLQl9IGVs c2UgewotCQlvbWl0X3NpemUgPSBSRUNfTl9PTERfRVhUUkFfQllURVM7CisJaWYgKCFyZWNfb2Zm c19jb21wKG9mZnNldHMpKSB7CisJCXJvd19sb2dfdGFibGVfbG93X3JlZHVuZGFudCgKKwkJCXJl YywgaW5kZXgsIG9mZnNldHMsIGluc2VydCwgb2xkX3BrLCBuZXdfaW5kZXgpOworCQlyZXR1cm47 CiAJfQogCisJdXRfYWQocGFnZV9pc19jb21wKHBhZ2VfYWxpZ24ocmVjKSkpOworCXV0X2FkKHJl Y19nZXRfc3RhdHVzKHJlYykgPT0gUkVDX1NUQVRVU19PUkRJTkFSWSk7CisKKwlvbWl0X3NpemUg PSBSRUNfTl9ORVdfRVhUUkFfQllURVM7CisKIAlleHRyYV9zaXplID0gcmVjX29mZnNfZXh0cmFf c2l6ZShvZmZzZXRzKSAtIG9taXRfc2l6ZTsKIAogCW1yZWNfc2l6ZSA9IHJlY19vZmZzX3NpemUo b2Zmc2V0cykgLSBvbWl0X3NpemUKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNo IGVtYWlscyku