From: marko.makela Date: May 25 2012 8:41pm Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3867 to 3869) WL#6255 List-Archive: http://lists.mysql.com/commits/143969 Message-Id: <201205252041.q4PKfa7p012986@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM4NjkgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0yNQogICAgICBXTCM2MjU1IHByZXBhcmF0aW9u OiBSZWxheCBzb21lIGFzc2VydGlvbnMgYW5kIGFkanVzdCBmdW5jdGlvbnMKICAgICAgZm9yIG9u bGluZSB0YWJsZSByZWJ1aWxkLgogICAgICAKICAgICAgRm9yIGluZGljYXRpbmcgdGhhdCBhbiBv bmxpbmUgdGFibGUgcmVidWlsZCBpcyBpbiBwcm9ncmVzcywgd2Ugd2lsbAogICAgICBmbGFnIHRo ZSBvbmxpbmVfc3RhdHVzIG9mIHRoZSBjbHVzdGVyZWQgaW5kZXggaW4gdGhlIG9sZCB0YWJsZSwg YW5kCiAgICAgIGFsbG9jYXRlIGluZGV4LT5vbmxpbmVfbG9nIG9uIHRoZSBjbHVzdGVyZWQgaW5k ZXggb2YgdGhlIG9sZCB0YWJsZS4KICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbW9k aWZpY2F0aW9uIGxvZ2dpbmcgb24gc2Vjb25kYXJ5IGluZGV4CiAgICAgIGNyZWF0aW9uLiBJbiBz ZWNvbmRhcnkgaW5kZXggY3JlYXRpb24sIGlmIHRoZSBpbmRleCBpcyBiZWluZyBidWlsdAogICAg ICBvbmxpbmUsIHdlIHdpbGwgd3JpdGUgYWxsIGNoYW5nZXMgb25seSB0byB0aGUgbG9nLiBJbiBv bmxpbmUgdGFibGUKICAgICAgcmVidWlsZCwgd2Ugd2lsbCBsb2cgdGhlIGNoYW5nZXMgaW4gYWRk aXRpb24gdG8gY2hhbmdpbmcgdGhlIG9yaWdpbmFsCiAgICAgIHRhYmxlIGRpcmVjdGx5LgogICAg ICAKICAgICAgUmVsYXggbWFueSBhc3NlcnRpb25zIG9uIGRpY3RfaW5kZXhfaXNfb25saW5lX2Rk bCgpLgogICAgICAKICAgICAgZGljdF9pbmRleF9zZXRfb25saW5lX3N0YXR1cygpOiBSZW1vdmUg dGhlIHF1YWxpZmllciAic2Vjb25kYXJ5IiBpbmRleC4KICAgICAgCiAgICAgIGRpY3RfaW5kZXhf aXNfb25saW5lX2RkbCgpOiBBZGp1c3QgdGhlIGZ1bmN0aW9uIGNvbW1lbnQuCiAgICAgIAogICAg ICBpbmRleC0+dG9fYmVfZHJvcHBlZCwgaW5kZXgtPm9ubGluZV9zdGF0dXM6IFJlZmluZSB0aGUg bGF0Y2hpbmcgcnVsZXMuCiAgICAgIAogICAgICBvbmxpbmVfaW5kZXhfc3RhdHVzOiBVcGRhdGUg dGhlIGNvbW1lbnQgb2YgT05MSU5FX0lOREVYX0FCT1JURUQuCiAgICAgIAogICAgICByb3dfbWVy Z2VfaXNfaW5kZXhfdXNhYmxlKCk6IERvIG5vdCBkZW55IGFjY2VzcyB0byB0aGUgY2x1c3RlcmVk IGluZGV4CiAgICAgIG9mIGEgdGFibGUgdGhhdCBpcyBiZWluZyByZWJ1aWx0LgoKICAgIG1vZGlm aWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvZGljdDBkaWN0LmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MG1lbS5o CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suY2MKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9yb3cvcm93MG1lcmdlLmNjCiAzODY4IE1hcmtvIE3DpGtlbMOkCTIwMTItMDUtMjUK ICAgICAgV0wjNjI1NSBwcmVwYXJhdGlvbjogQWxsb3cgQlRSX0FMUkVBRFlfU19MQVRDSEVECiAg ICAgIHRvIGJlIHNwZWNpZmllZCB3aXRoIEJUUl9NT0RJRllfTEVBRiwgbm90IG9ubHkgd2l0aCBC VFJfU0VBUkNIX0xFQUYuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnRy L2J0cjBjdXIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaAogMzg2 NyBNYXJrbyBNw6RrZWzDpAkyMDEyLTA1LTI1CiAgICAgIHByZXBhcmVfaW5wbGFjZV9hbHRlcl90 YWJsZV9kaWN0KCk6IERvIG5vdCBhY3F1aXJlIGxvY2sgb24gdGhlIG5ldyB0YWJsZS4KICAgICAg V2Ugc2tpcCBhbGwgcmVjb3JkIGxvY2tpbmcgd2hlbiBwb3B1bGF0aW5nIHRoZSBpbmRleGVzLgog ICAgICBUaGUgdGFibGUgbG9ja2luZyBvbiB0aGUgdGFyZ2V0IChyZWJ1aWx0KSB0YWJsZSBpcyB1 bm5lY2Vzc2FyeSB0b28uCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFu ZGxlci9oYW5kbGVyMGFsdGVyLmNjCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2J0ci9idHIwY3VyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmNjCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTI1MjAwMDQ1LW12N3VxNGg1Z3l0aWty MDIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEyMDUyNTIwNDAzMi1rcWRuNDZhandrdWg1eTZ3CkBAIC00NzAsNyAr NDcwLDkgQEAgYnRyX2N1cl9zZWFyY2hfdG9fbnRoX2xldmVsKAogCS8qIFR1cm4gdGhlIGZsYWdz IHVucmVsYXRlZCB0byB0aGUgbGF0Y2ggbW9kZSBvZmYuICovCiAJbGF0Y2hfbW9kZSA9IEJUUl9M QVRDSF9NT0RFX1dJVEhPVVRfRkxBR1MobGF0Y2hfbW9kZSk7CiAKLQl1dF9hZCghc19sYXRjaF9i eV9jYWxsZXIgfHwgbGF0Y2hfbW9kZSA9PSBCVFJfU0VBUkNIX0xFQUYpOworCXV0X2FkKCFzX2xh dGNoX2J5X2NhbGxlcgorCSAgICAgIHx8IGxhdGNoX21vZGUgPT0gQlRSX1NFQVJDSF9MRUFGCisJ ICAgICAgfHwgbGF0Y2hfbW9kZSA9PSBCVFJfTU9ESUZZX0xFQUYpOwogCiAJY3Vyc29yLT5mbGFn ID0gQlRSX0NVUl9CSU5BUlk7CiAJY3Vyc29yLT5pbmRleCA9IGluZGV4OwpAQCAtMTEyOSw3ICsx MTMxLDkgQEAgYnRyX2N1cl9pbnNfbG9ja19hbmRfdW5kbygKIAlyZWMgPSBidHJfY3VyX2dldF9y ZWMoY3Vyc29yKTsKIAlpbmRleCA9IGN1cnNvci0+aW5kZXg7CiAKLQl1dF9hZCghZGljdF9pbmRl eF9pc19vbmxpbmVfZGRsKGluZGV4KSB8fCAoZmxhZ3MgJiBCVFJfQ1JFQVRFX0ZMQUcpKTsKKwl1 dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KQorCSAgICAgIHx8IGRpY3RfaW5k ZXhfaXNfY2x1c3QoaW5kZXgpCisJICAgICAgfHwgKGZsYWdzICYgQlRSX0NSRUFURV9GTEFHKSk7 CiAKIAllcnIgPSBsb2NrX3JlY19pbnNlcnRfY2hlY2tfYW5kX2xvY2soZmxhZ3MsIHJlYywKIAkJ CQkJICAgICBidHJfY3VyX2dldF9ibG9jayhjdXJzb3IpLApAQCAtMTIzMCw3ICsxMjM0LDkgQEAg YnRyX2N1cl9vcHRpbWlzdGljX2luc2VydCgKIAlibG9jayA9IGJ0cl9jdXJfZ2V0X2Jsb2NrKGN1 cnNvcik7CiAJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCWluZGV4ID0gY3Vy c29yLT5pbmRleDsKLQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSB8fCAo ZmxhZ3MgJiBCVFJfQ1JFQVRFX0ZMQUcpKTsKKwl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVf ZGRsKGluZGV4KQorCSAgICAgIHx8IGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpCisJICAgICAg fHwgKGZsYWdzICYgQlRSX0NSRUFURV9GTEFHKSk7CiAJemlwX3NpemUgPSBidWZfYmxvY2tfZ2V0 X3ppcF9zaXplKGJsb2NrKTsKICNpZmRlZiBVTklWX0RFQlVHX1ZBTEdSSU5ECiAJaWYgKHppcF9z aXplKSB7CkBAIC0xNDk0LDcgKzE1MDAsOSBAQCBidHJfY3VyX3Blc3NpbWlzdGljX2luc2VydCgK IAkJCQlNVFJfTUVNT19YX0xPQ0spKTsKIAl1dF9hZChtdHJfbWVtb19jb250YWlucyhtdHIsIGJ0 cl9jdXJfZ2V0X2Jsb2NrKGN1cnNvciksCiAJCQkJTVRSX01FTU9fUEFHRV9YX0ZJWCkpOwotCXV0 X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpIHx8IChmbGFncyAmIEJUUl9DUkVB VEVfRkxBRykpOworCXV0X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpCisJICAg ICAgfHwgZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkKKwkgICAgICB8fCAoZmxhZ3MgJiBCVFJf Q1JFQVRFX0ZMQUcpKTsKIAogCS8qIFRyeSBmaXJzdCBhbiBvcHRpbWlzdGljIGluc2VydDsgcmVz ZXQgdGhlIGN1cnNvciBmbGFnOiB3ZSBkbyBub3QKIAlhc3N1bWUgYW55dGhpbmcgb2YgaG93IGl0 IHdhcyBwb3NpdGlvbmVkICovCkBAIC0xNjE5LDEwICsxNjI3LDEyIEBAIGJ0cl9jdXJfdXBkX2xv Y2tfYW5kX3VuZG8oCiAJcmVjID0gYnRyX2N1cl9nZXRfcmVjKGN1cnNvcik7CiAJaW5kZXggPSBj dXJzb3ItPmluZGV4OwogCi0JdXRfYWQoZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSA9 PSAhIShmbGFncyAmIEJUUl9DUkVBVEVfRkxBRykpOwogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRl KHJlYywgaW5kZXgsIG9mZnNldHMpKTsKIAogCWlmICghZGljdF9pbmRleF9pc19jbHVzdChpbmRl eCkpIHsKKwkJdXRfYWQoZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KQorCQkgICAgICA9 PSAhIShmbGFncyAmIEJUUl9DUkVBVEVfRkxBRykpOworCiAJCS8qIFdlIGRvIHVuZG8gbG9nZ2lu ZyBvbmx5IHdoZW4gd2UgdXBkYXRlIGEgY2x1c3RlcmVkIGluZGV4CiAJCXJlY29yZCAqLwogCQly ZXR1cm4obG9ja19zZWNfcmVjX21vZGlmeV9jaGVja19hbmRfbG9jaygKQEAgLTE4NzUsNyArMTg4 NSw4IEBAIGJ0cl9jdXJfdXBkYXRlX2luX3BsYWNlKAogCXV0X2FkKCEhcGFnZV9yZWNfaXNfY29t cChyZWMpID09IGRpY3RfdGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpKTsKIAkvKiBUaGUgaW5z ZXJ0IGJ1ZmZlciB0cmVlIHNob3VsZCBuZXZlciBiZSB1cGRhdGVkIGluIHBsYWNlLiAqLwogCXV0 X2FkKCFkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpKTsKLQl1dF9hZChkaWN0X2luZGV4X2lzX29u bGluZV9kZGwoaW5kZXgpID09ICEhKGZsYWdzICYgQlRSX0NSRUFURV9GTEFHKSk7CisJdXRfYWQo ZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSA9PSAhIShmbGFncyAmIEJUUl9DUkVBVEVf RkxBRykKKwkgICAgICB8fCBkaWN0X2luZGV4X2lzX2NsdXN0KGluZGV4KSk7CiAJdXRfYWQoIXRo ciB8fCB0aHJfZ2V0X3RyeCh0aHIpLT5pZCA9PSB0cnhfaWQpOwogCXV0X2FkKHRociB8fCBmbGFn cyA9PSAoQlRSX05PX1VORE9fTE9HX0ZMQUcgfCBCVFJfTk9fTE9DS0lOR19GTEFHCiAJCQkgICAg ICAgfCBCVFJfQ1JFQVRFX0ZMQUcgfCBCVFJfS0VFUF9TWVNfRkxBRykpOwpAQCAtMjAxNiw3ICsy MDI3LDggQEAgYnRyX2N1cl9vcHRpbWlzdGljX3VwZGF0ZSgKIAl1dF9hZChtdHJfbWVtb19jb250 YWlucyhtdHIsIGJsb2NrLCBNVFJfTUVNT19QQUdFX1hfRklYKSk7CiAJLyogVGhlIGluc2VydCBi dWZmZXIgdHJlZSBzaG91bGQgbmV2ZXIgYmUgdXBkYXRlZCBpbiBwbGFjZS4gKi8KIAl1dF9hZCgh ZGljdF9pbmRleF9pc19pYnVmKGluZGV4KSk7Ci0JdXRfYWQoZGljdF9pbmRleF9pc19vbmxpbmVf ZGRsKGluZGV4KSA9PSAhIShmbGFncyAmIEJUUl9DUkVBVEVfRkxBRykpOworCXV0X2FkKGRpY3Rf aW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkgPT0gISEoZmxhZ3MgJiBCVFJfQ1JFQVRFX0ZMQUcp CisJICAgICAgfHwgZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkpOwogCXV0X2FkKCF0aHIgfHwg dGhyX2dldF90cngodGhyKS0+aWQgPT0gdHJ4X2lkKTsKIAl1dF9hZCh0aHIgfHwgZmxhZ3MgPT0g KEJUUl9OT19VTkRPX0xPR19GTEFHIHwgQlRSX05PX0xPQ0tJTkdfRkxBRwogCQkJICAgICAgIHwg QlRSX0NSRUFURV9GTEFHIHwgQlRSX0tFRVBfU1lTX0ZMQUcpKTsKQEAgLTIyODMsNyArMjI5NSw4 IEBAIGJ0cl9jdXJfcGVzc2ltaXN0aWNfdXBkYXRlKAogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVH ICovCiAJLyogVGhlIGluc2VydCBidWZmZXIgdHJlZSBzaG91bGQgbmV2ZXIgYmUgdXBkYXRlZCBp biBwbGFjZS4gKi8KIAl1dF9hZCghZGljdF9pbmRleF9pc19pYnVmKGluZGV4KSk7Ci0JdXRfYWQo ZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSA9PSAhIShmbGFncyAmIEJUUl9DUkVBVEVf RkxBRykpOworCXV0X2FkKGRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkgPT0gISEoZmxh Z3MgJiBCVFJfQ1JFQVRFX0ZMQUcpCisJICAgICAgfHwgZGljdF9pbmRleF9pc19jbHVzdChpbmRl eCkpOwogCXV0X2FkKCF0aHIgfHwgdGhyX2dldF90cngodGhyKS0+aWQgPT0gdHJ4X2lkKTsKIAl1 dF9hZCh0aHIgfHwgZmxhZ3MgPT0gKEJUUl9OT19VTkRPX0xPR19GTEFHIHwgQlRSX05PX0xPQ0tJ TkdfRkxBRwogCQkJICAgICAgIHwgQlRSX0NSRUFURV9GTEFHIHwgQlRSX0tFRVBfU1lTX0ZMQUcp KTsKQEAgLTI5NzIsNiArMjk4NSw3IEBAIGJ0cl9jdXJfb3B0aW1pc3RpY19kZWxldGVfZnVuYygK IAogCXV0X2FkKHBhZ2VfaXNfbGVhZihidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKSkpOwogCXV0 X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoY3Vyc29yLT5pbmRleCkKKwkgICAgICB8fCBk aWN0X2luZGV4X2lzX2NsdXN0KGN1cnNvci0+aW5kZXgpCiAJICAgICAgfHwgKGZsYWdzICYgQlRS X0NSRUFURV9GTEFHKSk7CiAKIAlyZWMgPSBidHJfY3VyX2dldF9yZWMoY3Vyc29yKTsKQEAgLTMw NzMsNyArMzA4Nyw5IEBAIGJ0cl9jdXJfcGVzc2ltaXN0aWNfZGVsZXRlKAogCWluZGV4ID0gYnRy X2N1cl9nZXRfaW5kZXgoY3Vyc29yKTsKIAogCXV0X2FkKGZsYWdzID09IDAgfHwgZmxhZ3MgPT0g QlRSX0NSRUFURV9GTEFHKTsKLQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4 KSB8fCAoZmxhZ3MgJiBCVFJfQ1JFQVRFX0ZMQUcpKTsKKwl1dF9hZCghZGljdF9pbmRleF9pc19v bmxpbmVfZGRsKGluZGV4KQorCSAgICAgIHx8IGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpCisJ ICAgICAgfHwgKGZsYWdzICYgQlRSX0NSRUFURV9GTEFHKSk7CiAJdXRfYWQobXRyX21lbW9fY29u dGFpbnMobXRyLCBkaWN0X2luZGV4X2dldF9sb2NrKGluZGV4KSwKIAkJCQlNVFJfTUVNT19YX0xP Q0spKTsKIAl1dF9hZChtdHJfbWVtb19jb250YWlucyhtdHIsIGJsb2NrLCBNVFJfTUVNT19QQUdF X1hfRklYKSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0 cjBidHIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyNTIwMDA0NS1tdjd1cTRoNWd5dGlrcjAyCisr KyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMjA1MjUyMDQwMzIta3FkbjQ2YWp3a3VoNXk2dwpAQCAtOTIsOCArOTIs OCBAQCBpbnNlcnQvZGVsZXRlIGJ1ZmZlciB3aGVuIHRoZSByZWNvcmQgaXMKIGJ1ZmZlciB3aGVu IHRoZSByZWNvcmQgaXMgbm90IGluIHRoZSBidWZmZXIgcG9vbC4gKi8KICNkZWZpbmUgQlRSX0RF TEVURQkJODE5MgogCi0vKiogSW4gdGhlIGNhc2Ugb2YgQlRSX1NFQVJDSF9MRUFGLCB0aGUgY2Fs bGVyIGlzIGFscmVhZHkgaG9sZGluZyBhbiBTIGxhdGNoCi1vbiB0aGUgaW5kZXggdHJlZSAqLwor LyoqIEluIHRoZSBjYXNlIG9mIEJUUl9TRUFSQ0hfTEVBRiBvciBCVFJfTU9ESUZZX0xFQUYsIHRo ZSBjYWxsZXIgaXMKK2FscmVhZHkgaG9sZGluZyBhbiBTIGxhdGNoIG9uIHRoZSBpbmRleCB0cmVl ICovCiAjZGVmaW5lIEJUUl9BTFJFQURZX1NfTEFUQ0hFRAkxNjM4NAogCiAjZGVmaW5lIEJUUl9M QVRDSF9NT0RFX1dJVEhPVVRfRkxBR1MobGF0Y2hfbW9kZSkJXAoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaCcKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL2RpY3QwZGljdC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwNTI1MjAwMDQ1LW12N3VxNGg1Z3l0aWtyMDIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL2RpY3QwZGljdC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTI1MjA0 MDMyLWtxZG40NmFqd2t1aDV5NncKQEAgLTEzMTUsMTYgKzEzMTUsMTggQEAgVU5JVl9JTkxJTkUK IHZvaWQKIGRpY3RfaW5kZXhfc2V0X29ubGluZV9zdGF0dXMoCiAvKj09PT09PT09PT09PT09PT09 PT09PT09PT0qLwotCWRpY3RfaW5kZXhfdCoJCQlpbmRleCwJLyohPCBpbi9vdXQ6IHNlY29uZGFy eSBpbmRleCAqLworCWRpY3RfaW5kZXhfdCoJCQlpbmRleCwJLyohPCBpbi9vdXQ6IGluZGV4ICov CiAJZW51bSBvbmxpbmVfaW5kZXhfc3RhdHVzCXN0YXR1cykJLyohPCBpbjogc3RhdHVzICovCiAJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogRGV0ZXJtaW5lcyBp ZiBhIHNlY29uZGFyeSBpbmRleCBpcyBiZWluZyBvciBoYXMgYmVlbiBjcmVhdGVkIG9ubGluZSwK LWFsbG93aW5nIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucyB0byB0aGUgdGFibGUuCi1AcmV0dmFs IFRSVUUgaWYgdGhlIGluZGV4IGlzIGJlaW5nIG9yIGhhcyBiZWVuIGJ1aWx0IG9ubGluZQotQHJl dHZhbCBGQUxTRSBpZiB0aGUgaW5kZXggaGFzIGJlZW4gY3JlYXRlZCBjb21wbGV0ZWx5ICovCitv ciBpZiB0aGUgdGFibGUgaXMgYmVpbmcgcmVidWlsdCBvbmxpbmUsIGFsbG93aW5nIGNvbmN1cnJl bnQgbW9kaWZpY2F0aW9ucwordG8gdGhlIHRhYmxlLgorQHJldHZhbCB0cnVlIGlmIHRoZSBpbmRl eCBpcyBiZWluZyBvciBoYXMgYmVlbiBidWlsdCBvbmxpbmUsIG9yCitpZiB0aGlzIGlzIGEgY2x1 c3RlcmVkIGluZGV4IGFuZCB0aGUgdGFibGUgaXMgb3Igd2FzIGJlaW5nIHJlYnVpbHQgb25saW5l CitAcmV0dmFsIGZhbHNlIGlmIHRoZSBpbmRleCBoYXMgYmVlbiBjcmVhdGVkIGNvbXBsZXRlbHkg Ki8KIFVOSVZfSU5MSU5FCi1pYm9vbAorYm9vbAogZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKAog Lyo9PT09PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8q ITwgaW46IGluZGV4ICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL2RpY3QwZGljdC5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwZGlj dC5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyNTIwMDA0NS1tdjd1cTRo NWd5dGlrcjAyCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaWMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MjUyMDQwMzIta3FkbjQ2YWp3a3VoNXk2 dwpAQCAtMTE0OCwxMCArMTE0OCw5IEBAIFVOSVZfSU5MSU5FCiB2b2lkCiBkaWN0X2luZGV4X3Nl dF9vbmxpbmVfc3RhdHVzKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQlkaWN0X2lu ZGV4X3QqCQkJaW5kZXgsCS8qITwgaW4vb3V0OiBzZWNvbmRhcnkgaW5kZXggKi8KKwlkaWN0X2lu ZGV4X3QqCQkJaW5kZXgsCS8qITwgaW4vb3V0OiBpbmRleCAqLwogCWVudW0gb25saW5lX2luZGV4 X3N0YXR1cwlzdGF0dXMpCS8qITwgaW46IHN0YXR1cyAqLwogewotCXV0X2FkKCFkaWN0X2luZGV4 X2lzX2NsdXN0KGluZGV4KSk7CiAJdXRfYWQoIShpbmRleC0+dHlwZSAmIERJQ1RfRlRTKSk7CiAj aWZkZWYgVU5JVl9TWU5DX0RFQlVHCiAJdXRfYWQocndfbG9ja19vd24oZGljdF9pbmRleF9nZXRf bG9jayhpbmRleCksIFJXX0xPQ0tfRVgpKTsKQEAgLTExNzUsMTEgKzExNzQsMTMgQEAgZGljdF9p bmRleF9zZXRfb25saW5lX3N0YXR1cygKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogRGV0ZXJtaW5lcyBp ZiBhIHNlY29uZGFyeSBpbmRleCBpcyBiZWluZyBvciBoYXMgYmVlbiBjcmVhdGVkIG9ubGluZSwK LWFsbG93aW5nIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucyB0byB0aGUgdGFibGUuCi1AcmV0dmFs IFRSVUUgaWYgdGhlIGluZGV4IGlzIGJlaW5nIG9yIGhhcyBiZWVuIGJ1aWx0IG9ubGluZQotQHJl dHZhbCBGQUxTRSBpZiB0aGUgaW5kZXggaGFzIGJlZW4gY3JlYXRlZCBjb21wbGV0ZWx5ICovCitv ciBpZiB0aGUgdGFibGUgaXMgYmVpbmcgcmVidWlsdCBvbmxpbmUsIGFsbG93aW5nIGNvbmN1cnJl bnQgbW9kaWZpY2F0aW9ucwordG8gdGhlIHRhYmxlLgorQHJldHZhbCB0cnVlIGlmIHRoZSBpbmRl eCBpcyBiZWluZyBvciBoYXMgYmVlbiBidWlsdCBvbmxpbmUsIG9yCitpZiB0aGlzIGlzIGEgY2x1 c3RlcmVkIGluZGV4IGFuZCB0aGUgdGFibGUgaXMgb3Igd2FzIGJlaW5nIHJlYnVpbHQgb25saW5l CitAcmV0dmFsIGZhbHNlIGlmIHRoZSBpbmRleCBoYXMgYmVlbiBjcmVhdGVkIGNvbXBsZXRlbHkg Ki8KIFVOSVZfSU5MSU5FCi1pYm9vbAorYm9vbAogZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKAog Lyo9PT09PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8q ITwgaW46IGluZGV4ICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL2RpY3QwbWVtLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MG1lbS5o CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTI1MjAwMDQ1LW12N3VxNGg1Z3l0 aWtyMDIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwbWVtLmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MjUyMDQwMzIta3FkbjQ2YWp3a3VoNXk2dwpAQCAt NDg0LDkgKzQ4NCwxOSBAQCBzdHJ1Y3QgZGljdF9pbmRleF9zdHJ1Y3R7CiAJdW5zaWduZWQJY2Fj aGVkOjE7LyohPCBUUlVFIGlmIHRoZSBpbmRleCBvYmplY3QgaXMgaW4gdGhlCiAJCQkJZGljdGlv bmFyeSBjYWNoZSAqLwogCXVuc2lnbmVkCXRvX2JlX2Ryb3BwZWQ6MTsKLQkJCQkvKiE8IFRSVUUg aWYgdGhlIGluZGV4IGlzIHRvIGJlIGRyb3BwZWQgKi8KKwkJCQkvKiE8IFRSVUUgaWYgdGhlIGlu ZGV4IGlzIHRvIGJlIGRyb3BwZWQ7CisJCQkJcHJvdGVjdGVkIGJ5IGRpY3Rfb3BlcmF0aW9uX2xv Y2sgKi8KIAl1bnNpZ25lZAlvbmxpbmVfc3RhdHVzOjI7Ci0JCQkJLyohPCBlbnVtIG9ubGluZV9p bmRleF9zdGF0dXMgKi8KKwkJCQkvKiE8IGVudW0gb25saW5lX2luZGV4X3N0YXR1cy4KKwkJCQlU cmFuc2l0aW9ucyBmcm9tIE9OTElORV9JTkRFWF9DT01QTEVURSAodG8KKwkJCQlPTkxJTkVfSU5E RVhfQ1JFQVRJT04pIGFyZSBwcm90ZWN0ZWQKKwkJCQlieSBkaWN0X29wZXJhdGlvbl9sb2NrIGFu ZAorCQkJCWRpY3Rfc3lzLT5tdXRleC4gVHJhbnNpdGlvbnMgb2YgdGhlCisJCQkJY2x1c3RlcmVk IGluZGV4IGZyb20gT05MSU5FX0lOREVYX0NSRUFUSU9OCisJCQkJdG8gT05MSU5FX0lOREVYX0FC T1JURUQgKG1vZGlmaWNhdGlvbiBsb2cKKwkJCQlvdmVyZmxvdyBvciBvdGhlciBlcnJvcikgYXJl IHByb3RlY3RlZAorCQkJCWJ5IGluZGV4LT5vbmxpbmVfbG9nLT5tdXRleC4gT3RoZXIKKwkJCQlj aGFuZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgaW5kZXgtPmxvY2suICovCiAJZGljdF9maWVsZF90Kglm aWVsZHM7CS8qITwgYXJyYXkgb2YgZmllbGQgZGVzY3JpcHRpb25zICovCiAjaWZuZGVmIFVOSVZf SE9UQkFDS1VQCiAJVVRfTElTVF9OT0RFX1QoZGljdF9pbmRleF90KQpAQCAtNTUzLDggKzU2Mywx MSBAQCBlbnVtIG9ubGluZV9pbmRleF9zdGF0dXMgewogCS8qKiB0aGUgaW5kZXggaXMgYmVpbmcg Y3JlYXRlZCwgb25saW5lCiAJKGFsbG93aW5nIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucykgKi8K IAlPTkxJTkVfSU5ERVhfQ1JFQVRJT04sCi0JLyoqIHRoZSBvbmxpbmUgaW5kZXggY3JlYXRpb24g d2FzIGFib3J0ZWQgYW5kIHRoZSBpbmRleAotCXNob3VsZCBiZSBkcm9wcGVkIGFzIHNvb24gYXMg aW5kZXgtPnRhYmxlLT5uX3JlZl9jb3VudCByZWFjaGVzIDAgKi8KKwkvKiogc2Vjb25kYXJ5IGlu ZGV4IGNyZWF0aW9uIHdhcyBhYm9ydGVkIGFuZCB0aGUgaW5kZXgKKwlzaG91bGQgYmUgZHJvcHBl ZCBhcyBzb29uIGFzIGluZGV4LT50YWJsZS0+bl9yZWZfY291bnQgcmVhY2hlcyAwLAorCW9yIG9u bGluZSB0YWJsZSByZWJ1aWxkIHdhcyBhYm9ydGVkIGFuZCB0aGUgY2x1c3RlcmVkIGluZGV4CisJ b2YgdGhlIG9yaWdpbmFsIHRhYmxlIHNob3VsZCBzb29uIGJlIHJlc3RvcmVkIHRvCisJT05MSU5F X0lOREVYX0NPTVBMRVRFICovCiAJT05MSU5FX0lOREVYX0FCT1JURUQsCiAJLyoqIHRoZSBvbmxp bmUgaW5kZXggY3JlYXRpb24gd2FzIGFib3J0ZWQsIHRoZSBpbmRleCB3YXMKIAlkcm9wcGVkIGZy b20gdGhlIGRhdGEgZGljdGlvbmFyeSBhbmQgdGhlIHRhYmxlc3BhY2UsIGFuZCBpdAoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suY2MnCi0tLSBhL3N0 b3JhZ2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMjA1MjUyMDAwNDUtbXY3dXE0aDVneXRpa3IwMgorKysgYi9zdG9yYWdlL2lubm9i YXNlL2xvY2svbG9jazBsb2NrLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIw NTI1MjA0MDMyLWtxZG40NmFqd2t1aDV5NncKQEAgLTUzMSw3ICs1MzEsNiBAQCBsb2NrX2NsdXN0 X3JlY19jb25zX3JlYWRfc2VlcygKIAl0cnhfaWRfdAl0cnhfaWQ7CiAKIAl1dF9hZChkaWN0X2lu ZGV4X2lzX2NsdXN0KGluZGV4KSk7Ci0JdXRfYWQoIWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChp bmRleCkpOwogCXV0X2FkKHBhZ2VfcmVjX2lzX3VzZXJfcmVjKHJlYykpOwogCXV0X2FkKHJlY19v ZmZzX3ZhbGlkYXRlKHJlYywgaW5kZXgsIG9mZnNldHMpKTsKIApAQCAtMTc0Nyw3ICsxNzQ2LDcg QEAgbG9ja19yZWNfY3JlYXRlKAogCiAJdXRfYWQobG9ja19tdXRleF9vd24oKSk7CiAJdXRfYWQo Y2FsbGVyX293bnNfdHJ4X211dGV4ID09IHRyeF9tdXRleF9vd24odHJ4KSk7Ci0JdXRfYWQoIWRp Y3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpOworCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1 c3QoaW5kZXgpIHx8ICFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKIAogCS8qIE5v bi1sb2NraW5nIGF1dG9jb21taXQgcmVhZC1vbmx5IHRyYW5zYWN0aW9ucyBzaG91bGQgbm90IHNl dAogCWFueSBsb2Nrcy4gKi8KQEAgLTE4NTMsNyArMTg1Miw3IEBAIGxvY2tfcmVjX2VucXVldWVf d2FpdGluZygKIAl0cnhfaWRfdAkJdmljdGltX3RyeF9pZDsKIAogCXV0X2FkKGxvY2tfbXV0ZXhf b3duKCkpOwotCXV0X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKKwl1dF9h ZChkaWN0X2luZGV4X2lzX2NsdXN0KGluZGV4KSB8fCAhZGljdF9pbmRleF9pc19vbmxpbmVfZGRs KGluZGV4KSk7CiAKIAl0cnggPSB0aHJfZ2V0X3RyeCh0aHIpOwogCkBAIC0xOTcyLDcgKzE5NzEs NyBAQCBsb2NrX3JlY19hZGRfdG9fcXVldWUoCiAKIAl1dF9hZChsb2NrX211dGV4X293bigpKTsK IAl1dF9hZChjYWxsZXJfb3duc190cnhfbXV0ZXggPT0gdHJ4X211dGV4X293bih0cngpKTsKLQl1 dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSk7CisJdXRfYWQoZGljdF9pbmRl eF9pc19jbHVzdChpbmRleCkgfHwgIWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpOwog I2lmZGVmIFVOSVZfREVCVUcKIAlzd2l0Y2ggKHR5cGVfbW9kZSAmIExPQ0tfTU9ERV9NQVNLKSB7 CiAJY2FzZSBMT0NLX1g6CkBAIC0yMDk0LDcgKzIwOTMsNyBAQCBsb2NrX3JlY19sb2NrX2Zhc3Qo CiAJdXRfYWQobW9kZSAtIChMT0NLX01PREVfTUFTSyAmIG1vZGUpID09IExPQ0tfR0FQCiAJICAg ICAgfHwgbW9kZSAtIChMT0NLX01PREVfTUFTSyAmIG1vZGUpID09IDAKIAkgICAgICB8fCBtb2Rl IC0gKExPQ0tfTU9ERV9NQVNLICYgbW9kZSkgPT0gTE9DS19SRUNfTk9UX0dBUCk7Ci0JdXRfYWQo IWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpOworCXV0X2FkKGRpY3RfaW5kZXhfaXNf Y2x1c3QoaW5kZXgpIHx8ICFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKIAogCWxv Y2sgPSBsb2NrX3JlY19nZXRfZmlyc3Rfb25fcGFnZShibG9jayk7CiAKQEAgLTIxNzAsNyArMjE2 OSw3IEBAIGxvY2tfcmVjX2xvY2tfc2xvdygKIAl1dF9hZChtb2RlIC0gKExPQ0tfTU9ERV9NQVNL ICYgbW9kZSkgPT0gTE9DS19HQVAKIAkgICAgICB8fCBtb2RlIC0gKExPQ0tfTU9ERV9NQVNLICYg bW9kZSkgPT0gMAogCSAgICAgIHx8IG1vZGUgLSAoTE9DS19NT0RFX01BU0sgJiBtb2RlKSA9PSBM T0NLX1JFQ19OT1RfR0FQKTsKLQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4 KSk7CisJdXRfYWQoZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkgfHwgIWRpY3RfaW5kZXhfaXNf b25saW5lX2RkbChpbmRleCkpOwogCiAJdHJ4ID0gdGhyX2dldF90cngodGhyKTsKIApAQCAtMjI0 Miw3ICsyMjQxLDcgQEAgbG9ja19yZWNfbG9jaygKIAl1dF9hZChtb2RlIC0gKExPQ0tfTU9ERV9N QVNLICYgbW9kZSkgPT0gTE9DS19HQVAKIAkgICAgICB8fCBtb2RlIC0gKExPQ0tfTU9ERV9NQVNL ICYgbW9kZSkgPT0gTE9DS19SRUNfTk9UX0dBUAogCSAgICAgIHx8IG1vZGUgLSAoTE9DS19NT0RF X01BU0sgJiBtb2RlKSA9PSAwKTsKLQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGlu ZGV4KSk7CisJdXRfYWQoZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkgfHwgIWRpY3RfaW5kZXhf aXNfb25saW5lX2RkbChpbmRleCkpOwogCiAJLyogV2UgdHJ5IGEgc2ltcGxpZmllZCBhbmQgZmFz dGVyIHN1YnJvdXRpbmUgZm9yIHRoZSBtb3N0CiAJY29tbW9uIGNhc2VzICovCkBAIC01NDE5LDcg KzU0MTgsOCBAQCBsb2NrX3JlY19xdWV1ZV92YWxpZGF0ZSgKIAl1dF9hZChyZWNfb2Zmc192YWxp ZGF0ZShyZWMsIGluZGV4LCBvZmZzZXRzKSk7CiAJdXRfYWQoIXBhZ2VfcmVjX2lzX2NvbXAocmVj KSA9PSAhcmVjX29mZnNfY29tcChvZmZzZXRzKSk7CiAJdXRfYWQobG9ja19tdXRleF9vd24oKSA9 PSBsb2NrZWRfbG9ja190cnhfc3lzKTsKLQl1dF9hZCghaW5kZXggfHwgIWRpY3RfaW5kZXhfaXNf b25saW5lX2RkbChpbmRleCkpOworCXV0X2FkKCFpbmRleCB8fCBkaWN0X2luZGV4X2lzX2NsdXN0 KGluZGV4KQorCSAgICAgIHx8ICFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKIAog CWhlYXBfbm8gPSBwYWdlX3JlY19nZXRfaGVhcF9ubyhyZWMpOwogCkBAIC01Nzk1LDcgKzU3OTUs OSBAQCBsb2NrX3JlY19pbnNlcnRfY2hlY2tfYW5kX2xvY2soCiAJdWxpbnQJCW5leHRfcmVjX2hl YXBfbm87CiAKIAl1dF9hZChibG9jay0+ZnJhbWUgPT0gcGFnZV9hbGlnbihyZWMpKTsKLQl1dF9h ZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KSB8fCAoZmxhZ3MgJiBCVFJfQ1JFQVRF X0ZMQUcpKTsKKwl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGluZGV4KQorCSAgICAg IHx8IGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpCisJICAgICAgfHwgKGZsYWdzICYgQlRSX0NS RUFURV9GTEFHKSk7CiAKIAlpZiAoZmxhZ3MgJiBCVFJfTk9fTE9DS0lOR19GTEFHKSB7CiAKQEAg LTU5MjMsNyArNTkyNSw2IEBAIGxvY2tfcmVjX2NvbnZlcnRfaW1wbF90b19leHBsKAogCXV0X2Fk KHBhZ2VfcmVjX2lzX3VzZXJfcmVjKHJlYykpOwogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJl YywgaW5kZXgsIG9mZnNldHMpKTsKIAl1dF9hZCghcGFnZV9yZWNfaXNfY29tcChyZWMpID09ICFy ZWNfb2Zmc19jb21wKG9mZnNldHMpKTsKLQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRs KGluZGV4KSk7CiAKIAlpZiAoZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkpIHsKIAkJdHJ4X2lk ID0gbG9ja19jbHVzdF9yZWNfc29tZV9oYXNfaW1wbChyZWMsIGluZGV4LCBvZmZzZXRzKTsKQEAg LTU5MzEsNiArNTkzMiw3IEBAIGxvY2tfcmVjX2NvbnZlcnRfaW1wbF90b19leHBsKAogCQl0aGlz IHRyYW5zYWN0aW9uLiBUaGUgdHJhbnNhY3Rpb24gbWF5IGhhdmUgYmVlbgogCQljb21taXR0ZWQg YSBsb25nIHRpbWUgYWdvLiAqLwogCX0gZWxzZSB7CisJCXV0X2FkKCFkaWN0X2luZGV4X2lzX29u bGluZV9kZGwoaW5kZXgpKTsKIAkJdHJ4X2lkID0gbG9ja19zZWNfcmVjX3NvbWVfaGFzX2ltcGwo cmVjLCBpbmRleCwgb2Zmc2V0cyk7CiAJCS8qIFRoZSB0cmFuc2FjdGlvbiBjYW4gYmUgY29tbWl0 dGVkIGJlZm9yZSB0aGUKIAkJdHJ4X2lzX2FjdGl2ZSh0cnhfaWQsIE5VTEwpIGNoZWNrIGJlbG93 LCBiZWNhdXNlIHdlIGFyZSBub3QKQEAgLTU5OTAsNyArNTk5Miw2IEBAIGxvY2tfY2x1c3RfcmVj X21vZGlmeV9jaGVja19hbmRfbG9jaygKIAogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlYywg aW5kZXgsIG9mZnNldHMpKTsKIAl1dF9hZChkaWN0X2luZGV4X2lzX2NsdXN0KGluZGV4KSk7Ci0J dXRfYWQoIWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpOwogCXV0X2FkKGJsb2NrLT5m cmFtZSA9PSBwYWdlX2FsaWduKHJlYykpOwogCiAJaWYgKGZsYWdzICYgQlRSX05PX0xPQ0tJTkdf RkxBRykgewpAQCAtNjIyMCw3ICs2MjIxLDYgQEAgbG9ja19jbHVzdF9yZWNfcmVhZF9jaGVja19h bmRfbG9jaygKIAl1bGludAloZWFwX25vOwogCiAJdXRfYWQoZGljdF9pbmRleF9pc19jbHVzdChp bmRleCkpOwotCXV0X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoaW5kZXgpKTsKIAl1dF9h ZChibG9jay0+ZnJhbWUgPT0gcGFnZV9hbGlnbihyZWMpKTsKIAl1dF9hZChwYWdlX3JlY19pc191 c2VyX3JlYyhyZWMpIHx8IHBhZ2VfcmVjX2lzX3N1cHJlbXVtKHJlYykpOwogCXV0X2FkKGdhcF9t b2RlID09IExPQ0tfT1JESU5BUlkgfHwgZ2FwX21vZGUgPT0gTE9DS19HQVAKQEAgLTY0ODUsNyAr NjQ4NSw4IEBAIGxvY2tfZ2V0X3RhYmxlKAogewogCXN3aXRjaCAobG9ja19nZXRfdHlwZV9sb3co bG9jaykpIHsKIAljYXNlIExPQ0tfUkVDOgotCQl1dF9hZCghZGljdF9pbmRleF9pc19vbmxpbmVf ZGRsKGxvY2stPmluZGV4KSk7CisJCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1c3QobG9jay0+aW5k ZXgpCisJCSAgICAgIHx8ICFkaWN0X2luZGV4X2lzX29ubGluZV9kZGwobG9jay0+aW5kZXgpKTsK IAkJcmV0dXJuKGxvY2stPmluZGV4LT50YWJsZSk7CiAJY2FzZSBMT0NLX1RBQkxFOgogCQlyZXR1 cm4obG9jay0+dW5fbWVtYmVyLnRhYl9sb2NrLnRhYmxlKTsKQEAgLTY1MzgsNyArNjUzOSw4IEBA IGxvY2tfcmVjX2dldF9pbmRleCgKIAljb25zdCBsb2NrX3QqCWxvY2spCS8qITwgaW46IGxvY2sg Ki8KIHsKIAl1dF9hKGxvY2tfZ2V0X3R5cGVfbG93KGxvY2spID09IExPQ0tfUkVDKTsKLQl1dF9h ZCghZGljdF9pbmRleF9pc19vbmxpbmVfZGRsKGxvY2stPmluZGV4KSk7CisJdXRfYWQoZGljdF9p bmRleF9pc19jbHVzdChsb2NrLT5pbmRleCkKKwkgICAgICB8fCAhZGljdF9pbmRleF9pc19vbmxp bmVfZGRsKGxvY2stPmluZGV4KSk7CiAKIAlyZXR1cm4obG9jay0+aW5kZXgpOwogfQpAQCAtNjU1 NCw3ICs2NTU2LDggQEAgbG9ja19yZWNfZ2V0X2luZGV4X25hbWUoCiAJY29uc3QgbG9ja190Kgls b2NrKQkvKiE8IGluOiBsb2NrICovCiB7CiAJdXRfYShsb2NrX2dldF90eXBlX2xvdyhsb2NrKSA9 PSBMT0NLX1JFQyk7Ci0JdXRfYWQoIWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChsb2NrLT5pbmRl eCkpOworCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1c3QobG9jay0+aW5kZXgpCisJICAgICAgfHwg IWRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChsb2NrLT5pbmRleCkpOwogCiAJcmV0dXJuKGxvY2st PmluZGV4LT5uYW1lKTsKIH0KQEAgLTY4MTksNyArNjgyMiw4IEBAIGxvY2tfdGFibGVfbG9ja3Nf bG9va3VwKAogCQkJdXRfYShsb2NrLT50cnggPT0gdHJ4KTsKIAogCQkJaWYgKGxvY2tfZ2V0X3R5 cGVfbG93KGxvY2spID09IExPQ0tfUkVDKSB7Ci0JCQkJdXRfYWQoIWRpY3RfaW5kZXhfaXNfb25s aW5lX2RkbChsb2NrLT5pbmRleCkpOworCQkJCXV0X2FkKCFkaWN0X2luZGV4X2lzX29ubGluZV9k ZGwobG9jay0+aW5kZXgpCisJCQkJICAgICAgfHwgZGljdF9pbmRleF9pc19jbHVzdChsb2NrLT5p bmRleCkpOwogCQkJCWlmIChsb2NrLT5pbmRleC0+dGFibGUgPT0gdGFibGUpIHsKIAkJCQkJcmV0 dXJuKGxvY2spOwogCQkJCX0KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwbWVyZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyNTIwMDA0NS1tdjd1cTRoNWd5dGlr cjAyCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUyNTIwNDAzMi1rcWRuNDZhandrdWg1eTZ3CkBAIC0zMDky LDcgKzMwOTIsOCBAQCByb3dfbWVyZ2VfaXNfaW5kZXhfdXNhYmxlKAogCWNvbnN0IHRyeF90KgkJ dHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiAqLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgp CS8qITwgaW46IGluZGV4IHRvIGNoZWNrICovCiB7Ci0JaWYgKGRpY3RfaW5kZXhfaXNfb25saW5l X2RkbChpbmRleCkpIHsKKwlpZiAoIWRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpCisJICAgICYm IGRpY3RfaW5kZXhfaXNfb25saW5lX2RkbChpbmRleCkpIHsKIAkJLyogSW5kZXhlcyB0aGF0IGFy ZSBiZWluZyBjcmVhdGVkIGFyZSBub3QgdXNlYWJsZS4gKi8KIAkJcmV0dXJuKEZBTFNFKTsKIAl9 CgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==