From: marko.makela Date: May 28 2012 2:14pm Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3881 to 3886) WL#6255 List-Archive: http://lists.mysql.com/commits/143989 Message-Id: <201205281414.q4SEEZsY004084@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM4ODYgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0yOAogICAgICBXTCM2MjU1OiBMb2dnaW5nIG9m IHJvbGxlZC1iYWNrIHRyYW5zYWN0aW9ucy4KICAgICAgCiAgICAgIFRvIGF2b2lkIGRlcmVmZXJl bmNpbmcgZnJlZWQgQkxPQiBwYWdlcyBkdXJpbmcgb25saW5lIHRhYmxlIHJlYnVpbGQsCiAgICAg IHdlIG11c3Qga2VlcCB0cmFjayBvbiByb2xsYmFja3Mgb2YgaW5zZXJ0cyB0byB0aGUgdGFibGUg dGhhdCBpcwogICAgICBiZWluZyByZWJ1aWx0LCBhbmQgc2tpcCBhbnkgcmVjb3JkcyB0aGF0IHdl cmUgaW5zZXJ0ZWQgYnkgc3VjaCBhCiAgICAgIHRyYW5zYWN0aW9uLiBBcyBhbiBvcHRpbWl6YXRp b24sIHdlIGFsc28ga2VlcCB0cmFjayBvZiByb2xsZWQtYmFjayB1cGRhdGVzLAogICAgICBzbyB0 aGF0IHdlIGNhbiBjb3B5IGxlc3MgZGF0YSBkdXJpbmcgb25saW5lIHRhYmxlIHJlYnVpbGQuCiAg ICAgIAogICAgICByb3dfbG9nX3RhYmxlX3JvbGxiYWNrKCk6IFJlcG9ydCBhIHJvbGxlZC1iYWNr IHRyYW5zYWN0aW9uLiBDYWxsZWQgYnkKICAgICAgcm93X3VuZG9faW5zKCkgYW5kIHJvd191bmRv X21vZCgpLgogICAgICAKICAgICAgcm93X2xvZ190YWJsZV9pc19yb2xsYmFjaygpOiBEZXRlcm1p bmUgaWYgYSBnaXZlbiB0cmFuc2FjdGlvbiB3YXMKICAgICAgcm9sbGVkIGJhY2sgYWZ0ZXIgaXQg bW9kaWZpZWQgdGhlIHRhYmxlIHRoYXQgaXMgYmVpbmcgcmVidWlsdC4KCiAgICBtb2RpZmllZDoK ICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBsb2cuaAogICAgICBzdG9yYWdlL2lu bm9iYXNlL3Jvdy9yb3cwbG9nLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1aW5z LmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmNjCiAzODg1IE1hcmtvIE3D pGtlbMOkCTIwMTItMDUtMjgKICAgICAgV0wjNjI1NSBwcmVwYXJhdGlvbjogQWRkIHJvd19sb2df dCBmaWVsZHMgZm9yIG9ubGluZSB0YWJsZSByZWJ1aWxkLgogICAgICAKICAgICAgcm93X2xvZ19h bGxvY2F0ZSgpOiBBZGQgdGhlIHBhcmFtZXRlcnMgdGFibGUsIHNhbWVfcGsuCiAgICAgIAogICAg ICByb3dfbG9nX3RhYmxlX2dldF9lcnJvcigpOiBBY2Nlc3NvciB0byBpbmRleC0+b25saW5lX2xv Zy0+ZXJyb3IuCiAgICAgIAogICAgICByb3dfbG9nX3Q6IE9ubGluZSB0YWJsZSByZWJ1aWxkIGxv ZyByZWNvcmQgdHlwZXMKCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5k bGVyL2hhbmRsZXIwYWx0ZXIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBs b2cuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbG9nLmNjCiAzODg0IE1hcmtvIE3D pGtlbMOkCTIwMTItMDUtMjgKICAgICAgUmVwbGFjZSBpYm9vbCB3aXRoIGJvb2wuCgogICAgbW9k aWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MKIDM4ODMgTWFya28g TcOka2Vsw6QJMjAxMi0wNS0yOAogICAgICBXTCM2MjU1IHByZXBhcmF0aW9uOiBBZGQgZHVtbXkg cXVlcnkgZ3JhcGggdG8gaGFfaW5ub2Jhc2VfaW5wbGFjZV9jdHgsCiAgICAgIGZvciBhcHBseWlu ZyB0aGUgb25saW5lIHRhYmxlIHJlYnVpbGQgbG9nLgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9y YWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwogMzg4MiBNYXJrbyBNw6RrZWzD pAkyMDEyLTA1LTI4CiAgICAgIFdMIzYyNTUgcHJlcGFyYXRpb246IFNpbXBsaWZ5IHRoZSBJTk5P QkFTRV9PTkxJTkVfT1BFUkFUSU9OUy4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKIDM4ODEgTWFya28gTcOka2Vsw6QJMjAxMi0w NS0yOAogICAgICBXTCM2MjU1IHByZXBhcmF0aW9uOiBTaW1wbGlmeSB0aGUgaW5kZXgtPm9ubGlu ZV9zdGF0dXMgZm9yIHJlYnVpbGRpbmcgdGFibGUuCiAgICAgIAogICAgICBkaWN0X2luZGV4X2lz X29ubGluZV9kZGwoKTogT24gY2x1c3RlcmVkIGluZGV4LCBhc3NlcnQgdGhhdCBvbmxpbmVfc3Rh dHVzCiAgICAgIGlzIGVpdGhlciBPTkxJTkVfSU5ERVhfQ1JFQVRJT04gb3IgT05MSU5FX0lOREVY X0NPTVBMRVRFLgogICAgICAKICAgICAgZGljdF90YWJsZV9pc19vbmxpbmVfcmVidWlsZCgpOiBJ bnZva2UgZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKCkuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAogICAgICBzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvZGljdDBkaWN0LmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0 MG1lbS5oCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxl cjBhbHRlci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIu Y2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MjgxMzM4MjQtdDcxenZqOXR0 ejNxczA3MAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyODE0MDkwMC1rMWh1YjhmZncydTJs ZGN6CkBAIC00MCw2ICs0MCw3IEBAIFNtYXJ0IEFMVEVSIFRBQkxFCiAjaW5jbHVkZSAiaGFuZGxl cjBhbHRlci5oIgogI2luY2x1ZGUgInNydjBtb24uaCIKICNpbmNsdWRlICJmdHMwcHJpdi5oIgor I2luY2x1ZGUgInBhcnMwcGFycy5oIgogCiAjaW5jbHVkZSAiaGFfaW5ub2RiLmgiCiAKQEAgLTc4 LDkgKzc5LDggQEAgc3RhdGljIGNvbnN0IEFsdGVyX2lucGxhY2VfaW5mbzo6SEFfQUxURQogLyoq IE9wZXJhdGlvbnMgdGhhdCBJbm5vREIgY2FuIHBlcmZvcm0gb25saW5lICovCiBzdGF0aWMgY29u c3QgQWx0ZXJfaW5wbGFjZV9pbmZvOjpIQV9BTFRFUl9GTEFHUyBJTk5PQkFTRV9PTkxJTkVfT1BF UkFUSU9OUwogCT0gSU5OT0JBU0VfSU5QTEFDRV9JR05PUkUKLQl8IEFsdGVyX2lucGxhY2VfaW5m bzo6QUREX0lOREVYCisJfCBJTk5PQkFTRV9PTkxJTkVfQ1JFQVRFCiAJfCBBbHRlcl9pbnBsYWNl X2luZm86OkRST1BfSU5ERVgKLQl8IEFsdGVyX2lucGxhY2VfaW5mbzo6QUREX1VOSVFVRV9JTkRF WAogCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpEUk9QX1VOSVFVRV9JTkRFWAogCXwgQWx0ZXJfaW5w bGFjZV9pbmZvOjpEUk9QX0lOREVYCiAJfCBBbHRlcl9pbnBsYWNlX2luZm86OkRST1BfRk9SRUlH Tl9LRVkKQEAgLTExNjgsNiArMTE2OCw4IEBAIGlubm9iYXNlX2NyZWF0ZV90ZW1wb3JhcnlfdGFi bGVuYW1lKAogY2xhc3MgaGFfaW5ub2Jhc2VfaW5wbGFjZV9jdHggOiBwdWJsaWMgaW5wbGFjZV9h bHRlcl9oYW5kbGVyX2N0eAogewogcHVibGljOgorCS8qKiBEdW1teSBxdWVyeSBncmFwaCAqLwor CXF1ZV90aHJfdCoJdGhyOwogCS8qKiBJbm5vREIgaW5kZXhlcyBiZWluZyBjcmVhdGVkICovCiAJ ZGljdF9pbmRleF90KioJYWRkOwogCS8qKiBNeVNRTCBrZXkgbnVtYmVycyBmb3IgdGhlIElubm9E QiBpbmRleGVzIHRoYXQgYXJlIGJlaW5nIGNyZWF0ZWQgKi8KQEAgLTExOTAsNyArMTE5Miw4IEBA IHB1YmxpYzoKIAl0cnhfdCoJCXRyeDsKIAkvKiogdGFibGUgd2hlcmUgdGhlIGluZGV4ZXMgYXJl IGJlaW5nIGNyZWF0ZWQgb3IgZHJvcHBlZCAqLwogCWRpY3RfdGFibGVfdCoJaW5kZXhlZF90YWJs ZTsKLQloYV9pbm5vYmFzZV9pbnBsYWNlX2N0eChkaWN0X2luZGV4X3QqKiBhZGRfYXJnLAorCWhh X2lubm9iYXNlX2lucGxhY2VfY3R4KHRyeF90KiB1c2VyX3RyeCwKKwkJCQlkaWN0X2luZGV4X3Qq KiBhZGRfYXJnLAogCQkJCWNvbnN0IHVsaW50KiBhZGRfa2V5X251bWJlcnNfYXJnLAogCQkJCXVs aW50IG51bV90b19hZGRfYXJnLAogCQkJCWRpY3RfaW5kZXhfdCoqIGRyb3BfYXJnLApAQCAtMTIx Niw2ICsxMjE5LDggQEAgcHVibGljOgogCQkJdXRfYWQoZHJvcFtpXS0+dG9fYmVfZHJvcHBlZCk7 CiAJCX0KICNlbmRpZiAvKiBVTklWX0RFQlVHICovCisKKwkJdGhyID0gcGFyc19jb21wbGV0ZV9n cmFwaF9mb3JfZXhlYyhOVUxMLCB1c2VyX3RyeCwgaGVhcCk7CiAJfQogCX5oYV9pbm5vYmFzZV9p bnBsYWNlX2N0eCgpIHsKIAkJbWVtX2hlYXBfZnJlZShoZWFwKTsKQEAgLTE3MTIsNyArMTcxNyw4 IEBAIGNvbF9mYWlsOgogCQkJCQllcnJvciA9IERCX09VVF9PRl9NRU1PUlk7CiAJCQkJCWdvdG8g ZXJyb3JfaGFuZGxpbmc7KTsKIAkJCXJ3X2xvY2tfeF9sb2NrKCZhZGRfaW5kZXhbbnVtX2NyZWF0 ZWRdLT5sb2NrKTsKLQkJCWJvb2wgb2sgPSByb3dfbG9nX2FsbG9jYXRlKGFkZF9pbmRleFtudW1f Y3JlYXRlZF0pOworCQkJYm9vbCBvayA9IHJvd19sb2dfYWxsb2NhdGUoYWRkX2luZGV4W251bV9j cmVhdGVkXSwKKwkJCQkJCSAgIE5VTEwsIHRydWUpOwogCQkJcndfbG9ja194X3VubG9jaygmYWRk X2luZGV4W251bV9jcmVhdGVkXS0+bG9jayk7CiAKIAkJCWlmICghb2spIHsKQEAgLTE4MDgsNyAr MTgxNCw3IEBAIGVycm9yX2hhbmRsaW5nOgogCQkJICAgICB1c2VyX3RhYmxlLCBDSEVDS19QQVJU SUFMX09LKSk7CiAJCXV0X2QobXV0ZXhfZXhpdCgmZGljdF9zeXMtPm11dGV4KSk7CiAJCWhhX2Fs dGVyX2luZm8tPmhhbmRsZXJfY3R4ID0gbmV3IGhhX2lubm9iYXNlX2lucGxhY2VfY3R4KAotCQkJ YWRkX2luZGV4LCBhZGRfa2V5X251bXMsIG5fYWRkX2luZGV4LAorCQkJdXNlcl90cngsIGFkZF9p bmRleCwgYWRkX2tleV9udW1zLCBuX2FkZF9pbmRleCwKIAkJCWRyb3BfaW5kZXgsIG5fZHJvcF9p bmRleCwKIAkJCWRyb3BfZm9yZWlnbiwgbl9kcm9wX2ZvcmVpZ24sCiAJCQkhbG9ja2VkICYmICFu ZXdfY2x1c3RlcmVkICYmICFudW1fZnRzX2luZGV4LApAQCAtMjMwNSw3ICsyMzExLDcgQEAgaW5k ZXhfbmVlZGVkOgogCQkJCT09IEFsdGVyX2luZm86OkFMVEVSX1RBQkxFX0xPQ0tfU0hBUkVEOwog CQkJaGFfYWx0ZXJfaW5mby0+aGFuZGxlcl9jdHgKIAkJCQk9IG5ldyBoYV9pbm5vYmFzZV9pbnBs YWNlX2N0eCgKLQkJCQkJTlVMTCwgTlVMTCwgMCwKKwkJCQkJcHJlYnVpbHQtPnRyeCwgTlVMTCwg TlVMTCwgMCwKIAkJCQkJZHJvcF9pbmRleCwgbl9kcm9wX2luZGV4LAogCQkJCQlkcm9wX2ZrLCBu X2Ryb3BfZmssICFsb2NrZWQsCiAJCQkJCWhlYXAsIE5VTEwsIGluZGV4ZWRfdGFibGUpOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbG9nLmgnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbG9nLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMjA1MjgxMzM4MjQtdDcxenZqOXR0ejNxczA3MAorKysgYi9zdG9yYWdlL2lu bm9iYXNlL2luY2x1ZGUvcm93MGxvZy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwNTI4MTQwOTAwLWsxaHViOGZmdzJ1MmxkY3oKQEAgLTE4LDcgKzE4LDcgQEAgdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEBmaWxlIGluY2x1ZGUvcm93MGxvZy5o Ci1Nb2RpZmljYXRpb24gbG9nIGZvciBvbmxpbmUgaW5kZXggY3JlYXRpb24KK01vZGlmaWNhdGlv biBsb2cgZm9yIG9ubGluZSBpbmRleCBjcmVhdGlvbiBhbmQgb25saW5lIHRhYmxlIHJlYnVpbGQK IAogQ3JlYXRlZCAyMDExLTA1LTI2IE1hcmtvIE1ha2VsYQogKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTI4LDkgKzI4LDExIEBAIENy ZWF0ZWQgMjAxMS0wNS0yNiBNYXJrbyBNYWtlbGEKIAogI2luY2x1ZGUgInVuaXYuaSIKICNpbmNs dWRlICJyb3cwdHlwZXMuaCIKKyNpbmNsdWRlICJyZW0wdHlwZXMuaCIKICNpbmNsdWRlICJkYXRh MHR5cGVzLmgiCiAjaW5jbHVkZSAiZGljdDB0eXBlcy5oIgogI2luY2x1ZGUgInRyeDB0eXBlcy5o IgorI2luY2x1ZGUgInF1ZTB0eXBlcy5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQWxsb2NhdGUgdGhlIHJvdyBsb2cgZm9y IGFuIGluZGV4IGFuZCBmbGFnIHRoZSBpbmRleApAQCAtNDAsOCArNDIsMTIgQEAgVU5JVl9JTlRF Uk4KIGJvb2wKIHJvd19sb2dfYWxsb2NhdGUoCiAvKj09PT09PT09PT09PT0qLwotCWRpY3RfaW5k ZXhfdCoJaW5kZXgpCS8qITwgaW4vb3V0OiBpbmRleCAqLwotCV9fYXR0cmlidXRlX18oKG5vbm51 bGwpKTsKKwlkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluL291dDogaW5kZXggKi8KKwlkaWN0 X3RhYmxlX3QqCXRhYmxlLAkvKiE8IGluL291dDogbmV3IHRhYmxlIGJlaW5nIHJlYnVpbHQsCisJ CQkJb3IgTlVMTCB3aGVuIGNyZWF0aW5nIGEgc2Vjb25kYXJ5IGluZGV4ICovCisJYm9vbAkJc2Ft ZV9waykvKiE8IGluOiB3aGV0aGVyIHRoZSBkZWZpbml0aW9uIG9mIHRoZQorCQkJCVBSSU1BUlkg S0VZIGhhcyByZW1haW5lZCB0aGUgc2FtZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwoMSks IHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIEZyZWUgdGhlIHJvdyBsb2cgZm9yIGFuIGluZGV4 IG9uIHdoaWNoIG9ubGluZSBjcmVhdGlvbiB3YXMgYWJvcnRlZC4gKi8KIFVOSVZfSU5URVJOCkBA IC02NCw2ICs3MCwzOCBAQCByb3dfbG9nX29ubGluZV9vcCgKIAlVTklWX0NPTEQgX19hdHRyaWJ1 dGVfXygobm9ubnVsbCkpOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgorR2V0cyB0aGUgZXJyb3Igc3RhdHVzIG9mIHRoZSBvbmxp bmUgaW5kZXggcmVidWlsZCBsb2cuCitAcmV0dXJuIERCX1NVQ0NFU1Mgb3IgZXJyb3IgY29kZSAq LworVU5JVl9JTlRFUk4KK2RiZXJyX3QKK3Jvd19sb2dfdGFibGVfZ2V0X2Vycm9yKAorLyo9PT09 PT09PT09PT09PT09PT09PSovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCkJLyohPCBpbjog Y2x1c3RlcmVkIGluZGV4IG9mIGEgdGFibGUKKwkJCQkJdGhhdCBpcyBiZWluZyByZWJ1aWx0IG9u bGluZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgorTm90ZXMgdGhhdCBhIHRyYW5zYWN0aW9uIGlzIGJlaW5nIHJvbGxlZCBiYWNrLiAqLwor VU5JVl9JTlRFUk4KK3ZvaWQKK3Jvd19sb2dfdGFibGVfcm9sbGJhY2soCisvKj09PT09PT09PT09 PT09PT09PT0qLworCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW4vb3V0OiBjbHVzdGVyZWQg aW5kZXggKi8KKwl0cnhfaWRfdAl0cnhfaWQpCS8qITwgaW46IHRyYW5zYWN0aW9uIGJlaW5nIHJv bGxlZCBiYWNrICovCisJVU5JVl9DT0xEIF9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKKworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK K0NoZWNrIGlmIGEgdHJhbnNhY3Rpb24gcm9sbGJhY2sgaGFzIGJlZW4gaW5pdGlhdGVkLgorQHJl dHVybiB0cnVlIGlmIGluc2VydHMgb2YgdGhpcyB0cmFuc2FjdGlvbiB3ZXJlIHJvbGxlZCBiYWNr ICovCitVTklWX0lOVEVSTgorYm9vbAorcm93X2xvZ190YWJsZV9pc19yb2xsYmFjaygKKy8qPT09 PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBp bjogY2x1c3RlcmVkIGluZGV4ICovCisJdHJ4X2lkX3QJCXRyeF9pZCkJLyohPCBpbjogdHJhbnNh Y3Rpb24gaWQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CisKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXQgdGhlIGxh dGVzdCB0cmFuc2FjdGlvbiBJRCB0aGF0IGhhcyBpbnZva2VkIHJvd19sb2dfb25saW5lX29wKCkK IGR1cmluZyBvbmxpbmUgY3JlYXRpb24uCiBAcmV0dXJuIGxhdGVzdCB0cmFuc2FjdGlvbiBJRCwg b3IgMCBpZiBub3RoaW5nIHdhcyBsb2dnZWQgKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2lubm9iYXNlL3Jvdy9yb3cwbG9nLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw bG9nLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTI4MTMzODI0LXQ3MXp2 ajl0dHozcXMwNzAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyODE0MDkwMC1rMWh1YjhmZncydTJsZGN6CkBA IC0xOCw3ICsxOCw3IEBAIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQog CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CiBAZmlsZSByb3cvcm93MGxvZy5jYwotTW9kaWZpY2F0aW9uIGxvZyBmb3Igb25saW5lIGluZGV4 IGNyZWF0aW9uCitNb2RpZmljYXRpb24gbG9nIGZvciBvbmxpbmUgaW5kZXggY3JlYXRpb24gYW5k IG9ubGluZSB0YWJsZSByZWJ1aWxkCiAKIENyZWF0ZWQgMjAxMS0wNS0yNiBNYXJrbyBNYWtlbGEK ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CkBAIC0yOSw2ICsyOSwyMCBAQCBDcmVhdGVkIDIwMTEtMDUtMjYgTWFya28gTWFrZWxhCiAjaW5j bHVkZSAicm93MHVwZC5oIgogI2luY2x1ZGUgInJvdzBtZXJnZS5oIgogI2luY2x1ZGUgImRhdGEw ZGF0YS5oIgorI2luY2x1ZGUgInF1ZTBxdWUuaCIKKworI2luY2x1ZGU8c2V0PgorCisvKiogVGFi bGUgcm93IG1vZGlmaWNhdGlvbiBvcGVyYXRpb25zIGR1cmluZyBvbmxpbmUgdGFibGUgcmVidWls ZC4KK0RlbGV0ZS1tYXJrZWQgcmVjb3JkcyBhcmUgbm90IGNvcGllZCB0byB0aGUgcmVidWlsdCB0 YWJsZS4gKi8KK2VudW0gcm93X3RhYl9vcCB7CisJLyoqIEluc2VydCBhIHJlY29yZCAqLworCVJP V19UX0lOU0VSVCwKKwkvKiogVXBkYXRlIGEgcmVjb3JkIGluIHBsYWNlICovCisJUk9XX1RfVVBE QVRFLAorCS8qKiBEZWxldGUgKHB1cmdlKSBhIHJlY29yZCAqLworCVJPV19UX0RFTEVURQorfTsK IAogI2lmZGVmIFVOSVZfREVCVUcKIC8qKiBXcml0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXBw bGllZCByZWNvcmQgdG8gdGhlIGVycm9yIGxvZyAqLwpAQCAtNDQsNyArNTgsNyBAQCBzdGF0aWMg Ym9vbCByb3dfbG9nX2FwcGx5X3ByaW50OwogI2RlZmluZSBST1dfTE9HX0hFQURFUl9TSVpFIDIv Km9wLCBleHRyYV9zaXplKi8KIAogLyoqIExvZyBibG9jayBmb3IgbW9kaWZpY2F0aW9ucyBkdXJp bmcgb25saW5lIGluZGV4IGNyZWF0aW9uICovCi1zdHJ1Y3Qgcm93X2xvZ19idWZfc3RydWN0IHsK K3N0cnVjdCByb3dfbG9nX2J1Zl90IHsKIAlieXRlKgkJYmxvY2s7CS8qITwgZmlsZSBibG9jayBi dWZmZXIgKi8KIAltcmVjX2J1Zl90CWJ1ZjsJLyohPCBidWZmZXIgZm9yIGFjY2Vzc2luZyBhIHJl Y29yZAogCQkJCXRoYXQgc3BhbnMgdHdvIGJsb2NrcyAqLwpAQCAtNTIsMjAgKzY2LDM2IEBAIHN0 cnVjdCByb3dfbG9nX2J1Zl9zdHJ1Y3QgewogCXVsaW50CQlieXRlczsJLyohPCBjdXJyZW50IHBv c2l0aW9uIHdpdGhpbiBidWYgKi8KIH07CiAKLS8qKiBMb2cgYmxvY2sgZm9yIG1vZGlmaWNhdGlv bnMgZHVyaW5nIG9ubGluZSBpbmRleCBjcmVhdGlvbiAqLwotdHlwZWRlZiBzdHJ1Y3Qgcm93X2xv Z19idWZfc3RydWN0IHJvd19sb2dfYnVmX3Q7CisvKiogU2V0IG9mIHRyYW5zYWN0aW9ucyB0aGF0 IHJvbGxlZCBiYWNrIGluc2VydHMgb2YgQkxPQnMgZHVyaW5nCitvbmxpbmUgdGFibGUgcmVidWls ZCAqLwordHlwZWRlZiBzdGQ6OnNldDx0cnhfaWRfdD4gdHJ4X2lkX3NldDsKIAogLyoqIEBicmll ZiBCdWZmZXIgZm9yIGxvZ2dpbmcgbW9kaWZpY2F0aW9ucyBkdXJpbmcgb25saW5lIGluZGV4IGNy ZWF0aW9uCiAKIEFsbCBtb2RpZmljYXRpb25zIHRvIGFuIGluZGV4IHRoYXQgaXMgYmVpbmcgY3Jl YXRlZCB3aWxsIGJlIGxvZ2dlZCBieQogcm93X2xvZ19vbmxpbmVfb3AoKSB0byB0aGlzIGJ1ZmZl ci4KIAorQWxsIG1vZGlmaWNhdGlvbnMgdG8gYSB0YWJsZSB0aGF0IGlzIGJlaW5nIHJlYnVpbHQg d2lsbCBiZSBsb2dnZWQgYnkKK3Jvd19sb2dfdGFibGVfZGVsZXRlKCksIHJvd19sb2dfdGFibGVf dXBkYXRlKCksIHJvd19sb2dfdGFibGVfaW5zZXJ0KCkKK3RvIHRoaXMgYnVmZmVyLgorCiBXaGVu IGhlYWQuYmxvY2tzID09IHRhaWwuYmxvY2tzLCB0aGUgcmVhZGVyIHdpbGwgYWNjZXNzIHRhaWwu YmxvY2sKIGRpcmVjdGx5LiBXaGVuIGFsc28gaGVhZC5ieXRlcyA9PSB0YWlsLmJ5dGVzLCBib3Ro IGNvdW50cyB3aWxsIGJlCiByZXNldCB0byAwIGFuZCB0aGUgZmlsZSB3aWxsIGJlIHRydW5jYXRl ZC4gKi8KIHN0cnVjdCByb3dfbG9nX3QgewogCWludAkJZmQ7CS8qITwgZmlsZSBkZXNjcmlwdG9y ICovCi0JbXV0ZXhfdAkJbXV0ZXg7CS8qITwgbXV0ZXggcHJvdGVjdGluZyBtYXhfdHJ4IGFuZCB0 YWlsICovCisJbXV0ZXhfdAkJbXV0ZXg7CS8qITwgbXV0ZXggcHJvdGVjdGluZyB0cnhfbG9nLCBl cnJvciwKKwkJCQltYXhfdHJ4IGFuZCB0YWlsICovCisJdHJ4X2lkX3NldCoJdHJ4X3JiOwkvKiE8 IHNldCBvZiB0cmFuc2FjdGlvbnMgdGhhdCByb2xsZWQgYmFjaworCQkJCWluc2VydHMgb2YgQkxP QnMgZHVyaW5nIG9ubGluZSB0YWJsZSByZWJ1aWxkOworCQkJCXByb3RlY3RlZCBieSBtdXRleCAq LworCWRpY3RfdGFibGVfdCoJdGFibGU7CS8qITwgdGFibGUgdGhhdCBpcyBiZWluZyByZWJ1aWx0 LAorCQkJCW9yIE5VTEwgd2hlbiB0aGlzIGlzIGEgc2Vjb25kYXJ5CisJCQkJaW5kZXggdGhhdCBp cyBiZWluZyBjcmVhdGVkIG9ubGluZSAqLworCWJvb2wJCXNhbWVfcGs7LyohPCB3aGV0aGVyIHRo ZSBkZWZpbml0aW9uIG9mIHRoZSBQUklNQVJZIEtFWQorCQkJCWhhcyByZW1haW5lZCB0aGUgc2Ft ZSAqLworCWRiZXJyX3QJCWVycm9yOwkvKiE8IGVycm9yIHRoYXQgb2NjdXJyZWQgZHVyaW5nIG9u bGluZQorCQkJCXRhYmxlIHJlYnVpbGQgKi8KIAl0cnhfaWRfdAltYXhfdHJ4Oy8qITwgYmlnZ2Vz dCBvYnNlcnZlZCB0cnhfaWQgaW4KIAkJCQlyb3dfbG9nX29ubGluZV9vcCgpOwogCQkJCXByb3Rl Y3RlZCBieSBtdXRleCBhbmQgaW5kZXgtPmxvY2sgUy1sYXRjaCwKQEAgLTIzNiw2ICsyNjYsODQg QEAgd3JpdGVfZmFpbGVkOgogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgorR2V0cyB0aGUgZXJyb3Igc3RhdHVzIG9mIHRoZSBv bmxpbmUgaW5kZXggcmVidWlsZCBsb2cuCitAcmV0dXJuIERCX1NVQ0NFU1Mgb3IgZXJyb3IgY29k ZSAqLworVU5JVl9JTlRFUk4KK2RiZXJyX3QKK3Jvd19sb2dfdGFibGVfZ2V0X2Vycm9yKAorLyo9 PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCkJLyohPCBp bjogY2x1c3RlcmVkIGluZGV4IG9mIGEgdGFibGUKKwkJCQkJdGhhdCBpcyBiZWluZyByZWJ1aWx0 IG9ubGluZSAqLworeworCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpKTsKKwl1dF9h ZChkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKKwlyZXR1cm4oaW5kZXgtPm9ubGlu ZV9sb2ctPmVycm9yKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKK05vdGVzIHRoYXQgYSB0cmFuc2FjdGlvbiBpcyBiZWlu ZyByb2xsZWQgYmFjay4gKi8KK1VOSVZfSU5URVJOCit2b2lkCityb3dfbG9nX3RhYmxlX3JvbGxi YWNrKAorLyo9PT09PT09PT09PT09PT09PT09Ki8KKwlkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8 IGluL291dDogY2x1c3RlcmVkIGluZGV4ICovCisJdHJ4X2lkX3QJdHJ4X2lkKQkvKiE8IGluOiB0 cmFuc2FjdGlvbiBiZWluZyByb2xsZWQgYmFjayAqLworeworCXV0X2FkKGRpY3RfaW5kZXhfaXNf Y2x1c3QoaW5kZXgpKTsKKyNpZmRlZiBVTklWX0RFQlVHCisJaWJvb2wJY29ycnVwdAk9IEZBTFNF OworCXV0X2FkKHRyeF9yd19pc19hY3RpdmUodHJ4X2lkLCAmY29ycnVwdCkpOworCXV0X2FkKCFj b3JydXB0KTsKKyNlbmRpZiAvKiBVTklWX0RFQlVHICovCisKKwkvKiBQcm90ZWN0IHRyYW5zaXRp b25zIG9mIGluZGV4LT5vbmxpbmVfc3RhdHVzIGFuZCBhY2Nlc3MgdG8KKwlpbmRleC0+b25saW5l X2xvZy4gKi8KKwlyd19sb2NrX3NfbG9jaygmaW5kZXgtPmxvY2spOworCisJaWYgKGRpY3RfaW5k ZXhfaXNfb25saW5lX2RkbChpbmRleCkpIHsKKwkJdXRfYWQoaW5kZXgtPm9ubGluZV9sb2cpOwor CQl1dF9hZChpbmRleC0+b25saW5lX2xvZy0+dGFibGUpOworCQltdXRleF9lbnRlcigmaW5kZXgt Pm9ubGluZV9sb2ctPm11dGV4KTsKKwkJdHJ4X2lkX3NldCoJdHJ4cyA9IGluZGV4LT5vbmxpbmVf bG9nLT50cnhfcmI7CisKKwkJaWYgKCF0cnhzKSB7CisJCQlpbmRleC0+b25saW5lX2xvZy0+dHJ4 X3JiID0gdHJ4cyA9IG5ldyB0cnhfaWRfc2V0KCk7CisJCX0KKworCQl0cnhzLT5pbnNlcnQodHJ4 X2lkKTsKKworCQltdXRleF9leGl0KCZpbmRleC0+b25saW5lX2xvZy0+bXV0ZXgpOworCX0KKwor CXJ3X2xvY2tfc191bmxvY2soJmluZGV4LT5sb2NrKTsKK30KKworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0NoZWNrIGlmIGEgdHJh bnNhY3Rpb24gcm9sbGJhY2sgaGFzIGJlZW4gaW5pdGlhdGVkLgorQHJldHVybiB0cnVlIGlmIGlu c2VydHMgb2YgdGhpcyB0cmFuc2FjdGlvbiB3ZXJlIHJvbGxlZCBiYWNrICovCitVTklWX0lOVEVS TgorYm9vbAorcm93X2xvZ190YWJsZV9pc19yb2xsYmFjaygKKy8qPT09PT09PT09PT09PT09PT09 PT09PSovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjogY2x1c3RlcmVkIGlu ZGV4ICovCisJdHJ4X2lkX3QJCXRyeF9pZCkJLyohPCBpbjogdHJhbnNhY3Rpb24gaWQgKi8KK3sK Kwl1dF9hZChkaWN0X2luZGV4X2lzX2NsdXN0KGluZGV4KSk7CisJdXRfYWQoZGljdF9pbmRleF9p c19vbmxpbmVfZGRsKGluZGV4KSk7CisJdXRfYWQoaW5kZXgtPm9ubGluZV9sb2cpOworCisJaWYg KGNvbnN0IHRyeF9pZF9zZXQqIHRyeHMgPSBpbmRleC0+b25saW5lX2xvZy0+dHJ4X3JiKSB7CisJ CW11dGV4X2VudGVyKCZpbmRleC0+b25saW5lX2xvZy0+bXV0ZXgpOworCQlib29sIGlzX3JvbGxi YWNrID0gdHJ4cy0+ZmluZCh0cnhfaWQpICE9IHRyeHMtPmVuZCgpOworCQltdXRleF9leGl0KCZp bmRleC0+b25saW5lX2xvZy0+bXV0ZXgpOworCisJCXJldHVybihpc19yb2xsYmFjayk7CisJfQor CisJcmV0dXJuKGZhbHNlKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIEFsbG9jYXRlIHRoZSByb3cgbG9nIGZvciBhbiBp bmRleCBhbmQgZmxhZyB0aGUgaW5kZXgKIGZvciBvbmxpbmUgY3JlYXRpb24uCiBAcmV0dmFsIHRy dWUgaWYgc3VjY2VzcywgZmFsc2UgaWYgbm90ICovCkBAIC0yNDMsMTMgKzM1MSwyMCBAQCBVTklW X0lOVEVSTgogYm9vbAogcm93X2xvZ19hbGxvY2F0ZSgKIC8qPT09PT09PT09PT09PSovCi0JZGlj dF9pbmRleF90KglpbmRleCkJLyohPCBpbi9vdXQ6IGluZGV4ICovCisJZGljdF9pbmRleF90Kglp bmRleCwJLyohPCBpbi9vdXQ6IGluZGV4ICovCisJZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBp bi9vdXQ6IG5ldyB0YWJsZSBiZWluZyByZWJ1aWx0LAorCQkJCW9yIE5VTEwgd2hlbiBjcmVhdGlu ZyBhIHNlY29uZGFyeSBpbmRleCAqLworCWJvb2wJCXNhbWVfcGspLyohPCBpbjogd2hldGhlciB0 aGUgZGVmaW5pdGlvbiBvZiB0aGUKKwkJCQlQUklNQVJZIEtFWSBoYXMgcmVtYWluZWQgdGhlIHNh bWUgKi8KIHsKIAlieXRlKgkJYnVmOwogCXJvd19sb2dfdCoJbG9nOwogCXVsaW50CQlzaXplOwog CiAJdXRfYWQoIWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpOworCXV0X2FkKGRpY3Rf aW5kZXhfaXNfY2x1c3QoaW5kZXgpID09ICEhdGFibGUpOworCXV0X2FkKCF0YWJsZSB8fCBpbmRl eC0+dGFibGUgIT0gdGFibGUpOworCXV0X2FkKHNhbWVfcGsgfHwgdGFibGUpOwogI2lmZGVmIFVO SVZfU1lOQ19ERUJVRwogCXV0X2FkKHJ3X2xvY2tfb3duKGRpY3RfaW5kZXhfZ2V0X2xvY2soaW5k ZXgpLCBSV19MT0NLX0VYKSk7CiAjZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVHICovCkBAIC0yNjQs NiArMzc5LDkgQEAgcm93X2xvZ19hbGxvY2F0ZSgKIAlsb2ctPmZkID0gcm93X21lcmdlX2ZpbGVf Y3JlYXRlX2xvdygpOwogCW11dGV4X2NyZWF0ZShpbmRleF9vbmxpbmVfbG9nX2tleSwgJmxvZy0+ bXV0ZXgsCiAJCSAgICAgU1lOQ19JTkRFWF9PTkxJTkVfTE9HKTsKKwlsb2ctPnRhYmxlID0gdGFi bGU7CisJbG9nLT5zYW1lX3BrID0gc2FtZV9wazsKKwlsb2ctPmVycm9yID0gREJfU1VDQ0VTUzsK IAlsb2ctPm1heF90cnggPSAwOwogCWxvZy0+aGVhZC5ibG9jayA9IGJ1ZjsKIAlsb2ctPnRhaWwu YmxvY2sgPSBidWYgKyBzcnZfc29ydF9idWZfc2l6ZTsKQEAgLTI5MCw2ICs0MDgsNyBAQCByb3df bG9nX2ZyZWVfbG93KAogewogCU1PTklUT1JfQVRPTUlDX0RFQyhNT05JVE9SX09OTElORV9DUkVB VEVfSU5ERVgpOwogCisJZGVsZXRlIGxvZy0+dHJ4X3JiOwogCXJvd19tZXJnZV9maWxlX2Rlc3Ry b3lfbG93KGxvZy0+ZmQpOwogCW11dGV4X2ZyZWUoJmxvZy0+bXV0ZXgpOwogCW9zX21lbV9mcmVl X2xhcmdlKGxvZy0+aGVhZC5ibG9jaywgbG9nLT5zaXplKTsKQEAgLTM0NCw3ICs0NjMsNyBAQCBy b3dfbG9nX2FwcGx5X29wX2xvdygKIAkJCQkJYWxsb2NhdGluZyBvZmZzZXRzOyBjYW4gYmUgZW1w dGllZCAqLwogCW1lbV9oZWFwX3QqCWhlYXAsCQkvKiE8IGluL291dDogbWVtb3J5IGhlYXAgZm9y CiAJCQkJCWFsbG9jYXRpbmcgZGF0YSB0dXBsZXMgKi8KLQlpYm9vbAkJaGFzX2luZGV4X2xvY2ss IC8qITwgaW46IFRSVUUgaWYgaG9sZGluZyBpbmRleC0+bG9jaworCWJvb2wJCWhhc19pbmRleF9s b2NrLCAvKiE8IGluOiB0cnVlIGlmIGhvbGRpbmcgaW5kZXgtPmxvY2sKIAkJCQkJaW4gZXhjbHVz aXZlIG1vZGUgKi8KIAllbnVtIHJvd19vcAlvcCwJCS8qITwgaW46IG9wZXJhdGlvbiBiZWluZyBh cHBsaWVkICovCiAJdHJ4X2lkX3QJdHJ4X2lkLAkJLyohPCBpbjogdHJhbnNhY3Rpb24gaWRlbnRp ZmllciAqLwpAQCAtNjM2LDcgKzc1NSw3IEBAIHJvd19sb2dfYXBwbHlfb3AoCiAJCQkJCWFsbG9j YXRpbmcgb2Zmc2V0czsgY2FuIGJlIGVtcHRpZWQgKi8KIAltZW1faGVhcF90KgloZWFwLAkJLyoh PCBpbi9vdXQ6IG1lbW9yeSBoZWFwIGZvcgogCQkJCQlhbGxvY2F0aW5nIGRhdGEgdHVwbGVzICov Ci0JaWJvb2wJCWhhc19pbmRleF9sb2NrLCAvKiE8IGluOiBUUlVFIGlmIGhvbGRpbmcgaW5kZXgt PmxvY2sKKwlib29sCQloYXNfaW5kZXhfbG9jaywgLyohPCBpbjogdHJ1ZSBpZiBob2xkaW5nIGlu ZGV4LT5sb2NrCiAJCQkJCWluIGV4Y2x1c2l2ZSBtb2RlICovCiAJY29uc3QgbXJlY190KgltcmVj LAkJLyohPCBpbjogbWVyZ2UgcmVjb3JkICovCiAJY29uc3QgbXJlY190KgltcmVjX2VuZCwJLyoh PCBpbjogZW5kIG9mIGJ1ZmZlciAqLwpAQCAtNzc0LDcgKzg5Myw3IEBAIHJvd19sb2dfYXBwbHlf b3BzKAogCW1lbV9oZWFwX3QqCW9mZnNldHNfaGVhcDsKIAltZW1faGVhcF90KgloZWFwOwogCXVs aW50KgkJb2Zmc2V0czsKLQlpYm9vbAkJaGFzX2luZGV4X2xvY2s7CisJYm9vbAkJaGFzX2luZGV4 X2xvY2s7CiAJY29uc3QgdWxpbnQJaQk9IDEgKyBSRUNfT0ZGU19IRUFERVJfU0laRQogCQkrIGRp Y3RfaW5kZXhfZ2V0X25fZmllbGRzKGluZGV4KTsKIApAQCAtNzkyLDcgKzkxMSw3IEBAIHJvd19s b2dfYXBwbHlfb3BzKAogCiAJb2Zmc2V0c19oZWFwID0gbWVtX2hlYXBfY3JlYXRlKFVOSVZfUEFH RV9TSVpFKTsKIAloZWFwID0gbWVtX2hlYXBfY3JlYXRlKFVOSVZfUEFHRV9TSVpFKTsKLQloYXNf aW5kZXhfbG9jayA9IFRSVUU7CisJaGFzX2luZGV4X2xvY2sgPSB0cnVlOwogCiBuZXh0X2Jsb2Nr OgogCXV0X2FkKGhhc19pbmRleF9sb2NrKTsKQEAgLTg1MSw3ICs5NzAsNyBAQCBhbGxfZG9uZToK IAkJCSogc3J2X3NvcnRfYnVmX3NpemU7CiAKIAkJaWYgKGhhc19pbmRleF9sb2NrKSB7Ci0JCQlo YXNfaW5kZXhfbG9jayA9IEZBTFNFOworCQkJaGFzX2luZGV4X2xvY2sgPSBmYWxzZTsKIAkJCXJ3 X2xvY2tfeF91bmxvY2soZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCkpOwogCQl9CiAKQEAgLTEw MDUsNyArMTEyNCw3IEBAIGFsbF9kb25lOgogCQkJbXJlYyA9IE5VTEw7CiBwcm9jZXNzX25leHRf YmxvY2s6CiAJCQlyd19sb2NrX3hfbG9jayhkaWN0X2luZGV4X2dldF9sb2NrKGluZGV4KSk7Ci0J CQloYXNfaW5kZXhfbG9jayA9IFRSVUU7CisJCQloYXNfaW5kZXhfbG9jayA9IHRydWU7CiAKIAkJ CWluZGV4LT5vbmxpbmVfbG9nLT5oZWFkLmJ5dGVzID0gMDsKIAkJCWluZGV4LT5vbmxpbmVfbG9n LT5oZWFkLmJsb2NrcysrOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93 L3JvdzB1aW5zLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdWlucy5jYwlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyODEzMzgyNC10NzF6dmo5dHR6M3FzMDcw CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1aW5zLmNjCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTIwNTI4MTQwOTAwLWsxaHViOGZmdzJ1MmxkY3oKQEAgLTM4LDYgKzM4 LDcgQEAgQ3JlYXRlZCAyLzI1LzE5OTcgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAibWFjaDBkYXRh LmgiCiAjaW5jbHVkZSAicm93MHVuZG8uaCIKICNpbmNsdWRlICJyb3cwdmVycy5oIgorI2luY2x1 ZGUgInJvdzBsb2cuaCIKICNpbmNsdWRlICJ0cngwdHJ4LmgiCiAjaW5jbHVkZSAidHJ4MHJlYy5o IgogI2luY2x1ZGUgInJvdzByb3cuaCIKQEAgLTQwOCw5ICs0MDksMTggQEAgcm93X3VuZG9faW5z KAogCiAJLyogSXRlcmF0ZSBvdmVyIGFsbCB0aGUgaW5kZXhlcyBhbmQgdW5kbyB0aGUgaW5zZXJ0 LiovCiAKKwlub2RlLT5pbmRleCA9IGRpY3RfdGFibGVfZ2V0X2ZpcnN0X2luZGV4KG5vZGUtPnRh YmxlKTsKKwl1dF9hZChkaWN0X2luZGV4X2lzX2NsdXN0KG5vZGUtPmluZGV4KSk7CisKKwlpZiAo ZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKG5vZGUtPmluZGV4KSkgeworCQkvKiBOb3RlIHRoYXQg d2UgYXJlIHJvbGxpbmcgYmFjayB0aGlzIHRyYW5zYWN0aW9uLCBzbworCQl0aGF0IGFsbCBpbnNl cnRzIGFuZCB1cGRhdGVzIHdpdGggdGhpcyBEQl9UUlhfSUQgY2FuCisJCWJlIHNraXBwZWQuICov CisJCXJvd19sb2dfdGFibGVfcm9sbGJhY2sobm9kZS0+aW5kZXgsIG5vZGUtPnRyeC0+aWQpOwor CX0KKwogCS8qIFNraXAgdGhlIGNsdXN0ZXJlZCBpbmRleCAodGhlIGZpcnN0IGluZGV4KSAqLwot CW5vZGUtPmluZGV4ID0gZGljdF90YWJsZV9nZXRfbmV4dF9pbmRleCgKLQkJZGljdF90YWJsZV9n ZXRfZmlyc3RfaW5kZXgobm9kZS0+dGFibGUpKTsKKwlub2RlLT5pbmRleCA9IGRpY3RfdGFibGVf Z2V0X25leHRfaW5kZXgobm9kZS0+aW5kZXgpOwogCiAJZGljdF90YWJsZV9za2lwX2NvcnJ1cHRf aW5kZXgobm9kZS0+aW5kZXgpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MHVtb2QuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTI4MTMzODI0LXQ3MXp2ajl0dHoz cXMwNzAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVtb2QuY2MJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MjgxNDA5MDAtazFodWI4ZmZ3MnUybGRjegpAQCAtMzcs NiArMzcsNyBAQCBDcmVhdGVkIDIvMjcvMTk5NyBIZWlra2kgVHV1cmkKICNpbmNsdWRlICJtYWNo MGRhdGEuaCIKICNpbmNsdWRlICJyb3cwdW5kby5oIgogI2luY2x1ZGUgInJvdzB2ZXJzLmgiCisj aW5jbHVkZSAicm93MGxvZy5oIgogI2luY2x1ZGUgInRyeDB0cnguaCIKICNpbmNsdWRlICJ0cngw cmVjLmgiCiAjaW5jbHVkZSAicm93MHJvdy5oIgpAQCAtOTQwLDggKzk0MSwxOCBAQCByb3dfdW5k b19tb2QoCiAJCXJldHVybihEQl9TVUNDRVNTKTsKIAl9CiAKLQlub2RlLT5pbmRleCA9IGRpY3Rf dGFibGVfZ2V0X25leHRfaW5kZXgoCi0JCWRpY3RfdGFibGVfZ2V0X2ZpcnN0X2luZGV4KG5vZGUt PnRhYmxlKSk7CisJbm9kZS0+aW5kZXggPSBkaWN0X3RhYmxlX2dldF9maXJzdF9pbmRleChub2Rl LT50YWJsZSk7CisJdXRfYWQoZGljdF9pbmRleF9pc19jbHVzdChub2RlLT5pbmRleCkpOworCisJ aWYgKGRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChub2RlLT5pbmRleCkpIHsKKwkJLyogTm90ZSB0 aGF0IHdlIGFyZSByb2xsaW5nIGJhY2sgdGhpcyB0cmFuc2FjdGlvbiwgc28KKwkJdGhhdCBhbGwg aW5zZXJ0cyBhbmQgdXBkYXRlcyB3aXRoIHRoaXMgREJfVFJYX0lEIGNhbgorCQliZSBza2lwcGVk LiAqLworCQlyb3dfbG9nX3RhYmxlX3JvbGxiYWNrKG5vZGUtPmluZGV4LCBub2RlLT50cngtPmlk KTsKKwl9CisKKwkvKiBTa2lwIHRoZSBjbHVzdGVyZWQgaW5kZXggKHRoZSBmaXJzdCBpbmRleCkg Ki8KKwlub2RlLT5pbmRleCA9IGRpY3RfdGFibGVfZ2V0X25leHRfaW5kZXgobm9kZS0+aW5kZXgp OwogCiAJLyogU2tpcCBhbGwgY29ycnVwdGVkIHNlY29uZGFyeSBpbmRleCAqLwogCWRpY3RfdGFi bGVfc2tpcF9jb3JydXB0X2luZGV4KG5vZGUtPmluZGV4KTsKCk5vIGJ1bmRsZSAocmVhc29uOiB1 c2VsZXNzIGZvciBwdXNoIGVtYWlscyku