From: Date: December 2 2008 2:15pm Subject: bzr commit into mysql-6.0-falcon-team branch (lars-erik.bjork:2922) Bug#34479 List-Archive: http://lists.mysql.com/commits/60380 X-Bug: 34479 Message-Id: <200812021315.mB2DF5rk021451@dm-uk-02.uk.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vaG9tZS9sYjIwMDY3MC9kZXZlbC9teXNxbC9ib3VuY2VyLyBiYXNlZCBvbiBy ZXZpZDpqb2huLmVtYnJldHNlbkBzdW4uY29tLTIwMDgxMTI3MTczOTM0LXI4ZnhydDFweXRneWE2 dzcKCiAyOTIyIGxhcnMtZXJpay5iam9ya0BzdW4uY29tCTIwMDgtMTItMDIKICAgICAgVGhpcyBp cyBhIHBhdGNoIGZvciBidWcjMzQ0NzkKICAgICAgRmFsY29uOiBzZWFyY2ggZmFpbHVyZSB3aXRo IGluZGV4ZWQgdWNzMiB2YXJjaGFyCiAgICAgIAogICAgICBXaGVuIGNvbXB1dGluZyB0aGUga2V5 IGxlbmd0aCwgdHJhaWxpbmcgc3BhY2VzIGFyZSByZW1vdmVkLiBUaGlzIHdhcwogICAgICBkb25l IGJ5IGxvb2tpbmcgYXQgYSBzaW5nbGUgYnl0ZSBhdCBhIHRpbWUuIFdoZW4gdXNpbmcgZi4gZXgg dGhlIHVjczIKICAgICAgY2hhcmFjdGVyIHNldCAod2hlcmUgZXZlcnkgY2hhcmFjdGVyIGlzIHJl cHJlc2VudGVkIHVzaW5nIHR3byBieXRlcyksIAogICAgICB0aGlzIHdvdWxkIHJlc3VsdCBpbiBh IGNoYXJhY3RlciBlbmRpbmcgaW4gMHgyMCwgKGYgLmV4IMSgICgweDAxMjApICkKICAgICAgaGF2 aW5nIGl0cyBmaW5hbCBieXRlICd0cmltbWVkJy4gSSBoYXZlIG5vdyBpbXBsZW1lbnRlZCBhIGNo YXJzZXQtd2lzZQogICAgICB2ZXJzaW9uLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSB2YXJ5aW5n IGxlbmd0aHMgb2YgbXVsdGktYnl0ZQogICAgICBzZXF1ZW5jZXMgb2YgZGlmZmVyZW50IGNoYXJh Y3RlciBzZXRzLgogICAgICAKICAgICAgYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxj b24vdC9mYWxjb25fYnVnXzM0NDc5LnRlc3QnCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICBUaGlzIGlzIGEgdGVz dCBmaWxlIHRlc3RpbmcgdGhlIHBhdGNoLiBJdCBpcyBiYXNlZCBvbiB0aGUKICAgICAgYnVnIHJl cG9ydAogICAgICAKICAgICAgYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9m YWxjb25fYnVnXzM0NDc5LnJlc3VsdCcKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgVGhpcyBpcyB0aGUgcmVz dWx0IGZpbGUgZm9yIHRoZSB0ZXN0LiBJdCBzdGF0ZXMgdGhlIGV4cGVjdGVkCiAgICAgIG91dHB1 dAogICAgICAKICAgICAgCiAgICAgIG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL015U1FM Q29sbGF0aW9uLmNwcCcKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgICBNb2RpZmllZCB0aGUgZnVuY3Rpb24gY29tcHV0ZUtleUxlbmd0 aCggLi4uICkgCiAgICAgIAogICAgICBFYXJsaWVyLCB3aGVuIHJlbW92aW5nIHRyYWlsaW5nIHBh ZCBjaGFyYWN0ZXJzICgnICcpLCB0aGUgZnVuY3Rpb24KICAgICAgb25seSBsb29rZWQgYXQgYSBz aW5nbGUgYnl0ZSBhdCBhIHRpbWUuIEkgaGF2ZSBpbXBsZW1lbnRlZCBhCiAgICAgIGNoYXJzZXQt d2lzZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHRyYW5zbGF0ZXMgdGhlIHBhZCBjaGFyYWN0ZXIgaW50 byB0aGUKICAgICAgcmVsZXZhbnQgY2hhcmFjdGVyIHNldCwgYW5kIHRoYXQgY29tcGFyZXMgcmVs YXRpdmUgdG8gdGhlIChwb3NzaWJsZSkKICAgICAgbXVsdGktYnl0ZSBzZXF1ZW5jZXMgb2YgdGhl IGRpZmZlcmVudCBjaGFyYWN0ZXIgc2V0cy4KICAgICAgCiAgICAgIAogICAgICBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2ZhbGNvbi9NeVNRTENvbGxhdGlvbi5oJwogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICBDaGFuZ2VkIHRoZSBmdW5j dGlvbiBjb21wdXRlS2V5TGVuZ3RoKCAuLi4pIG5vdCB0byBiZSBpbmxpbmUsIGJlY2F1c2UgdGhl CiAgICAgIGltcGxlbWVudGF0aW9uIGdyZXcgYmlnIGVub3VnaCB0byBjbHV0dGVyIHRoZSBoZWFk ZXIgZmlsZS4KICAgICAgCiAgICAgIAogICAgICBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNv bi9oYV9mYWxjb24uY3BwJwogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyBnaXZpbmcgYWNjZXNzIHRvIHRo ZSBjaGFyYWN0ZXIgc2V0IGZ1bmN0aW9ucwogICAgICAKICAgICAgKiBpbnQgZmFsY29uX2NvbnZf dW5pX2NzICggLi4uICkKICAgICAgICAtIENvbnZlcnRzIGEgY2hhcmFjdGVyIHRvIHRoZSBnaXZl biBjaGFyYWN0ZXIgc2V0CiAgICAgICogdW5zaWduZWQgaW50IGZhbGNvbl9nZXRfbWJtaW5sZW4g KCAuLi4gKQogICAgICAgIC0gUmV0dXJucyB0aGUgbWluaW11bSBtdWx0aS1ieXRlIHNlcXVlbmNl IGZvciB0aGUgZ2l2ZW4gY2hhcnNldAogICAgICAKICAgICAgKiB1aW50IGZhbGNvbl9nZXRfbWJj aGFybGVuKCAuLi4gKQogICAgICAgIC0gUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBjdXJyZW50 IG11bHRpLWJ5dGUgc2VxdWVuY2UgaWYgdGhlCiAgICAgICAgICBwb2ludGVyIGdpdmVuIHBvaW50 cyB0byBhIHZhbGlkIGhlYWRlciwgMCBvdGhlcndpc2UKYWRkZWQ6CiAgbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vci9mYWxjb25fYnVnXzM0NDc5LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3QvZmFsY29uX2J1Z18zNDQ3OS50ZXN0Cm1vZGlmaWVkOgogIHN0b3JhZ2UvZmFsY29uL015 U1FMQ29sbGF0aW9uLmNwcAogIHN0b3JhZ2UvZmFsY29uL015U1FMQ29sbGF0aW9uLmgKICBzdG9y YWdlL2ZhbGNvbi9oYV9mYWxjb24uY3BwCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vci9mYWxjb25fYnVnXzM0NDc5LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vci9mYWxjb25fYnVnXzM0NDc5LnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICsw MDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNDQ3OS5yZXN1 bHQJMjAwOC0xMi0wMiAxMzoxNDo0NSArMDAwMApAQCAtMCwwICsxLDI1IEBACisqKiogQnVnICMz NDQ3OSAqKioKK1NFVCBAQHN0b3JhZ2VfZW5naW5lID0gJ0ZhbGNvbic7CitEUk9QIFRBQkxFIElG IEVYSVNUUyB0MTsKK1NFVCBOQU1FUyB1dGY4OworQ1JFQVRFIFRBQkxFIHQxIChzMSB2YXJjaGFy KDUpIGNoYXJhY3RlciBzZXQgdWNzMik7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKCfEgCcpLCgn xIEnKSwoJ8SCJyksKCfEgycpLCgnxIQnKTsKK1NFTEVDVCAqIEZST00gdDEgV0hFUkUgczEgPCAn xKAnOworczEKK8SACivEgQorxIIKK8SDCivEhAorQ1JFQVRFIElOREVYIGkgT04gdDEgKHMxKTsK K1NFTEVDVCAqIEZST00gdDEgV0hFUkUgczEgPCAnxKAnOworczEKK8SACivEgQorxIIKK8SDCivE hAorU0VMRUNUIGNvdW50KCopIEZST00gdDE7Citjb3VudCgqKQorNQorRFJPUCBUQUJMRSB0MTsK Cj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzQ0 NzkudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM0NDc5 LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Zh bGNvbi90L2ZhbGNvbl9idWdfMzQ0NzkudGVzdAkyMDA4LTEyLTAyIDEzOjE0OjQ1ICswMDAwCkBA IC0wLDAgKzEsNDIgQEAKKy0tc291cmNlIGluY2x1ZGUvaGF2ZV9mYWxjb24uaW5jCisKKyMKKyMg QnVnICMzNDQ3OTogRmFsY29uOiBzZWFyY2ggZmFpbHVyZSB3aXRoIGluZGV4ZWQgdWNzMiB2YXJj aGFyCisjCistLWVjaG8gKioqIEJ1ZyAjMzQ0NzkgKioqCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworIyAtLS0gSW5pdGlhbGlzYXRp b24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCisjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKK2xldCAkZW5naW5lID0g J0ZhbGNvbic7CitldmFsIFNFVCBAQHN0b3JhZ2VfZW5naW5lID0gJGVuZ2luZTsKKworLS1kaXNh YmxlX3dhcm5pbmdzCitEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsKKy0tZW5hYmxlX3dhcm5pbmdz CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gIworIyAtLS0gVGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMKKworU0VUIE5BTUVTIHV0Zjg7CitDUkVBVEUgVEFCTEUgdDEgKHMxIHZhcmNoYXIo NSkgY2hhcmFjdGVyIHNldCB1Y3MyKTsKKworIyBUaGUgZm9sbG93aW5nIHZhbHVlcyBhcmU6IDB4 MDEwMCwgMHgwMTAxLCAweDAxMDIsIDB4MDEwMywgMHgwMTA0CitJTlNFUlQgSU5UTyB0MSBWQUxV RVMgKCfEgCcpLCgnxIEnKSwoJ8SCJyksKCfEgycpLCgnxIQnKTsKK1NFTEVDVCAqIEZST00gdDEg V0hFUkUgczEgPCAnxKAnOworCisjIFRoaXMgd291bGQgbm90IGZpbmQgYWxsIHJlY29yZHMKK0NS RUFURSBJTkRFWCBpIE9OIHQxIChzMSk7CitTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIHMxIDwgJ8Sg JzsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjCisjIC0tLSBDaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0tICMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gIworCitTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKKworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCisjIC0tLSBGaW5hbCBj bGVhbnVwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tICMKKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworRFJPUCBUQUJM RSB0MTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9NeVNRTENvbGxhdGlvbi5j cHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL015U1FMQ29sbGF0aW9uLmNwcAkyMDA3LTExLTI3IDIw OjA3OjMwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL015U1FMQ29sbGF0aW9uLmNwcAkyMDA4 LTEyLTAyIDEzOjE0OjQ1ICswMDAwCkBAIC0xMyw2ICsxMyw3IEBACiAgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICAgRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTEx LTEzMDcgIFVTQSAqLwogCisjaW5jbHVkZSA8bWVtb3J5Lmg+CiAjaW5jbHVkZSAiRW5naW5lLmgi CiAjaW5jbHVkZSAiTXlTUUxDb2xsYXRpb24uaCIKICNpbmNsdWRlICJJbmRleEtleS5oIgpAQCAt NDMsOCArNDQsOCBAQCBpbnQgTXlTUUxDb2xsYXRpb246OmNvbXBhcmUgKFZhbHVlICp2YWx1CiAK IAlpZiAoIWlzQmluYXJ5KQogCQl7Ci0JCWxlbjEgPSBjb21wdXRlS2V5TGVuZ3RoKGxlbjEsIHN0 cmluZzEsIHBhZENoYXIsIG1pblNvcnRDaGFyKTsKLQkJbGVuMiA9IGNvbXB1dGVLZXlMZW5ndGgo bGVuMiwgc3RyaW5nMiwgcGFkQ2hhciwgbWluU29ydENoYXIpOworCQlsZW4xID0gY29tcHV0ZUtl eUxlbmd0aChjaGFyc2V0LCBsZW4xLCBzdHJpbmcxLCBwYWRDaGFyLCBtaW5Tb3J0Q2hhcik7CisJ CWxlbjIgPSBjb21wdXRlS2V5TGVuZ3RoKGNoYXJzZXQsIGxlbjIsIHN0cmluZzIsIHBhZENoYXIs IG1pblNvcnRDaGFyKTsKIAkJfQogCiAJcmV0dXJuIGZhbGNvbl9zdHJubmNvbGwoY2hhcnNldCwg c3RyaW5nMSwgbGVuMSwgc3RyaW5nMiwgbGVuMiwgZmFsc2UpOwpAQCAtNjcsNyArNjgsNyBAQCBp bnQgTXlTUUxDb2xsYXRpb246Om1ha2VLZXkgKFZhbHVlICp2YWx1CiAJCXNyY0xlbiA9IHZhbHVl LT5nZXRTdHJpbmcgKHNpemVvZih0ZW1wKSwgdGVtcCk7CiAKIAlpZiAoIWlzQmluYXJ5KQotCQlz cmNMZW4gPSBjb21wdXRlS2V5TGVuZ3RoKHNyY0xlbiwgdGVtcCwgcGFkQ2hhciwgbWluU29ydENo YXIpOworCQlzcmNMZW4gPSBjb21wdXRlS2V5TGVuZ3RoKGNoYXJzZXQsIHNyY0xlbiwgdGVtcCwg cGFkQ2hhciwgbWluU29ydENoYXIpOwogCiAJLy8gU2luY2Ugc29tZSBjb2xsYXRpb25zIG1ha2Ug ZHN0TGVuID4gc3JjTGVuLCBiZSBzdXJlIGRzdExlbiBpcyA8IHBhcnRpYWxLZXkuCiAKQEAgLTEx NCwzICsxMTUsNTggQEAgaW50IE15U1FMQ29sbGF0aW9uOjp0cnVuY2F0ZShWYWx1ZSAqdmFsdQog CiAJcmV0dXJuIGxlbjsKIH0KKwordWludCBNeVNRTENvbGxhdGlvbjo6Y29tcHV0ZUtleUxlbmd0 aCAodm9pZCAqY2hhcnNldCwgdWludCBsZW5ndGgsIGNvbnN0IGNoYXIgKmtleSwKKwkJCQkJCQkJ CSAgIGNoYXIgcGFkQ2hhciwgY2hhciBtaW5Tb3J0Q2hhcikKKworeworCS8vIFdlIG5lZWQgdG8g Y29udmVydCB0aGUgcGFkQ2hhciBpbnRvIHRoZSBjdXJyZW50IGNoYXJhY3RlciBzZXQKKwkKKwl1 bnNpZ25lZCBjaGFyIHBhZFsyMF07CisJaW50IHBhZExlbiA9IGZhbGNvbl9jb252X3VuaV9jcyAo Y2hhcnNldCwgcGFkQ2hhciwgcGFkLCBzaXplb2YocGFkKSk7CisJCisJaWYgKGZhbGNvbl9nZXRf bWJtaW5sZW4oY2hhcnNldCkgPT0gZmFsY29uX2dldF9tYm1heGxlbihjaGFyc2V0KSkKKwkJewor CQkKKwkJLy8gQWxsIGNoYXJhY3RlcnMgYXJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZSBzYW1lIG51 bWJlciBvZiBieXRlcworCQkvLyB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IG11bHRpLWJ5 dGUgc2VxdWVuY2VzIG9mIGRpZmZlcmVudCAKKwkJLy8gbGVuZ3RocyAKKwkJCisJCWludCBjaGFy TGVuID0gZmFsY29uX2dldF9tYm1pbmxlbihjaGFyc2V0KTsKKwkJCisJCWZvciAoY29uc3QgY2hh ciAqcCA9IGtleSArIGxlbmd0aDsgcCA+IGtleTsgcCA9IHAgLSBjaGFyTGVuKQorCQkJeworCQkJ aWYgKChwWy1jaGFyTGVuXSAhPSAwKSAmJiAobWVtY21wKHBhZCwgcC1jaGFyTGVuLCBjaGFyTGVu KSAhPSAwKSAKKwkJCQkmJiAocFstY2hhckxlbl0gIT0gbWluU29ydENoYXIpKQorCQkJCXsKKwkJ CQlyZXR1cm4gKHVpbnQpIChwIC0ga2V5KTsKKwkJCQl9CisJCQl9CQkKKwkJfQorCWVsc2UgCisJ CXsKKwkJCisJCS8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gZWFjaCBtdWx0aS1ieXRlIHNlcXVl bmNlIG1heSB2YXJ5CisJCQorCQlpbnQgY2hhckxlbiA9IDA7CisJCQorCQlmb3IgKGNvbnN0IGNo YXIgKnAgPSBrZXkgKyBsZW5ndGg7IHAgPiBrZXk7IC0tcCkKKwkJCXsKKwkJCWNoYXJMZW4gPSBm YWxjb25fZ2V0X21iY2hhcmxlbihjaGFyc2V0LCBwLTEpOworCQkJCisJCQlpZiAoY2hhckxlbiA9 PSAwKQorCQkJCXsKKwkJCQkvLyBOb3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlcXVlbmNlCisJ CQkJY29udGludWU7CisJCQkJfQorCQkJZWxzZSBpZiAoKHBbLTFdICE9IDApICYmIChwYWRMZW4g IT0gY2hhckxlbiB8fCBtZW1jbXAocGFkLCBwLTEsIGNoYXJMZW4pICE9IDApIAorCQkJCQkgJiYg KHBbLTFdICE9IG1pblNvcnRDaGFyKSkKKwkJCQl7CisJCQkJcmV0dXJuICh1aW50KSAocCAtIGtl eSArIChjaGFyTGVuLTEpKTsKKwkJCQl9CisKKwkJCX0KKwkJfQorCQorCXJldHVybiAwOwkJCit9 Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vTXlTUUxDb2xsYXRpb24uaCcKLS0t IGEvc3RvcmFnZS9mYWxjb24vTXlTUUxDb2xsYXRpb24uaAkyMDA3LTExLTI3IDIwOjA3OjMwICsw MDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL015U1FMQ29sbGF0aW9uLmgJMjAwOC0xMi0wMiAxMzox NDo0NSArMDAwMApAQCAtMjYsOSArMjYsMTIgQEAgZXh0ZXJuIGludCBmYWxjb25fc3Rybnhmcm0g KHZvaWQgKmNzLCAKIAkJCQkJCQljb25zdCBjaGFyICpzcmMsIHVpbnQgc3JjbGVuKTsKIAogZXh0 ZXJuIGNoYXIgZmFsY29uX2dldF9wYWRfY2hhciAodm9pZCAqY3MpOworZXh0ZXJuIGludCBmYWxj b25fY29udl91bmlfY3MgKHZvaWQgKmNzLCBjaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgY2hhciog ZHN0LCBpbnQgZHN0TGVuKTsKIGV4dGVybiBpbnQgZmFsY29uX2NzX2lzX2JpbmFyeSAodm9pZCAq Y3MpOworZXh0ZXJuIHVuc2lnbmVkIGludCBmYWxjb25fZ2V0X21ibWlubGVuICh2b2lkICpjcyk7 CiBleHRlcm4gdW5zaWduZWQgaW50IGZhbGNvbl9nZXRfbWJtYXhsZW4gKHZvaWQgKmNzKTsKIGV4 dGVybiBjaGFyIGZhbGNvbl9nZXRfbWluX3NvcnRfY2hhciAodm9pZCAqY3MpOworZXh0ZXJuIHVp bnQgZmFsY29uX2dldF9tYmNoYXJsZW4odm9pZCAqY3MsIGNvbnN0IGNoYXIgKnMpOwogZXh0ZXJu IHVpbnQgZmFsY29uX3N0cm5jaHJsZW4odm9pZCAqY3MsIGNvbnN0IGNoYXIgKnMsIHVpbnQgbCk7 CiBleHRlcm4gdWludCBmYWxjb25fc3Rybnhmcm1sZW4odm9pZCAqY3MsIGNvbnN0IGNoYXIgKnMs IHVpbnQgc3JjbGVuLAogCQkJCQkJCSAgIGludCBwYXJ0aWFsS2V5LCBpbnQgYnVmU2l6ZSk7CkBA IC02MywxNSArNjYsOSBAQCBwdWJsaWM6CiAJdWludAltYk1heExlbjsKIAljaGFyCW1pblNvcnRD aGFyOwogCQotCXN0YXRpYyBpbmxpbmUgdWludCBjb21wdXRlS2V5TGVuZ3RoICh1aW50IGxlbmd0 aCwgY29uc3QgY2hhciAqa2V5LAotCQkJCQkJCQkJCWNoYXIgcGFkQ2hhciwgY2hhciBtaW5Tb3J0 Q2hhcikKLQkJewotCQlmb3IgKGNvbnN0IGNoYXIgKnAgPSBrZXkgKyBsZW5ndGg7IHAgPiBrZXk7 IC0tcCkKLQkJCWlmICgocFstMV0gIT0gMCkgJiYgKHBbLTFdICE9IHBhZENoYXIpICYmIChwWy0x XSAhPSBtaW5Tb3J0Q2hhcikpCi0JCQkJcmV0dXJuICh1aW50KSAocCAtIGtleSk7CisJc3RhdGlj IHVpbnQgY29tcHV0ZUtleUxlbmd0aCAodm9pZCAqY2hhcnNldCwgdWludCBsZW5ndGgsIGNvbnN0 IGNoYXIgKmtleSwKKwkJCQkJCQkJICBjaGFyIHBhZENoYXIsIGNoYXIgbWluU29ydENoYXIpOwog Ci0JCXJldHVybiAwOwotCQl9CiB9OwogCiAjZW5kaWYKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2ZhbGNvbi9oYV9mYWxjb24uY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9oYV9mYWxjb24u Y3BwCTIwMDgtMTEtMjUgMTM6Mzg6MDYgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vaGFfZmFs Y29uLmNwcAkyMDA4LTEyLTAyIDEzOjE0OjQ1ICswMDAwCkBAIC0yOTIsMTIgKzI5MiwzNyBAQCBj aGFyIGZhbGNvbl9nZXRfcGFkX2NoYXIgKHZvaWQgKmNzKQogCXJldHVybiAoY2hhcikgKChDSEFS U0VUX0lORk8qKSBjcyktPnBhZF9jaGFyOwogfQogCitpbnQgZmFsY29uX2NvbnZfdW5pX2NzICh2 b2lkICpjcywgY29uc3QgY2hhciBjaGFyYWN0ZXIsIHVuc2lnbmVkIGNoYXIqIGRzdCwgaW50IGRz dExlbikKK3sKKwkKKwkvLyBDb252ZXJ0IGZyb20gdW5pY29kZSBjb2RlcG9pbnQKKworCUNIQVJT RVRfSU5GTyogY2hhcnNldCA9IChDSEFSU0VUX0lORk8qKSBjczsJCisJaW50IGxlbiA9IChjaGFy c2V0LT5jc2V0LT53Y19tYihjaGFyc2V0LCAobXlfd2NfdCljaGFyYWN0ZXIsIGRzdCwgZHN0ICsg ZHN0TGVuKSk7CisKKwlpZiAobGVuIDw9IDApCisJCXsKKwkJLy8gU2hvdWxkIG5vdCBoYXBwZW4K KwkJZHN0WzBdID0gY2hhcmFjdGVyOworCQlyZXR1cm4gMTsKKwkJfQorCWVsc2UKKwkJeworCQly ZXR1cm4gbGVuOworCQl9Cit9CisKIGludCBmYWxjb25fY3NfaXNfYmluYXJ5ICh2b2lkICpjcykK IHsKIAlyZXR1cm4gKDAgPT0gc3RyY21wKCgoQ0hBUlNFVF9JTkZPKikgY3MpLT5uYW1lLCAiYmlu YXJ5IikpOwogLy8JcmV0dXJuICgoKChDSEFSU0VUX0lORk8qKSBjcyktPnN0YXRlICYgTVlfQ1Nf QklOU09SVCkgPT0gTVlfQ1NfQklOU09SVCk7CiB9CiAKK3Vuc2lnbmVkIGludCBmYWxjb25fZ2V0 X21ibWlubGVuICh2b2lkICpjcykKK3sKKwlyZXR1cm4gKChDSEFSU0VUX0lORk8qKSBjcyktPm1i bWlubGVuOworfQorCiB1bnNpZ25lZCBpbnQgZmFsY29uX2dldF9tYm1heGxlbiAodm9pZCAqY3Mp CiB7CiAJcmV0dXJuICgoQ0hBUlNFVF9JTkZPKikgY3MpLT5tYm1heGxlbjsKQEAgLTMwOCw2ICsz MzMsMTMgQEAgY2hhciBmYWxjb25fZ2V0X21pbl9zb3J0X2NoYXIgKHZvaWQgKmNzKQogCXJldHVy biAoY2hhcikgKChDSEFSU0VUX0lORk8qKSBjcyktPm1pbl9zb3J0X2NoYXI7CiB9CiAKK3VpbnQg ZmFsY29uX2dldF9tYmNoYXJsZW4odm9pZCAqY3MsIGNvbnN0IGNoYXIgKnMpCit7CisJQ0hBUlNF VF9JTkZPICpjaGFyc2V0ID0gKENIQVJTRVRfSU5GTyopIGNzOworCXVjaGFyICpjaCA9ICh1Y2hh ciAqKSBzOworCXJldHVybiBjaGFyc2V0LT5jc2V0LT5tYmNoYXJsZW4oY2hhcnNldCwgKmNoKTsK K30KKwogLy8gUmV0dXJuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHN0 cmluZwogLy8gTm90ZSwgdGhpcyBpcyBub3QgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdpdGgg Y29sbGF0YWJsZSB3ZWlnaHQuCiAKCg==