From: marko.makela Date: April 11 2011 2:58pm Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3572) List-Archive: http://lists.mysql.com/commits/135222 Message-Id: <201104111458.p3BEwl8a018984@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1406094011==" --===============1406094011== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjYtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29tLTIwMTEwNDA4MTg0MjE0LTd1Y3ky cGZwNzR0ZHU5ZHkKCiAzNTcyIE1hcmtvIE3DpGtlbMOkCTIwMTEtMDQtMTEgW21lcmdlXQogICAg ICBNZXJnZSBteXNxbC01LjUtaW5ub2RiIHRvIG15c3FsLXRydW5rLWlubm9kYi4KCiAgICBhZGRl ZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTk2NDEucmVzdWx0 CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NjQxLnRlc3QKICAg IG1vZGlmaWVkOgogICAgICBjbGllbnQvbXlzcWx0ZXN0LmNjCiAgICAgIHNxbC9zcWxfY2xhc3Mu Y2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwogICAgICBzdG9y YWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9o YW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3Ry eDBzeXMuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHRyeC5oCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv bG9jay9sb2NrMGxvY2suYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9nLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHN5cy5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv dHJ4L3RyeDB0cnguYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jCj09PSBt b2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWx0ZXN0LmNjJwotLS0gYS9jbGllbnQvbXlzcWx0ZXN0 LmNjCXJldmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAxMTA0MDgxODQyMTQtN3VjeTJwZnA3 NHRkdTlkeQorKysgYi9jbGllbnQvbXlzcWx0ZXN0LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTEwNDExMTQ1NzQ3LTE1MW9uaWV1Mng1cHhpdngKQEAgLTQ1NjksMTMgKzQ1Njks MTQgQEAgc3RhdGljIGludCBteV9raWxsKGludCBwaWQsIGludCBzaWcpCiAgIGNvbW1hbmQgIGNh bGxlZCBjb21tYW5kCiAKICAgREVTQ1JJUFRJT04KLSAgc2h1dGRvd24gWzx0aW1lb3V0Pl0KKyAg c2h1dGRvd25fc2VydmVyIFs8dGltZW91dD5dCiAKICovCiAKIHZvaWQgZG9fc2h1dGRvd25fc2Vy dmVyKHN0cnVjdCBzdF9jb21tYW5kICpjb21tYW5kKQogewotICBpbnQgdGltZW91dD02MCwgcGlk OworICBsb25nIHRpbWVvdXQ9NjA7CisgIGludCBwaWQ7CiAgIERZTkFNSUNfU1RSSU5HIGRzX3Bp ZGZpbGVfbmFtZTsKICAgTVlTUUwqIG15c3FsID0gJmN1cl9jb24tPm15c3FsOwogICBzdGF0aWMg RFlOQU1JQ19TVFJJTkcgZHNfdGltZW91dDsKQEAgLTQ1OTAsOCArNDU5MSw5IEBAIHZvaWQgZG9f c2h1dGRvd25fc2VydmVyKHN0cnVjdCBzdF9jb21tYW4KIAogICBpZiAoZHNfdGltZW91dC5sZW5n dGgpCiAgIHsKLSAgICB0aW1lb3V0PSBhdG9pKGRzX3RpbWVvdXQuc3RyKTsKLSAgICBpZiAodGlt ZW91dCA9PSAwKQorICAgIGNoYXIqIGVuZHB0cjsKKyAgICB0aW1lb3V0PSBzdHJ0b2woZHNfdGlt ZW91dC5zdHIsICZlbmRwdHIsIDEwKTsKKyAgICBpZiAoKmVuZHB0ciAhPSAnXDAnKQogICAgICAg ZGllKCJJbGxlZ2FsIGFyZ3VtZW50IGZvciB0aW1lb3V0OiAnJXMnIiwgZHNfdGltZW91dC5zdHIp OwogICB9CiAgIGR5bnN0cl9mcmVlKCZkc190aW1lb3V0KTsKQEAgLTQ2MzMsNyArNDYzNSw3IEBA IHZvaWQgZG9fc2h1dGRvd25fc2VydmVyKHN0cnVjdCBzdF9jb21tYW4KICAgICAgIERCVUdfUFJJ TlQoImluZm8iLCAoIlByb2Nlc3MgJWQgZG9lcyBub3QgZXhpc3QgYW55bW9yZSIsIHBpZCkpOwog ICAgICAgREJVR19WT0lEX1JFVFVSTjsKICAgICB9Ci0gICAgREJVR19QUklOVCgiaW5mbyIsICgi U2xlZXBpbmcsIHRpbWVvdXQ6ICVkIiwgdGltZW91dCkpOworICAgIERCVUdfUFJJTlQoImluZm8i LCAoIlNsZWVwaW5nLCB0aW1lb3V0OiAlbGQiLCB0aW1lb3V0KSk7CiAgICAgbXlfc2xlZXAoMTAw MDAwMEwpOwogICB9CiAKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9y L2lubm9kYl9idWc1OTY0MS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Iv aW5ub2RiX2J1ZzU5NjQxLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU5NjQxLnJlc3VsdAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQxMTE0NTc0Ny0xNTFvbmlldTJ4NXB4aXZ4CkBAIC0w LDAgKzEsNTcgQEAKK0NSRUFURSBUQUJMRSB0KGEgSU5UIFBSSU1BUlkgS0VZLCBiIElOVClFTkdJ TkU9SW5ub0RCOworSU5TRVJUIElOVE8gdCBWQUxVRVMoMiwyKSwoNCw0KSwoOCw4KSwoMTYsMTYp LCgzMiwzMik7CitDT01NSVQ7CitYQSBTVEFSVCAnMTIzJzsKK0lOU0VSVCBJTlRPIHQgVkFMVUVT KDEsMSk7CitYQSBFTkQgJzEyMyc7CitYQSBQUkVQQVJFICcxMjMnOworWEEgU1RBUlQgJzQ1Nic7 CitJTlNFUlQgSU5UTyB0IFZBTFVFUygzLDQ3KSwoNSw2Nyk7CitVUERBVEUgdCBTRVQgYj0yKmIg V0hFUkUgYSBCRVRXRUVOIDUgQU5EIDg7CitYQSBFTkQgJzQ1Nic7CitYQSBQUkVQQVJFICc0NTYn OworWEEgU1RBUlQgJzc4OSc7CitVUERBVEUgdCBTRVQgYj00KmEgV0hFUkUgYT0zMjsKK1hBIEVO RCAnNzg5JzsKK1hBIFBSRVBBUkUgJzc4OSc7CitjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIkZv dW5kIDMgcHJlcGFyZWQgWEEgdHJhbnNhY3Rpb25zIik7CitTRVQgVFJBTlNBQ1RJT04gSVNPTEFU SU9OIExFVkVMIFJFQUQgVU5DT01NSVRURUQ7CitTRUxFQ1QgKiBGUk9NIHQ7CithCWIKKzEJMQor MgkyCiszCTQ3Cis0CTQKKzUJMTM0Cis4CTE2CisxNgkxNgorMzIJMTI4CitDT01NSVQ7CitTRVQg VFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFQUQgVU5DT01NSVRURUQ7CitTRUxFQ1QgKiBG Uk9NIHQ7CithCWIKKzEJMQorMgkyCiszCTQ3Cis0CTQKKzUJMTM0Cis4CTE2CisxNgkxNgorMzIJ MTI4CitDT01NSVQ7CitYQSBSRUNPVkVSOworZm9ybWF0SUQJZ3RyaWRfbGVuZ3RoCWJxdWFsX2xl bmd0aAlkYXRhCisxCTMJMAk3ODkKKzEJMwkwCTQ1NgorMQkzCTAJMTIzCitYQSBST0xMQkFDSyAn MTIzJzsKK1hBIFJPTExCQUNLICc0NTYnOworWEEgQ09NTUlUICc3ODknOworU0VMRUNUICogRlJP TSB0OworYQliCisyCTIKKzQJNAorOAk4CisxNgkxNgorMzIJMTI4CitEUk9QIFRBQkxFIHQ7Cgo9 PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTk2NDEu dGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTk2NDEudGVz dAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2Ri L3QvaW5ub2RiX2J1ZzU5NjQxLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MTA0MTExNDU3NDctMTUxb25pZXUyeDVweGl2eApAQCAtMCwwICsxLDY4IEBACisjIEJ1ZyAjNTk2 NDEgUHJlcGFyZWQgWEEgdHJhbnNhY3Rpb24gY2F1c2VzIHNodXRkb3duIGhhbmcgYWZ0ZXIgYSBj cmFzaAorCistLSBzb3VyY2UgaW5jbHVkZS9ub3RfZW1iZWRkZWQuaW5jCistLSBzb3VyY2UgaW5j bHVkZS9oYXZlX2lubm9kYi5pbmMKKworQ1JFQVRFIFRBQkxFIHQoYSBJTlQgUFJJTUFSWSBLRVks IGIgSU5UKUVOR0lORT1Jbm5vREI7CitJTlNFUlQgSU5UTyB0IFZBTFVFUygyLDIpLCg0LDQpLCg4 LDgpLCgxNiwxNiksKDMyLDMyKTsKK0NPTU1JVDsKK1hBIFNUQVJUICcxMjMnOworSU5TRVJUIElO VE8gdCBWQUxVRVMoMSwxKTsKK1hBIEVORCAnMTIzJzsKK1hBIFBSRVBBUkUgJzEyMyc7CisKK0NP Tk5FQ1QgKGNvbjEsbG9jYWxob3N0LHJvb3QsLCk7CitDT05ORUNUSU9OIGNvbjE7CisKK1hBIFNU QVJUICc0NTYnOworSU5TRVJUIElOVE8gdCBWQUxVRVMoMyw0NyksKDUsNjcpOworVVBEQVRFIHQg U0VUIGI9MipiIFdIRVJFIGEgQkVUV0VFTiA1IEFORCA4OworWEEgRU5EICc0NTYnOworWEEgUFJF UEFSRSAnNDU2JzsKKworQ09OTkVDVCAoY29uMixsb2NhbGhvc3Qscm9vdCwsKTsKK0NPTk5FQ1RJ T04gY29uMjsKKworWEEgU1RBUlQgJzc4OSc7CitVUERBVEUgdCBTRVQgYj00KmEgV0hFUkUgYT0z MjsKK1hBIEVORCAnNzg5JzsKK1hBIFBSRVBBUkUgJzc4OSc7CisKK0NPTk5FQ1QgKGNvbjMsbG9j YWxob3N0LHJvb3QsLCk7CitDT05ORUNUSU9OIGNvbjM7CisjIFRoZSBzZXJ2ZXIgd291bGQgaXNz dWUgdGhpcyB3YXJuaW5nIG9uIHJlc3RhcnQuCitjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIkZv dW5kIDMgcHJlcGFyZWQgWEEgdHJhbnNhY3Rpb25zIik7CisKKyMgS2lsbCB0aGUgc2VydmVyIHdp dGhvdXQgc2VuZGluZyBhIHNodXRkb3duIGNvbW1hbmQKKy0tIGV4ZWMgZWNobyAid2FpdCIgPiAk TVlTUUxURVNUX1ZBUkRJUi90bXAvbXlzcWxkLjEuZXhwZWN0CistLSBzaHV0ZG93bl9zZXJ2ZXIg MAorLS0gc291cmNlIGluY2x1ZGUvd2FpdF91bnRpbF9kaXNjb25uZWN0ZWQuaW5jCisKKyMgUmVz dGFydCB0aGUgc2VydmVyLgorLS0gZXhlYyBlY2hvICJyZXN0YXJ0IiA+ICRNWVNRTFRFU1RfVkFS RElSL3RtcC9teXNxbGQuMS5leHBlY3QKKy0tIGVuYWJsZV9yZWNvbm5lY3QKKy0tIHNvdXJjZSBp bmNsdWRlL3dhaXRfdW50aWxfY29ubmVjdGVkX2FnYWluLmluYworU0VUIFRSQU5TQUNUSU9OIElT T0xBVElPTiBMRVZFTCBSRUFEIFVOQ09NTUlUVEVEOworU0VMRUNUICogRlJPTSB0OworQ09NTUlU OworCisjIFNodXQgZG93biB0aGUgc2VydmVyLiBUaGlzIHdvdWxkIGhhbmcgYmVjYXVzZSBvZiB0 aGUgYnVnLgorLS0gZXhlYyBlY2hvICJ3YWl0IiA+ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9teXNx bGQuMS5leHBlY3QKKy0tIHNodXRkb3duX3NlcnZlcgorLS0gc291cmNlIGluY2x1ZGUvd2FpdF91 bnRpbF9kaXNjb25uZWN0ZWQuaW5jCisKKyMgUmVzdGFydCB0aGUgc2VydmVyLgorLS0gZXhlYyBl Y2hvICJyZXN0YXJ0IiA+ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9teXNxbGQuMS5leHBlY3QKKy0t IGVuYWJsZV9yZWNvbm5lY3QKKy0tIHNvdXJjZSBpbmNsdWRlL3dhaXRfdW50aWxfY29ubmVjdGVk X2FnYWluLmluYworCitTRVQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFQUQgVU5DT01N SVRURUQ7CitTRUxFQ1QgKiBGUk9NIHQ7CitDT01NSVQ7CitYQSBSRUNPVkVSOworWEEgUk9MTEJB Q0sgJzEyMyc7CitYQSBST0xMQkFDSyAnNDU2JzsKK1hBIENPTU1JVCAnNzg5JzsKK1NFTEVDVCAq IEZST00gdDsKKworRFJPUCBUQUJMRSB0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfY2xh c3MuY2MnCi0tLSBhL3NxbC9zcWxfY2xhc3MuY2MJcmV2aWQ6a2V2aW4ubGV3aXNAb3JhY2xlLmNv bS0yMDExMDQwODE4NDIxNC03dWN5MnBmcDc0dGR1OWR5CisrKyBiL3NxbC9zcWxfY2xhc3MuY2MJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MTExNDU3NDctMTUxb25pZXUyeDVw eGl2eApAQCAtMzg4Miw2ICszODgyLDcgQEAgYm9vbCB4aWRfY2FjaGVfaW5zZXJ0KFhJRCAqeGlk LCBlbnVtIHhhXwogICAgIHhzLT54YV9zdGF0ZT14YV9zdGF0ZTsKICAgICB4cy0+eGlkLnNldCh4 aWQpOwogICAgIHhzLT5pbl90aGQ9MDsKKyAgICB4cy0+cm1fZXJyb3I9MDsKICAgICByZXM9bXlf aGFzaF9pbnNlcnQoJnhpZF9jYWNoZSwgKHVjaGFyKil4cyk7CiAgIH0KICAgbXlzcWxfbXV0ZXhf dW5sb2NrKCZMT0NLX3hpZF9jYWNoZSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVy L2hhX2lubm9kYi5jYwlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29tLTIwMTEwNDA4MTg0MjE0 LTd1Y3kycGZwNzR0ZHU5ZHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9k Yi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQxMTE0NTc0Ny0xNTFvbmll dTJ4NXB4aXZ4CkBAIC02NjgxLDEwICs2NjgxLDYgQEAgY3JlYXRlX3RhYmxlX2RlZigKIAlEQlVH X1BSSU5UKCJlbnRlciIsICgidGFibGVfbmFtZTogJXMiLCB0YWJsZV9uYW1lKSk7CiAKIAl1dF9h KHRyeC0+bXlzcWxfdGhkICE9IE5VTEwpOwotCWlmIChJU19NQUdJQ19UQUJMRV9BTkRfVVNFUl9E RU5JRURfQUNDRVNTKHRhYmxlX25hbWUsCi0JCQkJCQkgIChUSEQqKSB0cngtPm15c3FsX3RoZCkp IHsKLQkJREJVR19SRVRVUk4oSEFfRVJSX0dFTkVSSUMpOwotCX0KIAogCS8qIE15U1FMIGRvZXMg dGhlIG5hbWUgbGVuZ3RoIGNoZWNrLiBCdXQgd2UgZG8gYWRkaXRpb25hbCBjaGVjawogCW9uIHRo ZSBuYW1lIGxlbmd0aCBoZXJlICovCkBAIC02ODA1LDYgKzY4MDEsOCBAQCBlcnJfY29sOgogCQkJ Y29sX2xlbik7CiAJfQogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNl X3RhYmxlX25hbWVzOworCiAJZXJyb3IgPSByb3dfY3JlYXRlX3RhYmxlX2Zvcl9teXNxbCh0YWJs ZSwgdHJ4KTsKIAogCWlmIChlcnJvciA9PSBEQl9EVVBMSUNBVEVfS0VZKSB7CkBAIC03MjIyLDM2 ICs3MjIwLDE1IEBAIGhhX2lubm9iYXNlOjpjcmVhdGUoCiAJCURCVUdfUkVUVVJOKEhBX0VSUl9U T19CSUdfUk9XKTsKIAl9CiAKLQkvKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0 aCB0aGUgY3VycmVudCB0aGQsIG9yIGNyZWF0ZSBvbmUKLQlpZiBub3QgeWV0IGNyZWF0ZWQgKi8K LQotCXBhcmVudF90cnggPSBjaGVja190cnhfZXhpc3RzKHRoZCk7Ci0KLQkvKiBJbiBjYXNlIE15 U1FMIGNhbGxzIHRoaXMgaW4gdGhlIG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwgcmVsZWFzZQot CXBvc3NpYmxlIGFkYXB0aXZlIGhhc2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tzIG9mIHRocmVh ZHMgKi8KLQotCXRyeF9zZWFyY2hfbGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChwYXJlbnRfdHJ4 KTsKLQotCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh0aGQpOwotCi0Jc3J2X2xvd2VyX2Nh c2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzOwotCiAJc3RyY3B5KG5hbWUy LCBuYW1lKTsKIAogCW5vcm1hbGl6ZV90YWJsZV9uYW1lKG5vcm1fbmFtZSwgbmFtZTIpOwogCi0J LyogTGF0Y2ggdGhlIElubm9EQiBkYXRhIGRpY3Rpb25hcnkgZXhjbHVzaXZlbHkgc28gdGhhdCBu byBkZWFkbG9ja3MKLQlvciBsb2NrIHdhaXRzIGNhbiBoYXBwZW4gaW4gaXQgZHVyaW5nIGEgdGFi bGUgY3JlYXRlIG9wZXJhdGlvbi4KLQlEcm9wIHRhYmxlIGV0Yy4gZG8gdGhpcyBsYXRjaGluZyBp biByb3cwbXlzcWwuYy4gKi8KLQotCXJvd19teXNxbF9sb2NrX2RhdGFfZGljdGlvbmFyeSh0cngp OwotCiAJLyogQ3JlYXRlIHRoZSB0YWJsZSBkZWZpbml0aW9uIGluIElubm9EQiAqLwogCiAJLyog VmFsaWRhdGUgY3JlYXRlIG9wdGlvbnMgaWYgaW5ub2RiX3N0cmljdF9tb2RlIGlzIHNldC4gKi8K IAlpZiAoIWNyZWF0ZV9vcHRpb25zX2FyZV92YWxpZCh0aGQsIGZvcm0sIGNyZWF0ZV9pbmZvKSkg ewotCQllcnJvciA9IEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTjsKLQkJZ290byBjbGVhbnVw OworCQlEQlVHX1JFVFVSTihFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04pOwogCX0KIAogCWlm IChjcmVhdGVfaW5mby0+a2V5X2Jsb2NrX3NpemUpIHsKQEAgLTczOTMsMTYgKzczNzAsMzcgQEAg aGFfaW5ub2Jhc2U6OmNyZWF0ZSgKIAogCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0 aCByZXNlcnZlZCBuYW1lKSBmb3IKIAlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICov Ci0JaWYgKGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLT5rZXlfaW5m bywKKwlpZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCh0aGQsIGZvcm0tPmtleV9p bmZvLAogCQkJCQkgICAgZm9ybS0+cy0+a2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQkJZ290byBj bGVhbnVwOworCQlEQlVHX1JFVFVSTigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FO RF9VU0VSX0RFTklFRF9BQ0NFU1Mobm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhB X0VSUl9HRU5FUklDKTsKIAl9CiAKIAlpZiAoY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhf Q1JFQVRFX1RNUF9UQUJMRSkgewogCQlmbGFnczIgfD0gRElDVF9URjJfVEVNUE9SQVJZOwogCX0K IAorCS8qIEdldCB0aGUgdHJhbnNhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHRo ZCwgb3IgY3JlYXRlIG9uZQorCWlmIG5vdCB5ZXQgY3JlYXRlZCAqLworCisJcGFyZW50X3RyeCA9 IGNoZWNrX3RyeF9leGlzdHModGhkKTsKKworCS8qIEluIGNhc2UgTXlTUUwgY2FsbHMgdGhpcyBp biB0aGUgbWlkZGxlIG9mIGEgU0VMRUNUIHF1ZXJ5LCByZWxlYXNlCisJcG9zc2libGUgYWRhcHRp dmUgaGFzaCBsYXRjaCB0byBhdm9pZCBkZWFkbG9ja3Mgb2YgdGhyZWFkcyAqLworCisJdHJ4X3Nl YXJjaF9sYXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVkKHBhcmVudF90cngpOworCisJdHJ4ID0gaW5u b2Jhc2VfdHJ4X2FsbG9jYXRlKHRoZCk7CisKKwkvKiBMYXRjaCB0aGUgSW5ub0RCIGRhdGEgZGlj dGlvbmFyeSBleGNsdXNpdmVseSBzbyB0aGF0IG5vIGRlYWRsb2NrcworCW9yIGxvY2sgd2FpdHMg Y2FuIGhhcHBlbiBpbiBpdCBkdXJpbmcgYSB0YWJsZSBjcmVhdGUgb3BlcmF0aW9uLgorCURyb3Ag dGFibGUgZXRjLiBkbyB0aGlzIGxhdGNoaW5nIGluIHJvdzBteXNxbC5jLiAqLworCisJcm93X215 c3FsX2xvY2tfZGF0YV9kaWN0aW9uYXJ5KHRyeCk7CisKIAllcnJvciA9IGNyZWF0ZV90YWJsZV9k ZWYodHJ4LCBmb3JtLCBub3JtX25hbWUsCiAJCWNyZWF0ZV9pbmZvLT5vcHRpb25zICYgSEFfTEVY X0NSRUFURV9UTVBfVEFCTEUgPyBuYW1lMiA6IE5VTEwsCiAJCWZsYWdzLCBmbGFnczIpOwpAQCAt NzY3MSwxNCArNzY2OSwxNCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4ID0g aW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHRoZCk7CiAKLQlzcnZfbG93ZXJfY2FzZV90YWJsZV9uYW1l cyA9IGxvd2VyX2Nhc2VfdGFibGVfbmFtZXM7Ci0KIAluYW1lX2xlbiA9IHN0cmxlbihuYW1lKTsK IAogCXV0X2EobmFtZV9sZW4gPCAxMDAwKTsKIAogCS8qIERyb3AgdGhlIHRhYmxlIGluIElubm9E QiAqLwogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25h bWVzOworCiAJZXJyb3IgPSByb3dfZHJvcF90YWJsZV9mb3JfbXlzcWwobm9ybV9uYW1lLCB0cngs CiAJCQkJCSB0aGRfc3FsX2NvbW1hbmQodGhkKQogCQkJCQkgPT0gU1FMQ09NX0RST1BfREIpOwpA QCAtNzc5MCw4ICs3Nzg4LDYgQEAgaW5ub2Jhc2VfcmVuYW1lX3RhYmxlKAogCWNoYXIqCW5vcm1f dG87CiAJY2hhcioJbm9ybV9mcm9tOwogCi0Jc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBs b3dlcl9jYXNlX3RhYmxlX25hbWVzOwotCiAJLy8gTWFnaWMgbnVtYmVyIDY0IGFyYml0cmFyeQog CW5vcm1fdG8gPSAoY2hhciopIG15X21hbGxvYyhzdHJsZW4odG8pICsgNjQsIE1ZRigwKSk7CiAJ bm9ybV9mcm9tID0gKGNoYXIqKSBteV9tYWxsb2Moc3RybGVuKGZyb20pICsgNjQsIE1ZRigwKSk7 CkBAIC03ODA2LDYgKzc4MDIsOCBAQCBpbm5vYmFzZV9yZW5hbWVfdGFibGUoCiAJCXJvd19teXNx bF9sb2NrX2RhdGFfZGljdGlvbmFyeSh0cngpOwogCX0KIAorCXNydl9sb3dlcl9jYXNlX3RhYmxl X25hbWVzID0gbG93ZXJfY2FzZV90YWJsZV9uYW1lczsKKwogCWVycm9yID0gcm93X3JlbmFtZV90 YWJsZV9mb3JfbXlzcWwoCiAJCW5vcm1fZnJvbSwgbm9ybV90bywgdHJ4LCBsb2NrX2FuZF9jb21t aXQpOwogCkBAIC0xMDc5MCw3ICsxMDc4OCw3IEBAIGlubm9iYXNlX2NvbW1pdF9ieV94aWQoCiAK IAlpZiAodHJ4KSB7CiAJCWlubm9iYXNlX2NvbW1pdF9sb3codHJ4KTsKLQorCQl0cnhfZnJlZV9m b3JfYmFja2dyb3VuZCh0cngpOwogCQlyZXR1cm4oWEFfT0spOwogCX0gZWxzZSB7CiAJCXJldHVy bihYQUVSX05PVEEpOwpAQCAtMTA4MTYsNyArMTA4MTQsOSBAQCBpbm5vYmFzZV9yb2xsYmFja19i eV94aWQoCiAJdHJ4ID0gdHJ4X2dldF90cnhfYnlfeGlkKHhpZCk7CiAKIAlpZiAodHJ4KSB7Ci0J CXJldHVybihpbm5vYmFzZV9yb2xsYmFja190cngodHJ4KSk7CisJCWludAlyZXQgPSBpbm5vYmFz ZV9yb2xsYmFja190cngodHJ4KTsKKwkJdHJ4X2ZyZWVfZm9yX2JhY2tncm91bmQodHJ4KTsKKwkJ cmV0dXJuKHJldCk7CiAJfSBlbHNlIHsKIAkJcmV0dXJuKFhBRVJfTk9UQSk7CiAJfQpAQCAtMTE5 OTQsMTcgKzExOTk0LDE3IEBAIHNob3dfaW5ub2RiX3ZhcnMoCiAKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogVGhp cyBmdW5jdGlvbiBjaGVja3MgZWFjaCBpbmRleCBuYW1lIGZvciBhIHRhYmxlIGFnYWluc3QgcmVz ZXJ2ZWQKLXN5c3RlbSBkZWZhdWx0IHByaW1hcnkgaW5kZXggbmFtZSAnR0VOX0NMVVNUX0lOREVY Jy4gSWYgYSBuYW1lIG1hdGNoZXMsCi10aGlzIGZ1bmN0aW9uIHB1c2hlcyBhbiB3YXJuaW5nIG1l c3NhZ2UgdG8gdGhlIGNsaWVudCwgYW5kIHJldHVybnMgdHJ1ZS4gKi8KK3N5c3RlbSBkZWZhdWx0 IHByaW1hcnkgaW5kZXggbmFtZSAnR0VOX0NMVVNUX0lOREVYJy4gSWYgYSBuYW1lCittYXRjaGVz LCB0aGlzIGZ1bmN0aW9uIHB1c2hlcyBhbiB3YXJuaW5nIG1lc3NhZ2UgdG8gdGhlIGNsaWVudCwK K2FuZCByZXR1cm5zIHRydWUuCitAcmV0dXJuIHRydWUgaWYgdGhlIGluZGV4IG5hbWUgbWF0Y2hl cyB0aGUgcmVzZXJ2ZWQgbmFtZSAqLwogZXh0ZXJuICJDIiBVTklWX0lOVEVSTgogYm9vbAogaW5u b2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCgKIC8qPT09PT09PT09PT09PT09PT09PT09PT09 PT09PSovCi0JCQkJCS8qIG91dDogdHJ1ZSBpZiBhbiBpbmRleCBuYW1lCi0JCQkJCW1hdGNoZXMg dGhlIHJlc2VydmVkIG5hbWUgKi8KLQljb25zdCB0cnhfdCoJdHJ4LAkJLyogaW46IElubm9EQiB0 cmFuc2FjdGlvbiBoYW5kbGUgKi8KLQljb25zdCBLRVkqCWtleV9pbmZvLAkvKiBpbjogSW5kZXhl cyB0byBiZSBjcmVhdGVkICovCi0JdWxpbnQJCW51bV9vZl9rZXlzKQkvKiBpbjogTnVtYmVyIG9m IGluZGV4ZXMgdG8KKwlUSEQqCQl0aGQsCQkvKiE8IGluL291dDogTXlTUUwgY29ubmVjdGlvbiAq LworCWNvbnN0IEtFWSoJa2V5X2luZm8sCS8qITwgaW46IEluZGV4ZXMgdG8gYmUgY3JlYXRlZCAq LworCXVsaW50CQludW1fb2Zfa2V5cykJLyohPCBpbjogTnVtYmVyIG9mIGluZGV4ZXMgdG8KIAkJ CQkJYmUgY3JlYXRlZC4gKi8KIHsKIAljb25zdCBLRVkqCWtleTsKQEAgLTEyMDE2LDcgKzEyMDE2 LDcgQEAgaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCgKIAkJaWYgKGlubm9iYXNlX3N0 cmNhc2VjbXAoa2V5LT5uYW1lLAogCQkJCQlpbm5vYmFzZV9pbmRleF9yZXNlcnZlX25hbWUpID09 IDApIHsKIAkJCS8qIFB1c2ggd2FybmluZyB0byBteXNxbCAqLwotCQkJcHVzaF93YXJuaW5nX3By aW50ZigoVEhEKikgdHJ4LT5teXNxbF90aGQsCisJCQlwdXNoX3dhcm5pbmdfcHJpbnRmKHRoZCwK IAkJCQkJICAgIE1ZU1FMX0VSUk9SOjpXQVJOX0xFVkVMX1dBUk4sCiAJCQkJCSAgICBFUl9XUk9O R19OQU1FX0ZPUl9JTkRFWCwKIAkJCQkJICAgICJDYW5ub3QgQ3JlYXRlIEluZGV4IHdpdGggbmFt ZSAiCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9k Yi5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmgJcmV2aWQ6a2V2 aW4ubGV3aXNAb3JhY2xlLmNvbS0yMDExMDQwODE4NDIxNC03dWN5MnBmcDc0dGR1OWR5CisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDExMDQxMTE0NTc0Ny0xNTFvbmlldTJ4NXB4aXZ4CkBAIC0zODgsMTUgKzM4 OCwxNCBAQCBpbm5vYmFzZV90cnhfYWxsb2NhdGUoCiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBlYWNo IGluZGV4IG5hbWUgZm9yIGEgdGFibGUgYWdhaW5zdCByZXNlcnZlZAogc3lzdGVtIGRlZmF1bHQg cHJpbWFyeSBpbmRleCBuYW1lICdHRU5fQ0xVU1RfSU5ERVgnLiBJZiBhIG5hbWUKIG1hdGNoZXMs IHRoaXMgZnVuY3Rpb24gcHVzaGVzIGFuIHdhcm5pbmcgbWVzc2FnZSB0byB0aGUgY2xpZW50LAot YW5kIHJldHVybnMgdHJ1ZS4gKi8KK2FuZCByZXR1cm5zIHRydWUuCitAcmV0dXJuIHRydWUgaWYg dGhlIGluZGV4IG5hbWUgbWF0Y2hlcyB0aGUgcmVzZXJ2ZWQgbmFtZSAqLwogZXh0ZXJuICJDIgog Ym9vbAogaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCgKIC8qPT09PT09PT09PT09PT09 PT09PT09PT09PT09PSovCi0JCQkJCS8qIG91dDogdHJ1ZSBpZiB0aGUgaW5kZXggbmFtZQotCQkJ CQltYXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCi0JY29uc3QgdHJ4X3QqCXRyeCwJCS8qIGlu OiBJbm5vREIgdHJhbnNhY3Rpb24gaGFuZGxlICovCi0JY29uc3QgS0VZKglrZXlfaW5mbywJLyog aW46IEluZGV4ZXMgdG8gYmUgY3JlYXRlZCAqLwotCXVsaW50CQludW1fb2Zfa2V5cyk7CS8qIGlu OiBOdW1iZXIgb2YgaW5kZXhlcyB0bworCVRIRCoJCXRoZCwJCS8qITwgaW4vb3V0OiBNeVNRTCBj b25uZWN0aW9uICovCisJY29uc3QgS0VZKglrZXlfaW5mbywJLyohPCBpbjogSW5kZXhlcyB0byBi ZSBjcmVhdGVkICovCisJdWxpbnQJCW51bV9vZl9rZXlzKTsJLyohPCBpbjogTnVtYmVyIG9mIGlu ZGV4ZXMgdG8KIAkJCQkJYmUgY3JlYXRlZC4gKi8KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29t LTIwMTEwNDA4MTg0MjE0LTd1Y3kycGZwNzR0ZHU5ZHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9o YW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MTA0MTExNDU3NDctMTUxb25pZXUyeDVweGl2eApAQCAtNjI5LDIxICs2MjksMTUgQEAgaW5ub2Jh c2VfYWRkX2luZGV4X2NsZWFudXAoCiAvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KIAlyb3df cHJlYnVpbHRfdCoJcHJlYnVpbHQsCQkvKiE8IGluL291dDogcHJlYnVpbHQgKi8KIAl0cnhfdCoJ CXRyeCwJCQkvKiE8IGluL291dDogdHJhbnNhY3Rpb24gKi8KLQlkaWN0X3RhYmxlX3QqCXRhYmxl LAkJCS8qITwgaW4vb3V0OiB0YWJsZSBvbiB3aGljaAorCWRpY3RfdGFibGVfdCoJdGFibGUpCQkJ LyohPCBpbi9vdXQ6IHRhYmxlIG9uIHdoaWNoCiAJCQkJCQl0aGUgaW5kZXhlcyB3ZXJlIGdvaW5n IHRvIGJlCiAJCQkJCQljcmVhdGVkICovCi0JbWVtX2hlYXBfdCoJaGVhcCkJCQkvKiE8IGluL293 bjogaGVhcCB0aGF0IHdhcwotCQkJCQkJZ29pbmcgdG8gYmUgdXNlZCBmb3IgdGhlIGluZGV4Ci0J CQkJCQljcmVhdGlvbiAqLwogewotCW1lbV9oZWFwX2ZyZWUoaGVhcCk7Ci0KIAl0cnhfcm9sbGJh Y2tfdG9fc2F2ZXBvaW50KHRyeCwgTlVMTCk7CiAKIAl1dF9hKHRyeCAhPSBwcmVidWlsdC0+dHJ4 KTsKIAogCXRyeF9mcmVlX2Zvcl9teXNxbCh0cngpOwotCXRyeCA9IE5VTEw7CiAKIAl0cnhfY29t bWl0X2Zvcl9teXNxbChwcmVidWlsdC0+dHJ4KTsKIApAQCAtNjUzLDcgKzY0Nyw3IEBAIGlubm9i YXNlX2FkZF9pbmRleF9jbGVhbnVwKAogCiAJCWRpY3RfbXV0ZXhfZW50ZXJfZm9yX215c3FsKCk7 CiAKLQkJLyogTm90ZTogVGhpcyBjaGVjayBleGx1ZGVzIHRoZSBzeXN0ZW0gdGFibGVzLiBIb3dl dmVyLCB3ZQorCQkvKiBOb3RlOiBUaGlzIGNoZWNrIGV4Y2x1ZGVzIHRoZSBzeXN0ZW0gdGFibGVz LiBIb3dldmVyLCB3ZQogCQlzaG91bGQgYmUgc2FmZSBiZWNhdXNlIHVzZXJzIGNhbm5vdCBhZGQg aW5kZXhlcyB0byBzeXN0ZW0KIAkgICAgICAgIHRhYmxlcy4gKi8KIApAQCAtNzA2LDQzICs3MDAs MzkgQEAgaGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgKIAogCXVwZGF0ZV90aGQoKTsKIAotCWhlYXAg PSBtZW1faGVhcF9jcmVhdGUoMTAyNCk7Ci0KIAkvKiBJbiBjYXNlIE15U1FMIGNhbGxzIHRoaXMg aW4gdGhlIG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwgcmVsZWFzZQogCXBvc3NpYmxlIGFkYXB0 aXZlIGhhc2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tzIG9mIHRocmVhZHMuICovCiAJdHJ4X3Nl YXJjaF9sYXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVkKHByZWJ1aWx0LT50cngpOwotCXRyeF9zdGFy dF9pZl9ub3Rfc3RhcnRlZF94YShwcmVidWlsdC0+dHJ4KTsKIAotCS8qIENyZWF0ZSBhIGJhY2tn cm91bmQgdHJhbnNhY3Rpb24gZm9yIHRoZSBvcGVyYXRpb25zIG9uCi0JdGhlIGRhdGEgZGljdGlv bmFyeSB0YWJsZXMuICovCi0JdHJ4ID0gaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHVzZXJfdGhkKTsK LQl0cnhfc3RhcnRfaWZfbm90X3N0YXJ0ZWRfeGEodHJ4KTsKKwkvKiBDaGVjayBpZiB0aGUgaW5k ZXggbmFtZSBpcyByZXNlcnZlZC4gKi8KKwlpZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNl cnZlZCh1c2VyX3RoZCwga2V5X2luZm8sIG51bV9vZl9rZXlzKSkgeworCQlEQlVHX1JFVFVSTigt MSk7CisJfQogCiAJaW5kZXhlZF90YWJsZSA9IGRpY3RfdGFibGVfb3Blbl9vbl9uYW1lKHByZWJ1 aWx0LT50YWJsZS0+bmFtZSwgRkFMU0UpOwogCiAJaW5ub2RiX3RhYmxlID0gaW5kZXhlZF90YWJs ZTsKIAogCWlmIChVTklWX1VOTElLRUxZKCFpbm5vZGJfdGFibGUpKSB7Ci0JCWlubm9iYXNlX2Fk ZF9pbmRleF9jbGVhbnVwKHByZWJ1aWx0LCB0cngsIE5VTEwsIGhlYXApOwotCiAJCURCVUdfUkVU VVJOKEhBX0VSUl9OT19TVUNIX1RBQkxFKTsKIAl9CiAKLQkvKiBDaGVjayBpZiB0aGUgaW5kZXgg bmFtZSBpcyByZXNlcnZlZC4gKi8KLQlpZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZl ZCh0cngsIGtleV9pbmZvLCBudW1fb2Zfa2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQl9IGVsc2Ug ewotCQkvKiBDaGVjayB0aGF0IGluZGV4IGtleXMgYXJlIHNlbnNpYmxlICovCi0JCWVycm9yID0g aW5ub2Jhc2VfY2hlY2tfaW5kZXhfa2V5cyhrZXlfaW5mbywgbnVtX29mX2tleXMsCi0JCQkJCQkg IGlubm9kYl90YWJsZSk7Ci0JfQorCS8qIENoZWNrIHRoYXQgaW5kZXgga2V5cyBhcmUgc2Vuc2li bGUgKi8KKwllcnJvciA9IGlubm9iYXNlX2NoZWNrX2luZGV4X2tleXMoa2V5X2luZm8sIG51bV9v Zl9rZXlzLCBpbm5vZGJfdGFibGUpOwogCiAJaWYgKFVOSVZfVU5MSUtFTFkoZXJyb3IpKSB7Ci0J CWlubm9iYXNlX2FkZF9pbmRleF9jbGVhbnVwKHByZWJ1aWx0LCB0cngsIGlubm9kYl90YWJsZSwg aGVhcCk7Ci0KKwkJZGljdF90YWJsZV9jbG9zZShpbm5vZGJfdGFibGUsIEZBTFNFKTsKIAkJREJV R19SRVRVUk4oZXJyb3IpOwogCX0KIAorCWhlYXAgPSBtZW1faGVhcF9jcmVhdGUoMTAyNCk7CisJ dHJ4X3N0YXJ0X2lmX25vdF9zdGFydGVkKHByZWJ1aWx0LT50cngpOworCisJLyogQ3JlYXRlIGEg YmFja2dyb3VuZCB0cmFuc2FjdGlvbiBmb3IgdGhlIG9wZXJhdGlvbnMgb24KKwl0aGUgZGF0YSBk aWN0aW9uYXJ5IHRhYmxlcy4gKi8KKwl0cnggPSBpbm5vYmFzZV90cnhfYWxsb2NhdGUodXNlcl90 aGQpOworCXRyeF9zdGFydF9pZl9ub3Rfc3RhcnRlZCh0cngpOworCiAJLyogV2UgZG9uJ3Qgd2Fu dCB0aGlzIHRhYmxlIHRvIGJlIGV2aWN0ZWQgZnJvbSB0aGUgY2FjaGUgd2hpbGUgd2UKIAlhcmUg YnVpbGRpbmcgYW4gaW5kZXggb24gaXQuIEFub3RoZXIgaXNzdWUgaXMgdGhhdCB3aGlsZSB3ZSBh cmUKIAlidWlsZGluZyB0aGUgaW5kZXggdGhpcyB0YWJsZSBjb3VsZCBiZSByZWZlcnJlZCB0byBp biBhIGZvcmVpZ24KQEAgLTgzMCw5ICs4MjAsMTAgQEAgaGFfaW5ub2Jhc2U6OmFkZF9pbmRleCgK IAkJCXV0X2QoZGljdF90YWJsZV9jaGVja19mb3JfZHVwX2luZGV4ZXMoaW5ub2RiX3RhYmxlLAog CQkJCQkJCSAgICAgIEZBTFNFKSk7CiAJCQlyb3dfbXlzcWxfdW5sb2NrX2RhdGFfZGljdGlvbmFy eSh0cngpOworCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKIAogCQkJaW5ub2Jhc2VfYWRkX2luZGV4 X2NsZWFudXAoCi0JCQkJcHJlYnVpbHQsIHRyeCwgaW5ub2RiX3RhYmxlLCBoZWFwKTsKKwkJCQlw cmVidWlsdCwgdHJ4LCBpbm5vZGJfdGFibGUpOwogCiAJCQlEQlVHX1JFVFVSTihlcnJvcik7CiAJ CX0KQEAgLTkyOSwxMSArOTIwLDExIEBAIGVycm9yX2hhbmRsaW5nOgogCQllcnJvciA9IHJvd19t ZXJnZV9yZW5hbWVfdGFibGVzKGlubm9kYl90YWJsZSwgaW5kZXhlZF90YWJsZSwKIAkJCQkJCXRt cF9uYW1lLCB0cngpOwogCi0JCWlmIChlcnJvciAhPSBEQl9TVUNDRVNTKSB7CisJCWRpY3RfdGFi bGVfY2xvc2UoaW5ub2RiX3RhYmxlLCBkaWN0X2xvY2tlZCk7CisJCXV0X2EoaW5ub2RiX3RhYmxl LT5uX3JlZl9jb3VudCA9PSAxKTsKIAotCQkJZGljdF90YWJsZV9jbG9zZShpbm5vZGJfdGFibGUs IGRpY3RfbG9ja2VkKTsKKwkJaWYgKGVycm9yICE9IERCX1NVQ0NFU1MpIHsKIAotCQkJdXRfYShp bm5vZGJfdGFibGUtPm5fcmVmX2NvdW50ID09IDEpOwogCQkJdXRfYShpbmRleGVkX3RhYmxlLT5u X3JlZl9jb3VudCA9PSAwKTsKIAogCQkJcm93X21lcmdlX2Ryb3BfdGFibGUodHJ4LCBpbmRleGVk X3RhYmxlKTsKQEAgLTk1MywxMCArOTQ0LDYgQEAgZXJyb3JfaGFuZGxpbmc6CiAKIAkJdHJ4X2Nv bW1pdF9mb3JfbXlzcWwocHJlYnVpbHQtPnRyeCk7CiAKLQkJZGljdF90YWJsZV9jbG9zZShpbm5v ZGJfdGFibGUsIGRpY3RfbG9ja2VkKTsKLQotCQl1dF9hKGlubm9kYl90YWJsZS0+bl9yZWZfY291 bnQgPT0gMSk7Ci0KIAkJcm93X3ByZWJ1aWx0X2ZyZWUocHJlYnVpbHQsIFRSVUUpOwogCiAJCXV0 X2EoaW5ub2RiX3RhYmxlLT5uX3JlZl9jb3VudCA9PSAwKTsKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvdHJ4MHN5cy5oCXJldmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAxMTA0MDgx ODQyMTQtN3VjeTJwZnA3NHRkdTlkeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4 MHN5cy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNDExMTQ1NzQ3LTE1MW9u aWV1Mng1cHhpdngKQEAgLTQ5NCw3ICs0OTQsNyBAQCB0cnhfc3lzX2dldF9uX3RyeCh2b2lkKTsK IC8qPT09PT09PT09PT09PT09PT09PSovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLUNoZWNrIGlmIHRoZXJl IGFyZSBhbnkgYWN0aXZlIHRyYW5zYWN0aW9ucy4KK0NoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYWN0 aXZlIChub24tcHJlcGFyZWQpIHRyYW5zYWN0aW9ucy4KIEByZXR1cm4gdG90YWwgbnVtYmVyIG9m IGFjdGl2ZSB0cmFuc2FjdGlvbnMgb3IgMCBpZiBub25lICovCiBVTklWX0lOVEVSTgogdWxpbnQK QEAgLTY3Nyw2ICs2NzcsMTAgQEAgc3RydWN0IHRyeF9zeXNfc3RydWN0ewogCXJ3X2xvY2tfdAls b2NrOwkJLyohPCByZWFkLXdyaXRlIGxvY2sgcHJvdGVjdGluZyBtb3N0CiAJCQkJCWZpZWxkcyBp biB0aGlzIHN0cnVjdHVyZSBleGNlcHQgd2hlbgogCQkJCQlub3RlZCBvdGhlcndpc2UgKi8KKwl1 bGludAkJbl9teXNxbF90cng7CS8qITwgTnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBjdXJyZW50bHkK KwkJCQkJYWxsb2NhdGVkIGZvciBNeVNRTCAqLworCXVsaW50CQluX3ByZXBhcmVkX3RyeDsJLyoh PCBOdW1iZXIgb2YgdHJhbnNhY3Rpb25zIGN1cnJlbnRseQorCQkJCQlpbiB0aGUgWEEgUFJFUEFS RUQgc3RhdGUgKi8KIAl0cnhfaWRfdAltYXhfdHJ4X2lkOwkvKiE8IFRoZSBzbWFsbGVzdCBudW1i ZXIgbm90IHlldAogCQkJCQlhc3NpZ25lZCBhcyBhIHRyYW5zYWN0aW9uIGlkIG9yCiAJCQkJCXRy YW5zYWN0aW9uIG51bWJlciAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS90cngwdHJ4LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdHJ4 LmgJcmV2aWQ6a2V2aW4ubGV3aXNAb3JhY2xlLmNvbS0yMDExMDQwODE4NDIxNC03dWN5MnBmcDc0 dGR1OWR5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdHJ4LmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MTExNDU3NDctMTUxb25pZXUyeDVweGl2eApAQCAt NDIsMTAgKzQyLDYgQEAgQ3JlYXRlZCAzLzI2LzE5OTYgSGVpa2tpIFR1dXJpCiAvKiogRHVtbXkg c2Vzc2lvbiB1c2VkIGN1cnJlbnRseSBpbiBNeVNRTCBpbnRlcmZhY2UgKi8KIGV4dGVybiBzZXNz X3QqCXRyeF9kdW1teV9zZXNzOwogCi0vKiogTnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBjdXJyZW50 bHkgYWxsb2NhdGVkIGZvciBNeVNRTDogcHJvdGVjdGVkIGJ5Ci10cnhfc3lzLT5sb2NrICovCi1l eHRlcm4gdWxpbnQJdHJ4X25fbXlzcWxfdHJhbnNhY3Rpb25zOwotCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoq CiBSZWxlYXNlcyB0aGUgc2VhcmNoIGxhdGNoIGlmIHRyeCBoYXMgcmVzZXJ2ZWQgaXQuICovCiBV TklWX0lOVEVSTgpAQCAtOTMsMTggKzg5LDI2IEBAIHRyeF90KgogdHJ4X2FsbG9jYXRlX2Zvcl9i YWNrZ3JvdW5kKHZvaWQpOwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCi1GcmVlcyBhIHRyYW5zYWN0aW9uIG9iamVjdCBmb3IgTXlTUUwuICovCitG cmVlcyBhIHRyYW5zYWN0aW9uIG9iamVjdCBvZiBhIGJhY2tncm91bmQgb3BlcmF0aW9uIG9mIHRo ZSBtYXN0ZXIgdGhyZWFkLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKLXRyeF9mcmVlX2Zvcl9teXNx bCgKLS8qPT09PT09PT09PT09PT09Ki8KK3RyeF9mcmVlX2Zvcl9iYWNrZ3JvdW5kKAorLyo9PT09 PT09PT09PT09PT09PT09PSovCiAJdHJ4X3QqCXRyeCk7CS8qITwgaW4sIG93bjogdHJ4IG9iamVj dCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgotRnJlZXMgYSB0cmFuc2FjdGlvbiBvYmplY3Qgb2YgYSBi YWNrZ3JvdW5kIG9wZXJhdGlvbiBvZiB0aGUgbWFzdGVyIHRocmVhZC4gKi8KK0F0IHNodXRkb3du LCBmcmVlcyBhIHRyYW5zYWN0aW9uIG9iamVjdCB0aGF0IGlzIGluIHRoZSBQUkVQQVJFRCBzdGF0 ZS4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCi10cnhfZnJlZV9mb3JfYmFja2dyb3VuZCgKLS8qPT09 PT09PT09PT09PT09PT09PT0qLwordHJ4X2ZyZWVfcHJlcGFyZWQoCisvKj09PT09PT09PT09PT09 Ki8KKwl0cnhfdCoJdHJ4KQkvKiE8IGluLCBvd246IHRyeCBvYmplY3QgKi8KKwlVTklWX0NPTEQg X19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorRnJlZXMgYSB0cmFu c2FjdGlvbiBvYmplY3QgZm9yIE15U1FMLiAqLworVU5JVl9JTlRFUk4KK3ZvaWQKK3RyeF9mcmVl X2Zvcl9teXNxbCgKKy8qPT09PT09PT09PT09PT09Ki8KIAl0cnhfdCoJdHJ4KTsJLyohPCBpbiwg b3duOiB0cnggb2JqZWN0ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENyZWF0ZXMgdHJ4IG9iamVjdHMgZm9y IHRyYW5zYWN0aW9ucyBhbmQgaW5pdGlhbGl6ZXMgdGhlIHRyeCBsaXN0IG9mCkBAIC01NDUsNyAr NTQ5LDcgQEAgc3RydWN0IHRyeF9zdHJ1Y3R7CiAJCQkJCWFuZCBBQ1RJVkUtPlBSRVBBUkVELT5D T01NSVRURUQKIAkJCQkJYXJlIHBvc3NpYmxlIHdoZW4gdHJ4LT5pbl90cnhfbGlzdC4KIAkJCQkJ VGhlIHRyYW5zaXRpb24gQUNUSVZFLT5QUkVQQVJFRCBpcwotCQkJCQlub3QgcHJvdGVjdGVkIGJ5 IGFueSBtdXRleC4KKwkJCQkJcHJvdGVjdGVkIGJ5IHRyeF9zeXMtPmxvY2suCiAJCQkJCVRoZSB0 cmFuc2l0aW9ucyBBQ1RJVkUtPkNPTU1JVFRFRAogCQkJCQlhbmQgUFJFUEFSRUQtPkNPTU1JVFRF RCBhcmUgcHJvdGVjdGVkCiAJCQkJCWJ5IGxvY2tfc3lzLT5tdXRleCBhbmQgdHJ4LT5tdXRleC4K Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHVuZG8uaCcK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB1bmRvLmgJcmV2aWQ6a2V2aW4ubGV3 aXNAb3JhY2xlLmNvbS0yMDExMDQwODE4NDIxNC03dWN5MnBmcDc0dGR1OWR5CisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwNDExMTQ1NzQ3LTE1MW9uaWV1Mng1cHhpdngKQEAgLTI5Niw2ICsyOTYsMTUgQEAg dm9pZAogdHJ4X3VuZG9faW5zZXJ0X2NsZWFudXAoCiAvKj09PT09PT09PT09PT09PT09PT09Ki8K IAl0cnhfdCoJdHJ4KTsJLyohPCBpbjogdHJhbnNhY3Rpb24gaGFuZGxlICovCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKK0F0IHNodXRkb3duLCBmcmVlcyB0aGUgdW5kbyBsb2dzIG9mIGEgUFJFUEFSRUQg dHJhbnNhY3Rpb24uICovCitVTklWX0lOVEVSTgordm9pZAordHJ4X3VuZG9fZnJlZV9wcmVwYXJl ZCgKKy8qPT09PT09PT09PT09PT09PT09PSovCisJdHJ4X3QqCXRyeCkJLyohPCBpbi9vdXQ6IFBS RVBBUkVEIHRyYW5zYWN0aW9uICovCisJVU5JVl9DT0xEIF9fYXR0cmlidXRlX18oKG5vbm51bGwp KTsKICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFBhcnNlcyB0aGUgcmVk byBsb2cgZW50cnkgb2YgYW4gdW5kbyBsb2cgcGFnZSBpbml0aWFsaXphdGlvbi4KCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2xvY2svbG9jazBsb2NrLmMnCi0tLSBhL3N0b3Jh Z2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suYwlyZXZpZDprZXZpbi5sZXdpc0BvcmFjbGUuY29t LTIwMTEwNDA4MTg0MjE0LTd1Y3kycGZwNzR0ZHU5ZHkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9s b2NrL2xvY2swbG9jay5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNDExMTQ1 NzQ3LTE1MW9uaWV1Mng1cHhpdngKQEAgLTYyMjYsMTUgKzYyMjYsMjAgQEAgbG9ja190cnhfcmVs ZWFzZV9sb2NrcygKIC8qPT09PT09PT09PT09PT09PT09PSovCiAJdHJ4X3QqCXRyeCkJLyohPCBp bi9vdXQ6IHRyYW5zYWN0aW9uICovCiB7CisJaWYgKFVOSVZfVU5MSUtFTFkodHJ4X3N0YXRlX2Vx KHRyeCwgVFJYX1NUQVRFX1BSRVBBUkVEKSkpIHsKKwkJcndfbG9ja194X2xvY2soJnRyeF9zeXMt PmxvY2spOworCQl1dF9hKHRyeF9zeXMtPm5fcHJlcGFyZWRfdHJ4ID4gMCk7CisJCXRyeF9zeXMt Pm5fcHJlcGFyZWRfdHJ4LS07CisJCXJ3X2xvY2tfeF91bmxvY2soJnRyeF9zeXMtPmxvY2spOwor CX0gZWxzZSB7CisJCXV0X2FkKHRyeF9zdGF0ZV9lcSh0cngsIFRSWF9TVEFURV9BQ1RJVkUpKTsK Kwl9CisKIAkvKiBUaGUgdHJhbnNpdGlvbiBvZiB0cngtPnN0YXRlIHRvIFRSWF9TVEFURV9DT01N SVRURURfSU5fTUVNT1JZCiAJaXMgcHJvdGVjdGVkIGJ5IGJvdGggdGhlIGxvY2tfc3lzLT5tdXRl eCBhbmQgdGhlIHRyeC0+bXV0ZXguICovCiAJbG9ja19tdXRleF9lbnRlcigpOwogCXRyeF9tdXRl eF9lbnRlcih0cngpOwogCi0JdXRfYWQodHJ4LT5zdGF0ZSA9PSBUUlhfU1RBVEVfQUNUSVZFCi0J ICAgICAgfHwgdHJ4LT5zdGF0ZSA9PSBUUlhfU1RBVEVfUFJFUEFSRUQpOwotCXV0X2FkKHRyeC0+ aW5fdHJ4X2xpc3QpOwotCiAJLyogVGhlIGZvbGxvd2luZyBhc3NpZ25tZW50IG1ha2VzIHRoZSB0 cmFuc2FjdGlvbiBjb21taXR0ZWQgaW4gbWVtb3J5CiAJYW5kIG1ha2VzIGl0cyBjaGFuZ2VzIHRv IGRhdGEgdmlzaWJsZSB0byBvdGhlciB0cmFuc2FjdGlvbnMuCiAJTk9URSB0aGF0IHRoZXJlIGlz IGEgc21hbGwgZGlzY3JlcGFuY3kgZnJvbSB0aGUgc3RyaWN0IGZvcm1hbAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzBsb2cuYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9sb2cvbG9nMGxvZy5jCXJldmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAxMTA0MDgx ODQyMTQtN3VjeTJwZnA3NHRkdTlkeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9n LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MTExNDU3NDctMTUxb25pZXUy eDVweGl2eApAQCAtMzE0MSw5ICszMTQxLDEwIEBAIGxvb3A6CiAJCWdvdG8gbG9vcDsKIAl9CiAK LQkvKiBDaGVjayB0aGF0IHRoZXJlIGFyZSBubyBsb25nZXIgdHJhbnNhY3Rpb25zLiBXZSBuZWVk IHRoaXMgd2FpdCBldmVuCi0JZm9yIHRoZSAndmVyeSBmYXN0JyBzaHV0ZG93biwgYmVjYXVzZSB0 aGUgSW5ub0RCIGxheWVyIG1heSBoYXZlCi0JY29tbWl0dGVkIG9yIHByZXBhcmVkIHRyYW5zYWN0 aW9ucyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBsb3NlIHRoZW0uICovCisJLyogQ2hlY2sgdGhhdCB0 aGVyZSBhcmUgbm8gbG9uZ2VyIHRyYW5zYWN0aW9ucywgZXhjZXB0IGZvcgorCVBSRVBBUkVEIG9u ZXMuIFdlIG5lZWQgdGhpcyB3YWl0IGV2ZW4gZm9yIHRoZSAndmVyeSBmYXN0JworCXNodXRkb3du LCBiZWNhdXNlIHRoZSBJbm5vREIgbGF5ZXIgbWF5IGhhdmUgY29tbWl0dGVkIG9yCisJcHJlcGFy ZWQgdHJhbnNhY3Rpb25zIGFuZCB3ZSBkb24ndCB3YW50IHRvIGxvc2UgdGhlbS4gKi8KIAogCXRv dGFsX3RyeCA9IHRyeF9zeXNfYW55X2FjdGl2ZV90cmFuc2FjdGlvbnMoKTsKIApAQCAtMzE3Nyw5 ICszMTc4LDEwIEBAIGxvb3A6CiAKIAkJCXN3aXRjaCAoYWN0aXZlX3RoZCkgewogCQkJY2FzZSBT UlZfTk9ORToKLQkJCQkvKiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmVjYXVzZSB3ZSd2ZSBhbHJl YWR5Ci0JCQkJY2hlY2tlZCBmb3IgdGhpcyBjYXNlIGJlZm9yZSBlbnRlcmluZyB0aGUgaWYoKS4K LQkJCQlXZSBoYW5kbGUgaXQgaGVyZSB0byBhdm9pZCBhIGNvbXBpbGVyIHdvcm5pbmcuICovCisJ CQkJLyogVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2Ugd2UndmUKKwkJCQlhbHJlYWR5IGNo ZWNrZWQgZm9yIHRoaXMgY2FzZSBiZWZvcmUKKwkJCQllbnRlcmluZyB0aGUgaWYoKS4gIFdlIGhh bmRsZSBpdCBoZXJlCisJCQkJdG8gYXZvaWQgYSBjb21waWxlciB3YXJuaW5nLiAqLwogCQkJCXV0 X2Vycm9yOwogCQkJY2FzZSBTUlZfV09SS0VSOgogCQkJCXRocmVhZF90eXBlID0gIndvcmtlciB0 aHJlYWRzIjsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwc3lz LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDBzeXMuYwlyZXZpZDprZXZpbi5sZXdp c0BvcmFjbGUuY29tLTIwMTEwNDA4MTg0MjE0LTd1Y3kycGZwNzR0ZHU5ZHkKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS90cngvdHJ4MHN5cy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTEwNDExMTQ1NzQ3LTE1MW9uaWV1Mng1cHhpdngKQEAgLTM3LDYgKzM3LDcgQEAgQ3JlYXRlZCAz LzI2LzE5OTYgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAidHJ4MHJzZWcuaCIKICNpbmNsdWRlICJ0 cngwdW5kby5oIgogI2luY2x1ZGUgInNydjBzcnYuaCIKKyNpbmNsdWRlICJzcnYwc3RhcnQuaCIK ICNpbmNsdWRlICJ0cngwcHVyZ2UuaCIKICNpbmNsdWRlICJsb2cwbG9nLmgiCiAjaW5jbHVkZSAi bG9nMHJlY3YuaCIKQEAgLTE2MzQsOSArMTYzNSwxMSBAQCB0cnhfc3lzX2Nsb3NlKHZvaWQpCiAv Kj09PT09PT09PT09PT09PSovCiB7CiAJdWxpbnQJCWk7CisJdHJ4X3QqCQl0cng7CiAJcmVhZF92 aWV3X3QqCXZpZXc7CiAKIAl1dF9hZCh0cnhfc3lzICE9IE5VTEwpOworCXV0X2FkKHNydl9zaHV0 ZG93bl9zdGF0ZSA9PSBTUlZfU0hVVERPV05fRVhJVF9USFJFQURTKTsKIAogCS8qIENoZWNrIHRo YXQgYWxsIHJlYWQgdmlld3MgYXJlIGNsb3NlZCBleGNlcHQgcmVhZCB2aWV3IG93bmVkCiAJYnkg YSBwdXJnZS4gKi8KQEAgLTE2NzEsNiArMTY3NCwxNCBAQCB0cnhfc3lzX2Nsb3NlKHZvaWQpCiAJ dHJ4X2RvdWJsZXdyaXRlID0gTlVMTDsKIAogCXJ3X2xvY2tfeF9sb2NrKCZ0cnhfc3lzLT5sb2Nr KTsKKworCS8qIE9ubHkgcHJlcGFyZWQgdHJhbnNhY3Rpb25zIG1heSBiZSBsZWZ0IGluIHRoZSBz eXN0ZW0uIEZyZWUgdGhlbS4gKi8KKwl1dF9hKFVUX0xJU1RfR0VUX0xFTih0cnhfc3lzLT50cnhf bGlzdCkgPT0gdHJ4X3N5cy0+bl9wcmVwYXJlZF90cngpOworCisJd2hpbGUgKCh0cnggPSBVVF9M SVNUX0dFVF9GSVJTVCh0cnhfc3lzLT50cnhfbGlzdCkpICE9IE5VTEwpIHsKKwkJdHJ4X2ZyZWVf cHJlcGFyZWQodHJ4KTsKKwl9CisKIAltdXRleF9mcmVlKCZ0cnhfc3lzLT5yZWFkX3ZpZXdfbXV0 ZXgpOwogCiAJLyogVGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSB0cmFuc2FjdGlvbnMuICovCkBA IC0xNzEzLDcgKzE3MjQsNyBAQCB0cnhfc3lzX2Nsb3NlKHZvaWQpCiAjZW5kaWYgLyogIVVOSVZf SE9UQkFDS1VQICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLUNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYWN0 aXZlIHRyYW5zYWN0aW9ucy4KK0NoZWNrIGlmIHRoZXJlIGFyZSBhbnkgYWN0aXZlIChub24tcHJl cGFyZWQpIHRyYW5zYWN0aW9ucy4KIEByZXR1cm4gdG90YWwgbnVtYmVyIG9mIGFjdGl2ZSB0cmFu c2FjdGlvbnMgb3IgMCBpZiBub25lICovCiBVTklWX0lOVEVSTgogdWxpbnQKQEAgLTE3MjUsNyAr MTczNiw5IEBAIHRyeF9zeXNfYW55X2FjdGl2ZV90cmFuc2FjdGlvbnModm9pZCkKIAlyd19sb2Nr X3NfbG9jaygmdHJ4X3N5cy0+bG9jayk7CiAKIAl0b3RhbF90cnggPSBVVF9MSVNUX0dFVF9MRU4o dHJ4X3N5cy0+dHJ4X2xpc3QpCi0JICAgICAgIAkgICsgdHJ4X25fbXlzcWxfdHJhbnNhY3Rpb25z OworCQkrIHRyeF9zeXMtPm5fbXlzcWxfdHJ4OworCXV0X2EodG90YWxfdHJ4ID49IHRyeF9zeXMt Pm5fcHJlcGFyZWRfdHJ4KTsKKwl0b3RhbF90cnggLT0gdHJ4X3N5cy0+bl9wcmVwYXJlZF90cng7 CiAKIAlyd19sb2NrX3NfdW5sb2NrKCZ0cnhfc3lzLT5sb2NrKTsKIAoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB0cnguYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS90cngvdHJ4MHRyeC5jCXJldmlkOmtldmluLmxld2lzQG9yYWNsZS5jb20tMjAxMTA0MDgxODQy MTQtN3VjeTJwZnA3NHRkdTlkeQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdHJ4LmMJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MTExNDU3NDctMTUxb25pZXUyeDVw eGl2eApAQCAtNDksMTAgKzQ5LDYgQEAgQ3JlYXRlZCAzLzI2LzE5OTYgSGVpa2tpIFR1dXJpCiAv KiogRHVtbXkgc2Vzc2lvbiB1c2VkIGN1cnJlbnRseSBpbiBNeVNRTCBpbnRlcmZhY2UgKi8KIFVO SVZfSU5URVJOIHNlc3NfdCoJCXRyeF9kdW1teV9zZXNzID0gTlVMTDsKIAotLyoqIE51bWJlciBv ZiB0cmFuc2FjdGlvbnMgY3VycmVudGx5IGFsbG9jYXRlZCBmb3IgTXlTUUw6IHByb3RlY3RlZCBi eQotdHJ4X3N5cy0+bG9jayAqLwotVU5JVl9JTlRFUk4gdWxpbnQJCXRyeF9uX215c3FsX3RyYW5z YWN0aW9ucyA9IDA7Ci0KICNpZmRlZiBVTklWX1BGU19NVVRFWAogLyogS2V5IHRvIHJlZ2lzdGVy IHRoZSBtdXRleCB3aXRoIHBlcmZvcm1hbmNlIHNjaGVtYSAqLwogVU5JVl9JTlRFUk4gbXlzcWxf cGZzX2tleV90CXRyeF9tdXRleF9rZXk7CkBAIC0xNzEsNyArMTY3LDcgQEAgdHJ4X2FsbG9jYXRl X2Zvcl9teXNxbCh2b2lkKQogCiAJcndfbG9ja194X2xvY2soJnRyeF9zeXMtPmxvY2spOwogCi0J Kyt0cnhfbl9teXNxbF90cmFuc2FjdGlvbnM7CisJdHJ4X3N5cy0+bl9teXNxbF90cngrKzsKIAog CXV0X2QodHJ4LT5pbl9teXNxbF90cnhfbGlzdCA9IFRSVUUpOwogCVVUX0xJU1RfQUREX0ZJUlNU KG15c3FsX3RyeF9saXN0LCB0cnhfc3lzLT5teXNxbF90cnhfbGlzdCwgdHJ4KTsKQEAgLTIzMiw4 ICsyMjgsNiBAQCB0cnhfZnJlZSgKIAkJcHV0YygnXG4nLCBzdGRlcnIpOwogCX0KIAotCXRyeF9t dXRleF9lbnRlcih0cngpOwotCiAJdXRfYSh0cngtPm1hZ2ljX24gPT0gVFJYX01BR0lDX04pOwog CiAJdHJ4LT5tYWdpY19uID0gMTExMTIyMjI7CkBAIC0yNjYsMTYgKzI2MCwxMiBAQCB0cnhfZnJl ZSgKIAkJbWVtX2hlYXBfZnJlZSh0cngtPmdsb2JhbF9yZWFkX3ZpZXdfaGVhcCk7CiAJfQogCi0J dHJ4LT5nbG9iYWxfcmVhZF92aWV3ID0gTlVMTDsKLQogCXV0X2EodHJ4LT5yZWFkX3ZpZXcgPT0g TlVMTCk7CiAKIAl1dF9hKGliX3ZlY3Rvcl9pc19lbXB0eSh0cngtPmF1dG9pbmNfbG9ja3MpKTsK IAkvKiBXZSBhbGxvY2F0ZWQgYSBkZWRpY2F0ZWQgaGVhcCBmb3IgdGhlIHZlY3Rvci4gKi8KIAlp Yl92ZWN0b3JfZnJlZSh0cngtPmF1dG9pbmNfbG9ja3MpOwogCi0JdHJ4X211dGV4X2V4aXQodHJ4 KTsKLQogCW11dGV4X2ZyZWUoJnRyeC0+bXV0ZXgpOwogCiAJbWVtX2ZyZWUodHJ4KTsKQEAgLTI5 Myw2ICsyODMsNTUgQEAgdHJ4X2ZyZWVfZm9yX2JhY2tncm91bmQoCiB9CiAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKK0F0IHNodXRkb3duLCBmcmVlcyBhIHRyYW5zYWN0aW9uIG9iamVjdCB0aGF0IGlzIGlu IHRoZSBQUkVQQVJFRCBzdGF0ZS4gKi8KK1VOSVZfSU5URVJOCit2b2lkCit0cnhfZnJlZV9wcmVw YXJlZCgKKy8qPT09PT09PT09PT09PT0qLworCXRyeF90Kgl0cngpCS8qITwgaW4sIG93bjogdHJ4 IG9iamVjdCAqLworeworI2lmZGVmIFVOSVZfU1lOQ19ERUJVRworCXV0X2FkKHJ3X2xvY2tfb3du KCZ0cnhfc3lzLT5sb2NrLCBSV19MT0NLX0VYKSk7CisjZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVH ICovCisKKwl1dF9hKHRyeF9zdGF0ZV9lcSh0cngsIFRSWF9TVEFURV9QUkVQQVJFRCkpOworCXV0 X2EodHJ4LT5tYWdpY19uID09IFRSWF9NQUdJQ19OKTsKKworCXRyeF91bmRvX2ZyZWVfcHJlcGFy ZWQodHJ4KTsKKworCW11dGV4X2ZyZWUoJnRyeC0+dW5kb19tdXRleCk7CisKKwlpZiAodHJ4LT51 bmRvX25vX2FycikgeworCQl0cnhfdW5kb19hcnJfZnJlZSh0cngtPnVuZG9fbm9fYXJyKTsKKwl9 CisKKwl1dF9hKHRyeC0+bG9jay53YWl0X2xvY2sgPT0gTlVMTCk7CisJdXRfYSh0cngtPmxvY2su d2FpdF90aHIgPT0gTlVMTCk7CisKKwl1dF9hKCF0cngtPmhhc19zZWFyY2hfbGF0Y2gpOworCisJ dXRfYSh0cngtPmRpY3Rfb3BlcmF0aW9uX2xvY2tfbW9kZSA9PSAwKTsKKworCWlmICh0cngtPmxv Y2subG9ja19oZWFwKSB7CisJCW1lbV9oZWFwX2ZyZWUodHJ4LT5sb2NrLmxvY2tfaGVhcCk7CisJ fQorCisJdXRfYShVVF9MSVNUX0dFVF9MRU4odHJ4LT5sb2NrLnRyeF9sb2NrcykgPT0gMCk7CisK KwlpZiAodHJ4LT5nbG9iYWxfcmVhZF92aWV3X2hlYXApIHsKKwkJbWVtX2hlYXBfZnJlZSh0cngt Pmdsb2JhbF9yZWFkX3ZpZXdfaGVhcCk7CisJfQorCisJdXRfYShpYl92ZWN0b3JfaXNfZW1wdHko dHJ4LT5hdXRvaW5jX2xvY2tzKSk7CisJaWJfdmVjdG9yX2ZyZWUodHJ4LT5hdXRvaW5jX2xvY2tz KTsKKworCVVUX0xJU1RfUkVNT1ZFKHRyeF9saXN0LCB0cnhfc3lzLT50cnhfbGlzdCwgdHJ4KTsK KworCW11dGV4X2ZyZWUoJnRyeC0+bXV0ZXgpOworCW1lbV9mcmVlKHRyeCk7Cit9CisKKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKIEZyZWVzIGEgdHJhbnNhY3Rpb24gb2JqZWN0IGZvciBNeVNRTC4gKi8KIFVO SVZfSU5URVJOCiB2b2lkCkBAIC0zMDgsNyArMzQ3LDcgQEAgdHJ4X2ZyZWVfZm9yX215c3FsKAog CiAJdXRfYWQodHJ4X3N5c192YWxpZGF0ZV90cnhfbGlzdCgpKTsKIAotCS0tdHJ4X25fbXlzcWxf dHJhbnNhY3Rpb25zOworCXRyeF9zeXMtPm5fbXlzcWxfdHJ4LS07CiAKIAlyd19sb2NrX3hfdW5s b2NrKCZ0cnhfc3lzLT5sb2NrKTsKIApAQCAtNDAxLDYgKzQ0MCw3IEBAIHRyeF9yZXN1cnJlY3Rf aW5zZXJ0KAogCQkJaWYgKHNydl9mb3JjZV9yZWNvdmVyeSA9PSAwKSB7CiAKIAkJCQl0cngtPnN0 YXRlID0gVFJYX1NUQVRFX1BSRVBBUkVEOworCQkJCXRyeF9zeXMtPm5fcHJlcGFyZWRfdHJ4Kys7 CiAJCQl9IGVsc2UgewogCQkJCWZwcmludGYoc3RkZXJyLAogCQkJCQkiSW5ub0RCOiBTaW5jZSBp bm5vZGJfZm9yY2VfcmVjb3ZlcnkiCkBAIC00NTksNiArNDk5LDExIEBAIHRyeF9yZXN1cnJlY3Rf dXBkYXRlX2luX3ByZXBhcmVkX3N0YXRlKAogCQkJIiB3YXMgaW4gdGhlIFhBIHByZXBhcmVkIHN0 YXRlLlxuIiwgdHJ4LT5pZCk7CiAKIAkJaWYgKHNydl9mb3JjZV9yZWNvdmVyeSA9PSAwKSB7CisJ CQlpZiAodHJ4X3N0YXRlX2VxKHRyeCwgVFJYX1NUQVRFX05PVF9TVEFSVEVEKSkgeworCQkJCXRy eF9zeXMtPm5fcHJlcGFyZWRfdHJ4Kys7CisJCQl9IGVsc2UgeworCQkJCXV0X2FkKHRyeF9zdGF0 ZV9lcSh0cngsIFRSWF9TVEFURV9QUkVQQVJFRCkpOworCQkJfQogCiAJCQl0cngtPnN0YXRlID0g VFJYX1NUQVRFX1BSRVBBUkVEOwogCQl9IGVsc2UgewpAQCAtNTUwLDcgKzU5NSw3IEBAIHRyeF9s aXN0c19pbml0X2F0X2RiX3N0YXJ0KHZvaWQpCiAJCQljb250aW51ZTsKIAkJfQogCi0JCS8qIFJl c3N1cnJlY3QgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBkb2luZyBpbnNlcnRzLiAqLworCQkvKiBS ZXN1cnJlY3QgdHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBkb2luZyBpbnNlcnRzLiAqLwogCQlmb3Ig KHVuZG8gPSBVVF9MSVNUX0dFVF9GSVJTVChyc2VnLT5pbnNlcnRfdW5kb19saXN0KTsKIAkJICAg ICB1bmRvICE9IE5VTEw7CiAJCSAgICAgdW5kbyA9IFVUX0xJU1RfR0VUX05FWFQodW5kb19saXN0 LCB1bmRvKSkgewpAQCAtODUwLDYgKzg5NSw3IEBAIHRyeF9jb21taXQoCiAJLyogUmVtb3ZlIHRo ZSB0cmFuc2FjdGlvbiBmcm9tIHRoZSBsaXN0IG9mIGFjdGl2ZSB0cmFuc2FjdGlvbnMKIAlub3cg dGhhdCBpdCBubyBsb25nZXIgaG9sZHMgYW55IHVzZXIgbG9ja3MuICovCiAKKwl1dF9hZCh0cnhf c3RhdGVfZXEodHJ4LCBUUlhfU1RBVEVfQ09NTUlUVEVEX0lOX01FTU9SWSkpOwogCXJ3X2xvY2tf eF9sb2NrKCZ0cnhfc3lzLT5sb2NrKTsKIAl1dF9hZCh0cngtPmluX3RyeF9saXN0KTsKIAl1dF9k KHRyeC0+aW5fdHJ4X2xpc3QgPSBGQUxTRSk7CkBAIC0xNTYxLDcgKzE2MDcsMTAgQEAgdHJ4X3By ZXBhcmUoCiAKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAl1 dF9hKHRyeC0+c3RhdGUgPT0gVFJYX1NUQVRFX0FDVElWRSk7CisJcndfbG9ja194X2xvY2soJnRy eF9zeXMtPmxvY2spOwogCXRyeC0+c3RhdGUgPSBUUlhfU1RBVEVfUFJFUEFSRUQ7CisJdHJ4X3N5 cy0+bl9wcmVwYXJlZF90cngrKzsKKwlyd19sb2NrX3hfdW5sb2NrKCZ0cnhfc3lzLT5sb2NrKTsK IAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCWlmIChsc24p IHsKQEAgLTE3MjcsNyArMTc3Niw4IEBAIHRyeF9nZXRfdHJ4X2J5X3hpZCgKIAkJb2YgZ3RyaWRf bGVuZ3RoK2JxdWFsX2xlbmd0aCBieXRlcyBzaG91bGQgYmUKIAkJdGhlIHNhbWUgKi8KIAotCQlp ZiAodHJ4X3N0YXRlX2VxKHRyeCwgVFJYX1NUQVRFX1BSRVBBUkVEKQorCQlpZiAodHJ4LT5pc19y ZWNvdmVyZWQKKwkJICAgICYmIHRyeF9zdGF0ZV9lcSh0cngsIFRSWF9TVEFURV9QUkVQQVJFRCkK IAkJICAgICYmIHhpZC0+Z3RyaWRfbGVuZ3RoID09IHRyeC0+eGlkLmd0cmlkX2xlbmd0aAogCQkg ICAgJiYgeGlkLT5icXVhbF9sZW5ndGggPT0gdHJ4LT54aWQuYnF1YWxfbGVuZ3RoCiAJCSAgICAm JiBtZW1jbXAoeGlkLT5kYXRhLCB0cngtPnhpZC5kYXRhLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4 L3RyeDB1bmRvLmMJcmV2aWQ6a2V2aW4ubGV3aXNAb3JhY2xlLmNvbS0yMDExMDQwODE4NDIxNC03 dWN5MnBmcDc0dGR1OWR5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MTExNDU3NDctMTUxb25pZXUyeDVweGl2 eApAQCAtMzYsNiArMzYsNyBAQCBDcmVhdGVkIDMvMjYvMTk5NiBIZWlra2kgVHV1cmkKICNpbmNs dWRlICJ0cngwcnNlZy5oIgogI2luY2x1ZGUgInRyeDB0cnguaCIKICNpbmNsdWRlICJzcnYwc3J2 LmgiCisjaW5jbHVkZSAic3J2MHN0YXJ0LmgiCiAjaW5jbHVkZSAidHJ4MHJlYy5oIgogI2luY2x1 ZGUgInRyeDBwdXJnZS5oIgogI2luY2x1ZGUgInNydjBtb24uaCIKQEAgLTE5ODMsNCArMTk4NCwz MSBAQCB0cnhfdW5kb19pbnNlcnRfY2xlYW51cCgKIAogCW11dGV4X2V4aXQoJihyc2VnLT5tdXRl eCkpOwogfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCitBdCBzaHV0ZG93biwgZnJlZXMgdGhlIHVuZG8g bG9ncyBvZiBhIFBSRVBBUkVEIHRyYW5zYWN0aW9uLiAqLworVU5JVl9JTlRFUk4KK3ZvaWQKK3Ry eF91bmRvX2ZyZWVfcHJlcGFyZWQoCisvKj09PT09PT09PT09PT09PT09PT0qLworCXRyeF90Kgl0 cngpCS8qITwgaW4vb3V0OiBQUkVQQVJFRCB0cmFuc2FjdGlvbiAqLworeworCW11dGV4X2VudGVy KCZ0cngtPnJzZWctPm11dGV4KTsKKworCXV0X2FkKHNydl9zaHV0ZG93bl9zdGF0ZSA9PSBTUlZf U0hVVERPV05fRVhJVF9USFJFQURTKTsKKworCWlmICh0cngtPnVwZGF0ZV91bmRvKSB7CisJCXV0 X2EodHJ4LT51cGRhdGVfdW5kby0+c3RhdGUgPT0gVFJYX1VORE9fUFJFUEFSRUQpOworCQlVVF9M SVNUX1JFTU9WRSh1bmRvX2xpc3QsIHRyeC0+cnNlZy0+dXBkYXRlX3VuZG9fbGlzdCwKKwkJCSAg ICAgICB0cngtPnVwZGF0ZV91bmRvKTsKKwkJdHJ4X3VuZG9fbWVtX2ZyZWUodHJ4LT51cGRhdGVf dW5kbyk7CisJfQorCWlmICh0cngtPmluc2VydF91bmRvKSB7CisJCXV0X2EodHJ4LT5pbnNlcnRf dW5kby0+c3RhdGUgPT0gVFJYX1VORE9fUFJFUEFSRUQpOworCQlVVF9MSVNUX1JFTU9WRSh1bmRv X2xpc3QsIHRyeC0+cnNlZy0+aW5zZXJ0X3VuZG9fbGlzdCwKKwkJCSAgICAgICB0cngtPmluc2Vy dF91bmRvKTsKKwkJdHJ4X3VuZG9fbWVtX2ZyZWUodHJ4LT5pbnNlcnRfdW5kbyk7CisJfQorCW11 dGV4X2V4aXQoJnRyeC0+cnNlZy0+bXV0ZXgpOworfQogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tV UCAqLwoK --===============1406094011== 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.6-innodb/ # testament_sha1: d960d30872c51c3cd4b63577f2b5bfed844b5ad6 # timestamp: 2011-04-11 17:58:38 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: kevin.lewis@stripped\ # 7ucy2pfp74tdu9dy # # Begin bundle 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 LuSKcKEgQspVig== --===============1406094011==--