From: Ole John Aske Date: January 26 2012 12:54pm Subject: bzr push into mysql-trunk branch (ole.john.aske:3798 to 3799) Bug#13330645 List-Archive: http://lists.mysql.com/commits/142582 X-Bug: 13330645 Message-Id: <20120126125407.224A7235@fimafeng09.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM3OTkgT2xlIEpvaG4gQXNrZQkyMDEyLTAxLTI2CiAgICAgICBGaXggZm9yIGJ1ZyMxMzMzMDY0 NSAnTVJSX1NPUlRFRCcgSVMgTk9UIFVTRUQgRVZFTiBJRiBIQU5ETEVSIE5BVElWRUxZIFNVUFBP UlRTICdIQV9NUlJfU09SVEVEJwogICAgICAgIAogICAgICAgVGhlcmUgd2FzIGFuIGFzc3VtcHRp b24gdGhhdCBvbmx5IHRoZSBkZWZhdWx0IE1SUiBpbXBsZW1lbnRhdGlvbiBpcyAKICAgICAgIGFi bGUgdG8gcHJvZHVjZSAnSEFfTVJSX1NPUlRFRCcgcmVzdWx0cy4gVGhpcyBoYXMgbGVhZCB0byB0 aGUgYmFkIGNvZGVzdHlsZQogICAgICAgb2YgZWl0aGVyIHNldHRpbmcgICdwYXJhbS5mb3JjZV9k ZWZhdWx0X21ycj0gdHJ1ZScgb3Igc3BlY2lmeWluZyB0aGUKICAgICAgIEhBX01SUl9VU0VfREVG QVVMVF9JTVBMIGZsYWcgd2hlbmV2ZXIgd2Ugd2FudGVkIGEgc29ydGVkIE1SUiByZXN1bHRzZXQu CiAgICAgICAgICAgIAogICAgICAgVGhpcyBmaXggbGVhdmVzIHRoZSBkZWNpc2lvbiBvZiB1c2lu ZyBlaXRoZXIgdGhlIG5hdGl2ZSBvciB0aGUgZGVmYXVsdCBNUlIKICAgICAgIGltcGxlbWVudGF0 aW9uIHRvIHRoZSBoYW5kbGVyIGl0c2VsZiBiYXNlZCBvbiBpdHMgY2FwYWJpbGl0aWVzLgogICAg ICAgICAgICAKICAgICAgIEZ1cnRoZXJtb3JlLCBtb3N0bHkgZHVlIHRvIHNraXBfc29ydF9vcmRl ciBub3QgYmVpbmcgZGVjaWRlZCB1bnRpbAogICAgICAgSk9JTjo6ZXhlYygpLCB0aGUgaGFuZGxl ciB3aWxsIGFsc28gc2V0IHRoZSAobmV3KSBIQV9NUlJfU1VQUE9SVF9TT1JURUQKICAgICAgIGZs YWcgdG8gc2lnbmFsIGlmIGl0cyBpcyAnVXNpbmcgTVJSJyBpZiBpdHMgbXVsdGlfcmFuZ2VfcmVh ZF9pbml0KCkKICAgICAgIGlzIGNhbGxlZCB3aXRoIHRoZSBIQV9NUlJfU09SVEVEIGZsYWcgLSBU aGlzIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mCiAgICAgICBnZXR0aW5nIHRoZSBFWFBMQUlOIGNv cnJlY3QuIFRoaXMgcGFydCBvZiB0aGUgZml4IG1pZ2h0IGJlY29tZSBvYnNvbGV0ZQogICAgICAg aWYvd2hlbiB0aGUgcGxhbm5lZCByZXNodWZmbGUgb2Ygc2tpcF9zb3J0X29yZGVyIChJbnRvIEpP SU46Om9wdGltaXplKSAKICAgICAgIGhhcyBiZWVuIGNvbXBsZXRlZC4KICAgICAgICAgICAgCiAg ICAgICBUaGVyZSB3YXMgYWxzbyBhIHByb2JsZW0gd2l0aCBEc01ycl9pbXBsOjpkc21ycl9pbml0 KCkgbm90CiAgICAgICBjaGVja2luZyB0aGUgT1BUSU1JWkVSX1NXSVRDSF9NUlIgd2hlbiBkZWNp ZGluZyB0byBpbml0KCkKICAgICAgIGVpdGhlciB0aGUgRFMtTVJSIG9yIGRlZmF1bHQgTVJSIGlt cGxlbWVudGF0aW9uLgogICAgICAgKFRoZXJlIGFyZSBjYXNlcyB3aGVyZSA6OmRzbXJyX2luaXQo KSBpcyBjYWxsZWQgd28vIAogICAgICAgOjpkc21ycl9pbmZvW19jb25zdF0oKSBiZWluZyBjYWxs ZWQgZmlyc3QpLgogICAgICAgICAgICAKCiAgICBtb2RpZmllZDoKICAgICAgc3FsL2hhbmRsZXIu Y2MKICAgICAgc3FsL2hhbmRsZXIuaAogICAgICBzcWwvb3B0X2V4cGxhaW4uY2MKICAgICAgc3Fs L29wdF9yYW5nZS5jYwogMzc5OCBNYXJrbyBNw6RrZWzDpAkyMDEyLTAxLTI2CiAgICAgIEJ1ZyMx MzYxMDM1OCBpbm5vZGJfc29ydF9idWZfc2l6ZSBzaG91bGQgYmUgY2FsbGVkIGlubm9kYl9zb3J0 X2J1ZmZlcl9zaXplCiAgICAgIGZvciBjb25zaXN0ZW5jeQoKICAgIHJlbmFtZWQ6CiAgICAgIG15 c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9pbm5vZGJfc29ydF9idWZfc2l6ZV9iYXNpYy5yZXN1 bHQgPT4gbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL2lubm9kYl9zb3J0X2J1ZmZlcl9zaXpl X2Jhc2ljLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvaW5ub2RiX3Nv cnRfYnVmX3NpemVfYmFzaWMudGVzdCA9PiBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvaW5u b2RiX3NvcnRfYnVmZmVyX3NpemVfYmFzaWMudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9z eXNfdmFycy9yL2lubm9kYl9zb3J0X2J1ZmZlcl9zaXplX2Jhc2ljLnJlc3VsdAogICAgICBteXNx bC10ZXN0L3N1aXRlL3N5c192YXJzL3QvaW5ub2RiX3NvcnRfYnVmZmVyX3NpemVfYmFzaWMudGVz dAo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2hhbmRsZXIuY2MnCi0tLSBhL3NxbC9oYW5kbGVyLmNj CTIwMTItMDEtMDYgMDk6MDM6NTMgKzAwMDAKKysrIGIvc3FsL2hhbmRsZXIuY2MJMjAxMi0wMS0y NiAxMjo1MzozOCArMDAwMApAQCAtNDYwMSw3ICs0NjAxLDkgQEAgaGFuZGxlcjo6bXVsdGlfcmFu Z2VfcmVhZF9pbmZvX2NvbnN0KHVpbgogICBpZiAodG90YWxfcm93cyAhPSBIQV9QT1NfRVJST1Ip CiAgIHsKICAgICAvKiBUaGUgZm9sbG93aW5nIGNhbGN1bGF0aW9uIGlzIHRoZSBzYW1lIGFzIGlu IG11bHRpX3JhbmdlX3JlYWRfaW5mbygpOiAqLwotICAgICpmbGFncyB8PSBIQV9NUlJfVVNFX0RF RkFVTFRfSU1QTDsKKyAgICAqZmxhZ3N8PSBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTDsKKyAgICAq ZmxhZ3N8PSBIQV9NUlJfU1VQUE9SVF9TT1JURUQ7CisKICAgICBEQlVHX0FTU0VSVChjb3N0LT5p c196ZXJvKCkpOwogICAgIGlmICgoKmZsYWdzICYgSEFfTVJSX0lOREVYX09OTFkpICYmIHRvdGFs X3Jvd3MgPiAyKQogICAgICAgY29zdC0+YWRkX2lvKGluZGV4X29ubHlfcmVhZF90aW1lKGtleW5v LCB0b3RhbF9yb3dzKSAqCkBAIC00NjU1LDcgKzQ2NTcsOCBAQCBoYV9yb3dzIGhhbmRsZXI6Om11 bHRpX3JhbmdlX3JlYWRfaW5mbyh1CiB7CiAgICpidWZzej0gMDsgLyogRGVmYXVsdCBpbXBsZW1l bnRhdGlvbiBkb2Vzbid0IG5lZWQgYSBidWZmZXIgKi8KIAotICAqZmxhZ3MgfD0gSEFfTVJSX1VT RV9ERUZBVUxUX0lNUEw7CisgICpmbGFnc3w9IEhBX01SUl9VU0VfREVGQVVMVF9JTVBMOworICAq ZmxhZ3N8PSBIQV9NUlJfU1VQUE9SVF9TT1JURUQ7CiAKICAgREJVR19BU1NFUlQoY29zdC0+aXNf emVybygpKTsKIApAQCAtNDgxOSwxMyArNDgyMiwxNSBAQCBpbnQgRHNNcnJfaW1wbDo6ZHNtcnJf aW5pdChoYW5kbGVyICpoX2FyCiAgIGhhbmRsZXIgKm5ld19oMj0gMDsKICAgaW50IHJldHZhbD0g MDsKICAgREJVR19FTlRFUigiRHNNcnJfaW1wbDo6ZHNtcnJfaW5pdCIpOworICBUSEQgKnRoZD0g Y3VycmVudF90aGQ7CiAKICAgLyoKICAgICBpbmRleF9tZXJnZSBtYXkgaW52b2tlIGEgc2NhbiBv biBhbiBvYmplY3QgZm9yIHdoaWNoIGRzbXJyX2luZm9bX2NvbnN0XQogICAgIGhhcyBub3QgYmVl biBjYWxsZWQsIHNvIHNldCB0aGUgb3duZXIgaGFuZGxlciBoZXJlIGFzIHdlbGwuCiAgICovCiAg IGg9IGhfYXJnOwotICBpZiAobW9kZSAmIEhBX01SUl9VU0VfREVGQVVMVF9JTVBMIHx8IG1vZGUg JiBIQV9NUlJfU09SVEVEKQorICBpZiAoIXRoZC0+b3B0aW1pemVyX3N3aXRjaF9mbGFnKE9QVElN SVpFUl9TV0lUQ0hfTVJSKSB8fAorICAgICAgbW9kZSAmIChIQV9NUlJfVVNFX0RFRkFVTFRfSU1Q TCB8IEhBX01SUl9TT1JURUQpKSAvLyBEUy1NUlIgZG9lc24ndCBzb3J0CiAgIHsKICAgICB1c2Vf ZGVmYXVsdF9pbXBsPSBUUlVFOwogICAgIHJldHZhbD0gaC0+aGFuZGxlcjo6bXVsdGlfcmFuZ2Vf cmVhZF9pbml0KHNlcV9mdW5jcywgc2VxX2luaXRfcGFyYW0sCkBAIC00ODc1LDcgKzQ4ODAsNiBA QCBpbnQgRHNNcnJfaW1wbDo6ZHNtcnJfaW5pdChoYW5kbGVyICpoX2FyCiAgIGlmICghaDIpCiAg IHsKICAgICAvKiBDcmVhdGUgYSBzZXBhcmF0ZSBoYW5kbGVyIG9iamVjdCB0byBkbyBybmRwb3Mo KSBjYWxscy4gKi8KLSAgICBUSEQgKnRoZD0gY3VycmVudF90aGQ7CiAgICAgLyoKICAgICAgIDo6 Y2xvbmUoKSB0YWtlcyB1cCBhIGxvdCBvZiBzdGFjaywgZXNwZWNpYWxseSBvbiA2NCBiaXQgcGxh dGZvcm1zLgogICAgICAgVGhlIGNvbnN0YW50IDUgaXMgYW4gZW1waXJpYyByZXN1bHQuCkBAIC01 MTU1LDYgKzUxNTksNyBAQCBoYV9yb3dzIERzTXJyX2ltcGw6OmRzbXJyX2luZm8odWludCBrZXlu CiAgICAgREJVR19QUklOVCgiaW5mbyIsICgiRGVmYXVsdCBNUlIgaW1wbGVtZW50YXRpb24gY2hv b3NlbiIpKTsKICAgICAqZmxhZ3M9IGRlZl9mbGFnczsKICAgICAqYnVmc3o9IGRlZl9idWZzejsK KyAgICBEQlVHX0FTU0VSVCgqZmxhZ3MgJiBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTCk7CiAgIH0K ICAgZWxzZQogICB7CkBAIC01MTk4LDYgKzUyMDMsNyBAQCBoYV9yb3dzIERzTXJyX2ltcGw6OmRz bXJyX2luZm9fY29uc3QodWluCiAgICAgREJVR19QUklOVCgiaW5mbyIsICgiRGVmYXVsdCBNUlIg aW1wbGVtZW50YXRpb24gY2hvb3NlbiIpKTsKICAgICAqZmxhZ3M9IGRlZl9mbGFnczsKICAgICAq YnVmc3o9IGRlZl9idWZzejsKKyAgICBEQlVHX0FTU0VSVCgqZmxhZ3MgJiBIQV9NUlJfVVNFX0RF RkFVTFRfSU1QTCk7CiAgIH0KICAgZWxzZQogICB7CkBAIC01MjM3LDEyICs1MjQzLDExIEBAIGJv b2wgRHNNcnJfaW1wbDo6Y2hvb3NlX21ycl9pbXBsKHVpbnQga2UKICAgYm9vbCByZXM7CiAgIFRI RCAqdGhkPSBjdXJyZW50X3RoZDsKICAgaWYgKCF0aGQtPm9wdGltaXplcl9zd2l0Y2hfZmxhZyhP UFRJTUlaRVJfU1dJVENIX01SUikgfHwKLSAgICAgICpmbGFncyAmIEhBX01SUl9JTkRFWF9PTkxZ IHx8CisgICAgICAqZmxhZ3MgJiAoSEFfTVJSX0lOREVYX09OTFkgfCBIQV9NUlJfU09SVEVEKSB8 fCAvLyBVbnN1cHBvcnRlZCBieSBEUy1NUlIKICAgICAgIChrZXlubyA9PSB0YWJsZS0+cy0+cHJp bWFyeV9rZXkgJiYgaC0+cHJpbWFyeV9rZXlfaXNfY2x1c3RlcmVkKCkpIHx8CiAgICAgICAga2V5 X3VzZXNfcGFydGlhbF9jb2xzKHRhYmxlLCBrZXlubykpCiAgIHsKLSAgICAvKiBVc2UgdGhlIGRl ZmF1bHQgaW1wbGVtZW50YXRpb24gKi8KLSAgICAqZmxhZ3MgfD0gSEFfTVJSX1VTRV9ERUZBVUxU X0lNUEw7CisgICAgLyogVXNlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCBkb24ndCBtb2Rp ZnkgYXJnczogU2VlIGNvbW1lbnRzICAqLwogICAgIHJldHVybiBUUlVFOwogICB9CiAgIApAQCAt NTI2Niw3ICs1MjcxLDcgQEAgYm9vbCBEc01ycl9pbXBsOjpjaG9vc2VfbXJyX2ltcGwodWludCBr ZQogICBpZiAoZm9yY2VfZHNtcnIgfHwgKGRzbXJyX2Nvc3QudG90YWxfY29zdCgpIDw9IGNvc3Qt PnRvdGFsX2Nvc3QoKSkpCiAgIHsKICAgICAqZmxhZ3MgJj0gfkhBX01SUl9VU0VfREVGQVVMVF9J TVBMOyAgLyogVXNlIHRoZSBEUy1NUlIgaW1wbGVtZW50YXRpb24gKi8KLSAgICAqZmxhZ3MgJj0g fkhBX01SUl9TT1JURUQ7ICAgICAgICAgIC8qIFdlIHdpbGwgcmV0dXJuIHVub3JkZXJlZCBvdXRw dXQgKi8KKyAgICAqZmxhZ3MgJj0gfkhBX01SUl9TVVBQT1JUX1NPUlRFRDsgICAgLyogV2UgY2Fu J3QgcHJvdmlkZSBvcmRlcmVkIG91dHB1dCAqLwogICAgICpjb3N0PSBkc21ycl9jb3N0OwogICAg IHJlcz0gRkFMU0U7CiAgIH0KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxlci5oJwotLS0g YS9zcWwvaGFuZGxlci5oCTIwMTEtMTEtMzAgMTE6MzY6MTQgKzAwMDAKKysrIGIvc3FsL2hhbmRs ZXIuaAkyMDEyLTAxLTI2IDEyOjUzOjM4ICswMDAwCkBAIC0xMTYzLDYgKzExNjMsMTAgQEAgdm9p ZCBnZXRfc3dlZXBfcmVhZF9jb3N0KFRBQkxFICp0YWJsZSwgaAogLyogCiAgIFRoZSBNUlIgdXNl ciB3aWxsIHByb3ZpZGUgcmFuZ2VzIGluIGtleSBvcmRlciwgYW5kIE1SUiBpbXBsZW1lbnRhdGlv bgogICBtdXN0IHJldHVybiByb3dzIGluIGtleSBvcmRlci4KKyAgUGFzc2luZyB0aGlzIGZsYWcg dG8gbXVsdGlfcmVhZF9yYW5nZV9pbml0KCkgbWF5IGNhdXNlIHRoZQorICBkZWZhdWx0IE1SUiBo YW5kbGVyIHRvIGJlIHVzZWQgZXZlbiBpZiBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTAorICB3YXMg bm90IHNwZWNpZmllZC4KKyAgKElmIHRoZSBuYXRpdmUgTVJSIGltcGwuIGNhbiBub3QgcHJvdmlk ZSBTT1JURUQgcmVzdWx0KQogKi8KICNkZWZpbmUgSEFfTVJSX1NPUlRFRCA4CiAKQEAgLTExOTEs NiArMTE5NSwxNSBAQCB2b2lkIGdldF9zd2VlcF9yZWFkX2Nvc3QoVEFCTEUgKnRhYmxlLCBoCiAq LwogI2RlZmluZSBIQV9NUlJfTk9fTlVMTF9FTkRQT0lOVFMgMTI4CiAKKy8qCisgIFNldCBieSB0 aGUgTVJSIGltcGxlbWVudGF0aW9uIHRvIHNpZ25hbCB0aGF0IGl0IHdpbGwgbmF0aXZlbHkKKyAg cHJvZHVjZWQgc29ydGVkIHJlc3VsdCBpZiBtdWx0aV9yYW5nZV9yZWFkX2luaXQoKSBpcyBjYWxs ZWQgd2l0aAorICB0aGUgSEFfTVJSX1NPUlRFRCBmbGFnIC0gRWxzZSBtdWx0aV9yYW5nZV9yZWFk X2luaXQoSEFfTVJSX1NPUlRFRCkKKyAgd2lsbCByZXZlcnQgdG8gdXNlIHRoZSBkZWZhdWx0IE1S UiBpbXBsZW1lbnRhdGlvbi4gCisqLworI2RlZmluZSBIQV9NUlJfU1VQUE9SVF9TT1JURUQgMjU2 CisKKwogY2xhc3MgaGFfc3RhdGlzdGljcwogewogcHVibGljOgoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9vcHRfZXhwbGFpbi5jYycKLS0tIGEvc3FsL29wdF9leHBsYWluLmNjCTIwMTEtMTItMTQg MTI6MzI6NTUgKzAwMDAKKysrIGIvc3FsL29wdF9leHBsYWluLmNjCTIwMTItMDEtMjYgMTI6NTM6 MzggKzAwMDAKQEAgLTc3MCwyNCArNzcwLDI1IEBAIHZvaWQgRXhwbGFpbl90YWJsZV9iYXNlOjpl eHBsYWluX2V4dHJhX2MKICAgaWYgKHRhYmxlLT5yZWdpbmZvLm5vdF9leGlzdHNfb3B0aW1pemUp CiAgICAgc3RyX2V4dHJhLT5hcHBlbmQoU1RSSU5HX1dJVEhfTEVOKCI7IE5vdCBleGlzdHMiKSk7 CiAKLSAgaWYgKHF1aWNrX3R5cGUgPT0gUVVJQ0tfU0VMRUNUX0k6OlFTX1RZUEVfUkFOR0UgJiYK LSAgICAgICEoKChRVUlDS19SQU5HRV9TRUxFQ1QqKShzZWxlY3QtPnF1aWNrKSktPm1ycl9mbGFn cyAmCi0gICAgICAgKEhBX01SUl9VU0VfREVGQVVMVF9JTVBMIHwgSEFfTVJSX1NPUlRFRCkpKQor ICBpZiAocXVpY2tfdHlwZSA9PSBRVUlDS19TRUxFQ1RfSTo6UVNfVFlQRV9SQU5HRSkKICAgewor ICAgIHVpbnQgbXJyX2ZsYWdzPQorICAgICAgKChRVUlDS19SQU5HRV9TRUxFQ1QqKShzZWxlY3Qt PnF1aWNrKSktPm1ycl9mbGFnczsKKwogICAgIC8qCiAgICAgICBEdXJpbmcgbm9ybWFsIGV4ZWN1 dGlvbiBvZiBhIHF1ZXJ5LCBtdWx0aV9yYW5nZV9yZWFkX2luaXQoKSBpcwogICAgICAgY2FsbGVk IHRvIGluaXRpYWxpemUgTVJSLiBJZiBIQV9NUlJfU09SVEVEIGlzIHNldCBhdCB0aGlzIHBvaW50 LAogICAgICAgbXVsdGlfcmFuZ2VfcmVhZF9pbml0KCkgZm9yIGFueSBuYXRpdmUgTVJSIGltcGxl bWVudGF0aW9uIHdpbGwKLSAgICAgIHJldmVydCB0byBkZWZhdWx0IE1SUiBiZWNhdXNlIHRoZXkg Y2Fubm90IHByb2R1Y2Ugc29ydGVkIG91dHB1dAotICAgICAgY3VycmVudGx5LgorICAgICAgcmV2 ZXJ0IHRvIGRlZmF1bHQgTVJSIGlmIG5vdCBIQV9NUlJfU1VQUE9SVF9TT1JURUQuCiAgICAgICBD YWxsaW5nIG11bHRpX3JhbmdlX3JlYWRfaW5pdCgpIGNhbiBwb3RlbnRpYWxseSBiZSBjb3N0bHks IHNvIGl0Ci0gICAgICBpcyBub3QgZG9uZSB3aGVuIGV4ZWN1dGluZyBhbiBFWFBMQUlOLiBXZSB0 aGVyZWZvcmUgbWFrZSB0aGUKLSAgICAgIGFzc3VtcHRpb24gdGhhdCBIQV9NUlJfU09SVEVEIG1l YW5zIG5vIE1SUi4gSWYgc29tZSBNUlIgbmF0aXZlCi0gICAgICBpbXBsZW1lbnRhdGlvbiB3aWxs IHN1cHBvcnQgc29ydGVkIG91dHB1dCBpbiB0aGUgZnV0dXJlLCBhCi0gICAgICBmdW5jdGlvbiAi Ym9vbCBtcnJfc3VwcG9ydHNfc29ydGVkKCkiIHNob3VsZCBiZSBhZGRlZCBpbiB0aGUKLSAgICAg IGhhbmRsZXIuCisgICAgICBpcyBub3QgZG9uZSB3aGVuIGV4ZWN1dGluZyBhbiBFWFBMQUlOLiBX ZSB0aGVyZWZvcmUgc2ltdWxhdGUKKyAgICAgIGl0cyBlZmZlY3QgaGVyZToKICAgICAqLwotICAg IHN0cl9leHRyYS0+YXBwZW5kKFNUUklOR19XSVRIX0xFTigiOyBVc2luZyBNUlIiKSk7CisgICAg aWYgKG1ycl9mbGFncyAmIEhBX01SUl9TT1JURUQgJiYgIShtcnJfZmxhZ3MgJiBIQV9NUlJfU1VQ UE9SVF9TT1JURUQpKQorICAgICAgbXJyX2ZsYWdzfD0gSEFfTVJSX1VTRV9ERUZBVUxUX0lNUEw7 CisKKyAgICBpZiAoIShtcnJfZmxhZ3MgJiBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTCkpCisgICAg ICBzdHJfZXh0cmEtPmFwcGVuZChTVFJJTkdfV0lUSF9MRU4oIjsgVXNpbmcgTVJSIikpOwogICB9 CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvb3B0X3JhbmdlLmNjJwotLS0gYS9zcWwvb3B0 X3JhbmdlLmNjCTIwMTItMDEtMjYgMTA6MDg6MTIgKzAwMDAKKysrIGIvc3FsL29wdF9yYW5nZS5j YwkyMDEyLTAxLTI2IDEyOjUzOjM4ICswMDAwCkBAIC0yNTY4LDcgKzI1NjgsNyBAQCBpbnQgU1FM X1NFTEVDVDo6dGVzdF9xdWlja19zZWxlY3QoVEhEICp0CiAgICAgcGFyYW0uaW1lcmdlX2Nvc3Rf YnVmZl9zaXplPSAwOwogICAgIHBhcmFtLnVzaW5nX3JlYWxfaW5kZXhlcz0gVFJVRTsKICAgICBw YXJhbS5yZW1vdmVfanVtcF9zY2Fucz0gVFJVRTsKLSAgICBwYXJhbS5mb3JjZV9kZWZhdWx0X21y cj0gKGludGVyZXN0aW5nX29yZGVyICE9IE9SREVSOjpPUkRFUl9OT1RfUkVMRVZBTlQpOworICAg IHBhcmFtLmZvcmNlX2RlZmF1bHRfbXJyPSAoaW50ZXJlc3Rpbmdfb3JkZXIgPT0gT1JERVI6Ok9S REVSX0RFU0MpOwogICAgIHBhcmFtLm9yZGVyX2RpcmVjdGlvbj0gaW50ZXJlc3Rpbmdfb3JkZXI7 CiAKICAgICB0aGQtPm5vX2Vycm9ycz0xOwkJCQkvLyBEb24ndCB3YXJuIGFib3V0IE5VTEwKQEAg LTU1NjIsNyArNTU2Miw3IEBAIFFVSUNLX1NFTEVDVF9JICpUUlBfUk9SX0lOVEVSU0VDVDo6bWFr ZV8KICAgICB7CiAgICAgICBpZiAoIShxdWljaz0gZ2V0X3F1aWNrX3NlbGVjdChwYXJhbSwgKCpj dXJyZW50KS0+aWR4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpjdXJy ZW50KS0+c2VsX2FyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBX01S Ul9VU0VfREVGQVVMVF9JTVBMIHwgSEFfTVJSX1NPUlRFRCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEhBX01SUl9TT1JURUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwLCBhbGxvYykpIHx8CiAgICAgICAgICAgcXVpY2tfaW50cnNlY3QtPnB1c2hf cXVpY2tfYmFjayhxdWljaykpCiAgICAgICB7CkBAIC01NTc0LDcgKzU1NzQsNyBAQCBRVUlDS19T RUxFQ1RfSSAqVFJQX1JPUl9JTlRFUlNFQ1Q6Om1ha2VfCiAgICAgewogICAgICAgaWYgKCEocXVp Y2s9IGdldF9xdWlja19zZWxlY3QocGFyYW0sIGNwa19zY2FuLT5pZHgsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjcGtfc2Nhbi0+c2VsX2FyZywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEhBX01SUl9VU0VfREVGQVVMVF9JTVBMIHwgSEFfTVJSX1NP UlRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBX01SUl9TT1JURUQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBhbGxvYykpKQogICAgICAg ewogICAgICAgICBkZWxldGUgcXVpY2tfaW50cnNlY3Q7CkBAIC04NzA1LDEwICs4NzA1LDEyIEBA IGhhX3Jvd3MgY2hlY2tfcXVpY2tfc2VsZWN0KFBBUkFNICpwYXJhbSwKICAgICBwYXJhbS0+aXNf cm9yX3NjYW49IEZBTFNFOwogICAKICAgKm1ycl9mbGFncz0gcGFyYW0tPmZvcmNlX2RlZmF1bHRf bXJyPyBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTDogMDsKKyAgKm1ycl9mbGFnc3w9IEhBX01SUl9O T19BU1NPQ0lBVElPTjsKICAgLyoKICAgICBQYXNzIEhBX01SUl9TT1JURUQgdG8gc2VlIGlmIE1S UiBpbXBsZW1lbnRhdGlvbiBjYW4gaGFuZGxlIHNvcnRpbmcuCiAgICovCi0gICptcnJfZmxhZ3N8 PSBIQV9NUlJfTk9fQVNTT0NJQVRJT04gfCBIQV9NUlJfU09SVEVEOworICBpZiAocGFyYW0tPm9y ZGVyX2RpcmVjdGlvbiAhPSBPUkRFUjo6T1JERVJfTk9UX1JFTEVWQU5UKQorICAgICptcnJfZmxh Z3N8PSBIQV9NUlJfU09SVEVEOwogCiAgIGJvb2wgcGtfaXNfY2x1c3RlcmVkPSBmaWxlLT5wcmlt YXJ5X2tleV9pc19jbHVzdGVyZWQoKTsKICAgaWYgKGluZGV4X29ubHkgJiYgCkBAIC04NzE3LDcg Kzg3MTksNyBAQCBoYV9yb3dzIGNoZWNrX3F1aWNrX3NlbGVjdChQQVJBTSAqcGFyYW0sCiAgICAg ICptcnJfZmxhZ3MgfD0gSEFfTVJSX0lOREVYX09OTFk7CiAgIAogICBpZiAoY3VycmVudF90aGQt PmxleC0+c3FsX2NvbW1hbmQgIT0gU1FMQ09NX1NFTEVDVCkKLSAgICAqbXJyX2ZsYWdzIHw9IEhB X01SUl9VU0VfREVGQVVMVF9JTVBMOworICAgICptcnJfZmxhZ3N8PSBIQV9NUlJfU09SVEVEOyAv LyBBc3N1bWVkIHRvIGdpdmUgZmFzdGVyIGlucy91cGQvZGVsCiAKICAgKmJ1ZnNpemU9IHBhcmFt LT50aGQtPnZhcmlhYmxlcy5yZWFkX3JuZF9idWZmX3NpemU7CiAgIC8vIFNldHMgaXNfcm9yX3Nj YW4gdG8gZmFsc2UgZm9yIHNvbWUgcXVlcmllcywgZS5nLiBtdWx0aS1yYW5nZXMKQEAgLTkyNDIs NyArOTI0NCw3IEBAIFFVSUNLX1JBTkdFX1NFTEVDVCAqZ2V0X3F1aWNrX3NlbGVjdF9mb3IKICAg cXVpY2stPm1ycl9mbGFncz0gSEFfTVJSX05PX0FTU09DSUFUSU9OIHwgCiAgICAgICAgICAgICAg ICAgICAgICh0YWJsZS0+a2V5X3JlYWQgPyBIQV9NUlJfSU5ERVhfT05MWSA6IDApOwogICBpZiAo dGhkLT5sZXgtPnNxbF9jb21tYW5kICE9IFNRTENPTV9TRUxFQ1QpCi0gICAgcXVpY2stPm1ycl9m bGFncyB8PSBIQV9NUlJfVVNFX0RFRkFVTFRfSU1QTDsKKyAgICBxdWljay0+bXJyX2ZsYWdzfD0g SEFfTVJSX1NPUlRFRDsgLy8gQXNzdW1lZCB0byBnaXZlIGZhc3RlciBpbnMvdXBkL2RlbAogI2lm ZGVmIFdJVEhfTkRCQ0xVU1RFUl9TVE9SQUdFX0VOR0lORQogICBpZiAoIXJlZi0+bnVsbF9yZWZf a2V5ICYmICFrZXlfaGFzX251bGxzKGtleV9pbmZvLCByYW5nZS0+bWluX2tleSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYtPmtleV9sZW5ndGgpKQpAQCAt MTA5MjksNyArMTA5MzEsNyBAQCBnZXRfYmVzdF9ncm91cF9taW5fbWF4KFBBUkFNICpwYXJhbSwg U0VMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN1cl9wYXJh bV9pZHgpOwogICAgICAgLyogQ2hlY2sgaWYgdGhpcyByYW5nZSB0cmVlIGNhbiBiZSB1c2VkIGZv ciBwcmVmaXggcmV0cmlldmFsLiAqLwogICAgICAgQ29zdF9lc3RpbWF0ZSBkdW1teV9jb3N0Owot ICAgICAgdWludCBtcnJfZmxhZ3M9IEhBX01SUl9VU0VfREVGQVVMVF9JTVBMOworICAgICAgdWlu dCBtcnJfZmxhZ3M9IEhBX01SUl9TT1JURUQ7CiAgICAgICB1aW50IG1ycl9idWZzaXplPTA7CiAg ICAgICBjdXJfcXVpY2tfcHJlZml4X3JlY29yZHM9IGNoZWNrX3F1aWNrX3NlbGVjdChwYXJhbSwg Y3VyX3BhcmFtX2lkeCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGQUxTRSAvKmRvbid0IGNhcmUqLywgCkBAIC0xMTU2NCw3ICsxMTU2Niw2IEBA IFRSUF9HUk9VUF9NSU5fTUFYOjptYWtlX3F1aWNrKFBBUkFNICpwYXIKICAgICAgIC8qIE1ha2Ug YSBRVUlDS19SQU5HRV9TRUxFQ1QgdG8gYmUgdXNlZCBmb3IgZ3JvdXAgcHJlZml4IHJldHJpZXZh bC4gKi8KICAgICAgIHF1aWNrLT5xdWlja19wcmVmaXhfc2VsZWN0PSBnZXRfcXVpY2tfc2VsZWN0 KHBhcmFtLCBwYXJhbV9pZHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbmRleF90cmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSEFfTVJSX1VTRV9ERUZBVUxUX0lNUEwgfAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFfTVJSX1NPUlRFRCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcXVpY2st PmFsbG9jKTsKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku