From: marko.makela Date: June 29 2011 7:34am Subject: bzr push into mysql-trunk branch (marko.makela:3239 to 3240) List-Archive: http://lists.mysql.com/commits/139987 Message-Id: <201106290735.p5T7Z3rE027298@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMyNDAgTWFya28gTcOka2Vsw6QJMjAxMS0wNi0yOSBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNSB0byBteXNxbC10cnVuay4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3JvdzByb3cuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHJv dy5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5pYwogICAgICBzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5j bHVkZS90cngwc3lzLmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzByb3cuYwogMzIz OSBNYXJrbyBNw6RrZWzDpAkyMDExLTA2LTI4IFttZXJnZV0KICAgICAgTWVyZ2UgbXlzcWwtNS41 IHRvIG15c3FsLXRydW5rLgoKICAgIG1vZGlmaWVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lu bm9kYi9yL2lubm9kYi11c2Utc3lzLW1hbGxvYy5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0 ZS9pbm5vZGIvdC9pbm5vZGItdXNlLXN5cy1tYWxsb2MtbWFzdGVyLm9wdAogICAgICBteXNxbC10 ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi11c2Utc3lzLW1hbGxvYy50ZXN0CiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL2RiMGVyci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCiAg ICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdXQvdXQwdXQuYwo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzByb3cuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL3JvdzByb3cuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDYyODEyMzYx NC1kaTlpeHZiajNqcm56eWNqCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93 LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA2MjkwNzMxMDAtYTNzYm1qeXdh NDR1OWZnbwpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmln aHQgKGMpIDE5OTYsIDIwMTAsIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29w eXJpZ2h0IChjKSAxOTk2LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwg UmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUKQEAgLTM4LDI3ICszOCwxNiBAQCBDcmVhdGVkIDQvMjAvMTk5NiBIZWlra2kgVHV1cmkK ICNpbmNsdWRlICJidHIwdHlwZXMuaCIKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUdldHMgdGhlIG9m ZnNldCBvZiB0aGUgdHJ4IGlkIGZpZWxkLCBpbiBieXRlcyByZWxhdGl2ZSB0byB0aGUgb3JpZ2lu IG9mCitHZXRzIHRoZSBvZmZzZXQgb2YgdGhlIERCX1RSWF9JRCBmaWVsZCwgaW4gYnl0ZXMgcmVs YXRpdmUgdG8gdGhlIG9yaWdpbiBvZgogYSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkLgogQHJldHVy bglvZmZzZXQgb2YgREFUQV9UUlhfSUQgKi8KIFVOSVZfSU5MSU5FCiB1bGludAotcm93X2dldF90 cnhfaWRfb2Zmc2V0X2Z1bmMoCi0vKj09PT09PT09PT09PT09PT09PT09PT09Ki8KLSNpZmRlZiBV TklWX0RFQlVHCi0JY29uc3QgcmVjX3QqCQlyZWMsCS8qITwgaW46IHJlY29yZCAqLwotI2VuZGlm IC8qIFVOSVZfREVCVUcgKi8KK3Jvd19nZXRfdHJ4X2lkX29mZnNldCgKKy8qPT09PT09PT09PT09 PT09PT09Ki8KIAljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBjbHVzdGVyZWQg aW5kZXggKi8KLQljb25zdCB1bGludCoJCW9mZnNldHMpLyohPCBpbjogcmVjX2dldF9vZmZzZXRz KHJlYywgaW5kZXgpICovCisJY29uc3QgdWxpbnQqCQlvZmZzZXRzKS8qITwgaW46IHJlY29yZCBv ZmZzZXRzICovCiAJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7 Ci0jaWZkZWYgVU5JVl9ERUJVRwotIyBkZWZpbmUgcm93X2dldF90cnhfaWRfb2Zmc2V0KHJlYywg aW5kZXgsIG9mZnNldHMpCVwKLQlyb3dfZ2V0X3RyeF9pZF9vZmZzZXRfZnVuYyhyZWMsIGluZGV4 LCBvZmZzZXRzKQotI2Vsc2UgLyogVU5JVl9ERUJVRyAqLwotIyBkZWZpbmUgcm93X2dldF90cnhf aWRfb2Zmc2V0KHJlYywgaW5kZXgsIG9mZnNldHMpCVwKLQlyb3dfZ2V0X3RyeF9pZF9vZmZzZXRf ZnVuYyhpbmRleCwgb2Zmc2V0cykKLSNlbmRpZiAvKiBVTklWX0RFQlVHICovCi0KIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovLyoqCiBSZWFkcyB0aGUgdHJ4IGlkIGZpZWxkIGZyb20gYSBjbHVzdGVyZWQgaW5kZXgg cmVjb3JkLgogQHJldHVybgl2YWx1ZSBvZiB0aGUgZmllbGQgKi8KQEAgLTc3LDkgKzY2LDEwIEBA IFVOSVZfSU5MSU5FCiByb2xsX3B0cl90CiByb3dfZ2V0X3JlY19yb2xsX3B0cigKIC8qPT09PT09 PT09PT09PT09PT0qLwotCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJlY29yZCAqLwotCWRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGNsdXN0ZXJlZCBpbmRleCAqLwotCWNvbnN0IHVs aW50KglvZmZzZXRzKTsvKiE8IGluOiByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCkgKi8KKwlj b25zdCByZWNfdCoJCXJlYywJLyohPCBpbjogcmVjb3JkICovCisJY29uc3QgZGljdF9pbmRleF90 KglpbmRleCwJLyohPCBpbjogY2x1c3RlcmVkIGluZGV4ICovCisJY29uc3QgdWxpbnQqCQlvZmZz ZXRzKS8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLworCV9fYXR0cmlidXRl X18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogV2hlbiBh biBpbnNlcnQgb3IgcHVyZ2UgdG8gYSB0YWJsZSBpcyBwZXJmb3JtZWQsIHRoaXMgZnVuY3Rpb24g YnVpbGRzCiB0aGUgZW50cnkgdG8gYmUgaW5zZXJ0ZWQgaW50byBvciBwdXJnZWQgZnJvbSBhbiBp bmRleCBvbiB0aGUgdGFibGUuCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JvdzByb3cuaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93 LmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI4MTIzNjE0LWRpOWl4dmJq M2pybnp5Y2oKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzByb3cuaWMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA2MjkwNzMxMDAtYTNzYm1qeXdhNDR1OWZnbwpA QCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5 OTYsIDIwMDksIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChj KSAxOTk2LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJl c2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAg LTI4LDI1ICsyOCwyMiBAQCBDcmVhdGVkIDQvMjAvMTk5NiBIZWlra2kgVHV1cmkKICNpbmNsdWRl ICJ0cngwdW5kby5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotR2V0cyB0aGUgb2Zmc2V0IG9mIHRy eCBpZCBmaWVsZCwgaW4gYnl0ZXMgcmVsYXRpdmUgdG8gdGhlIG9yaWdpbiBvZgorR2V0cyB0aGUg b2Zmc2V0IG9mIHRoZSBEQl9UUlhfSUQgZmllbGQsIGluIGJ5dGVzIHJlbGF0aXZlIHRvIHRoZSBv cmlnaW4gb2YKIGEgY2x1c3RlcmVkIGluZGV4IHJlY29yZC4KIEByZXR1cm4Jb2Zmc2V0IG9mIERB VEFfVFJYX0lEICovCiBVTklWX0lOTElORQogdWxpbnQKLXJvd19nZXRfdHJ4X2lkX29mZnNldF9m dW5jKAotLyo9PT09PT09PT09PT09PT09PT09PT09PSovCi0jaWZkZWYgVU5JVl9ERUJVRwotCWNv bnN0IHJlY190KgkJcmVjLAkvKiE8IGluOiByZWNvcmQgKi8KLSNlbmRpZiAvKiBVTklWX0RFQlVH ICovCityb3dfZ2V0X3RyeF9pZF9vZmZzZXQoCisvKj09PT09PT09PT09PT09PT09PSovCiAJY29u c3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjogY2x1c3RlcmVkIGluZGV4ICovCi0JY29u c3QgdWxpbnQqCQlvZmZzZXRzKS8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAq LworCWNvbnN0IHVsaW50KgkJb2Zmc2V0cykvKiE8IGluOiByZWNvcmQgb2Zmc2V0cyAqLwogewog CXVsaW50CXBvczsKIAl1bGludAlvZmZzZXQ7CiAJdWxpbnQJbGVuOwogCiAJdXRfYWQoZGljdF9p bmRleF9pc19jbHVzdChpbmRleCkpOwotCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlYywgaW5k ZXgsIG9mZnNldHMpKTsKKwl1dF9hZChyZWNfb2Zmc192YWxpZGF0ZShOVUxMLCBpbmRleCwgb2Zm c2V0cykpOwogCiAJcG9zID0gZGljdF9pbmRleF9nZXRfc3lzX2NvbF9wb3MoaW5kZXgsIERBVEFf VFJYX0lEKTsKIApAQCAtNzYsNyArNzMsNyBAQCByb3dfZ2V0X3JlY190cnhfaWQoCiAJb2Zmc2V0 ID0gaW5kZXgtPnRyeF9pZF9vZmZzZXQ7CiAKIAlpZiAoIW9mZnNldCkgewotCQlvZmZzZXQgPSBy b3dfZ2V0X3RyeF9pZF9vZmZzZXQocmVjLCBpbmRleCwgb2Zmc2V0cyk7CisJCW9mZnNldCA9IHJv d19nZXRfdHJ4X2lkX29mZnNldChpbmRleCwgb2Zmc2V0cyk7CiAJfQogCiAJcmV0dXJuKHRyeF9y ZWFkX3RyeF9pZChyZWMgKyBvZmZzZXQpKTsKQEAgLTg5LDkgKzg2LDkgQEAgVU5JVl9JTkxJTkUK IHJvbGxfcHRyX3QKIHJvd19nZXRfcmVjX3JvbGxfcHRyKAogLyo9PT09PT09PT09PT09PT09PSov Ci0JY29uc3QgcmVjX3QqCXJlYywJLyohPCBpbjogcmVjb3JkICovCi0JZGljdF9pbmRleF90Kglp bmRleCwJLyohPCBpbjogY2x1c3RlcmVkIGluZGV4ICovCi0JY29uc3QgdWxpbnQqCW9mZnNldHMp LyohPCBpbjogcmVjX2dldF9vZmZzZXRzKHJlYywgaW5kZXgpICovCisJY29uc3QgcmVjX3QqCQly ZWMsCS8qITwgaW46IHJlY29yZCAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwg aW46IGNsdXN0ZXJlZCBpbmRleCAqLworCWNvbnN0IHVsaW50KgkJb2Zmc2V0cykvKiE8IGluOiBy ZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCkgKi8KIHsKIAl1bGludAlvZmZzZXQ7CiAKQEAgLTEw MSw3ICs5OCw3IEBAIHJvd19nZXRfcmVjX3JvbGxfcHRyKAogCW9mZnNldCA9IGluZGV4LT50cnhf aWRfb2Zmc2V0OwogCiAJaWYgKCFvZmZzZXQpIHsKLQkJb2Zmc2V0ID0gcm93X2dldF90cnhfaWRf b2Zmc2V0KHJlYywgaW5kZXgsIG9mZnNldHMpOworCQlvZmZzZXQgPSByb3dfZ2V0X3RyeF9pZF9v ZmZzZXQoaW5kZXgsIG9mZnNldHMpOwogCX0KIAogCXJldHVybih0cnhfcmVhZF9yb2xsX3B0cihy ZWMgKyBvZmZzZXQgKyBEQVRBX1RSWF9JRF9MRU4pKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JvdzB1cGQuaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA2Mjgx MjM2MTQtZGk5aXh2YmozanJuenljagorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93 MHVwZC5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDYyOTA3MzEwMC1hM3Ni bWp5d2E0NHU5ZmdvCkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNv cHlyaWdodCAoYykgMTk5NiwgMjAwOSwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu CitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZQpAQCAtMTcxLDcgKzE3MSw3IEBAIHJvd191cGRfcmVjX3N5c19maWVsZHMoCiAJ CXVsaW50CW9mZnNldCA9IGluZGV4LT50cnhfaWRfb2Zmc2V0OwogCiAJCWlmICghb2Zmc2V0KSB7 Ci0JCQlvZmZzZXQgPSByb3dfZ2V0X3RyeF9pZF9vZmZzZXQocmVjLCBpbmRleCwgb2Zmc2V0cyk7 CisJCQlvZmZzZXQgPSByb3dfZ2V0X3RyeF9pZF9vZmZzZXQoaW5kZXgsIG9mZnNldHMpOwogCQl9 CiAKICNpZiBEQVRBX1RSWF9JRCArIDEgIT0gREFUQV9ST0xMX1BUUgoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwc3lzLmgnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS90cngwc3lzLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MTA2MjgxMjM2MTQtZGk5aXh2YmozanJuenljagorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvdHJ4MHN5cy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI5MDczMTAw LWEzc2Jtanl3YTQ0dTlmZ28KQEAgLTMyOCw3ICszMjgsMTcgQEAgVU5JVl9JTlRFUk4KIGlib29s CiB0cnhfaW5fdHJ4X2xpc3QoCiAvKj09PT09PT09PT09PSovCi0JY29uc3QgdHJ4X3QqCWluX3Ry eCk7LyohPCBpbjogdHJhbnNhY3Rpb24gKi8KKwljb25zdCB0cnhfdCoJaW5fdHJ4KQkJLyohPCBp bjogdHJhbnNhY3Rpb24gKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKTsKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKK0Fzc2VydCB0aGF0IGEgdHJhbnNhY3Rpb24gaGFzIGJlZW4gcmVj b3ZlcmVkLgorQHJldHVybiBUUlVFICovCitVTklWX0lOTElORQoraWJvb2wKK3RyeF9hc3NlcnRf cmVjb3ZlcmVkKAorLyo9PT09PT09PT09PT09PT09PSovCisJdHJ4X2lkX3QJdHJ4X2lkKQkJLyoh PCBpbjogdHJhbnNhY3Rpb24gaWRlbnRpZmllciAqLworCV9fYXR0cmlidXRlX18oKHdhcm5fdW51 c2VkX3Jlc3VsdCkpOwogI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFVw ZGF0ZXMgdGhlIG9mZnNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZW5kIG9mIHRoZSBNeVNRTCBi aW5sb2cgZW50cnkKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv dHJ4MHN5cy5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaWMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA2MjgxMjM2MTQtZGk5aXh2YmozanJuenlj agorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5pYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDExMDYyOTA3MzEwMC1hM3NibWp5d2E0NHU5ZmdvCkBAIC0zMjQs NyArMzI0LDcgQEAgdHJ4X2xpc3RfZ2V0X21pbl90cnhfaWRfbG93KHZvaWQpCiAvKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ki8KIHsKIAl0cnhfaWRfdAlpZDsKLQl0cnhfdCoJCXRyeDsK Kwljb25zdCB0cnhfdCoJdHJ4OwogCiAjaWZkZWYgVU5JVl9TWU5DX0RFQlVHCiAJdXRfYWQocndf bG9ja19vd24oJnRyeF9zeXMtPmxvY2ssIFJXX0xPQ0tfU0hBUkVEKSk7CkBAIC0zMzgsNiArMzM4 LDI4IEBAIHRyeF9saXN0X2dldF9taW5fdHJ4X2lkX2xvdyh2b2lkKQogCXJldHVybihpZCk7CiB9 CiAKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0JMT0JfTElHSFRfREVC VUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKK0Fzc2VydCB0aGF0IGEgdHJhbnNhY3Rpb24gaGFzIGJlZW4gcmVjb3ZlcmVk LgorQHJldHVybiBUUlVFICovCitVTklWX0lOTElORQoraWJvb2wKK3RyeF9hc3NlcnRfcmVjb3Zl cmVkKAorLyo9PT09PT09PT09PT09PT09PSovCisJdHJ4X2lkX3QJdHJ4X2lkKQkJLyohPCBpbjog dHJhbnNhY3Rpb24gaWRlbnRpZmllciAqLworeworCWNvbnN0IHRyeF90Kgl0cng7CisKKwlyd19s b2NrX3NfbG9jaygmdHJ4X3N5cy0+bG9jayk7CisJdHJ4ID0gdHJ4X2dldF9vbl9pZCh0cnhfaWQp OworCXV0X2EodHJ4KTsKKwl1dF9hKHRyeC0+aXNfcmVjb3ZlcmVkKTsKKwlyd19sb2NrX3NfdW5s b2NrKCZ0cnhfc3lzLT5sb2NrKTsKKworCXJldHVybihUUlVFKTsKK30KKyNlbmRpZiAvKiBVTklW X0RFQlVHIHx8IFVOSVZfQkxPQl9MSUdIVF9ERUJVRyAqLworCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVy bnMgdGhlIG1pbmltdW0gdHJ4IGlkIGluIHRyeCBsaXN0LiBUaGlzIGlzIHRoZSBzbWFsbGVzdCBp ZCBmb3Igd2hpY2gKIHRoZSB0cnggY2FuIHBvc3NpYmx5IGJlIGFjdGl2ZS4gKEJ1dCwgeW91IG11 c3QgbG9vayBhdCB0aGUgdHJ4LT5zdGF0ZQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2Uvcm93L3JvdzByb3cuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHJvdy5j CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI4MTIzNjE0LWRpOWl4dmJqM2py bnp5Y2oKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHJvdy5jCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTEwNjI5MDczMTAwLWEzc2Jtanl3YTQ0dTlmZ28KQEAgLTIwNSwz MyArMjA1LDE5IEBAIHJvd19idWlsZCgKIAl9CiAKICNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwg ZGVmaW5lZCBVTklWX0JMT0JfTElHSFRfREVCVUcKLQlpZiAoVU5JVl9MSUtFTFlfTlVMTChyZWNf b2Zmc19hbnlfbnVsbF9leHRlcm4ocmVjLCBvZmZzZXRzKSkpIHsKLQkJLyogVGhpcyBjb25kaXRp b24gY2FuIG9jY3VyIGR1cmluZyBjcmFzaCByZWNvdmVyeSBiZWZvcmUKLQkJdHJ4X3JvbGxiYWNr X2FjdGl2ZSgpIGhhcyBjb21wbGV0ZWQgZXhlY3V0aW9uLgorCS8qIFRoaXMgY29uZGl0aW9uIGNh biBvY2N1ciBkdXJpbmcgY3Jhc2ggcmVjb3ZlcnkgYmVmb3JlCisJdHJ4X3JvbGxiYWNrX2FjdGl2 ZSgpIGhhcyBjb21wbGV0ZWQgZXhlY3V0aW9uLgogCi0JCVRoaXMgY29uZGl0aW9uIGlzIHBvc3Np YmxlIGlmIHRoZSBzZXJ2ZXIgY3Jhc2hlZAotCQlkdXJpbmcgYW4gaW5zZXJ0IG9yIHVwZGF0ZSBi ZWZvcmUKLQkJYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcygpIGRpZCBtdHJfY29tbWl0 KCkgYWxsCi0JCUJMT0IgcG9pbnRlcnMgdG8gdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuCi0K LQkJTG9vayB1cCB0aGUgdHJhbnNhY3Rpb24gdGhhdCBob2xkcyB0aGUgaW1wbGljaXQgbG9jawot CQlvbiB0aGlzIHJlY29yZCwgYW5kIGFzc2VydCB0aGF0IGl0IHdhcyByZWNvdmVyZWQgKGFuZAot CQl3aWxsIHNvb24gYmUgcm9sbGVkIGJhY2spLiAqLwotCi0JCXVsaW50CQl0cnhfaWRfcG9zCT0g ZGljdF9pbmRleF9nZXRfc3lzX2NvbF9wb3MoCi0JCQkJaW5kZXgsIERBVEFfVFJYX0lEKTsKLQkJ dWxpbnQJCWxlbjsKLQkJdHJ4X2lkX3QJdHJ4X2lkCQk9IHRyeF9yZWFkX3RyeF9pZCgKLQkJCXJl Y19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0cywgdHJ4X2lkX3BvcywgJmxlbikpOwotCQljb25z dCB0cnhfdCoJdHJ4OwotCQl1dF9hKGxlbiA9PSA2KTsKLQotCQlyd19sb2NrX3NfbG9jaygmdHJ4 X3N5cy0+bG9jayk7Ci0JCXRyeCA9IHRyeF9nZXRfb25faWQodHJ4X2lkKTsKLQkJdXRfYSh0cngp OwotCQl1dF9hKHRyeC0+aXNfcmVjb3ZlcmVkKTsKLQkJcndfbG9ja19zX3VubG9jaygmdHJ4X3N5 cy0+bG9jayk7Ci0JfQorCVRoaXMgY29uZGl0aW9uIGlzIHBvc3NpYmxlIGlmIHRoZSBzZXJ2ZXIg Y3Jhc2hlZAorCWR1cmluZyBhbiBpbnNlcnQgb3IgdXBkYXRlIGJlZm9yZQorCWJ0cl9zdG9yZV9i aWdfcmVjX2V4dGVybl9maWVsZHMoKSBkaWQgbXRyX2NvbW1pdCgpIGFsbAorCUJMT0IgcG9pbnRl cnMgdG8gdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuCisKKwlJZiB0aGUgcmVjb3JkIGNvbnRh aW5zIGEgbnVsbCBCTE9CIHBvaW50ZXIsIGxvb2sgdXAgdGhlCisJdHJhbnNhY3Rpb24gdGhhdCBo b2xkcyB0aGUgaW1wbGljaXQgbG9jayBvbiB0aGlzIHJlY29yZCwgYW5kCisJYXNzZXJ0IHRoYXQg aXQgd2FzIHJlY292ZXJlZCAoYW5kIHdpbGwgc29vbiBiZSByb2xsZWQgYmFjaykuICovCisJdXRf YSghcmVjX29mZnNfYW55X251bGxfZXh0ZXJuKHJlYywgb2Zmc2V0cykKKwkgICAgIHx8IHRyeF9h c3NlcnRfcmVjb3ZlcmVkKHJvd19nZXRfcmVjX3RyeF9pZChyZWMsIGluZGV4LCBvZmZzZXRzKSkp OwogI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9CTE9CX0xJR0hUX0RFQlVHICovCiAKIAlp ZiAodHlwZSAhPSBST1dfQ09QWV9QT0lOVEVSUykgewoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxl c3MgZm9yIHB1c2ggZW1haWxzKS4=