From: marko.makela Date: September 1 2011 7:01pm Subject: bzr push into mysql-5.5 branch (marko.makela:3516 to 3517) Bug#12547647 List-Archive: http://lists.mysql.com/commits/140888 X-Bug: 12547647 Message-Id: <201109011902.p81J2G8f021008@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 IDM1MTcgTWFya28gTcOka2Vsw6QJMjAxMS0wOS0wMQogICAgICBCdWcjMTI1NDc2NDcgVVBEQVRF IExPR0dJTkcgQ09VTEQgRVhDRUVEIExPRyBQQUdFIFNJWkUKICAgICAgCiAgICAgIFRoaXMgZml4 IHdhcyBhY2NpZGVudGFsbHkgcHVzaGVkIHRvIG15c3FsLTUuMSBhZnRlciB0aGUgNS4xLjU5IGNs b25lLW9mZiBpbgogICAgICBienIgcmV2aXNpb24gaWQgbWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMTA4MjkwODE2NDItejB3OTkyYTBtcmM2MnM2dwogICAgICB3aXRoIHRoZSBmaXggb2YgQnVn IzEyNzA0ODYxIENvcnJ1cHRpb24gYWZ0ZXIgYSBjcmFzaCBkdXJpbmcgQkxPQiB1cGRhdGUKICAg ICAgYnV0IG5vdCBtZXJnZWQgdG8gbXlzcWwtNS41IGFuZCB1cHdhcmRzLgogICAgICAKICAgICAg SW4gdGhlIEJhcnJhY3VkYSBmb3JtYXRzLCB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZCBubyBs b25nZXIKICAgICAgY29udGFpbnMgYSBwcmVmaXggb2Ygb2ZmLXBhZ2UgY29sdW1ucy4gQmVjYXVz ZSBvZiB0aGlzLCB0aGUgdW5kbyBsb2cKICAgICAgbXVzdCBjb250YWluIHRoZXNlIHByZWZpeGVz LCBzbyB0aGF0IHB1cmdlIGFuZCBtdWx0aS12ZXJzaW9uaW5nIHdpbGwKICAgICAgY29udGludWUg dG8gd29yay4gSG93ZXZlciwgdGhpcyBhbHNvIG1lYW5zIHRoYXQgYW4gdW5kbyBsb2cgcmVjb3Jk IGNhbgogICAgICBiZWNvbWUgdG9vIGJpZyB0byBmaXQgaW4gYW4gdW5kbyBsb2cgcGFnZS4gKEl0 IGlzIGEgbGltaXRhdGlvbiBvZiB0aGUKICAgICAgdW5kbyBsb2cgdGhhdCB1bmRvIHJlY29yZHMg Y2Fubm90IHNwYW4gYWNyb3NzIG11bHRpcGxlIHBhZ2VzLikKICAgICAgCiAgICAgIEluIGNhc2Ug dGhlIGNoZWNrcyBmb3IgdW5kbyBsb2cgc2l6ZSBmYWlsIHdoZW4gQ1JFQVRFIFRBQkxFIG9yIENS RUFURQogICAgICBJTkRFWCBpcyBleGVjdXRlZCwgd2UgbmVlZCBhIGZhbGxiYWNrIHRoYXQgYmxv Y2tzIGEgbW9kaWZpY2F0aW9uCiAgICAgIG9wZXJhdGlvbiB3aGVuIHRoZSB1bmRvIGxvZyByZWNv cmQgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIHNpemUuCiAgICAgIAogICAgICB0cnhfdW5kb19m cmVlX2xhc3RfcGFnZV9mdW5jKCk6IFJlbmFtZWQgZnJvbSB0cnhfdW5kb19mcmVlX3BhZ2VfaW5f cm9sbGJhY2soKS4KICAgICAgRGVmaW5lIHRoZSB0cnhfdCBwYXJhbWV0ZXIgb25seSBpbiBkZWJ1 ZyBidWlsZHMuCiAgICAgIAogICAgICB0cnhfdW5kb19mcmVlX2xhc3RfcGFnZSgpOiBXcmFwcGVy IGZvciB0cnhfdW5kb19mcmVlX2xhc3RfcGFnZV9mdW5jKCkuCiAgICAgIFBhc3MgdGhlIHRyeF90 IHBhcmFtZXRlciBvbmx5IGluIGRlYnVnIGJ1aWxkcy4KICAgICAgCiAgICAgIHRyeF91bmRvX3Ry dW5jYXRlX2VuZF9mdW5jKCk6IFJlbmFtZWQgZnJvbSB0cnhfdW5kb190cnVuY2F0ZV9lbmQoKS4K ICAgICAgRGVmaW5lIHRoZSB0cnhfdCBwYXJhbWV0ZXIgb25seSBpbiBkZWJ1ZyBidWlsZHMuIFJl d3JpdGUgYSBmb3IoOzspIGxvb3AKICAgICAgYXMgYSB3aGlsZSBsb29wIGZvciBjbGFyaXR5Lgog ICAgICAKICAgICAgdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKCk6IFdyYXBwZXIgZm9yIGZyb20gdHJ4 X3VuZG9fdHJ1bmNhdGVfZW5kX2Z1bmMoKS4KICAgICAgUGFzcyB0aGUgdHJ4X3QgcGFyYW1ldGVy IG9ubHkgaW4gZGVidWcgYnVpbGRzLgogICAgICAKICAgICAgdHJ4X3VuZG9fZXJhc2VfcGFnZV9l bmQoKTogUmV0dXJuIFRSVUUgaWYgdGhlIHBhZ2Ugd2FzIG5vbi1lbXB0eQogICAgICB0byBiZWdp biB3aXRoLiBSZWZ1c2UgdG8gZXJhc2UgZW1wdHkgcGFnZXMuCiAgICAgIAogICAgICB0cnhfdW5k b19yZXBvcnRfcm93X29wZXJhdGlvbigpOiBJZiB0aGUgcGFnZSBmb3Igd2hpY2ggdGhlIHVuZG8g bG9nCiAgICAgIHdhcyB0b28gYmlnIHdhcyBlbXB0eSwgZnJlZSB0aGUgdW5kbyBwYWdlIGFuZCBy ZXR1cm4gREJfVE9PX0JJR19SRUNPUkQuCiAgICAgIAogICAgICByYjo3NDkgYXBwcm92ZWQgYnkg SW5hYW0gUmFuYQoKICAgIG1vZGlmaWVkOgogICAgICBpbmNsdWRlL215X2Jhc2UuaAogICAgICBt eXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC5yZXN1bHQKICAgICAgbXlzcWwt dGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItaW5kZXgudGVzdAogICAgICBteXN5cy9teV9oYW5k bGVyX2Vycm9ycy5oCiAgICAgIHNxbC9oYW5kbGVyLmNjCiAgICAgIHNxbC9zaGFyZS9lcnJtc2ct dXRmOC50eHQKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwogICAg ICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGIwZXJyLmgKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3RyeDB1bmRvLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3Fs LmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHJlYy5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvdHJ4L3RyeDB1bmRvLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS91dC91dDB1dC5jCiAz NTE2IFRvciBEaWRyaWtzZW4JMjAxMS0wOC0zMQogICAgICBCdWcjMTI4NTY5MTUgVkFMR1JJTkQg RkFJTFVSRSBJTiBGSUxFU09SVC9DUkVBVEVfU09SVF9JTkRFWAogICAgICAKICAgICAgUG9zdC1w dXNoIGZpeDoKICAgICAgRW5hYmxlIGZpbGVzb3J0IHBhdHRlcm4gdHdvLCBwZXJmc2NoZW1hLnNl bGVjdHMgZmFpbGVkLgoKICAgIG1vZGlmaWVkOgogICAgICBteXNxbC10ZXN0L3ZhbGdyaW5kLnN1 cHAKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbXlfYmFzZS5oJwotLS0gYS9pbmNsdWRlL215 X2Jhc2UuaAlyZXZpZDp0b3IuZGlkcmlrc2VuQG9yYWNsZS5jb20tMjAxMTA4MzExNDQ1NTItMWg3 czFtY2xnbWg2amVuYQorKysgYi9pbmNsdWRlL215X2Jhc2UuaAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDExMDkwMTE4NDgwNC0yOTAxZjZxbXVybzNqYXM4CkBAIC00NDgsNyArNDQ4 LDggQEAgZW51bSBoYV9iYXNlX2tleXR5cGUgewogI2RlZmluZSBIQV9FUlJfVE9PX01BTllfQ09O Q1VSUkVOVF9UUlhTIDE3NyAvKlRvbyBtYW55IGFjdGl2ZSBjb25jdXJyZW50IHRyYW5zYWN0aW9u cyAqLwogI2RlZmluZSBIQV9FUlJfSU5ERVhfQ09MX1RPT19MT05HIDE3OAkgLyogSW5kZXggY29s dW1uIGxlbmd0aCBleGNlZWRzIGxpbWl0ICovCiAjZGVmaW5lIEhBX0VSUl9JTkRFWF9DT1JSVVBU ICAgICAgMTc5CSAvKiBJbmRleCBjb3JydXB0ZWQgKi8KLSNkZWZpbmUgSEFfRVJSX0xBU1QgICAg ICAgICAgICAgICAxNzkgICAgLyogQ29weSBvZiBsYXN0IGVycm9yIG5yICovCisjZGVmaW5lIEhB X0VSUl9VTkRPX1JFQ19UT09fQklHICAgMTgwICAgIC8qIFVuZG8gbG9nIHJlY29yZCB0b28gYmln ICovCisjZGVmaW5lIEhBX0VSUl9MQVNUICAgICAgICAgICAgICAgMTgwICAgIC8qIENvcHkgb2Yg bGFzdCBlcnJvciBuciAqLwogCiAvKiBOdW1iZXIgb2YgZGlmZmVyZW50IGVycm9ycyAqLwogI2Rl ZmluZSBIQV9FUlJfRVJST1JTICAgICAgICAgICAgKEhBX0VSUl9MQVNUIC0gSEFfRVJSX0ZJUlNU ICsgMSkKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9k Yi1pbmRleC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWlu ZGV4LnJlc3VsdAlyZXZpZDp0b3IuZGlkcmlrc2VuQG9yYWNsZS5jb20tMjAxMTA4MzExNDQ1NTIt MWg3czFtY2xnbWg2amVuYQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1p bmRleC5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQt MjkwMWY2cW11cm8zamFzOApAQCAtOTc1LDYgKzk3NSwxNSBAQCBJTlNFUlQgSU5UTyB0MSBWQUxV RVMoOSxAcixAcixAcixAcixAcixACiBVUERBVEUgdDEgU0VUIGE9MTAwMDsKIERFTEVURSBGUk9N IHQxOwogRFJPUCBUQUJMRSB0MTsKK0NSRUFURSBUQUJMRSBidWcxMjU0NzY0NygKK2EgSU5UIE5P VCBOVUxMLCBiIEJMT0IgTk9UIE5VTEwsIGMgVEVYVCwKK1BSSU1BUlkgS0VZIChiKDEwKSwgYSks IElOREVYIChjKDc2NykpLCBJTkRFWChiKDc2NykpCispIEVOR0lORT1Jbm5vREIgUk9XX0ZPUk1B VD1EWU5BTUlDOworSU5TRVJUIElOVE8gYnVnMTI1NDc2NDcgVkFMVUVTICg1LHJlcGVhdCgna2hk Zm81QWxPcScsMTkwMCkscmVwZWF0KCdnJyw3NzUxKSk7CitDT01NSVQ7CitVUERBVEUgYnVnMTI1 NDc2NDcgU0VUIGMgPSBSRVBFQVQoJ2InLDE2OTI4KTsKK0VSUk9SIEhZMDAwOiBVbmRvIGxvZyBy ZWNvcmQgaXMgdG9vIGJpZy4KK0RST1AgVEFCTEUgYnVnMTI1NDc2NDc7CiBzZXQgZ2xvYmFsIGlu bm9kYl9maWxlX3Blcl90YWJsZT0wOwogc2V0IGdsb2JhbCBpbm5vZGJfZmlsZV9mb3JtYXQ9QW50 ZWxvcGU7CiBzZXQgZ2xvYmFsIGlubm9kYl9maWxlX2Zvcm1hdF9tYXg9QW50ZWxvcGU7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItaW5kZXgudGVz dCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItaW5kZXgudGVzdAlyZXZp ZDp0b3IuZGlkcmlrc2VuQG9yYWNsZS5jb20tMjAxMTA4MzExNDQ1NTItMWg3czFtY2xnbWg2amVu YQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1pbmRleC50ZXN0CXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwOTAxMTg0ODA0LTI5MDFmNnFtdXJvM2phczgK QEAgLTQ3Nyw2ICs0NzcsMTkgQEAgREVMRVRFIEZST00gdDE7CiAtLSBzbGVlcCAxMAogRFJPUCBU QUJMRSB0MTsKIAorIyBCdWcjMTI1NDc2NDcgVVBEQVRFIExPR0dJTkcgQ09VTEQgRVhDRUVEIExP RyBQQUdFIFNJWkUKK0NSRUFURSBUQUJMRSBidWcxMjU0NzY0NygKK2EgSU5UIE5PVCBOVUxMLCBi IEJMT0IgTk9UIE5VTEwsIGMgVEVYVCwKK1BSSU1BUlkgS0VZIChiKDEwKSwgYSksIElOREVYIChj KDc2NykpLCBJTkRFWChiKDc2NykpCispIEVOR0lORT1Jbm5vREIgUk9XX0ZPUk1BVD1EWU5BTUlD OworCitJTlNFUlQgSU5UTyBidWcxMjU0NzY0NyBWQUxVRVMgKDUscmVwZWF0KCdraGRmbzVBbE9x JywxOTAwKSxyZXBlYXQoJ2cnLDc3NTEpKTsKK0NPTU1JVDsKKyMgVGhlIGZvbGxvd2luZyB1c2Vk IHRvIGNhdXNlIGluZmluaXRlIHVuZG8gbG9nIGFsbG9jYXRpb24uCistLWVycm9yIEVSX1VORE9f UkVDT1JEX1RPT19CSUcKK1VQREFURSBidWcxMjU0NzY0NyBTRVQgYyA9IFJFUEVBVCgnYicsMTY5 MjgpOworRFJPUCBUQUJMRSBidWcxMjU0NzY0NzsKKwogZXZhbCBzZXQgZ2xvYmFsIGlubm9kYl9m aWxlX3Blcl90YWJsZT0kcGVyX3RhYmxlOwogZXZhbCBzZXQgZ2xvYmFsIGlubm9kYl9maWxlX2Zv cm1hdD0kZm9ybWF0OwogZXZhbCBzZXQgZ2xvYmFsIGlubm9kYl9maWxlX2Zvcm1hdF9tYXg9JGZv cm1hdDsKCj09PSBtb2RpZmllZCBmaWxlICdteXN5cy9teV9oYW5kbGVyX2Vycm9ycy5oJwotLS0g YS9teXN5cy9teV9oYW5kbGVyX2Vycm9ycy5oCXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xlLmNv bS0yMDExMDgzMTE0NDU1Mi0xaDdzMW1jbGdtaDZqZW5hCisrKyBiL215c3lzL215X2hhbmRsZXJf ZXJyb3JzLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQtMjkw MWY2cW11cm8zamFzOApAQCAtODIsNyArODIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqaGFuZGxl cl9lcnJvcl9tZXNzYWdlCiAgICJSZWFkIHBhZ2Ugd2l0aCB3cm9uZyBjaGVja3N1bSIsCiAgICJU b28gbWFueSBhY3RpdmUgY29uY3VycmVudCB0cmFuc2FjdGlvbnMiLAogICAiSW5kZXggY29sdW1u IGxlbmd0aCBleGNlZWRzIGxpbWl0IiwKLSAgIkluZGV4IGNvcnJ1cHRlZCIKKyAgIkluZGV4IGNv cnJ1cHRlZCIsCisgICJVbmRvIHJlY29yZCB0b28gYmlnIgogfTsKIAogZXh0ZXJuIHZvaWQgbXlf aGFuZGxlcl9lcnJvcl9yZWdpc3Rlcih2b2lkKTsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFu ZGxlci5jYycKLS0tIGEvc3FsL2hhbmRsZXIuY2MJcmV2aWQ6dG9yLmRpZHJpa3NlbkBvcmFjbGUu Y29tLTIwMTEwODMxMTQ0NTUyLTFoN3MxbWNsZ21oNmplbmEKKysrIGIvc3FsL2hhbmRsZXIuY2MJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQtMjkwMWY2cW11cm8z amFzOApAQCAtMjg2OSw2ICsyODY5LDkgQEAgdm9pZCBoYW5kbGVyOjpwcmludF9lcnJvcihpbnQg ZXJyb3IsIG15ZgogICBjYXNlIEhBX0VSUl9JTkRFWF9DT1JSVVBUOgogICAgIHRleHRubz0gRVJf SU5ERVhfQ09SUlVQVDsKICAgICBicmVhazsKKyAgY2FzZSBIQV9FUlJfVU5ET19SRUNfVE9PX0JJ RzoKKyAgICB0ZXh0bm89IEVSX1VORE9fUkVDT1JEX1RPT19CSUc7CisgICAgYnJlYWs7CiAgIGRl ZmF1bHQ6CiAgICAgewogICAgICAgLyogVGhlIGVycm9yIHdhcyAidW5rbm93biIgdG8gdGhpcyBm dW5jdGlvbi4KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0Jwot LS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xl LmNvbS0yMDExMDgzMTE0NDU1Mi0xaDdzMW1jbGdtaDZqZW5hCisrKyBiL3NxbC9zaGFyZS9lcnJt c2ctdXRmOC50eHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQt MjkwMWY2cW11cm8zamFzOApAQCAtNjQxNywzICs2NDE3LDYgQEAgRVJfRVJST1JfSU5fVU5LTk9X Tl9UUklHR0VSX0JPRFkKIAogRVJfSU5ERVhfQ09SUlVQVAogICBlbmcgIkluZGV4ICVzIGlzIGNv cnJ1cHRlZCIKKworRVJfVU5ET19SRUNPUkRfVE9PX0JJRworICBlbmcgIlVuZG8gbG9nIHJlY29y ZCBpcyB0b28gYmlnLiIKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRs ZXIvaGFfaW5ub2RiLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjCXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xlLmNvbS0yMDExMDgzMTE0NDU1Mi0xaDdzMW1j bGdtaDZqZW5hCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQtMjkwMWY2cW11cm8zamFz OApAQCAtMTA0NSw2ICsxMDQ1LDggQEAgY29udmVydF9lcnJvcl9jb2RlX3RvX215c3FsKAogCQly ZXR1cm4oSEFfRVJSX1VOU1VQUE9SVEVEKTsKIAljYXNlIERCX0lOREVYX0NPUlJVUFQ6CiAJCXJl dHVybihIQV9FUlJfSU5ERVhfQ09SUlVQVCk7CisJY2FzZSBEQl9VTkRPX1JFQ09SRF9UT09fQklH OgorCQlyZXR1cm4oSEFfRVJSX1VORE9fUkVDX1RPT19CSUcpOwogCX0KIH0KIAoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kYjBlcnIuaCcKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL2RiMGVyci5oCXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xlLmNv bS0yMDExMDgzMTE0NDU1Mi0xaDdzMW1jbGdtaDZqZW5hCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9kYjBlcnIuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDkwMTE4 NDgwNC0yOTAxZjZxbXVybzNqYXM4CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAwOSwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMg UmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMTExLDYgKzExMSw3IEBAIGVudW0gZGJfZXJyIHsKIAlE Ql9UT09fQklHX0lOREVYX0NPTCwJCS8qIGluZGV4IGNvbHVtbiBzaXplIGV4Y2VlZHMgbWF4aW11 bQogCQkJCQlsaW1pdCAqLwogCURCX0lOREVYX0NPUlJVUFQsCQkvKiB3ZSBoYXZlIGNvcnJ1cHRl ZCBpbmRleCAqLworCURCX1VORE9fUkVDT1JEX1RPT19CSUcsCQkvKiB0aGUgdW5kbyBsb2cgcmVj b3JkIGlzIHRvbyBiaWcgKi8KIAogCS8qIFRoZSBmb2xsb3dpbmcgYXJlIHBhcnRpYWwgZmFpbHVy ZSBjb2RlcyAqLwogCURCX0ZBSUwgPSAxMDAwLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvdHJ4MHVuZG8uaAlyZXZpZDp0b3IuZGlkcmlrc2VuQG9yYWNsZS5jb20tMjAxMTA4MzExNDQ1 NTItMWg3czFtY2xnbWg2amVuYQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHVu ZG8uaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDkwMTE4NDgwNC0yOTAxZjZx bXVybzNqYXM4CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHly aWdodCAoYykgMTk5NiwgMjAwOSwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitD b3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZQpAQCAtMjA0LDE3ICsyMDQsNTEgQEAgdHJ4X3VuZG9fYWRkX3BhZ2UoCiAJbXRyX3Qq CQltdHIpOwkvKiE8IGluOiBtdHIgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIGxhdGNoIHRvIGFueQog CQkJCXVuZG8gbG9nIHBhZ2U7IHRoZSBjYWxsZXIgbXVzdCBoYXZlIHJlc2VydmVkCiAJCQkJdGhl IHJvbGxiYWNrIHNlZ21lbnQgbXV0ZXggKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0ZyZWVzIHRoZSBs YXN0IHVuZG8gbG9nIHBhZ2UuCitUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgcm9sbGJhY2sgc2Vn bWVudCBtdXRleC4gKi8KK1VOSVZfSU5URVJOCit2b2lkCit0cnhfdW5kb19mcmVlX2xhc3RfcGFn ZV9mdW5jKAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSovCisjaWZkZWYgVU5JVl9ERUJV RworCWNvbnN0IHRyeF90Kgl0cngsCS8qITwgaW46IHRyYW5zYWN0aW9uICovCisjZW5kaWYgLyog VU5JVl9ERUJVRyAqLworCXRyeF91bmRvX3QqCXVuZG8sCS8qITwgaW4vb3V0OiB1bmRvIGxvZyBt ZW1vcnkgY29weSAqLworCW10cl90KgkJbXRyKQkvKiE8IGluL291dDogbWluaS10cmFuc2FjdGlv biB3aGljaCBkb2VzIG5vdAorCQkJCWhhdmUgYSBsYXRjaCB0byBhbnkgdW5kbyBsb2cgcGFnZSBv ciB3aGljaAorCQkJCWhhcyBhbGxvY2F0ZWQgdGhlIHVuZG8gbG9nIHBhZ2UgKi8KKwlfX2F0dHJp YnV0ZV9fKChub25udWxsKSk7CisjaWZkZWYgVU5JVl9ERUJVRworIyBkZWZpbmUgdHJ4X3VuZG9f ZnJlZV9sYXN0X3BhZ2UodHJ4LHVuZG8sbXRyKQlcCisJdHJ4X3VuZG9fZnJlZV9sYXN0X3BhZ2Vf ZnVuYyh0cngsdW5kbyxtdHIpCisjZWxzZSAvKiBVTklWX0RFQlVHICovCisjIGRlZmluZSB0cnhf dW5kb19mcmVlX2xhc3RfcGFnZSh0cngsdW5kbyxtdHIpCVwKKwl0cnhfdW5kb19mcmVlX2xhc3Rf cGFnZV9mdW5jKHVuZG8sbXRyKQorI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogVHJ1bmNhdGVzIGFuIHVuZG8gbG9nIGZyb20gdGhlIGVuZC4gVGhpcyBmdW5j dGlvbiBpcyB1c2VkIGR1cmluZyBhIHJvbGxiYWNrCiB0byBmcmVlIHNwYWNlIGZyb20gYW4gdW5k byBsb2cuICovCiBVTklWX0lOVEVSTgogdm9pZAotdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKAotLyo9 PT09PT09PT09PT09PT09PT0qLwotCXRyeF90KgkJdHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiB3 aG9zZSB1bmRvIGxvZyBpdCBpcyAqLwotCXRyeF91bmRvX3QqCXVuZG8sCS8qITwgaW46IHVuZG8g bG9nICovCi0JdW5kb19ub190CWxpbWl0KTsJLyohPCBpbjogYWxsIHVuZG8gcmVjb3JkcyB3aXRo IHVuZG8gbnVtYmVyCit0cnhfdW5kb190cnVuY2F0ZV9lbmRfZnVuYygKKy8qPT09PT09PT09PT09 PT09PT09PT09PT0qLworI2lmZGVmIFVOSVZfREVCVUcKKwljb25zdCB0cnhfdCoJdHJ4LAkvKiE8 IGluOiB0cmFuc2FjdGlvbiB3aG9zZSB1bmRvIGxvZyBpdCBpcyAqLworI2VuZGlmIC8qIFVOSVZf REVCVUcgKi8KKwl0cnhfdW5kb190Kgl1bmRvLAkvKiE8IGluL291dDogdW5kbyBsb2cgKi8KKwl1 bmRvX25vX3QJbGltaXQpCS8qITwgaW46IGFsbCB1bmRvIHJlY29yZHMgd2l0aCB1bmRvIG51bWJl cgogCQkJCT49IHRoaXMgdmFsdWUgc2hvdWxkIGJlIHRydW5jYXRlZCAqLworCV9fYXR0cmlidXRl X18oKG5vbm51bGwpKTsKKyNpZmRlZiBVTklWX0RFQlVHCisjIGRlZmluZSB0cnhfdW5kb190cnVu Y2F0ZV9lbmQodHJ4LHVuZG8sbGltaXQpCQlcCisJdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kX2Z1bmMo dHJ4LHVuZG8sbGltaXQpCisjZWxzZSAvKiBVTklWX0RFQlVHICovCisjIGRlZmluZSB0cnhfdW5k b190cnVuY2F0ZV9lbmQodHJ4LHVuZG8sbGltaXQpCQlcCisJdHJ4X3VuZG9fdHJ1bmNhdGVfZW5k X2Z1bmModW5kbyxsaW1pdCkKKyNlbmRpZiAvKiBVTklWX0RFQlVHICovCisKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKIFRydW5jYXRlcyBhbiB1bmRvIGxvZyBmcm9tIHRoZSBzdGFydC4gVGhpcyBmdW5j dGlvbiBpcyB1c2VkIGR1cmluZyBhIHB1cmdlCiBvcGVyYXRpb24uICovCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3FsLmMnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2Uvcm93L3JvdzBteXNxbC5jCXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xlLmNvbS0yMDEx MDgzMTE0NDU1Mi0xaDdzMW1jbGdtaDZqZW5hCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzBteXNxbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwOTAxMTg0ODA0LTI5 MDFmNnFtdXJvM2phczgKQEAgLTU3Niw2ICs1NzYsNyBAQCBoYW5kbGVfbmV3X2Vycm9yOgogCWNh c2UgREJfRFVQTElDQVRFX0tFWToKIAljYXNlIERCX0ZPUkVJR05fRFVQTElDQVRFX0tFWToKIAlj YXNlIERCX1RPT19CSUdfUkVDT1JEOgorCWNhc2UgREJfVU5ET19SRUNPUkRfVE9PX0JJRzoKIAlj YXNlIERCX1JPV19JU19SRUZFUkVOQ0VEOgogCWNhc2UgREJfTk9fUkVGRVJFTkNFRF9ST1c6CiAJ Y2FzZSBEQl9DQU5OT1RfQUREX0NPTlNUUkFJTlQ6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS90cngvdHJ4MHJlYy5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngw cmVjLmMJcmV2aWQ6dG9yLmRpZHJpa3NlbkBvcmFjbGUuY29tLTIwMTEwODMxMTQ0NTUyLTFoN3Mx bWNsZ21oNmplbmEKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHJlYy5jCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwOTAxMTg0ODA0LTI5MDFmNnFtdXJvM2phczgKQEAg LTY2OSw3ICs2NjksNiBAQCB0cnhfdW5kb19wYWdlX3JlcG9ydF9tb2RpZnkoCiAJLyogU2F2ZSB0 byB0aGUgdW5kbyBsb2cgdGhlIG9sZCB2YWx1ZXMgb2YgdGhlIGNvbHVtbnMgdG8gYmUgdXBkYXRl ZC4gKi8KIAogCWlmICh1cGRhdGUpIHsKLQogCQlpZiAodHJ4X3VuZG9fbGVmdCh1bmRvX3BhZ2Us IHB0cikgPCA1KSB7CiAKIAkJCXJldHVybigwKTsKQEAgLTExMTksMjIgKzExMTgsMjkgQEAgdHJ4 X3VuZG9fcmVjX2dldF9wYXJ0aWFsX3JvdygKICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgotRXJhc2VzIHRoZSB1bnVzZWQgdW5kbyBsb2cgcGFnZSBl bmQuICovCi1zdGF0aWMKLXZvaWQKK0VyYXNlcyB0aGUgdW51c2VkIHVuZG8gbG9nIHBhZ2UgZW5k LgorQHJldHVybiBUUlVFIGlmIHRoZSBwYWdlIGNvbnRhaW5lZCBzb21ldGhpbmcsIEZBTFNFIGlm IGl0IHdhcyBlbXB0eSAqLworc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51 c2VkX3Jlc3VsdCkpCitpYm9vbAogdHJ4X3VuZG9fZXJhc2VfcGFnZV9lbmQoCiAvKj09PT09PT09 PT09PT09PT09PT09Ki8KLQlwYWdlX3QqCXVuZG9fcGFnZSwJLyohPCBpbjogdW5kbyBwYWdlIHdo b3NlIGVuZCB0byBlcmFzZSAqLwotCW10cl90KgltdHIpCQkvKiE8IGluOiBtdHIgKi8KKwlwYWdl X3QqCXVuZG9fcGFnZSwJLyohPCBpbi9vdXQ6IHVuZG8gcGFnZSB3aG9zZSBlbmQgdG8gZXJhc2Ug Ki8KKwltdHJfdCoJbXRyKQkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAl1 bGludAlmaXJzdF9mcmVlOwogCiAJZmlyc3RfZnJlZSA9IG1hY2hfcmVhZF9mcm9tXzIodW5kb19w YWdlICsgVFJYX1VORE9fUEFHRV9IRFIKIAkJCQkgICAgICArIFRSWF9VTkRPX1BBR0VfRlJFRSk7 CisJaWYgKGZpcnN0X2ZyZWUgPT0gVFJYX1VORE9fUEFHRV9IRFIgKyBUUlhfVU5ET19QQUdFX0hE Ul9TSVpFKSB7CisJCS8qIFRoaXMgd2FzIGFuIGVtcHR5IHBhZ2UgdG8gYmVnaW4gd2l0aC4KKwkJ RG8gbm90aGluZyBoZXJlOyB0aGUgY2FsbGVyIHNob3VsZCBmcmVlIHRoZSBwYWdlLiAqLworCQly ZXR1cm4oRkFMU0UpOworCX0KIAltZW1zZXQodW5kb19wYWdlICsgZmlyc3RfZnJlZSwgMHhmZiwK IAkgICAgICAgKFVOSVZfUEFHRV9TSVpFIC0gRklMX1BBR0VfREFUQV9FTkQpIC0gZmlyc3RfZnJl ZSk7CiAKIAltbG9nX3dyaXRlX2luaXRpYWxfbG9nX3JlY29yZCh1bmRvX3BhZ2UsIE1MT0dfVU5E T19FUkFTRV9FTkQsIG10cik7CisJcmV0dXJuKFRSVUUpOwogfQogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCkBAIC0xMTU2 LDcgKzExNjIsMTEgQEAgdHJ4X3VuZG9fcGFyc2VfZXJhc2VfcGFnZV9lbmQoCiAJCXJldHVybihw dHIpOwogCX0KIAotCXRyeF91bmRvX2VyYXNlX3BhZ2VfZW5kKHBhZ2UsIG10cik7CisJaWYgKCF0 cnhfdW5kb19lcmFzZV9wYWdlX2VuZChwYWdlLCBtdHIpKSB7CisJCS8qIFRoZSBmdW5jdGlvbiB0 cnhfdW5kb19lcmFzZV9wYWdlX2VuZCgpIHNob3VsZCBub3QKKwkJaGF2ZSBkb25lIGFueXRoaW5n IHRvIGFuIGVtcHR5IHBhZ2UuICovCisJCXV0X2FkKDApOworCX0KIAogCXJldHVybihwdHIpOwog fQpAQCAtMTIwMiw2ICsxMjEyLDkgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAJ bWVtX2hlYXBfdCoJaGVhcAkJPSBOVUxMOwogCXVsaW50CQlvZmZzZXRzX1tSRUNfT0ZGU19OT1JN QUxfU0laRV07CiAJdWxpbnQqCQlvZmZzZXRzCQk9IG9mZnNldHNfOworI2lmZGVmIFVOSVZfREVC VUcKKwlpbnQJCWxvb3BfY291bnQJPSAwOworI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIAlyZWNf b2Zmc19pbml0KG9mZnNldHNfKTsKIAogCXV0X2EoZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkp OwpAQCAtMTI2NCw3ICsxMjc3LDcgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAK IAltdHJfc3RhcnQoJm10cik7CiAKLQlmb3IgKDs7KSB7CisJZG8gewogCQlidWZfYmxvY2tfdCoJ dW5kb19ibG9jazsKIAkJcGFnZV90KgkJdW5kb19wYWdlOwogCQl1bGludAkJb2Zmc2V0OwpAQCAt MTI5Myw3ICsxMzA2LDE5IEBAIHRyeF91bmRvX3JlcG9ydF9yb3dfb3BlcmF0aW9uKAogCQkJdmVy c2lvbiB0aGUgcmVwbGljYXRlIHBhZ2UgY29uc3RydWN0ZWQgdXNpbmcgdGhlIGxvZwogCQkJcmVj b3JkcyBzdGF5cyBpZGVudGljYWwgdG8gdGhlIG9yaWdpbmFsIHBhZ2UgKi8KIAotCQkJdHJ4X3Vu ZG9fZXJhc2VfcGFnZV9lbmQodW5kb19wYWdlLCAmbXRyKTsKKwkJCWlmICghdHJ4X3VuZG9fZXJh c2VfcGFnZV9lbmQodW5kb19wYWdlLCAmbXRyKSkgeworCQkJCS8qIFRoZSByZWNvcmQgZGlkIG5v dCBmaXQgb24gYW4gZW1wdHkKKwkJCQl1bmRvIHBhZ2UuIERpc2NhcmQgdGhlIGZyZXNobHkgYWxs b2NhdGVkCisJCQkJcGFnZSBhbmQgcmV0dXJuIGFuIGVycm9yLiAqLworCisJCQkJbXV0ZXhfZW50 ZXIoJnJzZWctPm11dGV4KTsKKwkJCQl0cnhfdW5kb19mcmVlX2xhc3RfcGFnZSh0cngsIHVuZG8s ICZtdHIpOworCQkJCW11dGV4X2V4aXQoJnJzZWctPm11dGV4KTsKKworCQkJCWVyciA9IERCX1VO RE9fUkVDT1JEX1RPT19CSUc7CisJCQkJZ290byBlcnJfZXhpdDsKKwkJCX0KKwogCQkJbXRyX2Nv bW1pdCgmbXRyKTsKIAkJfSBlbHNlIHsKIAkJCS8qIFN1Y2Nlc3MgKi8KQEAgLTEzMTMsMTYgKzEz MzgsMTUgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAJCQkqcm9sbF9wdHIgPSB0 cnhfdW5kb19idWlsZF9yb2xsX3B0cigKIAkJCQlvcF90eXBlID09IFRSWF9VTkRPX0lOU0VSVF9P UCwKIAkJCQlyc2VnLT5pZCwgcGFnZV9ubywgb2Zmc2V0KTsKLQkJCWlmIChVTklWX0xJS0VMWV9O VUxMKGhlYXApKSB7Ci0JCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKLQkJCX0KLQkJCXJldHVybihE Ql9TVUNDRVNTKTsKKwkJCWVyciA9IERCX1NVQ0NFU1M7CisJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJ fQogCiAJCXV0X2FkKHBhZ2Vfbm8gPT0gdW5kby0+bGFzdF9wYWdlX25vKTsKIAogCQkvKiBXZSBo YXZlIHRvIGV4dGVuZCB0aGUgdW5kbyBsb2cgYnkgb25lIHBhZ2UgKi8KIAorCQl1dF9hZCgrK2xv b3BfY291bnQgPCAyKTsKIAkJbXRyX3N0YXJ0KCZtdHIpOwogCiAJCS8qIFdoZW4gd2UgYWRkIGEg cGFnZSB0byBhbiB1bmRvIGxvZywgdGhpcyBpcyBhbmFsb2dvdXMgdG8KQEAgLTEzMzQsMTggKzEz NTgsMTkgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAJCXBhZ2Vfbm8gPSB0cnhf dW5kb19hZGRfcGFnZSh0cngsIHVuZG8sICZtdHIpOwogCiAJCW11dGV4X2V4aXQoJihyc2VnLT5t dXRleCkpOworCX0gd2hpbGUgKFVOSVZfTElLRUxZKHBhZ2Vfbm8gIT0gRklMX05VTEwpKTsKIAot CQlpZiAoVU5JVl9VTkxJS0VMWShwYWdlX25vID09IEZJTF9OVUxMKSkgewotCQkJLyogRGlkIG5v dCBzdWNjZWVkOiBvdXQgb2Ygc3BhY2UgKi8KKwkvKiBEaWQgbm90IHN1Y2NlZWQ6IG91dCBvZiBz cGFjZSAqLworCWVyciA9IERCX09VVF9PRl9GSUxFX1NQQUNFOwogCi0JCQltdXRleF9leGl0KCYo dHJ4LT51bmRvX211dGV4KSk7Ci0JCQltdHJfY29tbWl0KCZtdHIpOwotCQkJaWYgKFVOSVZfTElL RUxZX05VTEwoaGVhcCkpIHsKLQkJCQltZW1faGVhcF9mcmVlKGhlYXApOwotCQkJfQotCQkJcmV0 dXJuKERCX09VVF9PRl9GSUxFX1NQQUNFKTsKLQkJfQorZXJyX2V4aXQ6CisJbXV0ZXhfZXhpdCgm dHJ4LT51bmRvX211dGV4KTsKKwltdHJfY29tbWl0KCZtdHIpOworZnVuY19leGl0OgorCWlmIChV TklWX0xJS0VMWV9OVUxMKGhlYXApKSB7CisJCW1lbV9oZWFwX2ZyZWUoaGVhcCk7CiAJfQorCXJl dHVybihlcnIpOwogfQogCiAvKj09PT09PT09PT09PT09IEJVSUxESU5HIFBSRVZJT1VTIFZFUlNJ T04gT0YgQSBSRUNPUkQgPT09PT09PT09PT09PT09Ki8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3RyeC90 cngwdW5kby5jCXJldmlkOnRvci5kaWRyaWtzZW5Ab3JhY2xlLmNvbS0yMDExMDgzMTE0NDU1Mi0x aDdzMW1jbGdtaDZqZW5hCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQtMjkwMWY2cW11cm8zamFz OApAQCAtMTAwNCwyOSArMTAwNCwyOCBAQCB0cnhfdW5kb19mcmVlX3BhZ2UoCiB9CiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKLUZyZWVzIGFuIHVuZG8gbG9nIHBhZ2Ugd2hlbiB0aGVyZSBpcyBhbHNvIHRo ZSBtZW1vcnkgb2JqZWN0IGZvciB0aGUgdW5kbwotbG9nLiAqLwotc3RhdGljCitGcmVlcyB0aGUg bGFzdCB1bmRvIGxvZyBwYWdlLgorVGhlIGNhbGxlciBtdXN0IGhvbGQgdGhlIHJvbGxiYWNrIHNl Z21lbnQgbXV0ZXguICovCitVTklWX0lOVEVSTgogdm9pZAotdHJ4X3VuZG9fZnJlZV9wYWdlX2lu X3JvbGxiYWNrKAotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCXRyeF90KgkJdHJ4 IF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCAvKiE8IGluOiB0cmFuc2FjdGlvbiAqLwotCXRyeF91 bmRvX3QqCXVuZG8sCS8qITwgaW46IHVuZG8gbG9nIG1lbW9yeSBjb3B5ICovCi0JdWxpbnQJCXBh Z2Vfbm8sLyohPCBpbjogcGFnZSBudW1iZXIgdG8gZnJlZTogbXVzdCBub3QgYmUgdGhlCi0JCQkJ aGVhZGVyIHBhZ2UgKi8KLQltdHJfdCoJCW10cikJLyohPCBpbjogbXRyIHdoaWNoIGRvZXMgbm90 IGhhdmUgYSBsYXRjaCB0byBhbnkKLQkJCQl1bmRvIGxvZyBwYWdlOyB0aGUgY2FsbGVyIG11c3Qg aGF2ZSByZXNlcnZlZAotCQkJCXRoZSByb2xsYmFjayBzZWdtZW50IG11dGV4ICovCit0cnhfdW5k b19mcmVlX2xhc3RfcGFnZV9mdW5jKAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSovCisj aWZkZWYgVU5JVl9ERUJVRworCWNvbnN0IHRyeF90Kgl0cngsCS8qITwgaW46IHRyYW5zYWN0aW9u ICovCisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLworCXRyeF91bmRvX3QqCXVuZG8sCS8qITwgaW4v b3V0OiB1bmRvIGxvZyBtZW1vcnkgY29weSAqLworCW10cl90KgkJbXRyKQkvKiE8IGluL291dDog bWluaS10cmFuc2FjdGlvbiB3aGljaCBkb2VzIG5vdAorCQkJCWhhdmUgYSBsYXRjaCB0byBhbnkg dW5kbyBsb2cgcGFnZSBvciB3aGljaAorCQkJCWhhcyBhbGxvY2F0ZWQgdGhlIHVuZG8gbG9nIHBh Z2UgKi8KIHsKLQl1bGludAlsYXN0X3BhZ2Vfbm87Ci0KLQl1dF9hZCh1bmRvLT5oZHJfcGFnZV9u byAhPSBwYWdlX25vKTsKLQl1dF9hZChtdXRleF9vd24oJih0cngtPnVuZG9fbXV0ZXgpKSk7Ci0K LQlsYXN0X3BhZ2Vfbm8gPSB0cnhfdW5kb19mcmVlX3BhZ2UodW5kby0+cnNlZywgRkFMU0UsIHVu ZG8tPnNwYWNlLAotCQkJCQkgIHVuZG8tPmhkcl9wYWdlX25vLCBwYWdlX25vLCBtdHIpOworCXV0 X2FkKG11dGV4X293bigmdHJ4LT51bmRvX211dGV4KSk7CisJdXRfYWQodW5kby0+aGRyX3BhZ2Vf bm8gIT0gdW5kby0+bGFzdF9wYWdlX25vKTsKKwl1dF9hZCh1bmRvLT5zaXplID4gMCk7CisKKwl1 bmRvLT5sYXN0X3BhZ2Vfbm8gPSB0cnhfdW5kb19mcmVlX3BhZ2UoCisJCXVuZG8tPnJzZWcsIEZB TFNFLCB1bmRvLT5zcGFjZSwKKwkJdW5kby0+aGRyX3BhZ2Vfbm8sIHVuZG8tPmxhc3RfcGFnZV9u bywgbXRyKTsKIAotCXVuZG8tPmxhc3RfcGFnZV9ubyA9IGxhc3RfcGFnZV9ubzsKIAl1bmRvLT5z aXplLS07CiB9CiAKQEAgLTEwNjIsOSArMTA2MSwxMSBAQCBUcnVuY2F0ZXMgYW4gdW5kbyBsb2cg ZnJvbSB0aGUgZW5kLiBUaGlzCiB0byBmcmVlIHNwYWNlIGZyb20gYW4gdW5kbyBsb2cuICovCiBV TklWX0lOVEVSTgogdm9pZAotdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKAotLyo9PT09PT09PT09PT09 PT09PT0qLwotCXRyeF90KgkJdHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiB3aG9zZSB1bmRvIGxv ZyBpdCBpcyAqLwordHJ4X3VuZG9fdHJ1bmNhdGVfZW5kX2Z1bmMoCisvKj09PT09PT09PT09PT09 PT09PT09PT09Ki8KKyNpZmRlZiBVTklWX0RFQlVHCisJY29uc3QgdHJ4X3QqCXRyeCwJLyohPCBp bjogdHJhbnNhY3Rpb24gd2hvc2UgdW5kbyBsb2cgaXQgaXMgKi8KKyNlbmRpZiAvKiBVTklWX0RF QlVHICovCiAJdHJ4X3VuZG9fdCoJdW5kbywJLyohPCBpbjogdW5kbyBsb2cgKi8KIAl1bmRvX25v X3QJbGltaXQpCS8qITwgaW46IGFsbCB1bmRvIHJlY29yZHMgd2l0aCB1bmRvIG51bWJlcgogCQkJ CT49IHRoaXMgdmFsdWUgc2hvdWxkIGJlIHRydW5jYXRlZCAqLwpAQCAtMTA5MCwxOCArMTA5MSw3 IEBAIHRyeF91bmRvX3RydW5jYXRlX2VuZCgKIAogCQlyZWMgPSB0cnhfdW5kb19wYWdlX2dldF9s YXN0X3JlYyh1bmRvX3BhZ2UsIHVuZG8tPmhkcl9wYWdlX25vLAogCQkJCQkJIHVuZG8tPmhkcl9v ZmZzZXQpOwotCQlmb3IgKDs7KSB7Ci0JCQlpZiAocmVjID09IE5VTEwpIHsKLQkJCQlpZiAobGFz dF9wYWdlX25vID09IHVuZG8tPmhkcl9wYWdlX25vKSB7Ci0KLQkJCQkJZ290byBmdW5jdGlvbl9l eGl0OwotCQkJCX0KLQotCQkJCXRyeF91bmRvX2ZyZWVfcGFnZV9pbl9yb2xsYmFjaygKLQkJCQkJ dHJ4LCB1bmRvLCBsYXN0X3BhZ2Vfbm8sICZtdHIpOwotCQkJCWJyZWFrOwotCQkJfQotCisJCXdo aWxlIChyZWMpIHsKIAkJCWlmICh0cnhfdW5kb19yZWNfZ2V0X3VuZG9fbm8ocmVjKSA+PSBsaW1p dCkgewogCQkJCS8qIFRydW5jYXRlIGF0IGxlYXN0IHRoaXMgcmVjb3JkIG9mZiwgbWF5YmUKIAkJ CQltb3JlICovCkBAIC0xMTE1LDYgKzExMDUsMTQgQEAgdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKAog CQkJCQkJCSB1bmRvLT5oZHJfb2Zmc2V0KTsKIAkJfQogCisJCWlmIChsYXN0X3BhZ2Vfbm8gPT0g dW5kby0+aGRyX3BhZ2Vfbm8pIHsKKworCQkJZ290byBmdW5jdGlvbl9leGl0OworCQl9CisKKwkJ dXRfYWQobGFzdF9wYWdlX25vID09IHVuZG8tPmxhc3RfcGFnZV9ubyk7CisJCXRyeF91bmRvX2Zy ZWVfbGFzdF9wYWdlKHRyeCwgdW5kbywgJm10cik7CisKIAkJbXRyX2NvbW1pdCgmbXRyKTsKIAl9 CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3V0L3V0MHV0LmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvdXQvdXQwdXQuYwlyZXZpZDp0b3IuZGlkcmlrc2VuQG9yYWNsZS5j b20tMjAxMTA4MzExNDQ1NTItMWg3czFtY2xnbWg2amVuYQorKysgYi9zdG9yYWdlL2lubm9iYXNl L3V0L3V0MHV0LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODQ4MDQt MjkwMWY2cW11cm8zamFzOApAQCAtNzE0LDYgKzcxNCw4IEBAIHV0X3N0cmVycigKIAkJcmV0dXJu KCJObyBpbmRleCBvbiByZWZlcmVuY2VkIGtleXMgaW4gcmVmZXJlbmNlZCB0YWJsZSIpOwogCWNh c2UgREJfSU5ERVhfQ09SUlVQVDoKIAkJcmV0dXJuKCJJbmRleCBjb3JydXB0ZWQiKTsKKwljYXNl IERCX1VORE9fUkVDT1JEX1RPT19CSUc6CisJCXJldHVybigiVW5kbyByZWNvcmQgdG9vIGJpZyIp OwogCWNhc2UgREJfRU5EX09GX0lOREVYOgogCQlyZXR1cm4oIkVuZCBvZiBpbmRleCIpOwogCS8q IGRvIG5vdCBhZGQgZGVmYXVsdDogaW4gb3JkZXIgdG8gcHJvZHVjZSBhIHdhcm5pbmcgaWYgbmV3 IGNvZGUKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku