From: marko.makela Date: April 11 2011 1:40pm Subject: bzr commit into mysql-5.1-innodb branch (marko.makela:3725) Bug#11760042 List-Archive: http://lists.mysql.com/commits/135193 X-Bug: 11760042 Message-Id: <201104111341.p3BDfCwO010049@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1646241435==" --===============1646241435== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjEtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE4MTI1NC1pcTVw dWF6bnpkcnpjcDNhCgogMzcyNSBNYXJrbyBNw6RrZWzDpAkyMDExLTA0LTExCiAgICAgIEJ1ZyAj MTE3NjAwNDIgLSA1MjQwOTogQXNzZXJ0aW9uIGZhaWx1cmU6IGxvbmcgc2VtYXBob3JlIHdhaXQK ICAgICAgCiAgICAgIEluIGhhX2lubm9iYXNlOjpjcmVhdGUoKSwgd2UgY2hlY2sgc29tZSB0aGlu Z3Mgd2hpbGUgaG9sZGluZyBhbgogICAgICBleGNsdXNpdmUgbG9jayBvbiB0aGUgZGF0YSBkaWN0 aW9uYXJ5LiBEZWZlciB0aGUgbG9ja2luZyBhbmQgdGhlCiAgICAgIGNyZWF0aW9uIG9mIHRyYW5z YWN0aW9ucyB1bnRpbCBhZnRlciB0aGUgY2hlY2tzIGhhdmUgcGFzc2VkLiBUaGUKICAgICAgVEhE VkFSIGNvdWxkIGhhbmcgZHVlIHRvIGEgbXV0ZXggd2FpdCAoc2VlIEJ1ZyAjMTE3NTA1NjkgLSA0 MTE2MzoKICAgICAgZGVhZGxvY2sgaW4gbXlzcWxkOiBMT0NLX2dsb2JhbF9zeXN0ZW1fdmFyaWFi bGVzIGFuZCBMT0NLX29wZW4pLCBhbmQKICAgICAgd2Ugd2FudCB0byBhdm9pZCB3YWl0aW5nIHdo aWxlIGhvbGRpbmcgSW5ub0RCIG11dGV4ZXMuCiAgICAgIAogICAgICBpbm5vYmFzZV9pbmRleF9u YW1lX2lzX3Jlc2VydmVkKCk6IFJlcGxhY2UgdGhlIHBhcmFtZXRlciB0cnhfdCB3aXRoCiAgICAg IFRIRCwgc28gdGhhdCB0aGUgdGVzdCBjYW4gYmUgcGVyZm9ybWVkIGJlZm9yZSBzdGFydGluZyBh biBJbm5vREIKICAgICAgdHJhbnNhY3Rpb24uIFdlIG9ubHkgbmVlZGVkIHRyeC0+bXlzcWxfdGhk LgogICAgICAKICAgICAgaGFfaW5ub2Jhc2U6OmNyZWF0ZSgpOiBDcmVhdGUgdHJhbnNhY3Rpb24g YW5kIGxvY2sgdGhlIGRhdGEgZGljdGlvbmFyeQogICAgICBvbmx5IGFmdGVyIHBhc3NpbmcgdGhl IGJhc2ljIHRlc3RzLgogICAgICAKICAgICAgY3JlYXRlX3RhYmxlX2RlZigpOiBNb3ZlIHRoZSBJ U19NQUdJQ19UQUJMRV9BTkRfVVNFUl9ERU5JRURfQUNDRVNTCiAgICAgIGNoZWNrIHRvIGhhX2lu bm9iYXNlOjpjcmVhdGUoKS4gQXNzaWduIHRvIHNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzCiAg ICAgIHdoaWxlIGhvbGRpbmcgZGljdF9zeXMtPm11dGV4LgogICAgICAKICAgICAgaGFfaW5ub2Jh c2U6OmRlbGV0ZV90YWJsZSgpLCBoYV9pbm5vYmFzZTo6cmVuYW1lX3RhYmxlKCksCiAgICAgIGlu bm9iYXNlX3JlbmFtZV90YWJsZSgpOiBBc3NpZ24gc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMg YXMgbGF0ZSBhcwogICAgICBwb3NzaWJsZS4gSGVyZSwgdGhlIHZhcmlhYmxlIGlzIG5vdCBuZWNl c3NhcmlseSBwcm90ZWN0ZWQgYnkKICAgICAgZGljdF9zeXMtPm11dGV4LgogICAgICAKICAgICAg aGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgpOiBJbnZva2UgaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19y ZXNlcnZlZCgpIGFuZAogICAgICBpbm5vYmFzZV9jaGVja19pbmRleF9rZXlzKCkgYmVmb3JlIGFs bG9jYXRpbmcgYW55dGhpbmcuCiAgICAgIAogICAgICByYjo2MTggYXBwcm92ZWQgYnkgSmltbXkg WWFuZwoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5u b2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9DaGFuZ2VMb2cKICAgICAgc3RvcmFn ZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9o YW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YV9pbm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MDcxODEyNTQt aXE1cHVhem56ZHJ6Y3AzYQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNDExMTM0MDI4LTMxb3k2bDQ0 N3psMDkxOWgKQEAgLTE4OSw3ICsxODksNyBAQCBpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2Vy dmVkKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAkJCQkJLyogb3V0OiB0cnVl IGlmIGluZGV4IG5hbWUgbWF0Y2hlcyBhCiAJCQkJCXJlc2VydmVkIG5hbWUgKi8KLQljb25zdCB0 cnhfdCoJdHJ4LAkJLyogaW46IElubm9EQiB0cmFuc2FjdGlvbiBoYW5kbGUgKi8KKwlUSEQqCQl0 aGQsCQkvKiBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24gKi8KIAljb25zdCBUQUJMRSoJZm9ybSwJ CS8qIGluOiBpbmZvcm1hdGlvbiBvbiB0YWJsZQogCQkJCQljb2x1bW5zIGFuZCBpbmRleGVzICov CiAJY29uc3QgY2hhcioJbm9ybV9uYW1lKTsJLyogaW46IHRhYmxlIG5hbWUgKi8KQEAgLTUyODUs MTAgKzUyODUsNiBAQCBjcmVhdGVfdGFibGVfZGVmKAogCURCVUdfUFJJTlQoImVudGVyIiwgKCJ0 YWJsZV9uYW1lOiAlcyIsIHRhYmxlX25hbWUpKTsKIAogCXV0X2EodHJ4LT5teXNxbF90aGQgIT0g TlVMTCk7Ci0JaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VSX0RFTklFRF9BQ0NFU1ModGFibGVf bmFtZSwKLQkJCQkJCSAgKFRIRCopIHRyeC0+bXlzcWxfdGhkKSkgewotCQlEQlVHX1JFVFVSTihI QV9FUlJfR0VORVJJQyk7Ci0JfQogCiAJbl9jb2xzID0gZm9ybS0+cy0+ZmllbGRzOwogCkBAIC01 Mzk3LDYgKzUzOTMsOCBAQCBlcnJfY29sOgogCQkJY29sX2xlbik7CiAJfQogCisJc3J2X2xvd2Vy X2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzOworCiAJZXJyb3IgPSBy b3dfY3JlYXRlX3RhYmxlX2Zvcl9teXNxbCh0YWJsZSwgdHJ4KTsKIAogCWlubm9kYl9jaGVja19m b3JfcmVjb3JkX3Rvb19iaWdfZXJyb3IoZmxhZ3MgJiBESUNUX1RGX0NPTVBBQ1QsIGVycm9yKTsK QEAgLTU2NDIsNiArNTY0MCwzNSBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCQlEQlVHX1JFVFVS TihIQV9FUlJfVE9fQklHX1JPVyk7CiAJfQogCisJc3RyY3B5KG5hbWUyLCBuYW1lKTsKKworCW5v cm1hbGl6ZV90YWJsZV9uYW1lKG5vcm1fbmFtZSwgbmFtZTIpOworCisJLyogQ3JlYXRlIHRoZSB0 YWJsZSBkZWZpbml0aW9uIGluIElubm9EQiAqLworCisJZmxhZ3MgPSBmb3JtLT5zLT5yb3dfdHlw ZSAhPSBST1dfVFlQRV9SRURVTkRBTlQgPyBESUNUX1RGX0NPTVBBQ1QgOiAwOworCisJLyogTG9v ayBmb3IgYSBwcmltYXJ5IGtleSAqLworCisJcHJpbWFyeV9rZXlfbm89IChmb3JtLT5zLT5wcmlt YXJ5X2tleSAhPSBNQVhfS0VZID8KKwkJCSAoaW50KSBmb3JtLT5zLT5wcmltYXJ5X2tleSA6CisJ CQkgLTEpOworCisJLyogT3VyIGZ1bmN0aW9uIHJvd19nZXRfbXlzcWxfa2V5X251bWJlcl9mb3Jf aW5kZXggYXNzdW1lcworCXRoZSBwcmltYXJ5IGtleSBpcyBhbHdheXMgbnVtYmVyIDAsIGlmIGl0 IGV4aXN0cyAqLworCisJREJVR19BU1NFUlQocHJpbWFyeV9rZXlfbm8gPT0gLTEgfHwgcHJpbWFy eV9rZXlfbm8gPT0gMCk7CisKKwkvKiBDaGVjayBmb3IgbmFtZSBjb25mbGljdHMgKHdpdGggcmVz ZXJ2ZWQgbmFtZSkgZm9yCisJYW55IHVzZXIgaW5kaWNlcyB0byBiZSBjcmVhdGVkLiAqLworCWlm IChpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKHRoZCwgZm9ybSwgbm9ybV9uYW1lKSkg eworCQlEQlVHX1JFVFVSTigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VS X0RFTklFRF9BQ0NFU1Mobm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9H RU5FUklDKTsKKwl9CisKIAkvKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0 aGUgY3VycmVudCB0aGQsIG9yIGNyZWF0ZSBvbmUKIAlpZiBub3QgeWV0IGNyZWF0ZWQgKi8KIApA QCAtNTY2NSw0OCArNTY5MiwxMiBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCQl0cngtPmNoZWNr X3VuaXF1ZV9zZWNvbmRhcnkgPSBGQUxTRTsKIAl9CiAKLQlpZiAobG93ZXJfY2FzZV90YWJsZV9u YW1lcykgewotCQlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IFRSVUU7Ci0JfSBlbHNlIHsK LQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBGQUxTRTsKLQl9Ci0KLQlzdHJjcHkobmFt ZTIsIG5hbWUpOwotCi0Jbm9ybWFsaXplX3RhYmxlX25hbWUobm9ybV9uYW1lLCBuYW1lMik7Ci0K IAkvKiBMYXRjaCB0aGUgSW5ub0RCIGRhdGEgZGljdGlvbmFyeSBleGNsdXNpdmVseSBzbyB0aGF0 IG5vIGRlYWRsb2NrcwogCW9yIGxvY2sgd2FpdHMgY2FuIGhhcHBlbiBpbiBpdCBkdXJpbmcgYSB0 YWJsZSBjcmVhdGUgb3BlcmF0aW9uLgogCURyb3AgdGFibGUgZXRjLiBkbyB0aGlzIGxhdGNoaW5n IGluIHJvdzBteXNxbC5jLiAqLwogCiAJcm93X215c3FsX2xvY2tfZGF0YV9kaWN0aW9uYXJ5KHRy eCk7CiAKLQkvKiBDcmVhdGUgdGhlIHRhYmxlIGRlZmluaXRpb24gaW4gSW5ub0RCICovCi0KLQlm bGFncyA9IDA7Ci0KLQlpZiAoZm9ybS0+cy0+cm93X3R5cGUgIT0gUk9XX1RZUEVfUkVEVU5EQU5U KSB7Ci0JCWZsYWdzIHw9IERJQ1RfVEZfQ09NUEFDVDsKLQl9Ci0KLQkvKiBMb29rIGZvciBhIHBy aW1hcnkga2V5ICovCi0KLQlwcmltYXJ5X2tleV9ubz0gKGZvcm0tPnMtPnByaW1hcnlfa2V5ICE9 IE1BWF9LRVkgPwotCQkJIChpbnQpIGZvcm0tPnMtPnByaW1hcnlfa2V5IDoKLQkJCSAtMSk7Ci0K LQkvKiBPdXIgZnVuY3Rpb24gcm93X2dldF9teXNxbF9rZXlfbnVtYmVyX2Zvcl9pbmRleCBhc3N1 bWVzCi0JdGhlIHByaW1hcnkga2V5IGlzIGFsd2F5cyBudW1iZXIgMCwgaWYgaXQgZXhpc3RzICov Ci0KLQlEQlVHX0FTU0VSVChwcmltYXJ5X2tleV9ubyA9PSAtMSB8fCBwcmltYXJ5X2tleV9ubyA9 PSAwKTsKLQotCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0aCByZXNlcnZlZCBuYW1l KSBmb3IKLQlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICovCi0JaWYgKGlubm9iYXNl X2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLCBub3JtX25hbWUpKSB7Ci0JCWVycm9y ID0gLTE7Ci0JCWdvdG8gY2xlYW51cDsKLQl9Ci0KIAllcnJvciA9IGNyZWF0ZV90YWJsZV9kZWYo dHJ4LCBmb3JtLCBub3JtX25hbWUsCiAJCWNyZWF0ZV9pbmZvLT5vcHRpb25zICYgSEFfTEVYX0NS RUFURV9UTVBfVEFCTEUgPyBuYW1lMiA6IE5VTEwsCiAJCWZsYWdzKTsKQEAgLTU5MzYsMTIgKzU5 MjcsNiBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4X3NlYXJjaF9sYXRjaF9y ZWxlYXNlX2lmX3Jlc2VydmVkKHBhcmVudF90cngpOwogCi0JaWYgKGxvd2VyX2Nhc2VfdGFibGVf bmFtZXMpIHsKLQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBUUlVFOwotCX0gZWxzZSB7 Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gRkFMU0U7Ci0JfQotCiAJdHJ4ID0gdHJ4 X2FsbG9jYXRlX2Zvcl9teXNxbCgpOwogCiAJdHJ4LT5teXNxbF90aGQgPSB0aGQ7CkBAIC01OTYx LDYgKzU5NDYsOCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJLyogRHJvcCB0aGUg dGFibGUgaW4gSW5ub0RCICovCiAKKwlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxvd2Vy X2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9IHJvd19kcm9wX3RhYmxlX2Zvcl9teXNxbChu b3JtX25hbWUsIHRyeCwKIAkJCQkJIHRoZF9zcWxfY29tbWFuZCh0aGQpCiAJCQkJCSA9PSBTUUxD T01fRFJPUF9EQik7CkBAIC02MDg5LDEyICs2MDc2LDYgQEAgaGFfaW5ub2Jhc2U6OnJlbmFtZV90 YWJsZSgKIAogCXRyeF9zZWFyY2hfbGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChwYXJlbnRfdHJ4 KTsKIAotCWlmIChsb3dlcl9jYXNlX3RhYmxlX25hbWVzKSB7Ci0JCXNydl9sb3dlcl9jYXNlX3Rh YmxlX25hbWVzID0gVFJVRTsKLQl9IGVsc2UgewotCQlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1l cyA9IEZBTFNFOwotCX0KLQogCXRyeCA9IHRyeF9hbGxvY2F0ZV9mb3JfbXlzcWwoKTsKIAl0cngt Pm15c3FsX3RoZCA9IHRoZDsKIAlJTk5PQkFTRV9DT1BZX1NUTVQodGhkLCB0cngpOwpAQCAtNjEx NCw2ICs2MDk1LDggQEAgaGFfaW5ub2Jhc2U6OnJlbmFtZV90YWJsZSgKIAogCS8qIFJlbmFtZSB0 aGUgdGFibGUgaW4gSW5ub0RCICovCiAKKwlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxv d2VyX2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9IHJvd19yZW5hbWVfdGFibGVfZm9yX215 c3FsKG5vcm1fZnJvbSwgbm9ybV90bywgdHJ4KTsKIAogCS8qIEZsdXNoIHRoZSBsb2cgdG8gcmVk dWNlIHByb2JhYmlsaXR5IHRoYXQgdGhlIC5mcm0gZmlsZXMgYW5kCkBAIC04ODI2LDcgKzg4MDks NyBAQCBpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogLyo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ki8KIAkJCQkJLyogb3V0OiB0cnVlIGlmIGFuIGluZGV4IG5hbWUKIAkJCQkJ bWF0Y2hlcyB0aGUgcmVzZXJ2ZWQgbmFtZSAqLwotCWNvbnN0IHRyeF90Kgl0cngsCQkvKiBpbjog SW5ub0RCIHRyYW5zYWN0aW9uIGhhbmRsZSAqLworCVRIRCoJCXRoZCwJCS8qIGluL291dDogTXlT UUwgY29ubmVjdGlvbiAqLwogCWNvbnN0IFRBQkxFKglmb3JtLAkJLyogaW46IGluZm9ybWF0aW9u IG9uIHRhYmxlCiAJCQkJCWNvbHVtbnMgYW5kIGluZGV4ZXMgKi8KIAljb25zdCBjaGFyKglub3Jt X25hbWUpCS8qIGluOiB0YWJsZSBuYW1lICovCkBAIC04ODQwLDcgKzg4MjMsNyBAQCBpbm5vYmFz ZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogCQlpZiAoaW5ub2Jhc2Vfc3RyY2FzZWNtcChrZXkt Pm5hbWUsCiAJCQkJCWlubm9iYXNlX2luZGV4X3Jlc2VydmVfbmFtZSkgPT0gMCkgewogCQkJLyog UHVzaCB3YXJuaW5nIHRvIG15c3FsICovCi0JCQlwdXNoX3dhcm5pbmdfcHJpbnRmKChUSEQqKSB0 cngtPm15c3FsX3RoZCwKKwkJCXB1c2hfd2FybmluZ19wcmludGYodGhkLAogCQkJCQkgICAgTVlT UUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTiwKIAkJCQkJICAgIEVSX0NBTlRfQ1JFQVRFX1RBQkxF LAogCQkJCQkgICAgIkNhbm5vdCBDcmVhdGUgSW5kZXggd2l0aCBuYW1lICIKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vQ2hhbmdlTG9nJwotLS0gYS9zdG9yYWdlL2lu bm9kYl9wbHVnaW4vQ2hhbmdlTG9nCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEw NDA3MTgxMjU0LWlxNXB1YXpuemRyemNwM2EKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0No YW5nZUxvZwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQxMTEzNDAyOC0zMW95 Nmw0NDd6bDA5MTloCkBAIC0xLDUgKzEsMTAgQEAKIDIwMTEtMDQtMDcJVGhlIElubm9EQiBUZWFt CiAKKwkqIGhhbmRsZXIvaGFfaW5ub2RiLmNjLCBoYW5kbGVyL2hhX2lubm9kYi5oLCBoYW5kbGVy L2hhbmRsZXIwYWx0ZXIuY2M6CisJRml4IEJ1ZyAjNTI0MDkgQXNzZXJ0aW9uIGZhaWx1cmU6IGxv bmcgc2VtYXBob3JlIHdhaXQKKworMjAxMS0wNC0wNwlUaGUgSW5ub0RCIFRlYW0KKwogCSogaGFu ZGxlci9oYV9pbm5vZGIuY2MsIGluY2x1ZGUvdHJ4MHRyeC5oLCBpbmNsdWRlL3RyeDB1bmRvLmgs CiAJbG9nL2xvZzBsb2cuYywgdHJ4L3RyeDBzeXMuYywgdHJ4L3RyeDB0cnguYywgdHJ4L3RyeDB1 bmRvLmM6CiAJRml4IEJ1ZyAjNTk2NDEgUHJlcGFyZWQgWEEgdHJhbnNhY3Rpb24gaW4gc3lzdGVt IGFmdGVyIGhhcmQgY3Jhc2gKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVn aW4vaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5k bGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzE4 MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVy L2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQxMTEzNDAy OC0zMW95Nmw0NDd6bDA5MTloCkBAIC02MDIzLDEwICs2MDIzLDYgQEAgY3JlYXRlX3RhYmxlX2Rl ZigKIAlEQlVHX1BSSU5UKCJlbnRlciIsICgidGFibGVfbmFtZTogJXMiLCB0YWJsZV9uYW1lKSk7 CiAKIAl1dF9hKHRyeC0+bXlzcWxfdGhkICE9IE5VTEwpOwotCWlmIChJU19NQUdJQ19UQUJMRV9B TkRfVVNFUl9ERU5JRURfQUNDRVNTKHRhYmxlX25hbWUsCi0JCQkJCQkgIChUSEQqKSB0cngtPm15 c3FsX3RoZCkpIHsKLQkJREJVR19SRVRVUk4oSEFfRVJSX0dFTkVSSUMpOwotCX0KIAogCS8qIE15 U1FMIGRvZXMgdGhlIG5hbWUgbGVuZ3RoIGNoZWNrLiBCdXQgd2UgZG8gYWRkaXRpb25hbCBjaGVj awogCW9uIHRoZSBuYW1lIGxlbmd0aCBoZXJlICovCkBAIC02MTQ2LDYgKzYxNDIsOCBAQCBlcnJf Y29sOgogCQkJY29sX2xlbik7CiAJfQogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBs b3dlcl9jYXNlX3RhYmxlX25hbWVzOworCiAJZXJyb3IgPSByb3dfY3JlYXRlX3RhYmxlX2Zvcl9t eXNxbCh0YWJsZSwgdHJ4KTsKIAogCWlmIChlcnJvciA9PSBEQl9EVVBMSUNBVEVfS0VZKSB7CkBA IC02NTYyLDQyICs2NTYwLDE3IEBAIGhhX2lubm9iYXNlOjpjcmVhdGUoCiAJCURCVUdfUkVUVVJO KEhBX0VSUl9UT19CSUdfUk9XKTsKIAl9CiAKLQkvKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29j aWF0ZWQgd2l0aCB0aGUgY3VycmVudCB0aGQsIG9yIGNyZWF0ZSBvbmUKLQlpZiBub3QgeWV0IGNy ZWF0ZWQgKi8KLQotCXBhcmVudF90cnggPSBjaGVja190cnhfZXhpc3RzKHRoZCk7Ci0KLQkvKiBJ biBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhlIG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwg cmVsZWFzZQotCXBvc3NpYmxlIGFkYXB0aXZlIGhhc2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tz IG9mIHRocmVhZHMgKi8KLQotCXRyeF9zZWFyY2hfbGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChw YXJlbnRfdHJ4KTsKLQotCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh0aGQpOwotCi0JaWYg KGxvd2VyX2Nhc2VfdGFibGVfbmFtZXMpIHsKLQkJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMg PSBUUlVFOwotCX0gZWxzZSB7Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gRkFMU0U7 Ci0JfQotCiAJc3RyY3B5KG5hbWUyLCBuYW1lKTsKIAogCW5vcm1hbGl6ZV90YWJsZV9uYW1lKG5v cm1fbmFtZSwgbmFtZTIpOwogCi0JLyogTGF0Y2ggdGhlIElubm9EQiBkYXRhIGRpY3Rpb25hcnkg ZXhjbHVzaXZlbHkgc28gdGhhdCBubyBkZWFkbG9ja3MKLQlvciBsb2NrIHdhaXRzIGNhbiBoYXBw ZW4gaW4gaXQgZHVyaW5nIGEgdGFibGUgY3JlYXRlIG9wZXJhdGlvbi4KLQlEcm9wIHRhYmxlIGV0 Yy4gZG8gdGhpcyBsYXRjaGluZyBpbiByb3cwbXlzcWwuYy4gKi8KLQotCXJvd19teXNxbF9sb2Nr X2RhdGFfZGljdGlvbmFyeSh0cngpOwotCiAJLyogQ3JlYXRlIHRoZSB0YWJsZSBkZWZpbml0aW9u IGluIElubm9EQiAqLwogCiAJZmxhZ3MgPSAwOwogCiAJLyogVmFsaWRhdGUgY3JlYXRlIG9wdGlv bnMgaWYgaW5ub2RiX3N0cmljdF9tb2RlIGlzIHNldC4gKi8KIAlpZiAoIWNyZWF0ZV9vcHRpb25z X2FyZV92YWxpZCh0aGQsIGZvcm0sIGNyZWF0ZV9pbmZvKSkgewotCQllcnJvciA9IEVSX0lMTEVH QUxfSEFfQ1JFQVRFX09QVElPTjsKLQkJZ290byBjbGVhbnVwOworCQlEQlVHX1JFVFVSTihFUl9J TExFR0FMX0hBX0NSRUFURV9PUFRJT04pOwogCX0KIAogCWlmIChjcmVhdGVfaW5mby0+a2V5X2Js b2NrX3NpemUpIHsKQEAgLTY3MzksMTYgKzY3MTIsMzcgQEAgaGFfaW5ub2Jhc2U6OmNyZWF0ZSgK IAogCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0aCByZXNlcnZlZCBuYW1lKSBmb3IK IAlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICovCi0JaWYgKGlubm9iYXNlX2luZGV4 X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLT5rZXlfaW5mbywKKwlpZiAoaW5ub2Jhc2VfaW5k ZXhfbmFtZV9pc19yZXNlcnZlZCh0aGQsIGZvcm0tPmtleV9pbmZvLAogCQkJCQkgICAgZm9ybS0+ cy0+a2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQkJZ290byBjbGVhbnVwOworCQlEQlVHX1JFVFVS TigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VSX0RFTklFRF9BQ0NFU1Mo bm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9HRU5FUklDKTsKIAl9CiAK IAlpZiAoY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhfQ1JFQVRFX1RNUF9UQUJMRSkgewog CQlmbGFncyB8PSBESUNUX1RGMl9URU1QT1JBUlkgPDwgRElDVF9URjJfU0hJRlQ7CiAJfQogCisJ LyogR2V0IHRoZSB0cmFuc2FjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdGhkLCBv ciBjcmVhdGUgb25lCisJaWYgbm90IHlldCBjcmVhdGVkICovCisKKwlwYXJlbnRfdHJ4ID0gY2hl Y2tfdHJ4X2V4aXN0cyh0aGQpOworCisJLyogSW4gY2FzZSBNeVNRTCBjYWxscyB0aGlzIGluIHRo ZSBtaWRkbGUgb2YgYSBTRUxFQ1QgcXVlcnksIHJlbGVhc2UKKwlwb3NzaWJsZSBhZGFwdGl2ZSBo YXNoIGxhdGNoIHRvIGF2b2lkIGRlYWRsb2NrcyBvZiB0aHJlYWRzICovCisKKwl0cnhfc2VhcmNo X2xhdGNoX3JlbGVhc2VfaWZfcmVzZXJ2ZWQocGFyZW50X3RyeCk7CisKKwl0cnggPSBpbm5vYmFz ZV90cnhfYWxsb2NhdGUodGhkKTsKKworCS8qIExhdGNoIHRoZSBJbm5vREIgZGF0YSBkaWN0aW9u YXJ5IGV4Y2x1c2l2ZWx5IHNvIHRoYXQgbm8gZGVhZGxvY2tzCisJb3IgbG9jayB3YWl0cyBjYW4g aGFwcGVuIGluIGl0IGR1cmluZyBhIHRhYmxlIGNyZWF0ZSBvcGVyYXRpb24uCisJRHJvcCB0YWJs ZSBldGMuIGRvIHRoaXMgbGF0Y2hpbmcgaW4gcm93MG15c3FsLmMuICovCisKKwlyb3dfbXlzcWxf bG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4KTsKKwogCWVycm9yID0gY3JlYXRlX3RhYmxlX2RlZih0 cngsIGZvcm0sIG5vcm1fbmFtZSwKIAkJY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhfQ1JF QVRFX1RNUF9UQUJMRSA/IG5hbWUyIDogTlVMTCwKIAkJZmxhZ3MpOwpAQCAtNjk5MiwxOCArNjk4 NiwxNCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4ID0gaW5ub2Jhc2VfdHJ4 X2FsbG9jYXRlKHRoZCk7CiAKLQlpZiAobG93ZXJfY2FzZV90YWJsZV9uYW1lcykgewotCQlzcnZf bG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IFRSVUU7Ci0JfSBlbHNlIHsKLQkJc3J2X2xvd2VyX2Nh c2VfdGFibGVfbmFtZXMgPSBGQUxTRTsKLQl9Ci0KIAluYW1lX2xlbiA9IHN0cmxlbihuYW1lKTsK IAogCXV0X2EobmFtZV9sZW4gPCAxMDAwKTsKIAogCS8qIERyb3AgdGhlIHRhYmxlIGluIElubm9E QiAqLwogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25h bWVzOworCiAJZXJyb3IgPSByb3dfZHJvcF90YWJsZV9mb3JfbXlzcWwobm9ybV9uYW1lLCB0cngs CiAJCQkJCSB0aGRfc3FsX2NvbW1hbmQodGhkKQogCQkJCQkgPT0gU1FMQ09NX0RST1BfREIpOwpA QCAtNzExOSwxMiArNzEwOSw2IEBAIGlubm9iYXNlX3JlbmFtZV90YWJsZSgKIAljaGFyKglub3Jt X3RvOwogCWNoYXIqCW5vcm1fZnJvbTsKIAotCWlmIChsb3dlcl9jYXNlX3RhYmxlX25hbWVzKSB7 Ci0JCXNydl9sb3dlcl9jYXNlX3RhYmxlX25hbWVzID0gVFJVRTsKLQl9IGVsc2UgewotCQlzcnZf bG93ZXJfY2FzZV90YWJsZV9uYW1lcyA9IEZBTFNFOwotCX0KLQogCS8vIE1hZ2ljIG51bWJlciA2 NCBhcmJpdHJhcnkKIAlub3JtX3RvID0gKGNoYXIqKSBteV9tYWxsb2Moc3RybGVuKHRvKSArIDY0 LCBNWUYoMCkpOwogCW5vcm1fZnJvbSA9IChjaGFyKikgbXlfbWFsbG9jKHN0cmxlbihmcm9tKSAr IDY0LCBNWUYoMCkpOwpAQCAtNzEzOSw2ICs3MTIzLDggQEAgaW5ub2Jhc2VfcmVuYW1lX3RhYmxl KAogCQlyb3dfbXlzcWxfbG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4KTsKIAl9CiAKKwlzcnZfbG93 ZXJfY2FzZV90YWJsZV9uYW1lcyA9IGxvd2VyX2Nhc2VfdGFibGVfbmFtZXM7CisKIAllcnJvciA9 IHJvd19yZW5hbWVfdGFibGVfZm9yX215c3FsKAogCQlub3JtX2Zyb20sIG5vcm1fdG8sIHRyeCwg bG9ja19hbmRfY29tbWl0KTsKIApAQCAtMTA3MDAsMTkgKzEwNjg2LDE5IEBAIHN0YXRpYyBpbnQg c2hvd19pbm5vZGJfdmFycyhUSEQgKnRoZCwgU0gKICAgcmV0dXJuIDA7CiB9CiAKLS8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGVhY2ggaW5k ZXggbmFtZSBmb3IgYSB0YWJsZSBhZ2FpbnN0IHJlc2VydmVkCi1zeXN0ZW0gZGVmYXVsdCBwcmlt YXJ5IGluZGV4IG5hbWUgJ0dFTl9DTFVTVF9JTkRFWCcuIElmIGEgbmFtZSBtYXRjaGVzLAotdGhp cyBmdW5jdGlvbiBwdXNoZXMgYW4gd2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsIGFuZCBy ZXR1cm5zIHRydWUuICovCitzeXN0ZW0gZGVmYXVsdCBwcmltYXJ5IGluZGV4IG5hbWUgJ0dFTl9D TFVTVF9JTkRFWCcuIElmIGEgbmFtZQorbWF0Y2hlcywgdGhpcyBmdW5jdGlvbiBwdXNoZXMgYW4g d2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsCithbmQgcmV0dXJucyB0cnVlLgorQHJldHVy biB0cnVlIGlmIHRoZSBpbmRleCBuYW1lIG1hdGNoZXMgdGhlIHJlc2VydmVkIG5hbWUgKi8KIGV4 dGVybiAiQyIgVU5JVl9JTlRFUk4KIGJvb2wKIGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2 ZWQoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCQkJCQkvKiBvdXQ6IHRydWUg aWYgYW4gaW5kZXggbmFtZQotCQkJCQltYXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCi0JY29u c3QgdHJ4X3QqCXRyeCwJCS8qIGluOiBJbm5vREIgdHJhbnNhY3Rpb24gaGFuZGxlICovCi0JY29u c3QgS0VZKglrZXlfaW5mbywJLyogaW46IEluZGV4ZXMgdG8gYmUgY3JlYXRlZCAqLwotCXVsaW50 CQludW1fb2Zfa2V5cykJLyogaW46IE51bWJlciBvZiBpbmRleGVzIHRvCisJVEhEKgkJdGhkLAkJ LyohPCBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24gKi8KKwljb25zdCBLRVkqCWtleV9pbmZvLAkv KiE8IGluOiBJbmRleGVzIHRvIGJlIGNyZWF0ZWQgKi8KKwl1bGludAkJbnVtX29mX2tleXMpCS8q ITwgaW46IE51bWJlciBvZiBpbmRleGVzIHRvCiAJCQkJCWJlIGNyZWF0ZWQuICovCiB7CiAJY29u c3QgS0VZKglrZXk7CkBAIC0xMDcyNCw3ICsxMDcxMCw3IEBAIGlubm9iYXNlX2luZGV4X25hbWVf aXNfcmVzZXJ2ZWQoCiAJCWlmIChpbm5vYmFzZV9zdHJjYXNlY21wKGtleS0+bmFtZSwKIAkJCQkJ aW5ub2Jhc2VfaW5kZXhfcmVzZXJ2ZV9uYW1lKSA9PSAwKSB7CiAJCQkvKiBQdXNoIHdhcm5pbmcg dG8gbXlzcWwgKi8KLQkJCXB1c2hfd2FybmluZ19wcmludGYoKFRIRCopIHRyeC0+bXlzcWxfdGhk LAorCQkJcHVzaF93YXJuaW5nX3ByaW50Zih0aGQsCiAJCQkJCSAgICBNWVNRTF9FUlJPUjo6V0FS Tl9MRVZFTF9XQVJOLAogCQkJCQkgICAgRVJfV1JPTkdfTkFNRV9GT1JfSU5ERVgsCiAJCQkJCSAg ICAiQ2Fubm90IENyZWF0ZSBJbmRleCB3aXRoIG5hbWUgIgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oJwotLS0gYS9zdG9yYWdlL2lu bm9kYl9wbHVnaW4vaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDExMDQwNzE4MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTEwNDExMTM0MDI4LTMxb3k2bDQ0N3psMDkxOWgKQEAgLTMxNywxNSArMzE3LDE0IEBAIGlu bm9iYXNlX3RyeF9hbGxvY2F0ZSgKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGVhY2ggaW5kZXggbmFt ZSBmb3IgYSB0YWJsZSBhZ2FpbnN0IHJlc2VydmVkCiBzeXN0ZW0gZGVmYXVsdCBwcmltYXJ5IGlu ZGV4IG5hbWUgJ0dFTl9DTFVTVF9JTkRFWCcuIElmIGEgbmFtZQogbWF0Y2hlcywgdGhpcyBmdW5j dGlvbiBwdXNoZXMgYW4gd2FybmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsCi1hbmQgcmV0dXJu cyB0cnVlLiAqLworYW5kIHJldHVybnMgdHJ1ZS4KK0ByZXR1cm4gdHJ1ZSBpZiB0aGUgaW5kZXgg bmFtZSBtYXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCiBleHRlcm4gIkMiCiBib29sCiBpbm5v YmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ki8KLQkJCQkJLyogb3V0OiB0cnVlIGlmIHRoZSBpbmRleCBuYW1lCi0JCQkJCW1hdGNoZXMg dGhlIHJlc2VydmVkIG5hbWUgKi8KLQljb25zdCB0cnhfdCoJdHJ4LAkJLyogaW46IElubm9EQiB0 cmFuc2FjdGlvbiBoYW5kbGUgKi8KLQljb25zdCBLRVkqCWtleV9pbmZvLAkvKiBpbjogSW5kZXhl cyB0byBiZSBjcmVhdGVkICovCi0JdWxpbnQJCW51bV9vZl9rZXlzKTsJLyogaW46IE51bWJlciBv ZiBpbmRleGVzIHRvCisJVEhEKgkJdGhkLAkJLyohPCBpbi9vdXQ6IE15U1FMIGNvbm5lY3Rpb24g Ki8KKwljb25zdCBLRVkqCWtleV9pbmZvLAkvKiE8IGluOiBJbmRleGVzIHRvIGJlIGNyZWF0ZWQg Ki8KKwl1bGludAkJbnVtX29mX2tleXMpOwkvKiE8IGluOiBOdW1iZXIgb2YgaW5kZXhlcyB0bwog CQkJCQliZSBjcmVhdGVkLiAqLwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDQwNzE4MTI1NC1pcTVwdWF6bnpkcnpjcDNhCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3Bs dWdpbi9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTA0MTExMzQwMjgtMzFveTZsNDQ3emwwOTE5aApAQCAtNjQ5LDQ0ICs2NDksMzcgQEAg aGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgKIAogCXVwZGF0ZV90aGQoKTsKIAotCWhlYXAgPSBtZW1f aGVhcF9jcmVhdGUoMTAyNCk7Ci0KIAkvKiBJbiBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhl IG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwgcmVsZWFzZQogCXBvc3NpYmxlIGFkYXB0aXZlIGhh c2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tzIG9mIHRocmVhZHMuICovCiAJdHJ4X3NlYXJjaF9s YXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVkKHByZWJ1aWx0LT50cngpOwotCXRyeF9zdGFydF9pZl9u b3Rfc3RhcnRlZChwcmVidWlsdC0+dHJ4KTsKIAotCS8qIENyZWF0ZSBhIGJhY2tncm91bmQgdHJh bnNhY3Rpb24gZm9yIHRoZSBvcGVyYXRpb25zIG9uCi0JdGhlIGRhdGEgZGljdGlvbmFyeSB0YWJs ZXMuICovCi0JdHJ4ID0gaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHVzZXJfdGhkKTsKLQl0cnhfc3Rh cnRfaWZfbm90X3N0YXJ0ZWQodHJ4KTsKKwkvKiBDaGVjayBpZiB0aGUgaW5kZXggbmFtZSBpcyBy ZXNlcnZlZC4gKi8KKwlpZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCh1c2VyX3Ro ZCwga2V5X2luZm8sIG51bV9vZl9rZXlzKSkgeworCQlEQlVHX1JFVFVSTigtMSk7CisJfQogCiAJ aW5ub2RiX3RhYmxlID0gaW5kZXhlZF90YWJsZQogCQk9IGRpY3RfdGFibGVfZ2V0KHByZWJ1aWx0 LT50YWJsZS0+bmFtZSwgRkFMU0UpOwogCiAJaWYgKFVOSVZfVU5MSUtFTFkoIWlubm9kYl90YWJs ZSkpIHsKLQkJZXJyb3IgPSBIQV9FUlJfTk9fU1VDSF9UQUJMRTsKLQkJZ290byBlcnJfZXhpdDsK KwkJREJVR19SRVRVUk4oSEFfRVJSX05PX1NVQ0hfVEFCTEUpOwogCX0KIAotCS8qIENoZWNrIGlm IHRoZSBpbmRleCBuYW1lIGlzIHJlc2VydmVkLiAqLwotCWlmIChpbm5vYmFzZV9pbmRleF9uYW1l X2lzX3Jlc2VydmVkKHRyeCwga2V5X2luZm8sIG51bV9vZl9rZXlzKSkgewotCQllcnJvciA9IC0x OwotCX0gZWxzZSB7Ci0JCS8qIENoZWNrIHRoYXQgaW5kZXgga2V5cyBhcmUgc2Vuc2libGUgKi8K LQkJZXJyb3IgPSBpbm5vYmFzZV9jaGVja19pbmRleF9rZXlzKGtleV9pbmZvLCBudW1fb2Zfa2V5 cywKLQkJCQkJCSAgaW5ub2RiX3RhYmxlKTsKLQl9CisJLyogQ2hlY2sgdGhhdCBpbmRleCBrZXlz IGFyZSBzZW5zaWJsZSAqLworCWVycm9yID0gaW5ub2Jhc2VfY2hlY2tfaW5kZXhfa2V5cyhrZXlf aW5mbywgbnVtX29mX2tleXMsIGlubm9kYl90YWJsZSk7CiAKIAlpZiAoVU5JVl9VTkxJS0VMWShl cnJvcikpIHsKLWVycl9leGl0OgotCQltZW1faGVhcF9mcmVlKGhlYXApOwotCQl0cnhfZ2VuZXJh bF9yb2xsYmFja19mb3JfbXlzcWwodHJ4LCBOVUxMKTsKLQkJdHJ4X2ZyZWVfZm9yX215c3FsKHRy eCk7Ci0JCXRyeF9jb21taXRfZm9yX215c3FsKHByZWJ1aWx0LT50cngpOwogCQlEQlVHX1JFVFVS TihlcnJvcik7CiAJfQogCisJaGVhcCA9IG1lbV9oZWFwX2NyZWF0ZSgxMDI0KTsKKwl0cnhfc3Rh cnRfaWZfbm90X3N0YXJ0ZWQocHJlYnVpbHQtPnRyeCk7CisKKwkvKiBDcmVhdGUgYSBiYWNrZ3Jv dW5kIHRyYW5zYWN0aW9uIGZvciB0aGUgb3BlcmF0aW9ucyBvbgorCXRoZSBkYXRhIGRpY3Rpb25h cnkgdGFibGVzLiAqLworCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh1c2VyX3RoZCk7CisJ dHJ4X3N0YXJ0X2lmX25vdF9zdGFydGVkKHRyeCk7CisKIAkvKiBDcmVhdGUgdGFibGUgY29udGFp bmluZyBhbGwgaW5kZXhlcyB0byBiZSBidWlsdCBpbiB0aGlzCiAJYWx0ZXIgdGFibGUgYWRkIGlu ZGV4IHNvIHRoYXQgdGhleSBhcmUgaW4gdGhlIGNvcnJlY3Qgb3JkZXIKIAlpbiB0aGUgdGFibGUu ICovCkBAIC03NTgsOCArNzUxLDEyIEBAIGVycl9leGl0OgogCiAJCQl1dF9kKGRpY3RfdGFibGVf Y2hlY2tfZm9yX2R1cF9pbmRleGVzKGlubm9kYl90YWJsZSwKIAkJCQkJCQkgICAgICBGQUxTRSkp OworCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKKwkJCXRyeF9nZW5lcmFsX3JvbGxiYWNrX2Zvcl9t eXNxbCh0cngsIE5VTEwpOwogCQkJcm93X215c3FsX3VubG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4 KTsKLQkJCWdvdG8gZXJyX2V4aXQ7CisJCQl0cnhfZnJlZV9mb3JfbXlzcWwodHJ4KTsKKwkJCXRy eF9jb21taXRfZm9yX215c3FsKHByZWJ1aWx0LT50cngpOworCQkJREJVR19SRVRVUk4oZXJyb3Ip OwogCQl9CiAKIAkJdHJ4LT50YWJsZV9pZCA9IGluZGV4ZWRfdGFibGUtPmlkOwoK --===============1646241435== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # testament_sha1: d24118e16609b077a906078375216e33f2585ac7 # timestamp: 2011-04-11 16:40:47 +0300 # base_revision_id: marko.makela@stripped\ # iq5puaznzdrzcp3a # # Begin bundle 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 --===============1646241435==--