From: marko.makela Date: May 14 2010 1:11pm Subject: bzr push into mysql-5.1-innodb branch (marko.makela:3464 to 3467) Bug#48024 Bug#53644 List-Archive: http://lists.mysql.com/commits/108335 X-Bug: 48024,53644 Message-Id: <201005141311.o4EDAFWm025269@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2014033497==" --===============2014033497== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDM0NjcgTWFya28gTcOka2Vsw6QJMjAxMC0wNS0xNAogICAgICBEb2N1bWVudCBCdWcgIzQ4MDI0 IGFuZCBCdWcgIzUzNjQ0IGluIHRoZSBDaGFuZ2VMb2cKCiAgICBtb2RpZmllZDoKICAgICAgc3Rv cmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwogMzQ2NiBNYXJrbyBNw6RrZWzDpAkyMDEwLTA1 LTE0CiAgICAgIE1ha2UgdGhlIElubm9EQiBGT1JFSUdOIEtFWSBwYXJzZXIgdW5kZXJzdGFuZCBt dWx0aS1zdGF0ZW1lbnRzLiAoQnVnICM0ODAyNCkKICAgICAgQWxzbyBtYWtlIElubm9EQiB0aGlu a3MgdGhhdCAvKi8gb25seSBzdGFydHMgYSBjb21tZW50LiAoQnVnICM1MzY0NCkuCiAgICAgIAog ICAgICBUaGlzIGZpeGVzIHRoZSBidWdzIGluIHRoZSBJbm5vREIgUGx1Z2luLgogICAgICAKICAg ICAgaGFfaW5ub2RiLmg6IFVzZSB0cnhfcXVlcnlfc3RyaW5nKCkgaW5zdGVhZCBvZiB0cnhfcXVl cnkoKSB3aGVuCiAgICAgIGF2YWlsYWJsZSAoTXlTUUwgNS4xLjQyIG9yIGxhdGVyKS4KICAgICAg CiAgICAgIGlubm9iYXNlX2dldF9zdG10KCk6IE5ldyBmdW5jdGlvbiwgdG8gcmV0cmlldmUgdGhl IGN1cnJlbnRseSBydW5uaW5nCiAgICAgIFNRTCBzdGF0ZW1lbnQuCiAgICAgIAogICAgICBzdHJ1 Y3QgdHJ4X3N0cnVjdDogUmVtb3ZlIG15c3FsX3F1ZXJ5X3N0ci4gVXNlIGlubm9iYXNlX2dldF9z dG10KCkgaW5zdGVhZC4KICAgICAgCiAgICAgIGRpY3Rfc3RyaXBfY29tbWVudHMoKTogQWRkIGFu ZCBvYnNlcnZlIHRoZSBwYXJhbWV0ZXIgc3FsX2xlbmd0aC4gVHJlYXQKICAgICAgLyovIGFzIHRo ZSBzdGFydCBvZiBhIGNvbW1lbnQuCiAgICAgIAogICAgICBkaWN0X2NyZWF0ZV9mb3JlaWduX2Nv bnN0cmFpbnRzKCksIHJvd190YWJsZV9hZGRfZm9yZWlnbl9jb25zdHJhaW50cygpOgogICAgICBB ZGQgdGhlIHBhcmFtZXRlciBzcWxfbGVuZ3RoLgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0 L3N1aXRlL2lubm9kYl9wbHVnaW4vci9pbm5vZGJfYnVnNDgwMjQucmVzdWx0CiAgICAgIG15c3Fs LXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9idWc0ODAyNC50ZXN0CiAgICBtb2Rp ZmllZDoKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2RpY3QvZGljdDBkaWN0LmMKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3Bs dWdpbi9pbmNsdWRlL2RpY3QwZGljdC5oCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNs dWRlL2hhX3Byb3RvdHlwZXMuaAogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9y b3cwbXlzcWwuaAogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS90cngwdHJ4LmgK ICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwbXlzcWwuYwogICAgICBzdG9yYWdl L2lubm9kYl9wbHVnaW4vdHJ4L3RyeDBpX3MuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4v dHJ4L3RyeDB0cnguYwogMzQ2NSBNYXJrbyBNw6RrZWzDpAkyMDEwLTA1LTE0CiAgICAgIE1ha2Ug dGhlIElubm9EQiBGT1JFSUdOIEtFWSBwYXJzZXIgdW5kZXJzdGFuZCBtdWx0aS1zdGF0ZW1lbnRz LiAoQnVnICM0ODAyNCkKICAgICAgQWxzbyBtYWtlIElubm9EQiB0aGlua3MgdGhhdCAvKi8gb25s eSBzdGFydHMgYSBjb21tZW50LiAoQnVnICM1MzY0NCkuCiAgICAgIAogICAgICBzdHJ1Y3QgdHJ4 X3N0cnVjdDogQWRkIG15c3FsX3F1ZXJ5X2xlbi4KICAgICAgCiAgICAgIGhhX2lubm9kYi5jYzog VXNlIHRyeF9xdWVyeV9zdHJpbmcoKSBpbnN0ZWFkIG9mIHRyeF9xdWVyeSgpIGFuZAogICAgICBp bml0aWFsaXplIHRyeC0+bXlzcWxfcXVlcnlfbGVuLgogICAgICAKICAgICAgSU5OT0JBU0VfQ09Q WV9TVE1UKHRoZCwgdHJ4KTogTmV3IG1hY3JvLCB0byBpbml0aWFsaXplCiAgICAgIHRyeC0+bXlz cWxfcXVlcnlfc3RyIGFuZCB0cngtPm15c3FsX3F1ZXJ5X2xlbi4KICAgICAgCiAgICAgIGRpY3Rf c3RyaXBfY29tbWVudHMoKTogQWRkIGFuZCBvYnNlcnZlIHRoZSBwYXJhbWV0ZXIgc3FsX2xlbmd0 aC4gVHJlYXQKICAgICAgLyovIGFzIHRoZSBzdGFydCBvZiBhIGNvbW1lbnQuCiAgICAgIAogICAg ICBkaWN0X2NyZWF0ZV9mb3JlaWduX2NvbnN0cmFpbnRzKCksIHJvd190YWJsZV9hZGRfZm9yZWln bl9jb25zdHJhaW50cygpOgogICAgICBBZGQgdGhlIHBhcmFtZXRlciBzcWxfbGVuZ3RoLgoKICAg IGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc0ODAyNC5y ZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNDgwMjQudGVz dAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MGRpY3QuYwog ICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvZGljdDBkaWN0LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5o CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdHJ4LmgKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9yb3cvcm93MG15c3FsLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHRy eC5jCiAzNDY0IE1hcmtvIE3DpGtlbMOkCTIwMTAtMDUtMTQKICAgICAgUmVtb3ZlIHVudXNlZCBj b2RlLgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3RhcnQu Ywo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNDgw MjQucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc0ODAy NC5yZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2lubm9kYi9yL2lubm9kYl9idWc0ODAyNC5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMDA1MTQxMzEwNTAtbWtobHZsdWkxdTUyaXJvYgpAQCAtMCwwICsxLDEwIEBACitD UkVBVEUgVEFCTEUgYnVnNDgwMjQoYSBpbnQgUFJJTUFSWSBLRVksYiBpbnQgTk9UIE5VTEwsS0VZ KGIpKSBFTkdJTkU9SW5ub0RCOworQ1JFQVRFIFRBQkxFIGJ1ZzQ4MDI0X2IoYiBpbnQgUFJJTUFS WSBLRVkpIEVOR0lORT1Jbm5vREI7CitBTFRFUiBUQUJMRSBidWc0ODAyNCAvKi9BREQgQ09OU1RS QUlOVCBGT1JFSUdOIEtFWShjKSBSRUZFUkVOQ0VTKGEpLC8qLworQUREIENPTlNUUkFJTlQgRk9S RUlHTiBLRVkoYikgUkVGRVJFTkNFUyBidWc0ODAyNF9iKGIpOworRFJPUCBUQUJMRSBidWc0ODAy NCxidWc0ODAyNF9iOworQ1JFQVRFIFRBQkxFIGJ1ZzQ4MDI0KGEgaW50IFBSSU1BUlkgS0VZLGIg aW50IE5PVCBOVUxMLEtFWShiKSkgRU5HSU5FPUlubm9EQjsKK0NSRUFURSBUQUJMRSBidWc0ODAy NF9iKGIgaW50IFBSSU1BUlkgS0VZKSBFTkdJTkU9SW5ub0RCOworQUxURVIgVEFCTEUgYnVnNDgw MjQgLyovQUREIENPTlNUUkFJTlQgRk9SRUlHTiBLRVkoYykgUkVGRVJFTkNFUyhhKSwvKi8KK0FE RCBDT05TVFJBSU5UIEZPUkVJR04gS0VZKGIpIFJFRkVSRU5DRVMgYnVnNDgwMjRfYihiKXwKK0RS T1AgVEFCTEUgYnVnNDgwMjQsYnVnNDgwMjRfYjsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0 L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc0ODAyNC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1 aXRlL2lubm9kYi90L2lubm9kYl9idWc0ODAyNC50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNDgwMjQudGVzdAly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJp cm9iCkBAIC0wLDAgKzEsMjAgQEAKKyMgQnVnICM0ODAyNCBJbm5vZGIgZG9lc24ndCB3b3JrIHdp dGggbXVsdGktc3RhdGVtZW50cworCistLXNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYwor CitDUkVBVEUgVEFCTEUgYnVnNDgwMjQoYSBpbnQgUFJJTUFSWSBLRVksYiBpbnQgTk9UIE5VTEws S0VZKGIpKSBFTkdJTkU9SW5ub0RCOworQ1JFQVRFIFRBQkxFIGJ1ZzQ4MDI0X2IoYiBpbnQgUFJJ TUFSWSBLRVkpIEVOR0lORT1Jbm5vREI7CisjIEJ1ZyAjNTM2NDQgSW5ub0RCIHRoaW5rcyB0aGF0 IC8qLyBzdGFydHMgYW5kIGVuZHMgYSBjb21tZW50CitBTFRFUiBUQUJMRSBidWc0ODAyNCAvKi9B REQgQ09OU1RSQUlOVCBGT1JFSUdOIEtFWShjKSBSRUZFUkVOQ0VTKGEpLC8qLworQUREIENPTlNU UkFJTlQgRk9SRUlHTiBLRVkoYikgUkVGRVJFTkNFUyBidWc0ODAyNF9iKGIpOworCitEUk9QIFRB QkxFIGJ1ZzQ4MDI0LGJ1ZzQ4MDI0X2I7CisKK2RlbGltaXRlciB8OworQ1JFQVRFIFRBQkxFIGJ1 ZzQ4MDI0KGEgaW50IFBSSU1BUlkgS0VZLGIgaW50IE5PVCBOVUxMLEtFWShiKSkgRU5HSU5FPUlu bm9EQjsKK0NSRUFURSBUQUJMRSBidWc0ODAyNF9iKGIgaW50IFBSSU1BUlkgS0VZKSBFTkdJTkU9 SW5ub0RCOworQUxURVIgVEFCTEUgYnVnNDgwMjQgLyovQUREIENPTlNUUkFJTlQgRk9SRUlHTiBL RVkoYykgUkVGRVJFTkNFUyhhKSwvKi8KK0FERCBDT05TVFJBSU5UIEZPUkVJR04gS0VZKGIpIFJF RkVSRU5DRVMgYnVnNDgwMjRfYihiKXwKK2RlbGltaXRlciA7fAorCitEUk9QIFRBQkxFIGJ1ZzQ4 MDI0LGJ1ZzQ4MDI0X2I7Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJf cGx1Z2luL3IvaW5ub2RiX2J1ZzQ4MDI0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9p bm5vZGJfcGx1Z2luL3IvaW5ub2RiX2J1ZzQ4MDI0LnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAw ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi9yL2lubm9kYl9idWc0 ODAyNC5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMzEwNTAt bWtobHZsdWkxdTUyaXJvYgpAQCAtMCwwICsxLDEwIEBACitDUkVBVEUgVEFCTEUgYnVnNDgwMjQo YSBpbnQgUFJJTUFSWSBLRVksYiBpbnQgTk9UIE5VTEwsS0VZKGIpKSBFTkdJTkU9SW5ub0RCOwor Q1JFQVRFIFRBQkxFIGJ1ZzQ4MDI0X2IoYiBpbnQgUFJJTUFSWSBLRVkpIEVOR0lORT1Jbm5vREI7 CitBTFRFUiBUQUJMRSBidWc0ODAyNCAvKi9BREQgQ09OU1RSQUlOVCBGT1JFSUdOIEtFWShjKSBS RUZFUkVOQ0VTKGEpLC8qLworQUREIENPTlNUUkFJTlQgRk9SRUlHTiBLRVkoYikgUkVGRVJFTkNF UyBidWc0ODAyNF9iKGIpOworRFJPUCBUQUJMRSBidWc0ODAyNCxidWc0ODAyNF9iOworQ1JFQVRF IFRBQkxFIGJ1ZzQ4MDI0KGEgaW50IFBSSU1BUlkgS0VZLGIgaW50IE5PVCBOVUxMLEtFWShiKSkg RU5HSU5FPUlubm9EQjsKK0NSRUFURSBUQUJMRSBidWc0ODAyNF9iKGIgaW50IFBSSU1BUlkgS0VZ KSBFTkdJTkU9SW5ub0RCOworQUxURVIgVEFCTEUgYnVnNDgwMjQgLyovQUREIENPTlNUUkFJTlQg Rk9SRUlHTiBLRVkoYykgUkVGRVJFTkNFUyhhKSwvKi8KK0FERCBDT05TVFJBSU5UIEZPUkVJR04g S0VZKGIpIFJFRkVSRU5DRVMgYnVnNDgwMjRfYihiKXwKK0RST1AgVEFCTEUgYnVnNDgwMjQsYnVn NDgwMjRfYjsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4v dC9pbm5vZGJfYnVnNDgwMjQudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1 Z2luL3QvaW5ub2RiX2J1ZzQ4MDI0LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4vdC9pbm5vZGJfYnVnNDgwMjQudGVzdAly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJp cm9iCkBAIC0wLDAgKzEsMjAgQEAKKyMgQnVnICM0ODAyNCBJbm5vZGIgZG9lc24ndCB3b3JrIHdp dGggbXVsdGktc3RhdGVtZW50cworCistLXNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiX3BsdWdp bi5pbmMKKworQ1JFQVRFIFRBQkxFIGJ1ZzQ4MDI0KGEgaW50IFBSSU1BUlkgS0VZLGIgaW50IE5P VCBOVUxMLEtFWShiKSkgRU5HSU5FPUlubm9EQjsKK0NSRUFURSBUQUJMRSBidWc0ODAyNF9iKGIg aW50IFBSSU1BUlkgS0VZKSBFTkdJTkU9SW5ub0RCOworIyBCdWcgIzUzNjQ0IElubm9EQiB0aGlu a3MgdGhhdCAvKi8gc3RhcnRzIGFuZCBlbmRzIGEgY29tbWVudAorQUxURVIgVEFCTEUgYnVnNDgw MjQgLyovQUREIENPTlNUUkFJTlQgRk9SRUlHTiBLRVkoYykgUkVGRVJFTkNFUyhhKSwvKi8KK0FE RCBDT05TVFJBSU5UIEZPUkVJR04gS0VZKGIpIFJFRkVSRU5DRVMgYnVnNDgwMjRfYihiKTsKKwor RFJPUCBUQUJMRSBidWc0ODAyNCxidWc0ODAyNF9iOworCitkZWxpbWl0ZXIgfDsKK0NSRUFURSBU QUJMRSBidWc0ODAyNChhIGludCBQUklNQVJZIEtFWSxiIGludCBOT1QgTlVMTCxLRVkoYikpIEVO R0lORT1Jbm5vREI7CitDUkVBVEUgVEFCTEUgYnVnNDgwMjRfYihiIGludCBQUklNQVJZIEtFWSkg RU5HSU5FPUlubm9EQjsKK0FMVEVSIFRBQkxFIGJ1ZzQ4MDI0IC8qL0FERCBDT05TVFJBSU5UIEZP UkVJR04gS0VZKGMpIFJFRkVSRU5DRVMoYSksLyovCitBREQgQ09OU1RSQUlOVCBGT1JFSUdOIEtF WShiKSBSRUZFUkVOQ0VTIGJ1ZzQ4MDI0X2IoYil8CitkZWxpbWl0ZXIgO3wKKworRFJPUCBUQUJM RSBidWc0ODAyNCxidWc0ODAyNF9iOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvZGljdC9kaWN0MGRpY3QuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwZGlj dC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5 eTljYXk3angKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwZGljdC5jCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2bHVpMXU1Mmlyb2IKQEAg LTI1ODYsMjUgKzI1ODYsMjggQEAgZGljdF9zdHJpcF9jb21tZW50cygKIAkJCQkJLyogb3V0LCBv d246IFNRTCBzdHJpbmcgc3RyaXBwZWQgZnJvbQogCQkJCQljb21tZW50czsgdGhlIGNhbGxlciBt dXN0IGZyZWUgdGhpcwogCQkJCQl3aXRoIG1lbV9mcmVlKCkhICovCi0JY29uc3QgY2hhcioJc3Fs X3N0cmluZykJLyogaW46IFNRTCBzdHJpbmcgKi8KKwljb25zdCBjaGFyKglzcWxfc3RyaW5nLAkv KiBpbjogU1FMIHN0cmluZyAqLworCXNpemVfdAkJc3FsX2xlbmd0aCkJLyogaW46IGxlbmd0aCBv ZiBzcWxfc3RyaW5nICovCiB7CiAJY2hhcioJCXN0cjsKIAljb25zdCBjaGFyKglzcHRyOworCWNv bnN0IGNoYXIqCWVwdHIJPSBzcWxfc3RyaW5nICsgc3FsX2xlbmd0aDsKIAljaGFyKgkJcHRyOwog CS8qIHVuY2xvc2VkIHF1b3RlIGNoYXJhY3RlciAoMCBpZiBub25lKSAqLwogCWNoYXIJCXF1b3Rl CT0gMDsKIAotCXN0ciA9IG1lbV9hbGxvYyhzdHJsZW4oc3FsX3N0cmluZykgKyAxKTsKKwlzdHIg PSBtZW1fYWxsb2Moc3FsX2xlbmd0aCArIDEpOwogCiAJc3B0ciA9IHNxbF9zdHJpbmc7CiAJcHRy ID0gc3RyOwogCiAJZm9yICg7Oykgewogc2Nhbl9tb3JlOgotCQlpZiAoKnNwdHIgPT0gJ1wwJykg eworCQlpZiAoc3B0ciA+PSBlcHRyIHx8ICpzcHRyID09ICdcMCcpIHsKK2VuZF9vZl9zdHJpbmc6 CiAJCQkqcHRyID0gJ1wwJzsKIAotCQkJdXRfYShwdHIgPD0gc3RyICsgc3RybGVuKHNxbF9zdHJp bmcpKTsKKwkJCXV0X2EocHRyIDw9IHN0ciArIHNxbF9sZW5ndGgpOwogCiAJCQlyZXR1cm4oc3Ry KTsKIAkJfQpAQCAtMjYyMywzMCArMjYyNiwzNSBAQCBzY2FuX21vcmU6CiAJCQkgICB8fCAoc3B0 clswXSA9PSAnLScgJiYgc3B0clsxXSA9PSAnLScKIAkJCSAgICAgICAmJiBzcHRyWzJdID09ICcg JykpIHsKIAkJCWZvciAoOzspIHsKKwkJCQlpZiAoKytzcHRyID49IGVwdHIpIHsKKwkJCQkJZ290 byBlbmRfb2Zfc3RyaW5nOworCQkJCX0KKwogCQkJCS8qIEluIFVuaXggYSBuZXdsaW5lIGlzIDB4 MEEgd2hpbGUgaW4gV2luZG93cwogCQkJCWl0IGlzIDB4MEQgZm9sbG93ZWQgYnkgMHgwQSAqLwog Ci0JCQkJaWYgKCpzcHRyID09IChjaGFyKTB4MEEKLQkJCQkgICAgfHwgKnNwdHIgPT0gKGNoYXIp MHgwRAotCQkJCSAgICB8fCAqc3B0ciA9PSAnXDAnKSB7Ci0KKwkJCQlzd2l0Y2ggKCpzcHRyKSB7 CisJCQkJY2FzZSAoY2hhcikgMFgwQToKKwkJCQljYXNlIChjaGFyKSAweDBEOgorCQkJCWNhc2Ug J1wwJzoKIAkJCQkJZ290byBzY2FuX21vcmU7CiAJCQkJfQotCi0JCQkJc3B0cisrOwogCQkJfQog CQl9IGVsc2UgaWYgKCFxdW90ZSAmJiAqc3B0ciA9PSAnLycgJiYgKihzcHRyICsgMSkgPT0gJyon KSB7CisJCQlzcHRyICs9IDI7CiAJCQlmb3IgKDs7KSB7Ci0JCQkJaWYgKCpzcHRyID09ICcqJyAm JiAqKHNwdHIgKyAxKSA9PSAnLycpIHsKLQotCQkJCQlzcHRyICs9IDI7Ci0KLQkJCQkJZ290byBz Y2FuX21vcmU7CisJCQkJaWYgKHNwdHIgPj0gZXB0cikgeworCQkJCQlnb3RvIGVuZF9vZl9zdHJp bmc7CiAJCQkJfQogCi0JCQkJaWYgKCpzcHRyID09ICdcMCcpIHsKLQorCQkJCXN3aXRjaCAoKnNw dHIpIHsKKwkJCQljYXNlICdcMCc6CiAJCQkJCWdvdG8gc2Nhbl9tb3JlOworCQkJCWNhc2UgJyon OgorCQkJCQlpZiAoc3B0clsxXSA9PSAnLycpIHsKKwkJCQkJCXNwdHIgKz0gMjsKKwkJCQkJCWdv dG8gc2Nhbl9tb3JlOworCQkJCQl9CiAJCQkJfQogCiAJCQkJc3B0cisrOwpAQCAtMzM0OCw2ICsz MzU2LDcgQEAgZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cygKIAkJCQkJbmFtZSBiZWZv cmUgaXQ6IHRlc3QudGFibGUyOyB0aGUKIAkJCQkJZGVmYXVsdCBkYXRhYmFzZSBpZCB0aGUgZGF0 YWJhc2Ugb2YKIAkJCQkJcGFyYW1ldGVyIG5hbWUgKi8KKwlzaXplX3QJCXNxbF9sZW5ndGgsCS8q IGluOiBsZW5ndGggb2Ygc3FsX3N0cmluZyAqLwogCWNvbnN0IGNoYXIqCW5hbWUsCQkvKiBpbjog dGFibGUgZnVsbCBuYW1lIGluIHRoZQogCQkJCQlub3JtYWxpemVkIGZvcm0KIAkJCQkJZGF0YWJh c2VfbmFtZS90YWJsZV9uYW1lICovCkBAIC0zMzYyLDcgKzMzNzEsNyBAQCBkaWN0X2NyZWF0ZV9m b3JlaWduX2NvbnN0cmFpbnRzKAogCXV0X2EodHJ4KTsKIAl1dF9hKHRyeC0+bXlzcWxfdGhkKTsK IAotCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMoc3FsX3N0cmluZyk7CisJc3RyID0gZGljdF9z dHJpcF9jb21tZW50cyhzcWxfc3RyaW5nLCBzcWxfbGVuZ3RoKTsKIAloZWFwID0gbWVtX2hlYXBf Y3JlYXRlKDEwMDAwKTsKIAogCWVyciA9IGRpY3RfY3JlYXRlX2ZvcmVpZ25fY29uc3RyYWludHNf bG93KApAQCAtMzQxMSw3ICszNDIwLDggQEAgZGljdF9mb3JlaWduX3BhcnNlX2Ryb3BfY29uc3Ry YWludHMoCiAKIAkqY29uc3RyYWludHNfdG9fZHJvcCA9IG1lbV9oZWFwX2FsbG9jKGhlYXAsIDEw MDAgKiBzaXplb2YoY2hhciopKTsKIAotCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMoKih0cngt Pm15c3FsX3F1ZXJ5X3N0cikpOworCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMoKnRyeC0+bXlz cWxfcXVlcnlfc3RyLAorCQkJCSAgKnRyeC0+bXlzcWxfcXVlcnlfbGVuKTsKIAlwdHIgPSBzdHI7 CiAKIAl1dF9hZChtdXRleF9vd24oJihkaWN0X3N5cy0+bXV0ZXgpKSk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEwMDUxNDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4CisrKyBiL3N0b3JhZ2UvaW5ub2Jh c2UvaGFuZGxlci9oYV9pbm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MDA1MTQxMzEwNTAtbWtobHZsdWkxdTUyaXJvYgpAQCAtMTE0MCw2ICsxMTQwLDE1IEBAIGlubm9i YXNlX25leHRfYXV0b2luYygKIAlyZXR1cm4obmV4dF92YWx1ZSk7CiB9CiAKKy8qKiBDb3B5IHRo ZSBjdXJyZW50IFNRTCBzdGF0ZW1lbnQuCisqIEBwYXJhbVtpbl0gdGhkCU15U1FMIGNsaWVudCBj b25uZWN0aW9uCisqIEBwYXJhbVtpbi9vdXRdIHRyeAlJbm5vREIgdHJhbnNhY3Rpb24gKi8KKyNk ZWZpbmUgSU5OT0JBU0VfQ09QWV9TVE1UKHRoZCwgdHJ4KSBkbyB7CQlcCisJTEVYX1NUUklORyog c3RtdCA9IHRoZF9xdWVyeV9zdHJpbmcodGhkKTsJXAorCSh0cngpLT5teXNxbF9xdWVyeV9zdHIg PSAmc3RtdC0+c3RyOwkJXAorCSh0cngpLT5teXNxbF9xdWVyeV9sZW4gPSAmc3RtdC0+bGVuZ3Ro OwkJXAorfSB3aGlsZSAoMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIEdldHMgdGhlIElubm9EQiB0 cmFuc2FjdGlvbiBoYW5kbGUgZm9yIGEgTXlTUUwgaGFuZGxlciBvYmplY3QsIGNyZWF0ZXMKIGFu IElubm9EQiB0cmFuc2FjdGlvbiBzdHJ1Y3QgaWYgdGhlIGNvcnJlc3BvbmRpbmcgTXlTUUwgdGhy ZWFkIHN0cnVjdCBzdGlsbApAQCAtMTE2MCw3ICsxMTY5LDcgQEAgY2hlY2tfdHJ4X2V4aXN0cygK IAkJdHJ4ID0gdHJ4X2FsbG9jYXRlX2Zvcl9teXNxbCgpOwogCiAJCXRyeC0+bXlzcWxfdGhkID0g dGhkOwotCQl0cngtPm15c3FsX3F1ZXJ5X3N0ciA9IHRoZF9xdWVyeSh0aGQpOworCQlJTk5PQkFT RV9DT1BZX1NUTVQodGhkLCB0cngpOwogCiAJCS8qIFVwZGF0ZSB0aGUgaW5mbyB3aGV0aGVyIHdl IHNob3VsZCBza2lwIFhBIHN0ZXBzIHRoYXQgZWF0CiAJCUNQVSB0aW1lICovCkBAIC01NTc4LDcg KzU1ODcsNyBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCXRyeCA9IHRyeF9hbGxvY2F0ZV9mb3Jf bXlzcWwoKTsKIAogCXRyeC0+bXlzcWxfdGhkID0gdGhkOwotCXRyeC0+bXlzcWxfcXVlcnlfc3Ry ID0gdGhkX3F1ZXJ5KHRoZCk7CisJSU5OT0JBU0VfQ09QWV9TVE1UKHRoZCwgdHJ4KTsKIAogCWlm ICh0aGRfdGVzdF9vcHRpb25zKHRoZCwgT1BUSU9OX05PX0ZPUkVJR05fS0VZX0NIRUNLUykpIHsK IAkJdHJ4LT5jaGVja19mb3JlaWducyA9IEZBTFNFOwpAQCAtNTY3NCw4ICs1NjgzLDEwIEBAIGhh X2lubm9iYXNlOjpjcmVhdGUoCiAJfQogCiAJaWYgKCp0cngtPm15c3FsX3F1ZXJ5X3N0cikgewot CQllcnJvciA9IHJvd190YWJsZV9hZGRfZm9yZWlnbl9jb25zdHJhaW50cyh0cngsCi0JCQkqdHJ4 LT5teXNxbF9xdWVyeV9zdHIsIG5vcm1fbmFtZSwKKwkJZXJyb3IgPSByb3dfdGFibGVfYWRkX2Zv cmVpZ25fY29uc3RyYWludHMoCisJCQl0cngsCisJCQkqdHJ4LT5teXNxbF9xdWVyeV9zdHIsICp0 cngtPm15c3FsX3F1ZXJ5X2xlbiwKKwkJCW5vcm1fbmFtZSwKIAkJCWNyZWF0ZV9pbmZvLT5vcHRp b25zICYgSEFfTEVYX0NSRUFURV9UTVBfVEFCTEUpOwogCiAJCWVycm9yID0gY29udmVydF9lcnJv cl9jb2RlX3RvX215c3FsKGVycm9yLCBOVUxMKTsKQEAgLTU4NjYsNyArNTg3Nyw3IEBAIGhhX2lu bm9iYXNlOjpkZWxldGVfdGFibGUoCiAJdHJ4ID0gdHJ4X2FsbG9jYXRlX2Zvcl9teXNxbCgpOwog CiAJdHJ4LT5teXNxbF90aGQgPSB0aGQ7Ci0JdHJ4LT5teXNxbF9xdWVyeV9zdHIgPSB0aGRfcXVl cnkodGhkKTsKKwlJTk5PQkFTRV9DT1BZX1NUTVQodGhkLCB0cngpOwogCiAJaWYgKHRoZF90ZXN0 X29wdGlvbnModGhkLCBPUFRJT05fTk9fRk9SRUlHTl9LRVlfQ0hFQ0tTKSkgewogCQl0cngtPmNo ZWNrX2ZvcmVpZ25zID0gRkFMU0U7CkBAIC01OTU1LDcgKzU5NjYsNyBAQCBpbm5vYmFzZV9kcm9w X2RhdGFiYXNlKAogI2VuZGlmCiAJdHJ4ID0gdHJ4X2FsbG9jYXRlX2Zvcl9teXNxbCgpOwogCXRy eC0+bXlzcWxfdGhkID0gdGhkOwotCXRyeC0+bXlzcWxfcXVlcnlfc3RyID0gdGhkX3F1ZXJ5KHRo ZCk7CisJSU5OT0JBU0VfQ09QWV9TVE1UKHRoZCwgdHJ4KTsKIAogCWlmICh0aGRfdGVzdF9vcHRp b25zKHRoZCwgT1BUSU9OX05PX0ZPUkVJR05fS0VZX0NIRUNLUykpIHsKIAkJdHJ4LT5jaGVja19m b3JlaWducyA9IEZBTFNFOwpAQCAtNjAyNSw3ICs2MDM2LDcgQEAgaGFfaW5ub2Jhc2U6OnJlbmFt ZV90YWJsZSgKIAogCXRyeCA9IHRyeF9hbGxvY2F0ZV9mb3JfbXlzcWwoKTsKIAl0cngtPm15c3Fs X3RoZCA9IHRoZDsKLQl0cngtPm15c3FsX3F1ZXJ5X3N0ciA9IHRoZF9xdWVyeSh0aGQpOworCUlO Tk9CQVNFX0NPUFlfU1RNVCh0aGQsIHRyeCk7CiAKIAlpZiAodGhkX3Rlc3Rfb3B0aW9ucyh0aGQs IE9QVElPTl9OT19GT1JFSUdOX0tFWV9DSEVDS1MpKSB7CiAJCXRyeC0+Y2hlY2tfZm9yZWlnbnMg PSBGQUxTRTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFf aW5ub2RiLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4 CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC0yMTAs NyArMjEwLDcgQEAgdGhlIGRlZmluaXRpb25zIGFyZSBicmFja2V0ZWQgd2l0aCAjaWZkZQogCiBl eHRlcm4gIkMiIHsKIHN0cnVjdCBjaGFyc2V0X2luZm9fc3QgKnRoZF9jaGFyc2V0KE1ZU1FMX1RI RCB0aGQpOwotY2hhciAqKnRoZF9xdWVyeShNWVNRTF9USEQgdGhkKTsKK0xFWF9TVFJJTkcgKnRo ZF9xdWVyeV9zdHJpbmcoTVlTUUxfVEhEIHRoZCk7CiAKIC8qKiBHZXQgdGhlIGZpbGUgbmFtZSBv ZiB0aGUgTXlTUUwgYmlubG9nLgogICogQHJldHVybiB0aGUgbmFtZSBvZiB0aGUgYmlubG9nIGZp bGUKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGljdDBkaWN0 LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4CisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC0zMDksNiArMzA5 LDcgQEAgZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cygKIAkJCQkJbmFtZSBiZWZvcmUg aXQ6IHRlc3QudGFibGUyOyB0aGUKIAkJCQkJZGVmYXVsdCBkYXRhYmFzZSBpZCB0aGUgZGF0YWJh c2Ugb2YKIAkJCQkJcGFyYW1ldGVyIG5hbWUgKi8KKwlzaXplX3QJCXNxbF9sZW5ndGgsCS8qIGlu OiBsZW5ndGggb2Ygc3FsX3N0cmluZyAqLwogCWNvbnN0IGNoYXIqCW5hbWUsCQkvKiBpbjogdGFi bGUgZnVsbCBuYW1lIGluIHRoZQogCQkJCQlub3JtYWxpemVkIGZvcm0KIAkJCQkJZGF0YWJhc2Vf bmFtZS90YWJsZV9uYW1lICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JvdzBteXNxbC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15 c3FsLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMDUxMjYtZjE0NWhs MTl5OWNheTdqeAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15c3FsLmgJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMzEwNTAtbWtobHZsdWkxdTUyaXJv YgpAQCAtMzY2LDYgKzM2Niw3IEBAIHJvd190YWJsZV9hZGRfZm9yZWlnbl9jb25zdHJhaW50cygK IAkJCQlGT1JFSUdOIEtFWSAoYSwgYikgUkVGRVJFTkNFUyB0YWJsZTIoYywgZCksCiAJCQkJCXRh YmxlMiBjYW4gYmUgd3JpdHRlbiBhbHNvIHdpdGggdGhlCiAJCQkJCWRhdGFiYXNlIG5hbWUgYmVm b3JlIGl0OiB0ZXN0LnRhYmxlMiAqLworCXNpemVfdAkJc3FsX2xlbmd0aCwJLyogaW46IGxlbmd0 aCBvZiBzcWxfc3RyaW5nICovCiAJY29uc3QgY2hhcioJbmFtZSwJCS8qIGluOiB0YWJsZSBmdWxs IG5hbWUgaW4gdGhlCiAJCQkJCW5vcm1hbGl6ZWQgZm9ybQogCQkJCQlkYXRhYmFzZV9uYW1lL3Rh YmxlX25hbWUgKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv dHJ4MHRyeC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHRyeC5oCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTljYXk3angK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB0cnguaAlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC00NDQsNiAr NDQ0LDggQEAgc3RydWN0IHRyeF9zdHJ1Y3R7CiAJY2hhcioqCQlteXNxbF9xdWVyeV9zdHI7Lyog cG9pbnRlciB0byB0aGUgZmllbGQgaW4gbXlzcWxkX3RoZAogCQkJCQl3aGljaCBjb250YWlucyB0 aGUgcG9pbnRlciB0byB0aGUKIAkJCQkJY3VycmVudCBTUUwgcXVlcnkgc3RyaW5nICovCisJc2l6 ZV90KgkJbXlzcWxfcXVlcnlfbGVuOy8qIHBvaW50ZXIgdG8gdGhlIGxlbmd0aCBvZiB0aGUKKwkJ CQkJY3VycmVudCBTUUwgcXVlcnkgc3RyaW5nICovCiAJY29uc3QgY2hhcioJbXlzcWxfbG9nX2Zp bGVfbmFtZTsKIAkJCQkJLyogaWYgTXlTUUwgYmlubG9nIGlzIHVzZWQsIHRoaXMgZmllbGQKIAkJ CQkJY29udGFpbnMgYSBwb2ludGVyIHRvIHRoZSBsYXRlc3QgZmlsZQoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwbXlzcWwuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUx NDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBt eXNxbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2 bHVpMXU1Mmlyb2IKQEAgLTIxMDMsNiArMjEwMyw3IEBAIHJvd190YWJsZV9hZGRfZm9yZWlnbl9j b25zdHJhaW50cygKIAkJCQlGT1JFSUdOIEtFWSAoYSwgYikgUkVGRVJFTkNFUyB0YWJsZTIoYywg ZCksCiAJCQkJCXRhYmxlMiBjYW4gYmUgd3JpdHRlbiBhbHNvIHdpdGggdGhlCiAJCQkJCWRhdGFi YXNlIG5hbWUgYmVmb3JlIGl0OiB0ZXN0LnRhYmxlMiAqLworCXNpemVfdAkJc3FsX2xlbmd0aCwJ LyogaW46IGxlbmd0aCBvZiBzcWxfc3RyaW5nICovCiAJY29uc3QgY2hhcioJbmFtZSwJCS8qIGlu OiB0YWJsZSBmdWxsIG5hbWUgaW4gdGhlCiAJCQkJCW5vcm1hbGl6ZWQgZm9ybQogCQkJCQlkYXRh YmFzZV9uYW1lL3RhYmxlX25hbWUgKi8KQEAgLTIxMjQsOCArMjEyNSw4IEBAIHJvd190YWJsZV9h ZGRfZm9yZWlnbl9jb25zdHJhaW50cygKIAogCXRyeC0+ZGljdF9vcGVyYXRpb24gPSBUUlVFOwog Ci0JZXJyID0gZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cyh0cngsIHNxbF9zdHJpbmcs IG5hbWUsCi0JCQkJCSAgICAgIHJlamVjdF9ma3MpOworCWVyciA9IGRpY3RfY3JlYXRlX2ZvcmVp Z25fY29uc3RyYWludHModHJ4LCBzcWxfc3RyaW5nLCBzcWxfbGVuZ3RoLAorCQkJCQkgICAgICBu YW1lLCByZWplY3RfZmtzKTsKIAogCWlmIChlcnIgPT0gREJfU1VDQ0VTUykgewogCQkvKiBDaGVj ayB0aGF0IGFsc28gcmVmZXJlbmNpbmcgY29uc3RyYWludHMgYXJlIG9rICovCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHRyeC5jJwotLS0gYS9zdG9yYWdlL2lu bm9iYXNlL3RyeC90cngwdHJ4LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1 MTQxMDUxMjYtZjE0NWhsMTl5OWNheTdqeAorKysgYi9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngw dHJ4LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMzEwNTAtbWtobHZs dWkxdTUyaXJvYgpAQCAtMTMxLDYgKzEzMSw4IEBAIHRyeF9jcmVhdGUoCiAKIAl0cngtPm15c3Fs X3RoZCA9IE5VTEw7CiAJdHJ4LT5teXNxbF9xdWVyeV9zdHIgPSBOVUxMOworCXRyeC0+bXlzcWxf cXVlcnlfbGVuID0gTlVMTDsKKwogCXRyeC0+YWN0aXZlX3RyYW5zID0gMDsKIAl0cngtPmR1cGxp Y2F0ZXMgPSAwOwogCkBAIC05MzYsNiArOTM4LDcgQEAgdHJ4X2NvbW1pdF9vZmZfa2VybmVsKAog CXRyeC0+dW5kb19ubyA9IHV0X2R1bGludF96ZXJvOwogCXRyeC0+bGFzdF9zcWxfc3RhdF9zdGFy dC5sZWFzdF91bmRvX25vID0gdXRfZHVsaW50X3plcm87CiAJdHJ4LT5teXNxbF9xdWVyeV9zdHIg PSBOVUxMOworCXRyeC0+bXlzcWxfcXVlcnlfbGVuID0gTlVMTDsKIAogCXV0X2FkKFVUX0xJU1Rf R0VUX0xFTih0cngtPndhaXRfdGhycykgPT0gMCk7CiAJdXRfYWQoVVRfTElTVF9HRVRfTEVOKHRy eC0+dHJ4X2xvY2tzKSA9PSAwKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9w bHVnaW4vQ2hhbmdlTG9nJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vQ2hhbmdlTG9nCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTljYXk3 angKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC0xLDMgKzEs MTEgQEAKKzIwMTAtMDUtMTQJVGhlIElubm9EQiBUZWFtCisJKiBteXNxbC10ZXN0L2lubm9kYl9i dWc0ODAyNC50ZXN0LCBteXNxbC10ZXN0L2lubm9kYl9idWc0ODAyNC5yZXN1bHQsCisJZGljdC9k aWN0MGRpY3QuYywgaGFuZGxlci9oYV9pbm5vZGIuY2MsIGhhbmRsZXIvaGFfaW5ub2RiLmgsCisJ aW5jbHVkZS9kaWN0MGRpY3QuaCwgaW5jbHVkZS9oYV9wcm90b3R5cGVzLmgsIGluY2x1ZGUvcm93 MG15c3FsLmgsCisJaW5jbHVkZS90cngwdHJ4LmgsIHJvdy9yb3cwbXlzcWwuYywgdHJ4L3RyeDBp X3MuYywgdHJ4L3RyeDB0cnguYzoKKwlGaXggQnVnIzQ4MDI0IElubm9kYiBkb2Vzbid0IHdvcmsg d2l0aCBtdWx0aS1zdGF0ZW1lbnRzCisJRml4IEJ1ZyM1MzY0NCBJbm5vREIgdGhpbmtzIHRoYXQg LyovIHN0YXJ0cyBhbmQgZW5kcyBhIGNvbW1lbnQKKwogMjAxMC0wNS0xMglUaGUgSW5ub0RCIFRl YW0KIAogCSogaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjOgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2RiX3BsdWdpbi9kaWN0L2RpY3QwZGljdC5jJwotLS0gYS9zdG9yYWdlL2lubm9k Yl9wbHVnaW4vZGljdC9kaWN0MGRpY3QuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDEwMDUxNDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdp bi9kaWN0L2RpY3QwZGljdC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0 MTMxMDUwLW1raGx2bHVpMXU1Mmlyb2IKQEAgLTMwMDgsMjUgKzMwMDgsMjggQEAgc3RhdGljCiBj aGFyKgogZGljdF9zdHJpcF9jb21tZW50cygKIC8qPT09PT09PT09PT09PT09PSovCi0JY29uc3Qg Y2hhcioJc3FsX3N0cmluZykJLyohPCBpbjogU1FMIHN0cmluZyAqLworCWNvbnN0IGNoYXIqCXNx bF9zdHJpbmcsCS8qITwgaW46IFNRTCBzdHJpbmcgKi8KKwlzaXplX3QJCXNxbF9sZW5ndGgpCS8q ITwgaW46IGxlbmd0aCBvZiBzcWxfc3RyaW5nICovCiB7CiAJY2hhcioJCXN0cjsKIAljb25zdCBj aGFyKglzcHRyOworCWNvbnN0IGNoYXIqCWVwdHIJPSBzcWxfc3RyaW5nICsgc3FsX2xlbmd0aDsK IAljaGFyKgkJcHRyOwogCS8qIHVuY2xvc2VkIHF1b3RlIGNoYXJhY3RlciAoMCBpZiBub25lKSAq LwogCWNoYXIJCXF1b3RlCT0gMDsKIAotCXN0ciA9IG1lbV9hbGxvYyhzdHJsZW4oc3FsX3N0cmlu ZykgKyAxKTsKKwlzdHIgPSBtZW1fYWxsb2Moc3FsX2xlbmd0aCArIDEpOwogCiAJc3B0ciA9IHNx bF9zdHJpbmc7CiAJcHRyID0gc3RyOwogCiAJZm9yICg7Oykgewogc2Nhbl9tb3JlOgotCQlpZiAo KnNwdHIgPT0gJ1wwJykgeworCQlpZiAoc3B0ciA+PSBlcHRyIHx8ICpzcHRyID09ICdcMCcpIHsK K2VuZF9vZl9zdHJpbmc6CiAJCQkqcHRyID0gJ1wwJzsKIAotCQkJdXRfYShwdHIgPD0gc3RyICsg c3RybGVuKHNxbF9zdHJpbmcpKTsKKwkJCXV0X2EocHRyIDw9IHN0ciArIHNxbF9sZW5ndGgpOwog CiAJCQlyZXR1cm4oc3RyKTsKIAkJfQpAQCAtMzA0NSwzMCArMzA0OCwzNSBAQCBzY2FuX21vcmU6 CiAJCQkgICB8fCAoc3B0clswXSA9PSAnLScgJiYgc3B0clsxXSA9PSAnLScKIAkJCSAgICAgICAm JiBzcHRyWzJdID09ICcgJykpIHsKIAkJCWZvciAoOzspIHsKKwkJCQlpZiAoKytzcHRyID49IGVw dHIpIHsKKwkJCQkJZ290byBlbmRfb2Zfc3RyaW5nOworCQkJCX0KKwogCQkJCS8qIEluIFVuaXgg YSBuZXdsaW5lIGlzIDB4MEEgd2hpbGUgaW4gV2luZG93cwogCQkJCWl0IGlzIDB4MEQgZm9sbG93 ZWQgYnkgMHgwQSAqLwogCi0JCQkJaWYgKCpzcHRyID09IChjaGFyKTB4MEEKLQkJCQkgICAgfHwg KnNwdHIgPT0gKGNoYXIpMHgwRAotCQkJCSAgICB8fCAqc3B0ciA9PSAnXDAnKSB7Ci0KKwkJCQlz d2l0Y2ggKCpzcHRyKSB7CisJCQkJY2FzZSAoY2hhcikgMFgwQToKKwkJCQljYXNlIChjaGFyKSAw eDBEOgorCQkJCWNhc2UgJ1wwJzoKIAkJCQkJZ290byBzY2FuX21vcmU7CiAJCQkJfQotCi0JCQkJ c3B0cisrOwogCQkJfQogCQl9IGVsc2UgaWYgKCFxdW90ZSAmJiAqc3B0ciA9PSAnLycgJiYgKihz cHRyICsgMSkgPT0gJyonKSB7CisJCQlzcHRyICs9IDI7CiAJCQlmb3IgKDs7KSB7Ci0JCQkJaWYg KCpzcHRyID09ICcqJyAmJiAqKHNwdHIgKyAxKSA9PSAnLycpIHsKLQotCQkJCQlzcHRyICs9IDI7 Ci0KLQkJCQkJZ290byBzY2FuX21vcmU7CisJCQkJaWYgKHNwdHIgPj0gZXB0cikgeworCQkJCQln b3RvIGVuZF9vZl9zdHJpbmc7CiAJCQkJfQogCi0JCQkJaWYgKCpzcHRyID09ICdcMCcpIHsKLQor CQkJCXN3aXRjaCAoKnNwdHIpIHsKKwkJCQljYXNlICdcMCc6CiAJCQkJCWdvdG8gc2Nhbl9tb3Jl OworCQkJCWNhc2UgJyonOgorCQkJCQlpZiAoc3B0clsxXSA9PSAnLycpIHsKKwkJCQkJCXNwdHIg Kz0gMjsKKwkJCQkJCWdvdG8gc2Nhbl9tb3JlOworCQkJCQl9CiAJCQkJfQogCiAJCQkJc3B0cisr OwpAQCAtMzc0OSw2ICszNzU3LDcgQEAgZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cygK IAkJCQkJbmFtZSBiZWZvcmUgaXQ6IHRlc3QudGFibGUyOyB0aGUKIAkJCQkJZGVmYXVsdCBkYXRh YmFzZSBpZCB0aGUgZGF0YWJhc2Ugb2YKIAkJCQkJcGFyYW1ldGVyIG5hbWUgKi8KKwlzaXplX3QJ CXNxbF9sZW5ndGgsCS8qITwgaW46IGxlbmd0aCBvZiBzcWxfc3RyaW5nICovCiAJY29uc3QgY2hh cioJbmFtZSwJCS8qITwgaW46IHRhYmxlIGZ1bGwgbmFtZSBpbiB0aGUKIAkJCQkJbm9ybWFsaXpl ZCBmb3JtCiAJCQkJCWRhdGFiYXNlX25hbWUvdGFibGVfbmFtZSAqLwpAQCAtMzc2Myw3ICszNzcy LDcgQEAgZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cygKIAl1dF9hKHRyeCk7CiAJdXRf YSh0cngtPm15c3FsX3RoZCk7CiAKLQlzdHIgPSBkaWN0X3N0cmlwX2NvbW1lbnRzKHNxbF9zdHJp bmcpOworCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMoc3FsX3N0cmluZywgc3FsX2xlbmd0aCk7 CiAJaGVhcCA9IG1lbV9oZWFwX2NyZWF0ZSgxMDAwMCk7CiAKIAllcnIgPSBkaWN0X2NyZWF0ZV9m b3JlaWduX2NvbnN0cmFpbnRzX2xvdygKQEAgLTM3OTYsNiArMzgwNSw3IEBAIGRpY3RfZm9yZWln bl9wYXJzZV9kcm9wX2NvbnN0cmFpbnRzKAogCWRpY3RfZm9yZWlnbl90KgkJZm9yZWlnbjsKIAlp Ym9vbAkJCXN1Y2Nlc3M7CiAJY2hhcioJCQlzdHI7CisJc2l6ZV90CQkJbGVuOwogCWNvbnN0IGNo YXIqCQlwdHI7CiAJY29uc3QgY2hhcioJCWlkOwogCUZJTEUqCQkJZWYJPSBkaWN0X2ZvcmVpZ25f ZXJyX2ZpbGU7CkBAIC0zODEwLDcgKzM4MjAsMTAgQEAgZGljdF9mb3JlaWduX3BhcnNlX2Ryb3Bf Y29uc3RyYWludHMoCiAKIAkqY29uc3RyYWludHNfdG9fZHJvcCA9IG1lbV9oZWFwX2FsbG9jKGhl YXAsIDEwMDAgKiBzaXplb2YoY2hhciopKTsKIAotCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMo Kih0cngtPm15c3FsX3F1ZXJ5X3N0cikpOworCXB0ciA9IGlubm9iYXNlX2dldF9zdG10KHRyeC0+ bXlzcWxfdGhkLCAmbGVuKTsKKworCXN0ciA9IGRpY3Rfc3RyaXBfY29tbWVudHMocHRyLCBsZW4p OworCiAJcHRyID0gc3RyOwogCiAJdXRfYWQobXV0ZXhfb3duKCYoZGljdF9zeXMtPm11dGV4KSkp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lu bm9kYi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTlj YXk3angKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmNjCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2bHVpMXU1Mmly b2IKQEAgLTEwMDQsNiArMTAwNCwyOSBAQCBpbm5vYmFzZV9nZXRfY2hhcnNldCgKIAlyZXR1cm4o dGhkX2NoYXJzZXQoKFRIRCopIG15c3FsX3RoZCkpOwogfQogCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK K0RldGVybWluZXMgdGhlIGN1cnJlbnQgU1FMIHN0YXRlbWVudC4KK0ByZXR1cm4JU1FMIHN0YXRl bWVudCBzdHJpbmcgKi8KK2V4dGVybiAiQyIgVU5JVl9JTlRFUk4KK2NvbnN0IGNoYXIqCitpbm5v YmFzZV9nZXRfc3RtdCgKKy8qPT09PT09PT09PT09PT0qLworCXZvaWQqCW15c3FsX3RoZCwJLyoh PCBpbjogTXlTUUwgdGhyZWFkIGhhbmRsZSAqLworCXNpemVfdCoJbGVuZ3RoKQkJLyohPCBvdXQ6 IGxlbmd0aCBvZiB0aGUgU1FMIHN0YXRlbWVudCAqLworeworI2lmIE1ZU1FMX1ZFUlNJT05fSUQg Pj0gNTAxNDIKKwlMRVhfU1RSSU5HKiBzdG10OworCisJc3RtdCA9IHRoZF9xdWVyeV9zdHJpbmco KFRIRCopIG15c3FsX3RoZCk7CisJKmxlbmd0aCA9IHN0bXQtPmxlbmd0aDsKKwlyZXR1cm4oc3Rt dC0+c3RyKTsKKyNlbHNlCisJY29uc3QgY2hhcioJc3RtdF9zdHIgPSB0aGRfcXVlcnkoKFRIRCop IG15c3FsX3RoZCk7CisJKmxlbmd0aCA9IHN0cmxlbihzdG10X3N0cik7CisJcmV0dXJuKHN0bXRf c3RyKTsKKyNlbmRpZgorfQorCiAjaWYgZGVmaW5lZCAoX19XSU5fXykgJiYgZGVmaW5lZCAoTVlT UUxfRFlOQU1JQ19QTFVHSU4pCiBleHRlcm4gTVlTUUxfUExVR0lOX0lNUE9SVCBNWV9UTVBESVIg bXlzcWxfdG1wZGlyX2xpc3Q7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTEzMTQsNyArMTMzNyw2IEBA IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSgKIAl0cnggPSB0cnhfYWxsb2NhdGVfZm9yX215c3FsKCk7 CiAKIAl0cngtPm15c3FsX3RoZCA9IHRoZDsKLQl0cngtPm15c3FsX3F1ZXJ5X3N0ciA9IHRoZF9x dWVyeSh0aGQpOwogCiAJaW5ub2Jhc2VfdHJ4X2luaXQodGhkLCB0cngpOwogCkBAIC02NDMzLDYg KzY0NTUsOCBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCS8qIENhY2hlIHRoZSB2YWx1ZSBvZiBp bm5vZGJfZmlsZV9mb3JtYXQsIGluIGNhc2UgaXQgaXMKIAltb2RpZmllZCBieSBhbm90aGVyIHRo cmVhZCB3aGlsZSB0aGUgdGFibGUgaXMgYmVpbmcgY3JlYXRlZC4gKi8KIAljb25zdCB1bGludAlm aWxlX2Zvcm1hdCA9IHNydl9maWxlX2Zvcm1hdDsKKwljb25zdCBjaGFyKglzdG10OworCXNpemVf dAkJc3RtdF9sZW47CiAKIAlEQlVHX0VOVEVSKCJoYV9pbm5vYmFzZTo6Y3JlYXRlIik7CiAKQEAg LTY3MDksOSArNjczMywxMSBAQCBoYV9pbm5vYmFzZTo6Y3JlYXRlKAogCQl9CiAJfQogCi0JaWYg KCp0cngtPm15c3FsX3F1ZXJ5X3N0cikgewotCQllcnJvciA9IHJvd190YWJsZV9hZGRfZm9yZWln bl9jb25zdHJhaW50cyh0cngsCi0JCQkqdHJ4LT5teXNxbF9xdWVyeV9zdHIsIG5vcm1fbmFtZSwK KwlzdG10ID0gaW5ub2Jhc2VfZ2V0X3N0bXQodGhkLCAmc3RtdF9sZW4pOworCisJaWYgKHN0bXQp IHsKKwkJZXJyb3IgPSByb3dfdGFibGVfYWRkX2ZvcmVpZ25fY29uc3RyYWludHMoCisJCQl0cngs IHN0bXQsIHN0bXRfbGVuLCBub3JtX25hbWUsCiAJCQljcmVhdGVfaW5mby0+b3B0aW9ucyAmIEhB X0xFWF9DUkVBVEVfVE1QX1RBQkxFKTsKIAogCQllcnJvciA9IGNvbnZlcnRfZXJyb3JfY29kZV90 b19teXNxbChlcnJvciwgZmxhZ3MsIE5VTEwpOwpAQCAtNjk5Niw3ICs3MDIyLDYgQEAgaW5ub2Jh c2VfZHJvcF9kYXRhYmFzZSgKIAkvKiBJbiB0aGUgV2luZG93cyBwbHVnaW4sIHRoZCA9IGN1cnJl bnRfdGhkIGlzIGFsd2F5cyBOVUxMICovCiAJdHJ4ID0gdHJ4X2FsbG9jYXRlX2Zvcl9teXNxbCgp OwogCXRyeC0+bXlzcWxfdGhkID0gTlVMTDsKLQl0cngtPm15c3FsX3F1ZXJ5X3N0ciA9IE5VTEw7 CiAjZWxzZQogCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh0aGQpOwogI2VuZGlmCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmgn Ci0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5oCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTljYXk3angKKysr IGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2hhbmRsZXIvaGFfaW5ub2RiLmgJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMzEwNTAtbWtobHZsdWkxdTUyaXJvYgpAQCAtMjMx LDcgKzIzMSwxMSBAQCB0aGUgZGVmaW5pdGlvbnMgYXJlIGJyYWNrZXRlZCB3aXRoICNpZmRlCiAK IGV4dGVybiAiQyIgewogc3RydWN0IGNoYXJzZXRfaW5mb19zdCAqdGhkX2NoYXJzZXQoTVlTUUxf VEhEIHRoZCk7CisjaWYgTVlTUUxfVkVSU0lPTl9JRCA+PSA1MDE0MgorTEVYX1NUUklORyAqdGhk X3F1ZXJ5X3N0cmluZyhNWVNRTF9USEQgdGhkKTsKKyNlbHNlCiBjaGFyICoqdGhkX3F1ZXJ5KE1Z U1FMX1RIRCB0aGQpOworI2VuZGlmCiAKIC8qKiBHZXQgdGhlIGZpbGUgbmFtZSBvZiB0aGUgTXlT UUwgYmlubG9nLgogICogQHJldHVybiB0aGUgbmFtZSBvZiB0aGUgYmlubG9nIGZpbGUKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9kaWN0MGRpY3QuaCcK LS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvZGljdDBkaWN0LmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMDUxMjYtZjE0NWhsMTl5OWNheTdqeAorKysg Yi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9kaWN0MGRpY3QuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC0zNTIs NiArMzUyLDcgQEAgZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cygKIAkJCQkJbmFtZSBi ZWZvcmUgaXQ6IHRlc3QudGFibGUyOyB0aGUKIAkJCQkJZGVmYXVsdCBkYXRhYmFzZSBpZCB0aGUg ZGF0YWJhc2Ugb2YKIAkJCQkJcGFyYW1ldGVyIG5hbWUgKi8KKwlzaXplX3QJCXNxbF9sZW5ndGgs CS8qITwgaW46IGxlbmd0aCBvZiBzcWxfc3RyaW5nICovCiAJY29uc3QgY2hhcioJbmFtZSwJCS8q ITwgaW46IHRhYmxlIGZ1bGwgbmFtZSBpbiB0aGUKIAkJCQkJbm9ybWFsaXplZCBmb3JtCiAJCQkJ CWRhdGFiYXNlX25hbWUvdGFibGVfbmFtZSAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2RiX3BsdWdpbi9pbmNsdWRlL2hhX3Byb3RvdHlwZXMuaCcKLS0tIGEvc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL2luY2x1ZGUvaGFfcHJvdG90eXBlcy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTljYXk3angKKysrIGIvc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL2luY2x1ZGUvaGFfcHJvdG90eXBlcy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2bHVpMXU1Mmlyb2IKQEAgLTIxNSwxMSArMjE1LDIx IEBAIGlubm9iYXNlX2Nhc2Vkbl9zdHIoCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIERldGVybWluZXMg dGhlIGNvbm5lY3Rpb24gY2hhcmFjdGVyIHNldC4KIEByZXR1cm4JY29ubmVjdGlvbiBjaGFyYWN0 ZXIgc2V0ICovCitVTklWX0lOVEVSTgogc3RydWN0IGNoYXJzZXRfaW5mb19zdCoKIGlubm9iYXNl X2dldF9jaGFyc2V0KAogLyo9PT09PT09PT09PT09PT09PSovCiAJdm9pZCoJbXlzcWxfdGhkKTsJ LyohPCBpbjogTXlTUUwgdGhyZWFkIGhhbmRsZSAqLwotCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0Rl dGVybWluZXMgdGhlIGN1cnJlbnQgU1FMIHN0YXRlbWVudC4KK0ByZXR1cm4JU1FMIHN0YXRlbWVu dCBzdHJpbmcgKi8KK1VOSVZfSU5URVJOCitjb25zdCBjaGFyKgoraW5ub2Jhc2VfZ2V0X3N0bXQo CisvKj09PT09PT09PT09PT09Ki8KKwl2b2lkKglteXNxbF90aGQsCS8qITwgaW46IE15U1FMIHRo cmVhZCBoYW5kbGUgKi8KKwlzaXplX3QqCWxlbmd0aCkJCS8qITwgb3V0OiBsZW5ndGggb2YgdGhl IFNRTCBzdGF0ZW1lbnQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgdGhlIHN0b3JhZ2UgbGVuZ3RoIGlu IGJ5dGVzIG9mIHRoZSBmaXJzdCBuCiBjaGFyYWN0ZXJzIGZvciBwcmVmaXggaW5kZXhlcyB1c2lu ZyBhIG11bHRpYnl0ZSBjaGFyYWN0ZXIgc2V0LiBUaGUgZnVuY3Rpb24KCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwbXlzcWwuaCcKLS0tIGEvc3Rv cmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvcm93MG15c3FsLmgJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMDA1MTQxMDUxMjYtZjE0NWhsMTl5OWNheTdqeAorKysgYi9zdG9yYWdl L2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwbXlzcWwuaAlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC00MDMsNiArNDAzLDcg QEAgcm93X3RhYmxlX2FkZF9mb3JlaWduX2NvbnN0cmFpbnRzKAogCQkJCUZPUkVJR04gS0VZIChh LCBiKSBSRUZFUkVOQ0VTIHRhYmxlMihjLCBkKSwKIAkJCQkJdGFibGUyIGNhbiBiZSB3cml0dGVu IGFsc28gd2l0aCB0aGUKIAkJCQkJZGF0YWJhc2UgbmFtZSBiZWZvcmUgaXQ6IHRlc3QudGFibGUy ICovCisJc2l6ZV90CQlzcWxfbGVuZ3RoLAkvKiE8IGluOiBsZW5ndGggb2Ygc3FsX3N0cmluZyAq LwogCWNvbnN0IGNoYXIqCW5hbWUsCQkvKiE8IGluOiB0YWJsZSBmdWxsIG5hbWUgaW4gdGhlCiAJ CQkJCW5vcm1hbGl6ZWQgZm9ybQogCQkJCQlkYXRhYmFzZV9uYW1lL3RhYmxlX25hbWUgKi8KCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS90cngwdHJ4Lmgn Ci0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL3RyeDB0cnguaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEwNTEyNi1mMTQ1aGwxOXk5Y2F5N2p4CisrKyBi L3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL3RyeDB0cnguaAlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEzMTA1MC1ta2hsdmx1aTF1NTJpcm9iCkBAIC01NjAsOSAr NTYwLDYgQEAgc3RydWN0IHRyeF9zdHJ1Y3R7CiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0qLwogCXZvaWQqCQlteXNxbF90aGQ7CS8qITwgTXlTUUwgdGhyZWFkIGhhbmRsZSBjb3Jy ZXNwb25kaW5nCiAJCQkJCXRvIHRoaXMgdHJ4LCBvciBOVUxMICovCi0JY2hhcioqCQlteXNxbF9x dWVyeV9zdHI7LyogcG9pbnRlciB0byB0aGUgZmllbGQgaW4gbXlzcWxkX3RoZAotCQkJCQl3aGlj aCBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUKLQkJCQkJY3VycmVudCBTUUwgcXVlcnkgc3Ry aW5nICovCiAJY29uc3QgY2hhcioJbXlzcWxfbG9nX2ZpbGVfbmFtZTsKIAkJCQkJLyogaWYgTXlT UUwgYmlubG9nIGlzIHVzZWQsIHRoaXMgZmllbGQKIAkJCQkJY29udGFpbnMgYSBwb2ludGVyIHRv IHRoZSBsYXRlc3QgZmlsZQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdp bi9yb3cvcm93MG15c3FsLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MG15 c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQxMDUxMjYtZjE0NWhs MTl5OWNheTdqeAorKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBteXNxbC5jCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2bHVpMXU1Mmly b2IKQEAgLTIwNTksNiArMjA1OSw3IEBAIHJvd190YWJsZV9hZGRfZm9yZWlnbl9jb25zdHJhaW50 cygKIAkJCQlGT1JFSUdOIEtFWSAoYSwgYikgUkVGRVJFTkNFUyB0YWJsZTIoYywgZCksCiAJCQkJ CXRhYmxlMiBjYW4gYmUgd3JpdHRlbiBhbHNvIHdpdGggdGhlCiAJCQkJCWRhdGFiYXNlIG5hbWUg YmVmb3JlIGl0OiB0ZXN0LnRhYmxlMiAqLworCXNpemVfdAkJc3FsX2xlbmd0aCwJLyohPCBpbjog bGVuZ3RoIG9mIHNxbF9zdHJpbmcgKi8KIAljb25zdCBjaGFyKgluYW1lLAkJLyohPCBpbjogdGFi bGUgZnVsbCBuYW1lIGluIHRoZQogCQkJCQlub3JtYWxpemVkIGZvcm0KIAkJCQkJZGF0YWJhc2Vf bmFtZS90YWJsZV9uYW1lICovCkBAIC0yMDgwLDggKzIwODEsOCBAQCByb3dfdGFibGVfYWRkX2Zv cmVpZ25fY29uc3RyYWludHMoCiAKIAl0cnhfc2V0X2RpY3Rfb3BlcmF0aW9uKHRyeCwgVFJYX0RJ Q1RfT1BfVEFCTEUpOwogCi0JZXJyID0gZGljdF9jcmVhdGVfZm9yZWlnbl9jb25zdHJhaW50cyh0 cngsIHNxbF9zdHJpbmcsIG5hbWUsCi0JCQkJCSAgICAgIHJlamVjdF9ma3MpOworCWVyciA9IGRp Y3RfY3JlYXRlX2ZvcmVpZ25fY29uc3RyYWludHModHJ4LCBzcWxfc3RyaW5nLCBzcWxfbGVuZ3Ro LAorCQkJCQkgICAgICBuYW1lLCByZWplY3RfZmtzKTsKIAlpZiAoZXJyID09IERCX1NVQ0NFU1Mp IHsKIAkJLyogQ2hlY2sgdGhhdCBhbHNvIHJlZmVyZW5jaW5nIGNvbnN0cmFpbnRzIGFyZSBvayAq LwogCQllcnIgPSBkaWN0X2xvYWRfZm9yZWlnbnMobmFtZSwgVFJVRSk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3RyeC90cngwaV9zLmMnCi0tLSBhL3N0b3JhZ2Uv aW5ub2RiX3BsdWdpbi90cngvdHJ4MGlfcy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTAwNTE0MTA1MTI2LWYxNDVobDE5eTljYXk3angKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1 Z2luL3RyeC90cngwaV9zLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA1MTQx MzEwNTAtbWtobHZsdWkxdTUyaXJvYgpAQCAtNDI5LDYgKzQyOSw5IEBAIGZpbGxfdHJ4X3JvdygK IAkJCQkJCXdoaWNoIHRvIGNvcHkgdm9sYXRpbGUKIAkJCQkJCXN0cmluZ3MgKi8KIHsKKwljb25z dCBjaGFyKglzdG10OworCXNpemVfdAkJc3RtdF9sZW47CisKIAlyb3ctPnRyeF9pZCA9IHRyeF9n ZXRfaWQodHJ4KTsKIAlyb3ctPnRyeF9zdGFydGVkID0gKGliX3RpbWVfdCkgdHJ4LT5zdGFydF90 aW1lOwogCXJvdy0+dHJ4X3N0YXRlID0gdHJ4X2dldF9xdWVfc3RhdGVfc3RyKHRyeCk7CkBAIC00 NDksMzggKzQ1MiwzMyBAQCBmaWxsX3RyeF9yb3coCiAKIAlyb3ctPnRyeF93ZWlnaHQgPSAodWxs aW50KSB1dF9jb252X2R1bGludF90b19sb25nbG9uZyhUUlhfV0VJR0hUKHRyeCkpOwogCi0JaWYg KHRyeC0+bXlzcWxfdGhkICE9IE5VTEwpIHsKLQkJcm93LT50cnhfbXlzcWxfdGhyZWFkX2lkCi0J CQk9IHRoZF9nZXRfdGhyZWFkX2lkKHRyeC0+bXlzcWxfdGhkKTsKLQl9IGVsc2UgeworCWlmICh0 cngtPm15c3FsX3RoZCA9PSBOVUxMKSB7CiAJCS8qIEZvciBpbnRlcm5hbCB0cmFuc2FjdGlvbnMg ZS5nLiwgcHVyZ2UgYW5kIHRyYW5zYWN0aW9ucwogCQliZWluZyByZWNvdmVyZWQgYXQgc3RhcnR1 cCB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIE15U1FMCiAJCXRocmVhZCBkYXRhIHN0cnVjdHVyZS4g Ki8KIAkJcm93LT50cnhfbXlzcWxfdGhyZWFkX2lkID0gMDsKKwkJcm93LT50cnhfcXVlcnkgPSBO VUxMOworCQlyZXR1cm4oVFJVRSk7CiAJfQogCi0JaWYgKHRyeC0+bXlzcWxfcXVlcnlfc3RyICE9 IE5VTEwgJiYgKnRyeC0+bXlzcWxfcXVlcnlfc3RyICE9IE5VTEwpIHsKKwlyb3ctPnRyeF9teXNx bF90aHJlYWRfaWQgPSB0aGRfZ2V0X3RocmVhZF9pZCh0cngtPm15c3FsX3RoZCk7CisJc3RtdCA9 IGlubm9iYXNlX2dldF9zdG10KHRyeC0+bXlzcWxfdGhkLCAmc3RtdF9sZW4pOwogCi0JCWlmIChz dHJsZW4oKnRyeC0+bXlzcWxfcXVlcnlfc3RyKQotCQkgICAgPiBUUlhfSV9TX1RSWF9RVUVSWV9N QVhfTEVOKSB7CisJaWYgKHN0bXQgIT0gTlVMTCkgewogCi0JCQljaGFyCXF1ZXJ5W1RSWF9JX1Nf VFJYX1FVRVJZX01BWF9MRU4gKyAxXTsKKwkJY2hhcglxdWVyeVtUUlhfSV9TX1RSWF9RVUVSWV9N QVhfTEVOICsgMV07CiAKLQkJCW1lbWNweShxdWVyeSwgKnRyeC0+bXlzcWxfcXVlcnlfc3RyLAot CQkJICAgICAgIFRSWF9JX1NfVFJYX1FVRVJZX01BWF9MRU4pOwotCQkJcXVlcnlbVFJYX0lfU19U UlhfUVVFUllfTUFYX0xFTl0gPSAnXDAnOwotCi0JCQlyb3ctPnRyeF9xdWVyeSA9IGhhX3N0b3Jh Z2VfcHV0X21lbWxpbSgKLQkJCQljYWNoZS0+c3RvcmFnZSwgcXVlcnksCi0JCQkJVFJYX0lfU19U UlhfUVVFUllfTUFYX0xFTiArIDEsCi0JCQkJTUFYX0FMTE9XRURfRk9SX1NUT1JBR0UoY2FjaGUp KTsKLQkJfSBlbHNlIHsKLQotCQkJcm93LT50cnhfcXVlcnkgPSBoYV9zdG9yYWdlX3B1dF9zdHJf bWVtbGltKAotCQkJCWNhY2hlLT5zdG9yYWdlLCAqdHJ4LT5teXNxbF9xdWVyeV9zdHIsCi0JCQkJ TUFYX0FMTE9XRURfRk9SX1NUT1JBR0UoY2FjaGUpKTsKKwkJaWYgKHN0bXRfbGVuID4gVFJYX0lf U19UUlhfUVVFUllfTUFYX0xFTikgeworCQkJc3RtdF9sZW4gPSBUUlhfSV9TX1RSWF9RVUVSWV9N QVhfTEVOOwogCQl9CiAKKwkJbWVtY3B5KHF1ZXJ5LCBzdG10LCBzdG10X2xlbik7CisJCXF1ZXJ5 W3N0bXRfbGVuXSA9ICdcMCc7CisKKwkJcm93LT50cnhfcXVlcnkgPSBoYV9zdG9yYWdlX3B1dF9t ZW1saW0oCisJCQljYWNoZS0+c3RvcmFnZSwgc3RtdCwgc3RtdF9sZW4gKyAxLAorCQkJTUFYX0FM TE9XRURfRk9SX1NUT1JBR0UoY2FjaGUpKTsKKwogCQlpZiAocm93LT50cnhfcXVlcnkgPT0gTlVM TCkgewogCiAJCQlyZXR1cm4oRkFMU0UpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2RiX3BsdWdpbi90cngvdHJ4MHRyeC5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vdHJ4 L3RyeDB0cnguYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDUxNDEwNTEyNi1m MTQ1aGwxOXk5Y2F5N2p4CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi90cngvdHJ4MHRyeC5j CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNTE0MTMxMDUwLW1raGx2bHVpMXU1 Mmlyb2IKQEAgLTExOSw3ICsxMTksNiBAQCB0cnhfY3JlYXRlKAogCXRyeC0+dGFibGVfaWQgPSB1 dF9kdWxpbnRfemVybzsKIAogCXRyeC0+bXlzcWxfdGhkID0gTlVMTDsKLQl0cngtPm15c3FsX3F1 ZXJ5X3N0ciA9IE5VTEw7CiAJdHJ4LT5hY3RpdmVfdHJhbnMgPSAwOwogCXRyeC0+ZHVwbGljYXRl cyA9IDA7CiAKQEAgLTk0MCw3ICs5MzksNiBAQCB0cnhfY29tbWl0X29mZl9rZXJuZWwoCiAJdHJ4 LT5yc2VnID0gTlVMTDsKIAl0cngtPnVuZG9fbm8gPSB1dF9kdWxpbnRfemVybzsKIAl0cngtPmxh c3Rfc3FsX3N0YXRfc3RhcnQubGVhc3RfdW5kb19ubyA9IHV0X2R1bGludF96ZXJvOwotCXRyeC0+ bXlzcWxfcXVlcnlfc3RyID0gTlVMTDsKIAogCXV0X2FkKFVUX0xJU1RfR0VUX0xFTih0cngtPndh aXRfdGhycykgPT0gMCk7CiAJdXRfYWQoVVRfTElTVF9HRVRfTEVOKHRyeC0+dHJ4X2xvY2tzKSA9 PSAwKTsKCg== --===============2014033497== 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/mysql-5.1-innodb2/ # testament_sha1: ade435bfb12b4c27a887545d623db1fadd0afc62 # timestamp: 2010-05-14 16:11:13 +0300 # source_branch: file:///home/marko/innobase/dev/mysql/5.1-innodb/ # base_revision_id: marko.makela@stripped\ # f145hl19y9cay7jx # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWVun3qkAGWLfgHAwe////3/v /+6////+YB8cOTd3T33OBYvafcu+j6pmZvW+8t2AZ2Hnd7xoB0BqtGSiI3vSiwCh328Q9D10OgS+ hqXmxSAPQ1rKaykzDawHwklKfikZlHqG0mJkAAaGE0AAAAAAAkkABAQISmym1PU0NAAA0AABoAGg lNBAkaaQNVP1TepG1HoR6j1AADQAAAAGgk1IggjUxpMjKNkhtI0PUBkADTTQaabU00DQIpAkNCMT IyNT0am0I0aA1T1PU09JptIAbUNGQAVJITRoCMhpMJhCYJpT9MkMmmSaPSHkjJjU9J6nqW2xgBiJ JCYyQPOgVsKrm/1qxF36oExIKIVB2mTIso85cpD+0rx9R2rakwRA1CUCLGhEazoqIgCEsVEqNEoR E0cx7G6sTQcwJpMT8sQxLhRc5XnLWHbWJyR68ER+c/pJt/jQVf34HPgXTo5sVBvsfPnIgILwdYxK oHVHFDefx/JhxNwez2akP3nxjn0STpju9bj01w4l1rgw4OmJrdtKfS8XlvY7LjVDw3sWb1Q3vmLc alGFLx2LPYQcIBXo4uper1jeOowmCYYZmapRpwnlUWhUfTKuK6CgTiZi9aahLOulIjnwyD2mvdBl cOcJznITIKplc1Aoai8z5ZWmnGB3y+fha3VeNXqr21NVS4JHOYM/vJIc98qNb+5Ed3aIEtpqAYsg pCKTYkC3OUSTWJOwaNgHUWdO6+Qmke5Ia6rwvYir4LLnUuCh38CrXmb2u7sptplqoLElyc4VEvmX uTVSIzeSsXQV7dBTA2ZG/Lv6/MPed+3m1icOh6iRjJBARvDGu7yo57kZaF6pGVLux+5t1aWPl9jQ o0R1DpITuEDtEBBVFFUVRRRQihFAVYKqkWBFM/XD95AnJk8HLp0S0+y12eCw7i9T3ToPmx649ZTq HzlgIwXxCV5oW04Id49dtpIRstI0lWry1YzrNEKyy72UI0idXiyHLjr0DYi5ZOaUKywnWk05cpNa zj6w8JbIdEibCFDmJvErCpXxK0NmLZi48Wgw7lqczWcKTLR+XkXzbCyjZUneYhSsasbTsuUuxlaW lKzVoEpVlKbKpZWMvq6NYmiz2qjgDefN6bSxK36UOM6KsYlFsfrLE7p3p3zNMvixDxx6g+x+AXyc E70P6B8J6W1tHlaBUuXBlpC67SqWfgP9B94ofHRo+V6azv2TYpr5bTncfg1g/kOXlh6v7SdkuvOV Nf0zibkuTCSHPNno4SenHI98duXiOZEUVMNQ66zm7NADcDK7U8CKMa2LHuWxPR1Ml+EwkSiclEln F7eVu0miSO9r46m7CSOpSqLuRTdg/yXC4OJiJEC5M0VgLxUnOTh5HcfgSR3R8HuIBj1ZGcSqxDZj oPPYjJgWhxDR6VKOLjzUmYm/jJyv3ADwwxGvUsNp2bVu08Z0Lc4tZ74oWa77yh1bSvLzv987ojNz d2ZYGAxEYIKxOuGW2uxNlvZ06MNTiJjk3ycddO13pf22lYqiquzXu4ltuc0H1rEt86OKJPkkkhSJ +ckhD3vjVdVYAhG8HMKm6KqLpP8MycTlOIpdJF6knEuLS5RrGYdw/6fo/N/g5APUZyQdZJJLqbYT jM/h+USJ2vS2JapL1fcz9I/UPIPiFCh+vGMfFlqvTxXLNNU1a/rk/izM3vwes4cr5e45R7hwG4b+ 2p0qxH3vt2frXNA7+/O8g0t2mr4u39NMKcONFeRU+zySLr0uGbrI3VxEDsd4j4B/UN7i/gpHM+la MDsjFRLhUqC5iubyirOA4g+8e91DmO4c0cd/f1k8zDX9CR6tYnyNBkv77Yz6M+mTS0DsHlHWNE51 kk7/miGxl+fvfBJL26cK/TueuRnXqUsBmfClYRD6A7XxRDxzZhXEauQIgb5nua3ivI+hEMmVvdz7 XUYRuUel45FvYfcnIblLadl6rTVyEueCZMPaI3PTjAJDdOHotuY84SIIgiIiId3iOwHmxLIZgEVN RUvMQImSSIeZl4iFEzPNd4hmnOk8PTEPY9SfrpHseafUKeyJT62WuhsG5LZkTUOTl4qmGN61m69F rWJa1vsk4B4T0kXpsd3WdE+nr20alI8l3VKtOQQcE7pqOaqIXZkw0IZISYuDmyGhhSZ1jlWmfjJ0 61WoGCoWYaXN5JShKQAkwlbHKt9VRVXyxC13Fnl2dWx6VsV7O0Xkm2mQ00SR2Czi7A0XvT06w0BJ RF8AkmRf8s3lMjnmLu+HGxTOyZhgu1mGDJ3lHILD5vbd1uQ8aTaNyYLqiOhHIRV8aaxTMzRekisH 4/yVfmaMGSskFiZBZJiFL/Z3OhQsfcDBU+E4MGDc2OZezODtScrTiwe3JalUdEQ2tDO+YbzaL8pC +pR1GKBHmv4pqmbJIx3XWrWkFTjk6IXeJJmg1D0aUmrKkCspUfW4dZyXqV2crPq1BJQyniQhxiI7 Ej1ZexUUEw6C9zdnwLNOVNhvI22hGJS7hnjh2lSykhB6GHP0AoTmSH1wJLYkrqQzqvdhvDQvG8da zPR0X311pCE1A+S2N3WyISsMLemWGHJ406bzNjAktDrRXtJthCrNIewAEctAcmQ8dybp20RJjTVJ KCr9YdaXJsMWI9SR/MXsQwhbnXF9G6CSs8aJ3r17GCT1Xw+hyGx8N/neDqeRXOmj051yJz1NB3Y+ otzRgkJTRPzZZNUQ6G1ta291Mzfz72LocC5ZZtVoYNzY8s2OLOU+fxTfJvoVn6eq9sws1WWNtq3w EG1V4vF3m60KlaZvcrjUZkDOjCbD3Yse1wkIh2JLLL15Ad6jke81cOUW0GMauLwHvUkaxZ7ruk1U hftF0HP4C46bBEg6JZycgqwkWYSj73nigkpyATh1T2GLUa6kMDHWtVCoyU2ESY5KbFtChVZVJXOD jScLpCpltGoFvSROyZ6E0TdhA0Cchq05YiSSg68vtYqwVVFiixVBVUUXzEAmw4DA1BvkkuaGssvb N6uDkYLzaydTldDme6/5O/BPdokN159u7l7sTYc8fAchrd0rLprRMU+cnf4zWbPrmmbKjQk4xhXQ UVcGMkTMBWY4iVohi+d/LFrDiZMvYvhrAULebXCqY7B3HUZsRIlLj3DNYchxuUjkY2Hlba+YWD0s a7eRg3GqOJbmDJtLbYxoRaoSHk3UKnE945k5REyiVGtrVCCpY2UA76M6c7pJXBZsA53iIORura4x G6dT1wkMwhaDDBM3FcMmhUyQElU0HGpEkJKZYedUheGnqKnqO+2mkyZODHLyDwNMSbd9JMzVnxSN ITTAxjuskniURERgLiSZkwk8FV2TMoM5S7sUELg4MlTQ9cq7EcWElQkCQeB0jGZkkVY9+dcOgzrz NR8g7HJ1SFVGlLYIFnaY1Jnip2ElETMeVqhkoWoayLiSmZLO8iIV5KVaUJnDqnU3ElyUJtSQ81GM lyBIkYlczk+8B7AYBhhJHgoti60Cgla3I2OTmvcj0SN6JztDES5jz9UQyczW2rNqo84PR78vveZE kYLnuPXA+Ragdlrp5DX6+fRogyjNsxjG84HScWfUdFw5/Att+hEvtbUwklstvaLffY3qLf1UPIgc nbzOpTW06sE+nWnU6wyTSEGpItfpv5ncUTn1Cr5UHXGcJLtA1wR5kO6MESB370A5LKK3Yoqs2qPe bsFsldWo5CDsu93mHNkJZqQoysNMbkqOiYGAcOMHU7ngY6FDQ0HHi5whBcgRIlSZMqbF0y7Hrk7M JwduNjTVq3nhQPBGrxa0vJ6i4YwOZpO1z3Sxi5dKzkg8CXYzAafI1CjSMmpZVjqTKjdu4OVXv5Jf q5Qz8iNjgc5i7XOCDorGDsSRajsVO2VyIIQWuamhebNwWNTgiPcVvY7mttqxvaNGkWTkkShNhYpi 1ORZpbmlnbZIZ2ZG1ybFgwbn0FgnwYPtpJPAjbjWZrB7lxV3G0IPIs04NgSW1oMUqJLA8IMzT0MU IDGKYCBg4QgucFcTk0z+K0NR+o2CDkaKo7N3S4NScCxdyC1yefOY8bkgizDBeuZcoh3DYxyq/U8o qw4dxtThWCx7WYbfE37WJ6WNyCWZm0SHYYqYOBjkibECgx8iSURxgmOMHIdh8Zu22kWGMkTBg9/w kL0SS+BeXiAWtWp5XfHkbmDKcrdijvxnC8pvfSIqzsMFMw2Gw+sZqGLuwwFvahB06ZtIuYHPZ2CM LpJYNTJ4GJxlbSo3cbFDgzQOxMnQg61tCKf4PMTlO5ElgOOIGjFTo8wbmxYeGdZPZinJue1JKEW6 HQYsaGTK37xuCiC44cEnw7EEHykXOBFHMg3DY2JkccuI3Zhu3RmZvM8N+LQ/Pd8jNG+Z3nD1Vnte i8y/LDvpHXHZhg1iL5N8hXBc8C+Gsafmyg6lyg4oa7RTjvQpsklkZwDid0IKkKwNhqEj39BwYI6P 8jfe/J4WIzcEYljc+UBCWxhipuRK2i6xQiZIDr1OokqETSQ4uQOpUuciSyvOeYL2TMybfRWlTFqd rt1z7H9n1NmmyqftPH2FFUYc9ELHDsgmpixFPdqqCg4ycJGFVGBNLSmkC5mI6EW1wjsFcFlLYCIh YqqgwVVVURUYrgd3c2bxxGkt9SYPWH9NtFnB4HkBkyTPTaxa1TB8KFZZHMXiMj6EgJmhvbpMh3n4 CcDH7hysNSFA+9gnkLCD4guZ3uQsRA+4fsGHLxgc0a7y0CQBpVYmwlVapQiCckZQIMjCwghvkGIR FhQIMHUZwT7TxgHTPAA+h+1kTcLMcThkwBN8CrAh3HqOBrEfU0JR9XXViDJ1vW/3BYbh/SD8Lh/I PPJzhY0S8+dHFzSXQqiUSqkoqVLg/xJ8AZ8Z/FUpTj8oWDXJoD8WF78mkPyOD60TWGga6ernD3g/ n+fIHEMf0sgzSg3BnHKFT9GifiGJ/8iPxk8G4MkON0JPeqSG430HFDYZmdDcG8KMt+mMgxmpplpm hh7AtE/qKE/SSckTwBjNLO4RNWahidxonKAXYXOu4qbDcztQ0OnSIQIYgSADiZLwkzDuC6QtEspd J0hezi0mvqkMBvzjOFSVxkOSahfnDQGYLkLw/9DAtO8UtJzhaYZrBdJre5fOVxtFz8jWNwVJQZDz yZgZByDCZnOcAk3xzIJs5caeiqhQIBI7LT5hpVMmXAMAMIRKESmSuFHnGlDiSuXRtiKX2kSrTGin CrJlUm6xzTrdcp5t2xY5Wz5xP3pPpTeMU+lnUYDEpREGKiqIxiqS0CpUT4QCgArijBFiL5QI4H8a zMmnQGjAumZJVDMp8/h8wagNaQWCkk01SjNARJSfyS5MmkP5mEL/PJ6h/xwWH3PteDDcifg/zWRP wTlXrHI+pip+BTi3tMQvLLPlaGtezKUyUuZmSy9guUvbFzfIhsiLPy1l/A1NCnZ7JEO3rwjJvWdB U7Vzcz4mFX5wBhPAhRDpelvL7FBWA4niJAm1XKnAO6pL/It11E4AbJsELNEmhkjfJubGiM8ljGJz bvfmaJ+397tn7h4C7qpoC4TBjEOtJLQYdTzu9mcWVymDgzyjwXO9TFwZ0kvXrmDuLL33fcME1PMw bGhpaS57iZQ0PWHQBySucJUC5kyhBUycGCJyLjYuXrmmf3m2PLPtn/cG53ib0lB5BXc/bt9Bt8gs O2SQiUJFBTbvb+4cwGGKMkOLip0Oploy6jqZ2DqdSzFunlZMnUwaGtZ2G13GlzckQybWpJNrMvua 2yIXu5JLN+rc0sm5w+X1v6o3zhEMmdZZpk3SQ1rXLnKbnO7u7Q9bnaX9cE8wnBgxZOdukk9R1zv8 k46w3odBZA84ErmFEKUUZusVCa8BgzyeK4d1GfmZ5BSjyKSrsvH89Jv9eGe1u1UztFl1LllsMEpR P7YdvX1OLJy9i95GOPoedTwPF3M6+ysHoMDzMG+RPAuaGDBZmbm2JOQ1MGUwbXBEnMc2dmS0bHBi dMJ0Kkl7JvSTc74hi5X2RrO/skTmdPTkanFyH9+k08zhEMXUnt9X3JwSeaxuf9WLLangpRqe4R7T ZMAoG6T5N2U90D7CAgnWA/EhZqnWVnugakm6hhXyQLbzhq7QJ3qIVCFSCxTsdK79W304JJ6GLsOV euLlnyNDteJ4spbm26M74xLfDf0d9Plsccw6ULc8pOZ3HgQG5Ykgc+YU5GKm9ysz5nTtlJHSidKe 7NVGioWolxbgUcklkTnXySZw525sU3vD5Krc1SnXg/jcmLocHY4qWa3tdHk6npcjkVV6SaHW6qaX XulOY2KuHMp3JIXHqaJhEr6+PXJHyPOYkM1EsOIPTISQDuQkpJQJd5YcxjXvU0Eqmzuul9JiXvOS 97Yk9HY5UwKkbj1vc5xxoQwZ1vagUD7Cg3QCn2FyA6rNQDCeZhXn6s6IbWZI85uACtO9qdx19fWd x61NKz2Kd7WspsbF0xZmZcsrc1PW0PU2uQicCcaiqQImR5M0PnkhjJQqkg1OONg4IHA4oVLhUmQE KZIgcEDoIUyvxpI7pI7BG+Padj5ZATXDzaFXO07udrg7BIQJEiQSkknVZLq3jf1SXFSSVNYxY8Oh tHt+c/Rj+aZSE+bkTtnvhznmIshSFRaWPR7HfjuxzGPrInwPM+HfcXLrrl13bLiU+8xgzwqQq++B ZnV9ckCJp2V39ul1DYORR40FLJ0poeJc4zpnbO6JHe2KRJ8MUxwfS+KngsfQvRNHrHrnlen4+oQ2 bEo9WTvnxffZJXocETNQI2it/uNuzmUC6fGkEoh5DWgeD2d0QxBBEROqjrq/HmA9bibN+s2MQgnO pxDr6ht6AU7g6zUEnUSa7Dm3GRUI4Ku7zAXdB1efPuLs2F9OKzDxiD632KPQH/GFENOkeoVg96ri UQwpqJgew5HV+lX0kLjeZ6zYg0QAuUQt1Ro3ElTSohCpcFAkI5xzQ+7BJfNCfgTRmTBPoQXi36sg ZnfBDoOFD5FHK6CzNMKj/LydI9NHWOPaZe95oUQ3nA61X4nzVa3Gk2nQ8z6wEOx7j1QeskjAkiCS sBKEqOUnE6NJJOjUdvn3JicqUIIxImmdLqcQQ3kBZ7R7TBxugAt6chIribCPOCHGnc4+1meK8zCz TmKaZzgnEETIMnMaD0GfjnKWaEkyKI6GpWIAr5VJNiwlGXPqUbvqUaC3BYRiXSBNDlIbOQ+ozCNx 6W4Eko7bIskmSXKXBUu2Mp43SQwGEiO4bWtTAIMJcy/aIzWGEQnRBD38uT1uOyGUQNZKAiSAgkFi RIjCBnUDmUbcHpTWQHq1UAQhVw4RGQwuM9B9cwIvxmEHFOv7jTZ48fakhy0FSSPomhdqqDVE+zy2 YfwkQ1A0uYdsyWk14Q45JkXByl533tQXjHFZklGBtkIUbnve9FmZW5Ez6yec7Hk4+HiMuHjtm1Km J2tZ4PCwuUUXWX7erdPDn3MMYSMPdnbqmWpYjr7ZsdbnpKGcoybgkG94FhCUFAUyoDOhsHbyXXSm aREoZk9pFuhe+Y+10GyXjkbDJUiFA8Fn1Gd534tFToYQm+/PmyQIn58rkUQnJCKmciHik8dyrtG2 HcDcQHxHM8Uh0uSxZa41NcfRZuUpSVG6ya0iZrLSRCCbCQwpDCknYwnF3elKuAgaizIMwTEJDDHb vG86uwwife8JLynm3mNkI5BGrcSLSRxDbJJmmlk6J8fexfU9L8VLFPWkUvcChQuSUSy5ZdI0pzwo m9fJNcLzHKX2SWqfM1Vyw2qw2Pobng4SSZYjgRl0HMC5YgxIR6CjWTaMzCfWF4TLiIPZBIZBJF6E IzEHaf0abCJjYDA0pNvdkwmGAC5WZAvgowcCrvcLDkGjUcCpYSf3Cpes2oyxheg7gs3YQo0JIwWD DInnaF1XwXnMpqFSHiDEwqExya4ZEBIWnYqRLmaPRi50wTlnya+UhiYKV7bgLwLh3iwkYLEBSDBR EDDg4LEI9+NjrQmb2wrlUndZVnls4F56EmDM7fbYSJSCRLe0HG6UgUiEX7TKcr5M6WHSHZYOgDx+ HzGSr68AblHai/uB8BVmRA4jNgZPam+fIYlBrxnSlkk7Tqx/DJwUscu89oF1NeU2VLjQhlxXvBvx ApqoOdS2Y+VjiAdT2ZFGuJqGoxBDy+VRk/qyfZq1HjJQbiFGRvpmEHhVNrpZbYYjTDv53kMrgf3h ZB9GZV8Khhc96qZ/Cj25dAiSZvnHzppdb8DYr4QfrPxD8iYU8TpIv8XckU4UJBbp96pA --===============2014033497==--