From: marko.makela Date: June 1 2012 11:35am Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3925 to 3926) WL#6255 List-Archive: http://lists.mysql.com/commits/144075 Message-Id: <201206011136.q51Ba7h8006027@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5MjYgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wMQogICAgICBXTCM2MjU1IEFMVEVSX0NPTFVN Tl9OT1RfTlVMTEFCTEUgKE1PRElGWSBhIGNvbHVtbiB0byBiZSBOT1QgTlVMTCkKICAgICAgCiAg ICAgIFJlbmFtZSBEQl9QUklNQVJZX0tFWV9JU19OVUxMIHRvIERCX0lOVkFMSURfTlVMTCwgbWFw cGVkIHRvCiAgICAgIEVSX0lOVkFMSURfVVNFX09GX05VTEwuCiAgICAgIAogICAgICBpbm5vYmFz ZV9jaGVja19mb3JlaWduc19sb3coKSwgaW5ub2Jhc2VfY2hlY2tfZm9yZWlnbnMoKTogQ2hlY2sg aWYgYQogICAgICBjb2x1bW4gdGhhdCBpcyBiZWluZCBkcm9wcGVkIChub3QgeWV0IGltcGxlbWVu dGVkKSBvciBzZXQgdG8gTk9UIE5VTEwKICAgICAgaXMgbmVlZGVkIGJ5IGEgRk9SRUlHTiBLRVkg Y29uc3RyYWludCwgb3IgYnkgYSBGT1JFSUdOIEtFWSBjb25zdHJhaW50CiAgICAgIHRoYXQgaW5j bHVkZXMgYSBTRVQgTlVMTCBhY3Rpb24uCiAgICAgIAogICAgICBwcmVwYXJlX2lucGxhY2VfYWx0 ZXJfdGFibGVfZGljdCgpOiBBZGQgdGhlIHBhcmFtZXRlciBvbGRfdGFibGUuCiAgICAgIAogICAg ICByb3dfbG9nX3RhYmxlX2FwcGx5X2NvbnZlcnRfbXJlYygpOiBSZXR1cm4gYW4gZXJyb3IgaWYg dGhlIGNvbnZlcnNpb24KICAgICAgZmFpbHMuIEN1cnJlbnRseSwgdGhlIG9ubHkgZXJyb3IgaXMg REJfSU5WQUxJRF9OVUxMLgoKICAgIG1vZGlmaWVkOgogICAgICBteXNxbC10ZXN0L3IvYWx0ZXJf dGFibGUucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWFsdGVy LW51bGxhYmxlLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1p bmRleC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItdGFibGUt b25saW5lLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi5yZXN1 bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfMTZrLnJlc3VsdAogICAg ICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9taXNjMS5yZXN1bHQKICAgICAgbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItYWx0ZXItbnVsbGFibGUudGVzdAogICAgICBt eXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1pbmRleC50ZXN0CiAgICAgIG15c3FsLXRl c3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLXRhYmxlLW9ubGluZS50ZXN0CiAgICAgIG15c3FsLXRl c3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGIvdC9pbm5vZGJfbWlzYzEudGVzdAogICAgICBzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CiAg ICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL2RiMGVyci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG1lcmdlLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvdXQvdXQwdXQuY2MKIDM5MjUgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wMQogICAgICBCdWcj MTQxNDUxMzggd29yay1hcm91bmQgZm9yIFdMIzU1NDUgQUxURVJfQ09MVU1OX05BTUUgKHJlbmFt ZSBjb2x1bW4pLgogICAgICAKICAgICAgV2hlbiBhIHRhYmxlIGNvbnRhaW5zIG9yIGlzIHJlZmVy ZW5jZWQgYnkgRk9SRUlHTiBLRVkgY29uc3RyYWludHMsIGFuZAogICAgICB0aGUgdGFibGUgaXMg cmVidWlsdCAoQUREIFBSSU1BUlkgS0VZIG9yIG90aGVyd2lzZSkgd2hpbGUgcmVuYW1pbmcKICAg ICAgY29sdW1ucywgdGhlIGNvbHVtbnMgd2VyZSBub3QgcmVuYW1lZCBpbiB0aGUgRk9SRUlHTiBL RVkgY29uc3RyYWludHMuCiAgICAgIFRoaXMgd291bGQgY2F1c2UgYW4gaW1wbGljaXQgRFJPUCBU QUJMRSAoQnVnIzE0MTQ1MTM4KSwgYmVjYXVzZSB0aGUKICAgICAgZGljdF9sb2FkX2ZvcmVpZ25z KCkgY2FsbCBpbiByb3dfbWVyZ2VfcmVuYW1lX3RhYmxlcygpIHdvdWxkIGZhaWwuCiAgICAgIAog ICAgICBUaGlzIGZpeCBkb2VzIG5vdCBhZGRyZXNzIEJ1ZyMxNDE0NTEzOCwgaXQganVzdCBwcmV2 ZW50cyBvbmUgc2NlbmFyaW8KICAgICAgbGVhZGluZyB0byBpdC4KICAgICAgCiAgICAgIGlubm9i YXNlX3JlbmFtZV9jb2x1bW4oKTogQWRkIHRoZSBwYXJhbWV0ZXIgbmV3X2NsdXN0ZXJlZCwgc28g dGhhdAogICAgICBjb2x1bW4gbmFtZXMgaW4gRk9SRUlHTiBLRVkgY29uc3RyYWludHMgY2FuIGJl IHJlbmFtZWQgd2hlbiByZWJ1aWxkaW5nCiAgICAgIGEgdGFibGUuIFByZXZpb3VzbHksIHdlIG9u bHkgcmVuYW1lZCBjb2x1bW5zIGlmIHRoZSB0YWJsZSB3YXMgbm90IGJlaW5nCiAgICAgIHJlYnVp bHQuCiAgICAgIAogICAgICBpbm5vYmFzZV9yZW5hbWVfY29sdW1ucygpOiBOZXcgZnVuY3Rpb24s IHRvIGludm9rZQogICAgICBpbm5vYmFzZV9yZW5hbWVfY29sdW1uKCkgb24gYWxsIHJlbmFtZWQg Y29sdW1ucy4gSW52b2tlIHRoaXMgYWxzbyB3aGVuCiAgICAgIHJlYnVpbGRpbmcgYSB0YWJsZSAo bmV3X2NsdXN0ZXJlZD09dHJ1ZSkuCgogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3IvaW5ub2RiLWluZGV4LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lu bm9kYi90L2lubm9kYi1pbmRleC50ZXN0CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YW5kbGVyMGFsdGVyLmNjCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvYWx0ZXJfdGFi bGUucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvYWx0ZXJfdGFibGUucmVzdWx0CXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMDkxNTI2LXhidG1qbmF3MjBleGVienEKKysr IGIvbXlzcWwtdGVzdC9yL2FsdGVyX3RhYmxlLnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBAIC0xNzY0LDggKzE3NjQs OCBAQCBBTFRFUiBUQUJMRSB0bTEgTU9ESUZZIENPTFVNTiBlIElOVCBGSVJTCiBhZmZlY3RlZCBy b3dzOiAyCiBpbmZvOiBSZWNvcmRzOiAyICBEdXBsaWNhdGVzOiAwICBXYXJuaW5nczogMAogQUxU RVIgVEFCTEUgdGkxIE1PRElGWSBDT0xVTU4gYyBJTlQgTk9UIE5VTEw7Ci1hZmZlY3RlZCByb3dz OiAyCi1pbmZvOiBSZWNvcmRzOiAyICBEdXBsaWNhdGVzOiAwICBXYXJuaW5nczogMAorYWZmZWN0 ZWQgcm93czogMAoraW5mbzogUmVjb3JkczogMCAgRHVwbGljYXRlczogMCAgV2FybmluZ3M6IDAK IEFMVEVSIFRBQkxFIHRtMSBNT0RJRlkgQ09MVU1OIGMgSU5UIE5PVCBOVUxMOwogYWZmZWN0ZWQg cm93czogMgogaW5mbzogUmVjb3JkczogMiAgRHVwbGljYXRlczogMCAgV2FybmluZ3M6IDAKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1hbHRlci1u dWxsYWJsZS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWFs dGVyLW51bGxhYmxlLnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYw MTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Iv aW5ub2RiLWFsdGVyLW51bGxhYmxlLnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBAIC0xLDggKzEsMTEgQEAKIENSRUFU RSBUQUJMRSB0IChjMSBJTlQgUFJJTUFSWSBLRVksIGMyIElOVCBOT1QgTlVMTCwgYzMgSU5UKSBF TkdJTkU9SW5ub0RCOwogSU5TRVJUIElOVE8gdCBWQUxVRVMgKDEsMiwzKSwoNCw1LDYpLCg3LDgs OSk7CiBBTFRFUiBUQUJMRSB0IENIQU5HRSBjMSBjMSBJTlQgTlVMTCBGSVJTVCwgQUxHT1JJVEhN PUlOUExBQ0U7CithZmZlY3RlZCByb3dzOiAwCitpbmZvOiBSZWNvcmRzOiAwICBEdXBsaWNhdGVz OiAwICBXYXJuaW5nczogMAogQUxURVIgVEFCTEUgdCBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBB TEdPUklUSE09SU5QTEFDRTsKLUVSUk9SIDQyMDAwOiBUaGlzIHZlcnNpb24gb2YgTXlTUUwgZG9l c24ndCB5ZXQgc3VwcG9ydCAnQUxURVIgVEFCTEUgdCBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBB TEdPUklUSE09SU5QTEFDRScKK2FmZmVjdGVkIHJvd3M6IDAKK2luZm86IFJlY29yZHM6IDAgIER1 cGxpY2F0ZXM6IDAgIFdhcm5pbmdzOiAwCiBBTFRFUiBUQUJMRSB0IENIQU5HRSBjMiBjMiBJTlQs IENIQU5HRSBjMiBjMiBJTlQgTk9UIE5VTEw7CiBFUlJPUiA0MlMyMjogVW5rbm93biBjb2x1bW4g J2MyJyBpbiAndCcKIEFMVEVSIFRBQkxFIHQgTU9ESUZZIGMyIElOVCwgTU9ESUZZIGMyIElOVCBO T1QgTlVMTDsKQEAgLTExLDggKzE0LDEyIEBAIEFMVEVSIFRBQkxFIHQgTU9ESUZZIGMyIElOVCBV TlNJR05FRCwgTU8KIEVSUk9SIDQyUzIyOiBVbmtub3duIGNvbHVtbiAnYzInIGluICd0JwogQUxU RVIgVEFCTEUgdCBNT0RJRlkgYzIgQ0hBUigxKSBOT1QgTlVMTCwgTU9ESUZZIGMyIElOVCBOT1Qg TlVMTDsKIEVSUk9SIDQyUzIyOiBVbmtub3duIGNvbHVtbiAnYzInIGluICd0JwotQUxURVIgVEFC TEUgdCBDSEFOR0UgYzIgYzIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRSwgTE9DSz1O T05FOwotQUxURVIgVEFCTEUgdCBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5Q TEFDRSwgTE9DSz1OT05FOworQUxURVIgVEFCTEUgdCBDSEFOR0UgYzIgYzIgSU5UIE5PVCBOVUxM OworYWZmZWN0ZWQgcm93czogMAoraW5mbzogUmVjb3JkczogMCAgRHVwbGljYXRlczogMCAgV2Fy bmluZ3M6IDAKK0FMVEVSIFRBQkxFIHQgTU9ESUZZIGMyIElOVCBOT1QgTlVMTDsKK2FmZmVjdGVk IHJvd3M6IDAKK2luZm86IFJlY29yZHM6IDAgIER1cGxpY2F0ZXM6IDAgIFdhcm5pbmdzOiAwCiBT RVQgU1FMX01PREU9J1NUUklDVF9BTExfVEFCTEVTJzsKIFVQREFURSB0IFNFVCBjMj1OVUxMOwog RVJST1IgMjMwMDA6IENvbHVtbiAnYzInIGNhbm5vdCBiZSBudWxsCgo9PT0gbW9kaWZpZWQgZmls ZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItaW5kZXgucmVzdWx0JwotLS0gYS9t eXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC5yZXN1bHQJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9t eXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC5yZXN1bHQJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDExMTM0MjAtbWV4bzVibGNkeTh2bno4ZwpAQCAtNDI1 LDkgKzQyNSw5IEBAIGRyb3AgdGFibGUgdDE7CiBjcmVhdGUgdGFibGUgdDEoYSBpbnQgbm90IG51 bGwsIGIgaW50IG5vdCBudWxsLCBjIGludCwgcHJpbWFyeSBrZXkgKGEpLCBrZXkgKGIpKSBlbmdp bmUgPSBpbm5vZGI7CiBjcmVhdGUgdGFibGUgdDMoYSBpbnQgbm90IG51bGwsIGMgaW50IG5vdCBu dWxsLCBkIGludCwgcHJpbWFyeSBrZXkgKGEpLCBrZXkgKGMpKSBlbmdpbmUgPSBpbm5vZGI7CiBj cmVhdGUgdGFibGUgdDQoYSBpbnQgbm90IG51bGwsIGQgaW50IG5vdCBudWxsLCBlIGludCwgcHJp bWFyeSBrZXkgKGEpLCBrZXkgKGQpKSBlbmdpbmUgPSBpbm5vZGI7Ci1jcmVhdGUgdGFibGUgdDIo YSBpbnQgbm90IG51bGwsIGIgaW50IG5vdCBudWxsLCBjIGludCBub3QgbnVsbCwgZCBpbnQgbm90 IG51bGwsIGUgaW50LAotZm9yZWlnbiBrZXkgKGIpIHJlZmVyZW5jZXMgdDEoYikgb24gZGVsZXRl IGNhc2NhZGUsCi1mb3JlaWduIGtleSAoYykgcmVmZXJlbmNlcyB0MyhjKSwgZm9yZWlnbiBrZXkg KGQpIHJlZmVyZW5jZXMgdDQoZCkpCitjcmVhdGUgdGFibGUgdDIoYSBpbnQgbm90IG51bGwsIGIg aW50LCBjIGludCwgZCBpbnQsIGUgaW50LAorZm9yZWlnbiBrZXkgKGIpIHJlZmVyZW5jZXMgdDEo Yikgb24gZGVsZXRlIHNldCBudWxsLAorZm9yZWlnbiBrZXkgKGMpIHJlZmVyZW5jZXMgdDMoYyks IGZvcmVpZ24ga2V5IChkKSByZWZlcmVuY2VzIHQ0KGQpIG9uIHVwZGF0ZSBzZXQgbnVsbCkKIGVu Z2luZSA9IGlubm9kYjsKIGFsdGVyIHRhYmxlIHQxIGRyb3AgaW5kZXggYjsKIEVSUk9SIEhZMDAw OiBDYW5ub3QgZHJvcCBpbmRleCAnYic6IG5lZWRlZCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQKQEAgLTQzOSw2ICs0MzksMTAgQEAgYWx0ZXIgdGFibGUgdDIgZHJvcCBpbmRleCBiOwogRVJS T1IgSFkwMDA6IENhbm5vdCBkcm9wIGluZGV4ICdiJzogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkg Y29uc3RyYWludAogYWx0ZXIgdGFibGUgdDIgZHJvcCBpbmRleCBiLCBkcm9wIGluZGV4IGMsIGRy b3AgaW5kZXggZDsKIEVSUk9SIEhZMDAwOiBDYW5ub3QgZHJvcCBpbmRleCAnYic6IG5lZWRlZCBp biBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQKK2FsdGVyIHRhYmxlIHQyIE1PRElGWSBiIElOVCBO T1QgTlVMTCwgQUxHT1JJVEhNPUNPUFk7CitFUlJPUiBIWTAwMDogRXJyb3Igb24gcmVuYW1lIG9m ICcuLyNzcWwtdGVtcG9yYXJ5JyB0byAnLi90ZXN0L3QyJyAoZXJybm86IDE1MCAtIEZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgaXMgaW5jb3JyZWN0bHkgZm9ybWVkKQorYWx0ZXIgdGFibGUgdDIgTU9E SUZZIGIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKK0VSUk9SIEhZMDAwOiBDb2x1 bW4gJ2InIGNhbm5vdCBiZSBOT1QgTlVMTDogbmVlZGVkIGluIGEgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAndGVzdC90Ml9pYmZrXzEnIFNFVCBOVUxMCiBjcmVhdGUgdW5pcXVlIGluZGV4IGRjIG9u IHQyIChkLGMpOwogYWZmZWN0ZWQgcm93czogMAogaW5mbzogUmVjb3JkczogMCAgRHVwbGljYXRl czogMCAgV2FybmluZ3M6IDAKQEAgLTQ0Niw3ICs0NTAsMTMgQEAgY3JlYXRlIGluZGV4IGRjIG9u IHQxIChiLGMpOwogYWZmZWN0ZWQgcm93czogMAogaW5mbzogUmVjb3JkczogMCAgRHVwbGljYXRl czogMCAgV2FybmluZ3M6IDAKIGFsdGVyIHRhYmxlIHQyIGFkZCBwcmltYXJ5IGtleSAoYWxwaGEp LCBjaGFuZ2UgYSBhbHBoYSBpbnQsCi1jaGFuZ2UgYiBiZXRhIGludCBub3QgbnVsbDsKK2NoYW5n ZSBiIGJldGEgaW50IG5vdCBudWxsLCBjaGFuZ2UgYyBjaGFybGllIGludCBub3QgbnVsbDsKK0VS Uk9SIEhZMDAwOiBDb2x1bW4gJ2InIGNhbm5vdCBiZSBOT1QgTlVMTDogbmVlZGVkIGluIGEgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAndGVzdC90Ml9pYmZrXzEnIFNFVCBOVUxMCithbHRlciB0YWJs ZSB0MiBhZGQgcHJpbWFyeSBrZXkgKGFscGhhKSwgY2hhbmdlIGEgYWxwaGEgaW50LAorY2hhbmdl IGMgY2hhcmxpZSBpbnQgbm90IG51bGwsIGNoYW5nZSBkIGRlbHRhIGludCBub3QgbnVsbDsKK0VS Uk9SIEhZMDAwOiBDb2x1bW4gJ2QnIGNhbm5vdCBiZSBOT1QgTlVMTDogbmVlZGVkIGluIGEgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAndGVzdC90Ml9pYmZrXzMnIFNFVCBOVUxMCithbHRlciB0YWJs ZSB0MiBhZGQgcHJpbWFyeSBrZXkgKGFscGhhKSwgY2hhbmdlIGEgYWxwaGEgaW50LAorY2hhbmdl IGIgYmV0YSBpbnQsIG1vZGlmeSBjIGludCBub3QgbnVsbDsKIGFmZmVjdGVkIHJvd3M6IDAKIGlu Zm86IFJlY29yZHM6IDAgIER1cGxpY2F0ZXM6IDAgIFdhcm5pbmdzOiAwCiBpbnNlcnQgaW50byB0 MSB2YWx1ZXMgKDEsMSwxKTsKQEAgLTQ5MCwxNyArNTAwLDE3IEBAIHNob3cgY3JlYXRlIHRhYmxl IHQyOwogVGFibGUJQ3JlYXRlIFRhYmxlCiB0MglDUkVBVEUgVEFCTEUgYHQyYCAoCiAgIGBhbHBo YWAgaW50KDExKSBOT1QgTlVMTCBERUZBVUxUICcwJywKLSAgYGJldGFgIGludCgxMSkgTk9UIE5V TEwsCisgIGBiZXRhYCBpbnQoMTEpIERFRkFVTFQgTlVMTCwKICAgYGNgIGludCgxMSkgTk9UIE5V TEwsCi0gIGBkYCBpbnQoMTEpIE5PVCBOVUxMLAorICBgZGAgaW50KDExKSBERUZBVUxUIE5VTEws CiAgIGBlYCBpbnQoMTEpIERFRkFVTFQgTlVMTCwKICAgUFJJTUFSWSBLRVkgKGBhbHBoYWApLAog ICBVTklRVUUgS0VZIGBkY2AgKGBkYCxgY2ApLAogICBLRVkgYGNgIChgY2ApLAogICBLRVkgYGJl dGFgIChgYmV0YWApLAotICBDT05TVFJBSU5UIGB0Ml9pYmZrXzFgIEZPUkVJR04gS0VZIChgYmV0 YWApIFJFRkVSRU5DRVMgYHQxYCAoYGJgKSBPTiBERUxFVEUgQ0FTQ0FERSwKKyAgQ09OU1RSQUlO VCBgdDJfaWJma18xYCBGT1JFSUdOIEtFWSAoYGJldGFgKSBSRUZFUkVOQ0VTIGB0MWAgKGBiYCkg T04gREVMRVRFIFNFVCBOVUxMLAogICBDT05TVFJBSU5UIGB0Ml9pYmZrXzJgIEZPUkVJR04gS0VZ IChgY2ApIFJFRkVSRU5DRVMgYHQzYCAoYGNgKSwKLSAgQ09OU1RSQUlOVCBgdDJfaWJma18zYCBG T1JFSUdOIEtFWSAoYGRgKSBSRUZFUkVOQ0VTIGB0NGAgKGBkYCkKKyAgQ09OU1RSQUlOVCBgdDJf aWJma18zYCBGT1JFSUdOIEtFWSAoYGRgKSBSRUZFUkVOQ0VTIGB0NGAgKGBkYCkgT04gVVBEQVRF IFNFVCBOVUxMCiApIEVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPWxhdGluMQogZGVsZXRl IGZyb20gdDE7CiBFUlJPUiAyMzAwMDogQ2Fubm90IGRlbGV0ZSBvciB1cGRhdGUgYSBwYXJlbnQg cm93OiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgZmFpbHMgKGB0ZXN0YC5gdDRgLCBDT05TVFJB SU5UIGBkY2AgRk9SRUlHTiBLRVkgKGBhYCkgUkVGRVJFTkNFUyBgdDFgIChgYWApKQpAQCAtNTE4 LDYgKzUyOCw3IEBAIGFscGhhCWJldGEJYwlkCWUKIGRlbGV0ZSBmcm9tIHQxOwogc2VsZWN0ICog ZnJvbSB0MjsKIGFscGhhCWJldGEJYwlkCWUKKzEJTlVMTAkxCTEJMQogZHJvcCB0YWJsZSB0Mix0 NCx0Myx0MTsKIGNyZWF0ZSB0YWJsZSB0MShhIGludCBub3QgbnVsbCwgYiBpbnQsIGMgY2hhcigx MCksIGQgdmFyY2hhcigyMCksIHByaW1hcnkga2V5IChhKSkgZW5naW5lID0gaW5ub2RiIGRlZmF1 bHQgY2hhcnNldD11dGY4OwogaW5zZXJ0IGludG8gdDEgdmFsdWVzICgxLDEsJ2FiJywnYWInKSwo MiwyLCdhYycsJ2FjJyksKDMsMiwnYWQnLCdhZCcpLCg0LDQsJ2FmZScsJ2FmZScpOwpAQCAtMTAx Niw4ICsxMDI3LDggQEAgRFJPUCBUQUJMRSB0MTsKIENSRUFURSBUQUJMRSB0MSAoYSBJTlQsIGIg Q0hBUigxKSkgRU5HSU5FPUlubm9EQjsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMywnYScpLCgz LCdiJyksKDEsJ2MnKSwoMCwnZCcpLCgxLCdlJyk7CiBDUkVBVEUgVEFCTEUgdDIgKGEgSU5ULCBi IENIQVIoMSkpIEVOR0lORT1Jbm5vREI7Ci1DUkVBVEUgVEFCTEUgdDJpIChhIElOVCBOT1QgTlVM TCwgYiBDSEFSKDEpIE5PVCBOVUxMKSBFTkdJTkU9SW5ub0RCOwotQ1JFQVRFIFRBQkxFIHQyYyAo YSBJTlQgTk9UIE5VTEwsIGIgQ0hBUigxKSBOT1QgTlVMTCkgRU5HSU5FPUlubm9EQjsKK0NSRUFU RSBUQUJMRSB0MmkgKGEgSU5ULCBiIENIQVIoMSkgTk9UIE5VTEwpIEVOR0lORT1Jbm5vREI7CitD UkVBVEUgVEFCTEUgdDJjIChhIElOVCwgYiBDSEFSKDEpIE5PVCBOVUxMKSBFTkdJTkU9SW5ub0RC OwogSU5TRVJUIElOVE8gdDIgU0VMRUNUICogRlJPTSB0MTsKIElOU0VSVCBJTlRPIHQyaSBTRUxF Q1QgKiBGUk9NIHQxOwogSU5TRVJUIElOVE8gdDJjIFNFTEVDVCAqIEZST00gdDE7CkBAIC0xMDMy LDggKzEwNDMsNiBAQCBhCWIKIFNFVCBsb2NrX3dhaXRfdGltZW91dD0xOwogQ1JFQVRFIElOREVY IHQxYSBPTiB0MShhKTsKIEVSUk9SIEhZMDAwOiBMb2NrIHdhaXQgdGltZW91dCBleGNlZWRlZDsg dHJ5IHJlc3RhcnRpbmcgdHJhbnNhY3Rpb24KLUFMVEVSIFRBQkxFIHQyIEFERCBQUklNQVJZIEtF WShhLGIpLCBBREQgSU5ERVggdDJhKGEpLCBBTEdPUklUSE09SU5QTEFDRTsKLUVSUk9SIDQyMDAw OiBUaGlzIHZlcnNpb24gb2YgTXlTUUwgZG9lc24ndCB5ZXQgc3VwcG9ydCAnQUxURVIgVEFCTEUg dDIgQUREIFBSSU1BUlkgS0VZKGEsYiksIEFERCBJTkRFWCB0MmEoYSksIEFMR09SSVRITT1JTlBM QUNFJwogQ1JFQVRFIElOREVYIHQyYSBPTiB0MihhKTsKIGFmZmVjdGVkIHJvd3M6IDAKIGluZm86 IFJlY29yZHM6IDAgIER1cGxpY2F0ZXM6IDAgIFdhcm5pbmdzOiAwCkBAIC0xMTIzLDcgKzExMzIs NyBAQCB0MglDUkVBVEUgVEFCTEUgYHQyYCAoCiBzaG93IGNyZWF0ZSB0YWJsZSB0Mmk7CiBUYWJs ZQlDcmVhdGUgVGFibGUKIHQyaQlDUkVBVEUgVEFCTEUgYHQyaWAgKAotICBgYWAgaW50KDExKSBO T1QgTlVMTCwKKyAgYGFgIGludCgxMSkgTk9UIE5VTEwgREVGQVVMVCAnMCcsCiAgIGBiYCBjaGFy KDEpIE5PVCBOVUxMLAogICBQUklNQVJZIEtFWSAoYGFgLGBiYCksCiAgIEtFWSBgdDJhYCAoYGFg KQpAQCAtMTEzMSw3ICsxMTQwLDcgQEAgdDJpCUNSRUFURSBUQUJMRSBgdDJpYCAoCiBzaG93IGNy ZWF0ZSB0YWJsZSB0MmM7CiBUYWJsZQlDcmVhdGUgVGFibGUKIHQyYwlDUkVBVEUgVEFCTEUgYHQy Y2AgKAotICBgYWAgaW50KDExKSBOT1QgTlVMTCwKKyAgYGFgIGludCgxMSkgTk9UIE5VTEwgREVG QVVMVCAnMCcsCiAgIGBiYCBjaGFyKDEpIE5PVCBOVUxMLAogICBQUklNQVJZIEtFWSAoYGFgLGBi YCksCiAgIEtFWSBgdDJhYCAoYGFgKQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3IvaW5ub2RiLXRhYmxlLW9ubGluZS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qv c3VpdGUvaW5ub2RiL3IvaW5ub2RiLXRhYmxlLW9ubGluZS5yZXN1bHQJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9teXNx bC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi10YWJsZS1vbmxpbmUucmVzdWx0CXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4dm56OGcKQEAg LTI1NCwxOSArMjU0LDI2IEBAIEFMVEVSIFRBQkxFIHQxIERST1AgUFJJTUFSWSBLRVksIEFERCBQ UkkKIEVSUk9SIDIzMDAwOiBEdXBsaWNhdGUgZW50cnkgJycgZm9yIGtleSAnUFJJTUFSWScKIFVQ REFURSB0MSBTRVQgYzMgPSBOVUxMIFdIRVJFIGMzID0gJyc7CiBTRVQgbG9ja193YWl0X3RpbWVv dXQgPSAxOwotU0VUIERFQlVHX1NZTkMgPSAncm93X2xvZ190YWJsZV9hcHBseTFfYmVmb3JlIFNJ R05BTCBjM3A1X2NyZWF0ZWQgV0FJVF9GT1IgaW5zX2RvbmUnOwogQUxURVIgVEFCTEUgdDEgQURE IFBSSU1BUlkgS0VZIGMzcDUoYzMoNSkpOwogRVJST1IgNDIwMDA6IE11bHRpcGxlIHByaW1hcnkg a2V5IGRlZmluZWQKIEFMVEVSIFRBQkxFIHQxIERST1AgUFJJTUFSWSBLRVksIEFERCBQUklNQVJZ IEtFWSBjM3A1KGMzKDUpKSwKIEFMR09SSVRITSA9IElOUExBQ0U7Ci1FUlJPUiA0MjAwMDogVGhp cyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQgJ0FMVEVSIFRBQkxFIHQxIERS T1AgUFJJTUFSWSBLRVksIEFERCBQUklNQVJZIEtFWSBjM3A1KGMzKDUpKSwKLUFMR09SSVRITSA9 IElOUExBQ0UnCitFUlJPUiAyMjAwNDogSW52YWxpZCB1c2Ugb2YgTlVMTCB2YWx1ZQorQUxURVIg VEFCTEUgdDEgTU9ESUZZIGMzIFRFWFQgTk9UIE5VTEw7CitFUlJPUiAyMjAwNDogSW52YWxpZCB1 c2Ugb2YgTlVMTCB2YWx1ZQogVVBEQVRFIHQxIFNFVCBjMz1DT05DQVQoYzEsUkVQRUFUKCdmb28n LGMxKSkgV0hFUkUgYzMgSVMgTlVMTDsKLUFMVEVSIFRBQkxFIHQxIE1PRElGWSBjMyBURVhUIE5P VCBOVUxMLCBBTEdPUklUSE0gPSBJTlBMQUNFOwotRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBv ZiBNeVNRTCBkb2Vzbid0IHlldCBzdXBwb3J0ICdBTFRFUiBUQUJMRSB0MSBNT0RJRlkgYzMgVEVY VCBOT1QgTlVMTCwgQUxHT1JJVEhNID0gSU5QTEFDRScKK1NFVCBERUJVR19TWU5DID0gJ3Jvd19s b2dfdGFibGVfYXBwbHkxX2JlZm9yZSBTSUdOQUwgYzNwNV9jcmVhdGVkMCBXQUlUX0ZPUiBpbnNf ZG9uZTAnOwogQUxURVIgVEFCTEUgdDEgTU9ESUZZIGMzIFRFWFQgTk9UIE5VTEw7Ci1BTFRFUiBU QUJMRSB0MSBEUk9QIFBSSU1BUlkgS0VZLCBBREQgUFJJTUFSWSBLRVkgYzNwNShjMyg1KSksCi1B TEdPUklUSE0gPSBJTlBMQUNFOworU0VUIERFQlVHX1NZTkMgPSAnbm93IFdBSVRfRk9SIGMzcDVf Y3JlYXRlZDAnOworQkVHSU47CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMzQ3LDMzMTAxLCdQaWtr dSBrYWtrb3NlbiBwb3N0aScpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDMzMTAxLDM0NyxOVUxM KTsKK1NFVCBERUJVR19TWU5DID0gJ25vdyBTSUdOQUwgaW5zX2RvbmUwJzsKK0VSUk9SIDIyMDA0 OiBJbnZhbGlkIHVzZSBvZiBOVUxMIHZhbHVlCitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHQxIE1P RElGWSBjMyBURVhUIE5PVCBOVUxMOworU0VUIERFQlVHX1NZTkMgPSAncm93X2xvZ190YWJsZV9h cHBseTFfYmVmb3JlIFNJR05BTCBjM3A1X2NyZWF0ZWQgV0FJVF9GT1IgaW5zX2RvbmUnOworQUxU RVIgVEFCTEUgdDEgRFJPUCBQUklNQVJZIEtFWSwgQUREIFBSSU1BUlkgS0VZIGMzcDUoYzMoNSkp OwogU0VUIERFQlVHX1NZTkMgPSAnbm93IFdBSVRfRk9SIGMzcDVfY3JlYXRlZCc7CiBTRVQgREVC VUdfU1lOQyA9ICdpYl9hZnRlcl9yb3dfaW5zZXJ0IFNJR05BTCBpbnNfZG9uZSBXQUlUX0ZPUiBk ZGxfdGltZWRfb3V0JzsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUygzNDcsMzMxMDEsTlVMTCk7Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGIucmVzdWx0 JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi5yZXN1bHQJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi5yZXN1bHQJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMjA2MDExMTM0MjAtbWV4bzVibGNkeTh2bno4ZwpAQCAtMzAwNiw3 ICszMDA2LDcgQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRPIHQyIFZB TFVFUyAoMSk7CiBBTFRFUiBUQUJMRSB0MiBBREQgRk9SRUlHTiBLRVkgKGEpIFJFRkVSRU5DRVMg dDEgKGEpIE9OIERFTEVURSBTRVQgTlVMTDsKIEFMVEVSIFRBQkxFIHQyIE1PRElGWSBhIElOVCBO T1QgTlVMTDsKLUVSUk9SIEhZMDAwOiBFcnJvciBvbiByZW5hbWUgb2YgJyNzcWwtdGVtcG9yYXJ5 JyB0byAnLi90ZXN0L3QyJyAoZXJybm86IDE1MCAtIEZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgaXMg aW5jb3JyZWN0bHkgZm9ybWVkKQorRVJST1IgSFkwMDA6IENvbHVtbiAnYScgY2Fubm90IGJlIE5P VCBOVUxMOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICd0ZXN0L3QyX2liZmtf MScgU0VUIE5VTEwKIERFTEVURSBGUk9NIHQxOwogRFJPUCBUQUJMRSB0Mix0MTsKIENSRUFURSBU QUJMRSB0MSAoYSBWQVJDSEFSKDUpIENPTExBVEUgdXRmOF91bmljb2RlX2NpIFBSSU1BUlkgS0VZ KQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiXzE2 ay5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiXzE2ay5yZXN1 bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcy MGV4ZWJ6cQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl8xNmsucmVzdWx0 CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4 dm56OGcKQEAgLTM2OCw3ICszNjgsNyBAQCBUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAogdGVz dC50MQljaGVjawlzdGF0dXMJT0sKIEVYUExBSU4gU0VMRUNUICogRlJPTSB0MSBXSEVSRSBiIExJ S0UgJ2FkZmQlJzsKIGlkCXNlbGVjdF90eXBlCXRhYmxlCXR5cGUJcG9zc2libGVfa2V5cwlrZXkJ a2V5X2xlbglyZWYJcm93cwlFeHRyYQotMQlTSU1QTEUJdDEJQUxMCWIJTlVMTAlOVUxMCU5VTEwJ MTUJVXNpbmcgd2hlcmUKKzEJU0lNUExFCXQxCXJhbmdlCWIJYgk3NjkJTlVMTAkxMQlVc2luZyB3 aGVyZQogRFJPUCBUQUJMRSB0MTsKICMgVGVzdCA4KSBUZXN0IGNyZWF0aW5nIGEgdGFibGUgdGhh dCBjb3VsZCBsZWFkIHRvIHVuZG8gbG9nIG92ZXJmbG93LgogQ1JFQVRFIFRBQkxFIHQxKGEgYmxv YixiIGJsb2IsYyBibG9iLGQgYmxvYixlIGJsb2IsZiBibG9iLGcgYmxvYiwKCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9taXNjMS5yZXN1bHQnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX21pc2MxLnJlc3VsdAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwMTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisr KyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX21pc2MxLnJlc3VsdAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBA IC02NTEsNyArNjUxLDcgQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRP IHQyIFZBTFVFUyAoMSk7CiBBTFRFUiBUQUJMRSB0MiBBREQgRk9SRUlHTiBLRVkgKGEpIFJFRkVS RU5DRVMgdDEgKGEpIE9OIERFTEVURSBTRVQgTlVMTDsKIEFMVEVSIFRBQkxFIHQyIE1PRElGWSBh IElOVCBOT1QgTlVMTDsKLUVSUk9SIEhZMDAwOiBFcnJvciBvbiByZW5hbWUgb2YgJyNzcWwtdGVt cG9yYXJ5JyB0byAnLi90ZXN0L3QyJyAoZXJybm86IDE1MCAtIEZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgaXMgaW5jb3JyZWN0bHkgZm9ybWVkKQorRVJST1IgSFkwMDA6IENvbHVtbiAnYScgY2Fubm90 IGJlIE5PVCBOVUxMOiBuZWVkZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICd0ZXN0L3Qy X2liZmtfMScgU0VUIE5VTEwKIERFTEVURSBGUk9NIHQxOwogRFJPUCBUQUJMRSB0Mix0MTsKIENS RUFURSBUQUJMRSB0MSAoYSBWQVJDSEFSKDUpIENPTExBVEUgdXRmOF91bmljb2RlX2NpIFBSSU1B UlkgS0VZKQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5u b2RiLWFsdGVyLW51bGxhYmxlLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Qv aW5ub2RiLWFsdGVyLW51bGxhYmxlLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lu bm9kYi90L2lubm9kYi1hbHRlci1udWxsYWJsZS50ZXN0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4dm56OGcKQEAgLTYsMTIgKzYsMTIgQEAK IENSRUFURSBUQUJMRSB0IChjMSBJTlQgUFJJTUFSWSBLRVksIGMyIElOVCBOT1QgTlVMTCwgYzMg SU5UKSBFTkdJTkU9SW5ub0RCOwogSU5TRVJUIElOVE8gdCBWQUxVRVMgKDEsMiwzKSwoNCw1LDYp LCg3LDgsOSk7CiAKKy0tZW5hYmxlX2luZm8KICMgVGhpcyBvbmUgd2lsbCBiZSBhIG5vLW9wLgog IyBNeVNRTCBzaG91bGQgcGVyaGFwcyBpc3N1ZSBhbiBlcnJvciwgYmVjYXVzZSBpdCByZWZ1c2Vz IHRvIG1vZGlmeQogIyB0aGUgUFJJTUFSWSBLRVkgY29sdW1uIGMxIGZyb20gTk9UIE5VTEwgdG8g TlVMTC4KIEFMVEVSIFRBQkxFIHQgQ0hBTkdFIGMxIGMxIElOVCBOVUxMIEZJUlNULCBBTEdPUklU SE09SU5QTEFDRTsKIAotLS1lcnJvciBFUl9OT1RfU1VQUE9SVEVEX1lFVAogQUxURVIgVEFCTEUg dCBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKIAogIyBSZXF1ZXN0 IHNvbWUgY29uZmxpY3RpbmcgY2hhbmdlcyBmb3IgYSBzaW5nbGUgY29sdW1uLgpAQCAtMjUsOCAr MjUsOSBAQCBBTFRFUiBUQUJMRSB0IE1PRElGWSBjMiBJTlQgVU5TSUdORUQsIE1PCiBBTFRFUiBU QUJMRSB0IE1PRElGWSBjMiBDSEFSKDEpIE5PVCBOVUxMLCBNT0RJRlkgYzIgSU5UIE5PVCBOVUxM OwogCiAjIE5vLW9wcy4KLUFMVEVSIFRBQkxFIHQgQ0hBTkdFIGMyIGMyIElOVCBOT1QgTlVMTCwg QUxHT1JJVEhNPUlOUExBQ0UsIExPQ0s9Tk9ORTsKLUFMVEVSIFRBQkxFIHQgTU9ESUZZIGMyIElO VCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0UsIExPQ0s9Tk9ORTsKK0FMVEVSIFRBQkxFIHQg Q0hBTkdFIGMyIGMyIElOVCBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHQgTU9ESUZZIGMyIElOVCBO T1QgTlVMTDsKKy0tZGlzYWJsZV9pbmZvCiAKIGNvbm5lY3QgKGNvbjEsbG9jYWxob3N0LHJvb3Qs LCk7CiBjb25uZWN0aW9uIGNvbjE7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0 ZS9pbm5vZGIvdC9pbm5vZGItaW5kZXgudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGIvdC9pbm5vZGItaW5kZXgudGVzdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEy MDYwMTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2Ri L3QvaW5ub2RiLWluZGV4LnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2 MDExMTM0MjAtbWV4bzVibGNkeTh2bno4ZwpAQCAtMTMzLDkgKzEzMyw5IEBAIGRyb3AgdGFibGUg dDE7CiBjcmVhdGUgdGFibGUgdDEoYSBpbnQgbm90IG51bGwsIGIgaW50IG5vdCBudWxsLCBjIGlu dCwgcHJpbWFyeSBrZXkgKGEpLCBrZXkgKGIpKSBlbmdpbmUgPSBpbm5vZGI7CiBjcmVhdGUgdGFi bGUgdDMoYSBpbnQgbm90IG51bGwsIGMgaW50IG5vdCBudWxsLCBkIGludCwgcHJpbWFyeSBrZXkg KGEpLCBrZXkgKGMpKSBlbmdpbmUgPSBpbm5vZGI7CiBjcmVhdGUgdGFibGUgdDQoYSBpbnQgbm90 IG51bGwsIGQgaW50IG5vdCBudWxsLCBlIGludCwgcHJpbWFyeSBrZXkgKGEpLCBrZXkgKGQpKSBl bmdpbmUgPSBpbm5vZGI7Ci1jcmVhdGUgdGFibGUgdDIoYSBpbnQgbm90IG51bGwsIGIgaW50IG5v dCBudWxsLCBjIGludCBub3QgbnVsbCwgZCBpbnQgbm90IG51bGwsIGUgaW50LAotZm9yZWlnbiBr ZXkgKGIpIHJlZmVyZW5jZXMgdDEoYikgb24gZGVsZXRlIGNhc2NhZGUsCi1mb3JlaWduIGtleSAo YykgcmVmZXJlbmNlcyB0MyhjKSwgZm9yZWlnbiBrZXkgKGQpIHJlZmVyZW5jZXMgdDQoZCkpCitj cmVhdGUgdGFibGUgdDIoYSBpbnQgbm90IG51bGwsIGIgaW50LCBjIGludCwgZCBpbnQsIGUgaW50 LAorZm9yZWlnbiBrZXkgKGIpIHJlZmVyZW5jZXMgdDEoYikgb24gZGVsZXRlIHNldCBudWxsLAor Zm9yZWlnbiBrZXkgKGMpIHJlZmVyZW5jZXMgdDMoYyksIGZvcmVpZ24ga2V5IChkKSByZWZlcmVu Y2VzIHQ0KGQpIG9uIHVwZGF0ZSBzZXQgbnVsbCkKIGVuZ2luZSA9IGlubm9kYjsKIC0tZXJyb3Ig RVJfRFJPUF9JTkRFWF9GSwogYWx0ZXIgdGFibGUgdDEgZHJvcCBpbmRleCBiOwpAQCAtMTQ3LDEz ICsxNDcsMjQgQEAgYWx0ZXIgdGFibGUgdDQgZHJvcCBpbmRleCBkOwogYWx0ZXIgdGFibGUgdDIg ZHJvcCBpbmRleCBiOwogLS1lcnJvciBFUl9EUk9QX0lOREVYX0ZLCiBhbHRlciB0YWJsZSB0MiBk cm9wIGluZGV4IGIsIGRyb3AgaW5kZXggYywgZHJvcCBpbmRleCBkOworLS1yZXBsYWNlX3JlZ2V4 IC90ZXN0XC8jc3FsLVswLTlhLWZfXSonLyNzcWwtdGVtcG9yYXJ5Jy8KKy0tZXJyb3IgRVJfRVJS T1JfT05fUkVOQU1FCithbHRlciB0YWJsZSB0MiBNT0RJRlkgYiBJTlQgTk9UIE5VTEwsIEFMR09S SVRITT1DT1BZOworLS1lcnJvciBFUl9GS19DT0xVTU5fTk9UX05VTEwKK2FsdGVyIHRhYmxlIHQy IE1PRElGWSBiIElOVCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CiAtLWVuYWJsZV9pbmZv CiAjIEFwcGFyZW50bHksIHRoZSBmb2xsb3dpbmcgbWFrZXMgbXlzcWxfYWx0ZXJfdGFibGUoKSBk cm9wIGluZGV4IGQuCiBjcmVhdGUgdW5pcXVlIGluZGV4IGRjIG9uIHQyIChkLGMpOwogY3JlYXRl IGluZGV4IGRjIG9uIHQxIChiLGMpOwogIyBUaGlzIHNob3VsZCBwcmVzZXJ2ZSB0aGUgZm9yZWln biBrZXkgY29uc3RyYWludHMuCistLWVycm9yIEVSX0ZLX0NPTFVNTl9OT1RfTlVMTAogYWx0ZXIg dGFibGUgdDIgYWRkIHByaW1hcnkga2V5IChhbHBoYSksIGNoYW5nZSBhIGFscGhhIGludCwKLWNo YW5nZSBiIGJldGEgaW50IG5vdCBudWxsOworY2hhbmdlIGIgYmV0YSBpbnQgbm90IG51bGwsIGNo YW5nZSBjIGNoYXJsaWUgaW50IG5vdCBudWxsOworLS1lcnJvciBFUl9GS19DT0xVTU5fTk9UX05V TEwKK2FsdGVyIHRhYmxlIHQyIGFkZCBwcmltYXJ5IGtleSAoYWxwaGEpLCBjaGFuZ2UgYSBhbHBo YSBpbnQsCitjaGFuZ2UgYyBjaGFybGllIGludCBub3QgbnVsbCwgY2hhbmdlIGQgZGVsdGEgaW50 IG5vdCBudWxsOworYWx0ZXIgdGFibGUgdDIgYWRkIHByaW1hcnkga2V5IChhbHBoYSksIGNoYW5n ZSBhIGFscGhhIGludCwKK2NoYW5nZSBiIGJldGEgaW50LCBtb2RpZnkgYyBpbnQgbm90IG51bGw7 CiAtLWRpc2FibGVfaW5mbwogaW5zZXJ0IGludG8gdDEgdmFsdWVzICgxLDEsMSk7CiBpbnNlcnQg aW50byB0MyB2YWx1ZXMgKDEsMSwxKTsKQEAgLTQxNiw4ICs0MjcsOCBAQCBjb25uZWN0aW9uIGE7 CiBDUkVBVEUgVEFCTEUgdDEgKGEgSU5ULCBiIENIQVIoMSkpIEVOR0lORT1Jbm5vREI7CiBJTlNF UlQgSU5UTyB0MSBWQUxVRVMgKDMsJ2EnKSwoMywnYicpLCgxLCdjJyksKDAsJ2QnKSwoMSwnZScp OwogQ1JFQVRFIFRBQkxFIHQyIChhIElOVCwgYiBDSEFSKDEpKSBFTkdJTkU9SW5ub0RCOwotQ1JF QVRFIFRBQkxFIHQyaSAoYSBJTlQgTk9UIE5VTEwsIGIgQ0hBUigxKSBOT1QgTlVMTCkgRU5HSU5F PUlubm9EQjsKLUNSRUFURSBUQUJMRSB0MmMgKGEgSU5UIE5PVCBOVUxMLCBiIENIQVIoMSkgTk9U IE5VTEwpIEVOR0lORT1Jbm5vREI7CitDUkVBVEUgVEFCTEUgdDJpIChhIElOVCwgYiBDSEFSKDEp IE5PVCBOVUxMKSBFTkdJTkU9SW5ub0RCOworQ1JFQVRFIFRBQkxFIHQyYyAoYSBJTlQsIGIgQ0hB UigxKSBOT1QgTlVMTCkgRU5HSU5FPUlubm9EQjsKIElOU0VSVCBJTlRPIHQyIFNFTEVDVCAqIEZS T00gdDE7CiBJTlNFUlQgSU5UTyB0MmkgU0VMRUNUICogRlJPTSB0MTsKIElOU0VSVCBJTlRPIHQy YyBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtNDMwLDkgKzQ0MSw2IEBAIGNvbm5lY3Rpb24gYTsKIFNF VCBsb2NrX3dhaXRfdGltZW91dD0xOwogLS1lcnJvciBFUl9MT0NLX1dBSVRfVElNRU9VVAogQ1JF QVRFIElOREVYIHQxYSBPTiB0MShhKTsKLSMgSW5ub0RCIGNhbm5vdCBjaGFuZ2UgYSBjb2x1bW4g dG8gTk9UIE5VTEwgeWV0Ci0tLWVycm9yIEVSX05PVF9TVVBQT1JURURfWUVUCi1BTFRFUiBUQUJM RSB0MiBBREQgUFJJTUFSWSBLRVkoYSxiKSwgQUREIElOREVYIHQyYShhKSwgQUxHT1JJVEhNPUlO UExBQ0U7CiAtLWVuYWJsZV9pbmZvCiBDUkVBVEUgSU5ERVggdDJhIE9OIHQyKGEpOwogQUxURVIg VEFCTEUgdDJpIEFERCBQUklNQVJZIEtFWShhLGIpLCBBREQgSU5ERVggdDJhKGEpLCBBTEdPUklU SE09SU5QTEFDRTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90 L2lubm9kYi10YWJsZS1vbmxpbmUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIv dC9pbm5vZGItdGFibGUtb25saW5lLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lu bm9kYi90L2lubm9kYi10YWJsZS1vbmxpbmUudGVzdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBAIC0yNTAsMjIgKzI1MCw0MSBA QCBDSEVDSyBUQUJMRSB0MTsKIEFMVEVSIFRBQkxFIHQxIERST1AgUFJJTUFSWSBLRVksIEFERCBQ UklNQVJZIEtFWSBjM3A1KGMzKDUpKTsKIFVQREFURSB0MSBTRVQgYzMgPSBOVUxMIFdIRVJFIGMz ID0gJyc7CiBTRVQgbG9ja193YWl0X3RpbWVvdXQgPSAxOwotU0VUIERFQlVHX1NZTkMgPSAncm93 X2xvZ190YWJsZV9hcHBseTFfYmVmb3JlIFNJR05BTCBjM3A1X2NyZWF0ZWQgV0FJVF9GT1IgaW5z X2RvbmUnOwogLS1lcnJvciBFUl9NVUxUSVBMRV9QUklfS0VZCiBBTFRFUiBUQUJMRSB0MSBBREQg UFJJTUFSWSBLRVkgYzNwNShjMyg1KSk7Ci0jIFdlIGRvIG5vdCBzdXBwb3J0IGNoYW5naW5nIGEg Y29sdW1uIHRvIE5PVCBOVUxMIHlldC4KLS0tZXJyb3IgRVJfTk9UX1NVUFBPUlRFRF9ZRVQKKy0t ZXJyb3IgRVJfSU5WQUxJRF9VU0VfT0ZfTlVMTAogQUxURVIgVEFCTEUgdDEgRFJPUCBQUklNQVJZ IEtFWSwgQUREIFBSSU1BUlkgS0VZIGMzcDUoYzMoNSkpLAogQUxHT1JJVEhNID0gSU5QTEFDRTsK IAorLS1lcnJvciBFUl9JTlZBTElEX1VTRV9PRl9OVUxMCitBTFRFUiBUQUJMRSB0MSBNT0RJRlkg YzMgVEVYVCBOT1QgTlVMTDsKIFVQREFURSB0MSBTRVQgYzM9Q09OQ0FUKGMxLFJFUEVBVCgnZm9v JyxjMSkpIFdIRVJFIGMzIElTIE5VTEw7Ci0tLWVycm9yIEVSX05PVF9TVVBQT1JURURfWUVUCi1B TFRFUiBUQUJMRSB0MSBNT0RJRlkgYzMgVEVYVCBOT1QgTlVMTCwgQUxHT1JJVEhNID0gSU5QTEFD RTsKKworU0VUIERFQlVHX1NZTkMgPSAncm93X2xvZ190YWJsZV9hcHBseTFfYmVmb3JlIFNJR05B TCBjM3A1X2NyZWF0ZWQwIFdBSVRfRk9SIGluc19kb25lMCc7CistLXNlbmQKK0FMVEVSIFRBQkxF IHQxIE1PRElGWSBjMyBURVhUIE5PVCBOVUxMOworCitjb25uZWN0aW9uIGRlZmF1bHQ7CisKK1NF VCBERUJVR19TWU5DID0gJ25vdyBXQUlUX0ZPUiBjM3A1X2NyZWF0ZWQwJzsKK0JFR0lOOworSU5T RVJUIElOVE8gdDEgVkFMVUVTKDM0NywzMzEwMSwnUGlra3Uga2Fra29zZW4gcG9zdGknKTsKK0lO U0VSVCBJTlRPIHQxIFZBTFVFUygzMzEwMSwzNDcsTlVMTCk7CitTRVQgREVCVUdfU1lOQyA9ICdu b3cgU0lHTkFMIGluc19kb25lMCc7CisKK2Nvbm5lY3Rpb24gY29uMTsKKy0tZXJyb3IgRVJfSU5W QUxJRF9VU0VfT0ZfTlVMTAorcmVhcDsKKworY29ubmVjdGlvbiBkZWZhdWx0OworUk9MTEJBQ0s7 Citjb25uZWN0aW9uIGNvbjE7CisKIEFMVEVSIFRBQkxFIHQxIE1PRElGWSBjMyBURVhUIE5PVCBO VUxMOwogCitTRVQgREVCVUdfU1lOQyA9ICdyb3dfbG9nX3RhYmxlX2FwcGx5MV9iZWZvcmUgU0lH TkFMIGMzcDVfY3JlYXRlZCBXQUlUX0ZPUiBpbnNfZG9uZSc7CiAtLXNlbmQKLUFMVEVSIFRBQkxF IHQxIERST1AgUFJJTUFSWSBLRVksIEFERCBQUklNQVJZIEtFWSBjM3A1KGMzKDUpKSwKLUFMR09S SVRITSA9IElOUExBQ0U7CitBTFRFUiBUQUJMRSB0MSBEUk9QIFBSSU1BUlkgS0VZLCBBREQgUFJJ TUFSWSBLRVkgYzNwNShjMyg1KSk7CiAKIGNvbm5lY3Rpb24gZGVmYXVsdDsKIFNFVCBERUJVR19T WU5DID0gJ25vdyBXQUlUX0ZPUiBjM3A1X2NyZWF0ZWQnOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3QvaW5ub2RiLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9k Yi90L2lubm9kYi50ZXN0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMTEz NDIwLW1leG81YmxjZHk4dm56OGcKQEAgLTIzMzcsMTEgKzIzMzcsNyBAQCBDUkVBVEUgVEFCTEUg dDIgKGEgSU5ULCBJTkRFWChhKSkgRU5HSU5FCiBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpOwog SU5TRVJUIElOVE8gdDIgVkFMVUVTICgxKTsKIEFMVEVSIFRBQkxFIHQyIEFERCBGT1JFSUdOIEtF WSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgT04gREVMRVRFIFNFVCBOVUxMOwotIyBteXNxbHRlc3Qg Zmlyc3QgZG9lcyByZXBsYWNlX3JlZ2V4LCB0aGVuIHJlcGxhY2VfcmVzdWx0Ci0tLXJlcGxhY2Vf cmVnZXggLydbXiddKnRlc3RcLyNzcWwtWzAtOWEtZl9dKicvJyNzcWwtdGVtcG9yYXJ5Jy8KLSMg RW1iZWRkZWQgc2VydmVyIGRvZXNuJ3QgY2hkaXIgdG8gZGF0YSBkaXJlY3RvcnkKLS0tcmVwbGFj ZV9yZXN1bHQgJE1ZU1FMRF9EQVRBRElSIC4vIG1hc3Rlci1kYXRhLyAnJwotLS1lcnJvciAxMDI1 CistLWVycm9yIEVSX0ZLX0NPTFVNTl9OT1RfTlVMTAogQUxURVIgVEFCTEUgdDIgTU9ESUZZIGEg SU5UIE5PVCBOVUxMOwogREVMRVRFIEZST00gdDE7CiBEUk9QIFRBQkxFIHQyLHQxOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX21pc2MxLnRlc3Qn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX21pc2MxLnRlc3QJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQor KysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9taXNjMS50ZXN0CXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4dm56OGcKQEAg LTk1NSwxMSArOTU1LDcgQEAgQ1JFQVRFIFRBQkxFIHQyIChhIElOVCwgSU5ERVgoYSkpIEVOR0lO RQogSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSk7 CiBBTFRFUiBUQUJMRSB0MiBBREQgRk9SRUlHTiBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIE9O IERFTEVURSBTRVQgTlVMTDsKLSMgbXlzcWx0ZXN0IGZpcnN0IGRvZXMgcmVwbGFjZV9yZWdleCwg dGhlbiByZXBsYWNlX3Jlc3VsdAotLS1yZXBsYWNlX3JlZ2V4IC8nW14nXSp0ZXN0XC8jc3FsLVsw LTlhLWZfXSonLycjc3FsLXRlbXBvcmFyeScvCi0jIEVtYmVkZGVkIHNlcnZlciBkb2Vzbid0IGNo ZGlyIHRvIGRhdGEgZGlyZWN0b3J5Ci0tLXJlcGxhY2VfcmVzdWx0ICRNWVNRTERfREFUQURJUiAu LyBtYXN0ZXItZGF0YS8gJycKLS0tZXJyb3IgMTAyNQorLS1lcnJvciBFUl9GS19DT0xVTU5fTk9U X05VTEwKIEFMVEVSIFRBQkxFIHQyIE1PRElGWSBhIElOVCBOT1QgTlVMTDsKIERFTEVURSBGUk9N IHQxOwogRFJPUCBUQUJMRSB0Mix0MTsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hhcmUvZXJy bXNnLXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMDkxNTI2LXhidG1qbmF3MjBleGVienEKKysrIGIv c3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBAIC02ODI3LDYgKzY4MjcsMTggQEAgRVJf RktfSU5DT1JSRUNUX09QVElPTgogRVJfRktfRFVQX05BTUUKIAllbmcgIkR1cGxpY2F0ZSBmb3Jl aWduIGtleSBjb25zdHJhaW50IG5hbWUgJyVzJyIKIAorRVJfRktfQ09MVU1OX0NBTk5PVF9EUk9Q CisgICAgICAgIGVuZyAiQ2Fubm90IGRyb3AgY29sdW1uICclLS4xOTJzJzogbmVlZGVkIGluIGEg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAnJS0uMTkycyciCisgICAgICAgIGdlciAiS2FubiBTcGFs dGUgJyUtLjE5MnMnIG5pY2h0IGzDtnNjaGVuOiB3aXJkIGbDvHIgZWluZSBGcmVtZHNjaGzDvHNz ZWxiZXNjaHLDpG5rdW5nICclLS4xOTJzJyBiZW7DtnRpZ3QiCisKK0VSX0ZLX0NPTFVNTl9DQU5O T1RfRFJPUF9DSElMRAorICAgICAgICBlbmcgIkNhbm5vdCBkcm9wIGNvbHVtbiAnJS0uMTkycyc6 IG5lZWRlZCBpbiBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgJyUtLjE5MnMnIG9mIHRhYmxlICcl LS4xOTJzJyIKKyAgICAgICAgZ2VyICJLYW5uIFNwYWx0ZSAnJS0uMTkycycgbmljaHQgbMO2c2No ZW46IHdpcmQgZsO8ciBlaW5lIEZyZW1kc2NobMO8c3NlbGJlc2NocsOkbmt1bmcgJyUtLjE5MnMn IGRlciBUYWJlbGxlICclLS4xOTJzJyBiZW7DtnRpZ3QiCisKK0VSX0ZLX0NPTFVNTl9OT1RfTlVM TAorICAgICAgICBlbmcgIkNvbHVtbiAnJS0uMTkycycgY2Fubm90IGJlIE5PVCBOVUxMOiBuZWVk ZWQgaW4gYSBmb3JlaWduIGtleSBjb25zdHJhaW50ICclLS4xOTJzJyBTRVQgTlVMTCIKKyAgICAg ICAgZ2VyICJTcGFsdGUgJyUtLjE5MnMnIGthbm4gbmljaHQgTk9UIE5VTEwgc2Vpbjogd2lyZCBm w7xyIGVpbmUgRnJlbWRzY2hsw7xzc2VsYmVzY2hyw6Rua3VuZyAnJS0uMTkycycgU0VUIE5VTEwg YmVuw7Z0aWd0IgorCiAjCiAjICBFbmQgb2YgNS42IGVycm9yIG1lc3NhZ2VzLgogIwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYteGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9zdG9yYWdl L2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4dm56OGcKQEAgLTE0MzYsMjEgKzE0MzYsMTEg QEAgY29udmVydF9lcnJvcl9jb2RlX3RvX215c3FsKAogCiAJCXJldHVybihIQV9FUlJfTE9DS19U QUJMRV9GVUxMKTsKIAotCWNhc2UgREJfUFJJTUFSWV9LRVlfSVNfTlVMTDoKLQkJcmV0dXJuKEVS X1BSSU1BUllfQ0FOVF9IQVZFX05VTEwpOwotCiAJY2FzZSBEQl9GVFNfSU5WQUxJRF9ET0NJRDoK IAkJcmV0dXJuKEhBX0ZUU19JTlZBTElEX0RPQ0lEKTsKIAogCWNhc2UgREJfVE9PX01BTllfQ09O Q1VSUkVOVF9UUlhTOgotCQkvKiBOZXcgZXJyb3IgY29kZSBIQV9FUlJfVE9PX01BTllfQ09OQ1VS UkVOVF9UUlhTIGlzIG9ubHkKLQkJYXZhaWxhYmxlIGluIDUuMS4zOCBhbmQgbGF0ZXIsIGJ1dCB0 aGUgcGx1Z2luIHNob3VsZCBzdGlsbAotCQl3b3JrIHdpdGggcHJldmlvdXMgdmVyc2lvbnMgb2Yg TXlTUUwuICovCi0jaWZkZWYgSEFfRVJSX1RPT19NQU5ZX0NPTkNVUlJFTlRfVFJYUwogCQlyZXR1 cm4oSEFfRVJSX1RPT19NQU5ZX0NPTkNVUlJFTlRfVFJYUyk7Ci0jZWxzZSAvKiBIQV9FUlJfVE9P X01BTllfQ09OQ1VSUkVOVF9UUlhTICovCi0JCXJldHVybihIQV9FUlJfUkVDT1JEX0ZJTEVfRlVM TCk7Ci0jZW5kaWYgLyogSEFfRVJSX1RPT19NQU5ZX0NPTkNVUlJFTlRfVFJYUyAqLwogCWNhc2Ug REJfVU5TVVBQT1JURUQ6CiAJCXJldHVybihIQV9FUlJfVU5TVVBQT1JURUQpOwogCWNhc2UgREJf SU5ERVhfQ09SUlVQVDoKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRs ZXIvaGFuZGxlcjBhbHRlci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRs ZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDEwOTE1MjYt eGJ0bWpuYXcyMGV4ZWJ6cQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBh bHRlci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwMTExMzQyMC1tZXhv NWJsY2R5OHZuejhnCkBAIC01Nyw4ICs1Nyw4IEBAIHN0YXRpYyBjb25zdCBBbHRlcl9pbnBsYWNl X2luZm86OkhBX0FMVEUKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6RFJPUF9QS19JTkRFWAogCXwg QWx0ZXJfaW5wbGFjZV9pbmZvOjpDSEFOR0VfQ1JFQVRFX09QVElPTgogCXwgQWx0ZXJfaW5wbGFj ZV9pbmZvOjpBTFRFUl9DT0xVTU5fTlVMTEFCTEUKLQkvKgogCXwgQWx0ZXJfaW5wbGFjZV9pbmZv OjpBTFRFUl9DT0xVTU5fTk9UX05VTExBQkxFCisJLyoKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6 QUxURVJfQ09MVU1OX1RZUEUKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6QUxURVJfQ09MVU1OX0VR VUFMX1BBQ0tfTEVOR1RILAogCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpBTFRFUl9DT0xVTU5fT1JE RVIKQEAgLTEyNCw5ICsxMjQsNiBAQCBteV9lcnJvcl9pbm5vZGIoCiAJCW15X2Vycm9yKEVSX0lO REVYX0NPTFVNTl9UT09fTE9ORywgTVlGKDApLAogCQkJIERJQ1RfTUFYX0ZJRUxEX0xFTl9CWV9G T1JNQVRfRkxBRyhmbGFncykpOwogCQlicmVhazsKLQljYXNlIERCX1BSSU1BUllfS0VZX0lTX05V TEw6Ci0JCW15X2Vycm9yKEVSX1BSSU1BUllfQ0FOVF9IQVZFX05VTEwsIE1ZRigwKSk7Ci0JCWJy ZWFrOwogCWNhc2UgREJfVE9PX01BTllfQ09OQ1VSUkVOVF9UUlhTOgogCQlteV9lcnJvcihFUl9U T09fTUFOWV9DT05DVVJSRU5UX1RSWFMsIE1ZRigwKSk7CiAJCWJyZWFrOwpAQCAtMTQ0LDYgKzE0 MSwxMCBAQCBteV9lcnJvcl9pbm5vZGIoCiAJCQkgcGFnZV9nZXRfZnJlZV9zcGFjZV9vZl9lbXB0 eSgKIAkJCQkgZmxhZ3MgJiBESUNUX1RGX0NPTVBBQ1QpIC8gMik7CiAJCWJyZWFrOworCWNhc2Ug REJfSU5WQUxJRF9OVUxMOgorCQkvKiBUT0RPOiByZXBvcnQgdGhlIHJvdywgYXMgd2UgZG8gZm9y IERCX0RVUExJQ0FURV9LRVkgKi8KKwkJbXlfZXJyb3IoRVJfSU5WQUxJRF9VU0VfT0ZfTlVMTCwg TVlGKDApKTsKKwkJYnJlYWs7CiAjaWZkZWYgVU5JVl9ERUJVRwogCWNhc2UgREJfU1VDQ0VTUzoK IAljYXNlIERCX0RVUExJQ0FURV9LRVk6CkBAIC0xODY1LDExICsxODY2LDE4NCBAQCBvbmxpbmVf cmV0cnlfZHJvcF9pbmRleGVzX3dpdGhfdHJ4KAogCX0KIH0KIAorLyoqIERldGVybWluZXMgaWYg SW5ub0RCIGlzIGRyb3BwaW5nIGEgZm9yZWlnbiBrZXkgY29uc3RyYWludC4KK0BwYXJhbSBmb3Jl aWduCQl0aGUgY29uc3RyYWludAorQHBhcmFtIGRyb3BfZmsJCWNvbnN0cmFpbnRzIGJlaW5nIGRy b3BwZWQKK0BwYXJhbSBuX2Ryb3BfZmsJbnVtYmVyIG9mIGNvbnN0cmFpbnRzIHRoYXQgYXJlIGJl aW5nIGRyb3BwZWQKK0ByZXR1cm4gd2hldGhlciB0aGUgY29uc3RyYWludCBpcyBiZWluZyBkcm9w cGVkICovCitpbmxpbmUgX19hdHRyaWJ1dGVfXygocHVyZSwgbm9ubnVsbCwgd2Fybl91bnVzZWRf cmVzdWx0KSkKK2Jvb2wKK2lubm9iYXNlX2Ryb3BwaW5nX2ZvcmVpZ24oCisvKj09PT09PT09PT09 PT09PT09PT09PT0qLworCWNvbnN0IGRpY3RfZm9yZWlnbl90Kglmb3JlaWduLAorCWRpY3RfZm9y ZWlnbl90KioJZHJvcF9maywKKwl1bGludAkJCW5fZHJvcF9maykKK3sKKwl3aGlsZSAobl9kcm9w X2ZrLS0pIHsKKwkJaWYgKCpkcm9wX2ZrKysgPT0gZm9yZWlnbikgeworCQkJcmV0dXJuKHRydWUp OworCQl9CisJfQorCisJcmV0dXJuKGZhbHNlKTsKK30KKworLyoqIERldGVybWluZXMgaWYgYW4g SW5ub0RCIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQgZGVwZW5kcyBvbiBhCitjb2x1bW4gdGhhdCBp cyBiZWluZyBkcm9wcGVkIG9yIG1vZGlmaWVkIHRvIE5PVCBOVUxMLgorQHBhcmFtIHVzZXJfdGFi bGUJSW5ub0RCIHRhYmxlIGFzIGl0IGlzIGJlZm9yZSB0aGUgQUxURVIgb3BlcmF0aW9uCitAcGFy YW0gY29sX25hbWUJCU5hbWUgb2YgdGhlIGNvbHVtbiBiZWluZyBhbHRlcmVkCitAcGFyYW0gZHJv cF9mawkJY29uc3RyYWludHMgYmVpbmcgZHJvcHBlZAorQHBhcmFtIG5fZHJvcF9mawludW1iZXIg b2YgY29uc3RyYWludHMgdGhhdCBhcmUgYmVpbmcgZHJvcHBlZAorQHBhcmFtIGRyb3AJCXRydWU9 ZHJvcCBjb2x1bW4sIGZhbHNlPXNldCBOT1QgTlVMTAorQHJldHZhbCB0cnVlCQlGYWlsdXJlICh3 aWxsIGNhbGwgbXlfZXJyb3IoKSkKK0ByZXR2YWwgZmFsc2UJCVN1Y2Nlc3MKKyovCitzdGF0aWMg X19hdHRyaWJ1dGVfXygocHVyZSwgbm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSkKK2Jvb2wK K2lubm9iYXNlX2NoZWNrX2ZvcmVpZ25zX2xvdygKKy8qPT09PT09PT09PT09PT09PT09PT09PT09 Ki8KKwljb25zdCBkaWN0X3RhYmxlX3QqCXVzZXJfdGFibGUsCisJZGljdF9mb3JlaWduX3QqKglk cm9wX2ZrLAorCXVsaW50CQkJbl9kcm9wX2ZrLAorCWNvbnN0IGNoYXIqCQljb2xfbmFtZSwKKwli b29sCQkJZHJvcCkKK3sKKwl1dF9hZChtdXRleF9vd24oJmRpY3Rfc3lzLT5tdXRleCkpOworCisJ LyogQ2hlY2sgaWYgYW55IEZPUkVJR04gS0VZIGNvbnN0cmFpbnRzIGFyZSBkZWZpbmVkIG9uIHRo aXMKKwljb2x1bW4uICovCisJZm9yIChjb25zdCBkaWN0X2ZvcmVpZ25fdCogZm9yZWlnbiA9IFVU X0xJU1RfR0VUX0ZJUlNUKAorCQkgICAgIHVzZXJfdGFibGUtPmZvcmVpZ25fbGlzdCk7CisJICAg ICBmb3JlaWduOworCSAgICAgZm9yZWlnbiA9IFVUX0xJU1RfR0VUX05FWFQoZm9yZWlnbl9saXN0 LCBmb3JlaWduKSkgeworCQlpZiAoIWRyb3AgJiYgIShmb3JlaWduLT50eXBlCisJCQkgICAgICAg JiAoRElDVF9GT1JFSUdOX09OX0RFTEVURV9TRVRfTlVMTAorCQkJCSAgfCBESUNUX0ZPUkVJR05f T05fVVBEQVRFX1NFVF9OVUxMKSkpIHsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKGlubm9i YXNlX2Ryb3BwaW5nX2ZvcmVpZ24oZm9yZWlnbiwgZHJvcF9maywgbl9kcm9wX2ZrKSkgeworCQkJ Y29udGludWU7CisJCX0KKworCQlmb3IgKHVuc2lnbmVkIGYgPSAwOyBmIDwgZm9yZWlnbi0+bl9m aWVsZHM7IGYrKykgeworCQkJaWYgKCFzdHJjbXAoZm9yZWlnbi0+Zm9yZWlnbl9jb2xfbmFtZXNb Zl0sCisJCQkJICAgY29sX25hbWUpKSB7CisJCQkJbXlfZXJyb3IoZHJvcAorCQkJCQkgPyBFUl9G S19DT0xVTU5fQ0FOTk9UX0RST1AKKwkJCQkJIDogRVJfRktfQ09MVU1OX05PVF9OVUxMLCBNWUYo MCksCisJCQkJCSBjb2xfbmFtZSwgZm9yZWlnbi0+aWQpOworCQkJCXJldHVybih0cnVlKTsKKwkJ CX0KKwkJfQorCX0KKworCWlmICghZHJvcCkgeworCQkvKiBTRVQgTlVMTCBjbGF1c2VzIG9uIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9mCisJCWNoaWxkIHRhYmxlcyBhZmZlY3QgdGhlIGNoaWxk IHRhYmxlcywgbm90IHRoZSBwYXJlbnQgdGFibGUuCisJCVRoZSBjb2x1bW4gY2FuIGJlIE5PVCBO VUxMIGluIHRoZSBwYXJlbnQgdGFibGUuICovCisJCXJldHVybihmYWxzZSk7CisJfQorCisJLyog Q2hlY2sgaWYgYW55IEZPUkVJR04gS0VZIGNvbnN0cmFpbnRzIGluIG90aGVyIHRhYmxlcyBhcmUK KwlyZWZlcnJpbmcgdG8gdGhlIGNvbHVtbiB0aGF0IGlzIGJlaW5nIGRyb3BwZWQuICovCisJZm9y IChjb25zdCBkaWN0X2ZvcmVpZ25fdCogZm9yZWlnbiA9IFVUX0xJU1RfR0VUX0ZJUlNUKAorCQkg ICAgIHVzZXJfdGFibGUtPnJlZmVyZW5jZWRfbGlzdCk7CisJICAgICBmb3JlaWduOworCSAgICAg Zm9yZWlnbiA9IFVUX0xJU1RfR0VUX05FWFQocmVmZXJlbmNlZF9saXN0LCBmb3JlaWduKSkgewor CQlpZiAoaW5ub2Jhc2VfZHJvcHBpbmdfZm9yZWlnbihmb3JlaWduLCBkcm9wX2ZrLCBuX2Ryb3Bf ZmspKSB7CisJCQljb250aW51ZTsKKwkJfQorCisJCWZvciAodW5zaWduZWQgZiA9IDA7IGYgPCBm b3JlaWduLT5uX2ZpZWxkczsgZisrKSB7CisJCQlpZiAoc3RyY21wKGZvcmVpZ24tPnJlZmVyZW5j ZWRfY29sX25hbWVzW2ZdLAorCQkJCSAgIGNvbF9uYW1lKSkgeworCQkJCWNvbnRpbnVlOworCQkJ fQorCisJCQl1bGludAluYW1lbGVuCisJCQkJPSBzdHJsZW4oZm9yZWlnbi0+Zm9yZWlnbl90YWJs ZV9uYW1lKQorCQkJCSsgc2l6ZW9mIHNydl9teXNxbDUwX3RhYmxlX25hbWVfcHJlZml4OworCQkJ Y2hhcioJbmFtZSA9IHN0YXRpY19jYXN0PGNoYXIqPigKKwkJCQl1dF9tYWxsb2MobmFtZWxlbikp OworCQkJaWYgKG5hbWUpIHsKKwkJCQlzdHJjcHkobmFtZSwgZm9yZWlnbi0+Zm9yZWlnbl90YWJs ZV9uYW1lKTsKKwkJCQlpbm5vYmFzZV9jb252ZXJ0X3RhYmxlbmFtZShuYW1lKTsKKwkJCQl1dF9h ZChzdHJsZW4obmFtZSkgPCBuYW1lbGVuKTsKKworCQkJCW15X2Vycm9yKEVSX0ZLX0NPTFVNTl9D QU5OT1RfRFJPUF9DSElMRCwKKwkJCQkJIE1ZRigwKSwgY29sX25hbWUsIGZvcmVpZ24tPmlkLAor CQkJCQkgbmFtZSk7CisJCQkJdXRfZnJlZShuYW1lKTsKKwkJCX0gZWxzZSB7CisJCQkJLyogVG9s ZXJhdGUgbWFsbG9jKCkgZmFpbHVyZSBhbmQgZGlzcGxheQorCQkJCXRoZSByYXcgdGFibGUgbmFt ZSBpbiB0aGUgZXJyb3IgbWVzc2FnZS4gKi8KKwkJCQlteV9lcnJvcihFUl9GS19DT0xVTU5fQ0FO Tk9UX0RST1BfQ0hJTEQsCisJCQkJCSBNWUYoMCksIGNvbF9uYW1lLCBmb3JlaWduLT5pZCwKKwkJ CQkJIGZvcmVpZ24tPmZvcmVpZ25fdGFibGVfbmFtZSk7CisJCQl9CisKKwkJCXJldHVybih0cnVl KTsKKwkJfQorCX0KKworCXJldHVybihmYWxzZSk7Cit9CisKKy8qKiBEZXRlcm1pbmVzIGlmIGFu IElubm9EQiBGT1JFSUdOIEtFWSBjb25zdHJhaW50IGRlcGVuZHMgb24gYQorY29sdW1uIHRoYXQg aXMgYmVpbmcgZHJvcHBlZCBvciBtb2RpZmllZCB0byBOT1QgTlVMTC4KK0BwYXJhbSBoYV9hbHRl cl9pbmZvCURhdGEgdXNlZCBkdXJpbmcgaW4tcGxhY2UgYWx0ZXIKK0BwYXJhbSBhbHRlcmVkX3Rh YmxlCU15U1FMIHRhYmxlIHRoYXQgaXMgYmVpbmcgYWx0ZXJlZAorQHBhcmFtIG9sZF90YWJsZQlN eVNRTCB0YWJsZSBhcyBpdCBpcyBiZWZvcmUgdGhlIEFMVEVSIG9wZXJhdGlvbgorQHBhcmFtIHVz ZXJfdGFibGUJSW5ub0RCIHRhYmxlIGFzIGl0IGlzIGJlZm9yZSB0aGUgQUxURVIgb3BlcmF0aW9u CitAcGFyYW0gZHJvcF9mawkJY29uc3RyYWludHMgYmVpbmcgZHJvcHBlZAorQHBhcmFtIG5fZHJv cF9mawludW1iZXIgb2YgY29uc3RyYWludHMgdGhhdCBhcmUgYmVpbmcgZHJvcHBlZAorQHJldHZh bCB0cnVlCQlGYWlsdXJlICh3aWxsIGNhbGwgbXlfZXJyb3IoKSkKK0ByZXR2YWwgZmFsc2UJCVN1 Y2Nlc3MKKyovCitzdGF0aWMgX19hdHRyaWJ1dGVfXygocHVyZSwgbm9ubnVsbCwgd2Fybl91bnVz ZWRfcmVzdWx0KSkKK2Jvb2wKK2lubm9iYXNlX2NoZWNrX2ZvcmVpZ25zKAorLyo9PT09PT09PT09 PT09PT09PT09PSovCisJQWx0ZXJfaW5wbGFjZV9pbmZvKgloYV9hbHRlcl9pbmZvLAorCWNvbnN0 IFRBQkxFKgkJYWx0ZXJlZF90YWJsZSwKKwljb25zdCBUQUJMRSoJCW9sZF90YWJsZSwKKwljb25z dCBkaWN0X3RhYmxlX3QqCXVzZXJfdGFibGUsCisJZGljdF9mb3JlaWduX3QqKglkcm9wX2ZrLAor CXVsaW50CQkJbl9kcm9wX2ZrKQoreworCUxpc3RfaXRlcmF0b3JfZmFzdDxDcmVhdGVfZmllbGQ+ IGNmX2l0OworCisJZm9yIChGaWVsZCoqIGZwID0gb2xkX3RhYmxlLT5maWVsZDsgKmZwOyBmcCsr KSB7CisJCWNmX2l0LmluaXQoaGFfYWx0ZXJfaW5mby0+YWx0ZXJfaW5mby0+Y3JlYXRlX2xpc3Qp OworCQljb25zdCBDcmVhdGVfZmllbGQqIG5ld19maWVsZDsKKworCQl1dF9hZCghKCpmcCktPm51 bGxfcHRyID09ICEhKCgqZnApLT5mbGFncyAmIE5PVF9OVUxMX0ZMQUcpKTsKKworCQl3aGlsZSAo KG5ld19maWVsZCA9IGNmX2l0KyspKSB7CisJCQlpZiAobmV3X2ZpZWxkLT5maWVsZCA9PSAqZnAp IHsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmICghbmV3X2ZpZWxkIHx8IChuZXdfZmll bGQtPmZsYWdzICYgTk9UX05VTExfRkxBRykpIHsKKwkJCWlmIChpbm5vYmFzZV9jaGVja19mb3Jl aWduc19sb3coCisJCQkJICAgIHVzZXJfdGFibGUsIGRyb3BfZmssIG5fZHJvcF9maywKKwkJCQkg ICAgKCpmcCktPmZpZWxkX25hbWUsICFuZXdfZmllbGQpKSB7CisJCQkJcmV0dXJuKHRydWUpOwor CQkJfQorCQl9CisJfQorCisJcmV0dXJuKGZhbHNlKTsKK30KKwogLyoqIFVwZGF0ZSBpbnRlcm5h bCBzdHJ1Y3R1cmVzIHdpdGggY29uY3VycmVudCB3cml0ZXMgYmxvY2tlZCwKIHdoaWxlIHByZXBh cmluZyBBTFRFUiBUQUJMRS4KIAogQHBhcmFtIGhhX2FsdGVyX2luZm8JRGF0YSB1c2VkIGR1cmlu ZyBpbi1wbGFjZSBhbHRlcgogQHBhcmFtIGFsdGVyZWRfdGFibGUJTXlTUUwgdGFibGUgdGhhdCBp cyBiZWluZyBhbHRlcmVkCitAcGFyYW0gb2xkX3RhYmxlCU15U1FMIHRhYmxlIGFzIGl0IGlzIGJl Zm9yZSB0aGUgQUxURVIgb3BlcmF0aW9uCiBAcGFyYW0gdXNlcl90YWJsZQlJbm5vREIgdGFibGUg dGhhdCBpcyBiZWluZyBhbHRlcmVkCiBAcGFyYW0gdXNlcl90cngJCVVzZXIgdHJhbnNhY3Rpb24s IGZvciBsb2NraW5nIHRoZSB0YWJsZQogQHBhcmFtIHRhYmxlX25hbWUJVGFibGUgbmFtZSBpbiBN eVNRTApAQCAtMTg5Miw2ICsyMDY2LDcgQEAgcHJlcGFyZV9pbnBsYWNlX2FsdGVyX3RhYmxlX2Rp Y3QoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAlBbHRlcl9pbnBsYWNlX2lu Zm8qCWhhX2FsdGVyX2luZm8sCiAJY29uc3QgVEFCTEUqCQlhbHRlcmVkX3RhYmxlLAorCWNvbnN0 IFRBQkxFKgkJb2xkX3RhYmxlLAogCWRpY3RfdGFibGVfdCoJCXVzZXJfdGFibGUsCiAJdHJ4X3Qq CQkJdXNlcl90cngsCiAJY29uc3QgY2hhcioJCXRhYmxlX25hbWUsCkBAIC0yMDI1LDYgKzIyMDAs MTIgQEAgcHJlcGFyZV9pbnBsYWNlX2FsdGVyX3RhYmxlX2RpY3QoCiAJCQlnb3RvIG5ld19jbHVz dGVyZWRfZmFpbGVkOwogCQl9CiAKKwkJaWYgKGlubm9iYXNlX2NoZWNrX2ZvcmVpZ25zKAorCQkJ ICAgIGhhX2FsdGVyX2luZm8sIGFsdGVyZWRfdGFibGUsIG9sZF90YWJsZSwKKwkJCSAgICB1c2Vy X3RhYmxlLCBkcm9wX2ZvcmVpZ24sIG5fZHJvcF9mb3JlaWduKSkgeworCQkJZ290byBuZXdfY2x1 c3RlcmVkX2ZhaWxlZDsKKwkJfQorCiAJCW5fY29scyA9IGFsdGVyZWRfdGFibGUtPnMtPmZpZWxk czsKIAogCQlpZiAoYWRkX2Z0c19kb2NfaWQpIHsKQEAgLTI0MjAsMjggKzI2MDEsNiBAQCBlcnJv cl9oYW5kbGVkOgogCURCVUdfUkVUVVJOKHRydWUpOwogfQogCi0vKiogRGV0ZXJtaW5lcyBpZiBJ bm5vREIgaXMgZHJvcHBpbmcgYSBmb3JlaWduIGtleSBjb25zdHJhaW50LgotQHBhcmFtIGZvcmVp Z24JCXRoZSBjb25zdHJhaW50Ci1AcGFyYW0gZHJvcF9mawkJY29uc3RyYWludHMgYmVpbmcgZHJv cHBlZAotQHBhcmFtIG5fZHJvcF9mawludW1iZXIgb2YgY29uc3RyYWludHMgdGhhdCBhcmUgYmVp bmcgZHJvcHBlZAotQHJldHVybiB3aGV0aGVyIHRoZSBjb25zdHJhaW50IGlzIGJlaW5nIGRyb3Bw ZWQgKi8KLWlubGluZSBfX2F0dHJpYnV0ZV9fKChwdXJlLCBub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKQotYm9vbAotaW5ub2Jhc2VfZHJvcHBpbmdfZm9yZWlnbigKLS8qPT09PT09PT09PT09 PT09PT09PT09PSovCi0JY29uc3QgZGljdF9mb3JlaWduX3QqCWZvcmVpZ24sCi0JZGljdF9mb3Jl aWduX3QqKglkcm9wX2ZrLAotCXVsaW50CQkJbl9kcm9wX2ZrKQotewotCXdoaWxlIChuX2Ryb3Bf ZmstLSkgewotCQlpZiAoKmRyb3BfZmsrKyA9PSBmb3JlaWduKSB7Ci0JCQlyZXR1cm4odHJ1ZSk7 Ci0JCX0KLQl9Ci0KLQlyZXR1cm4oZmFsc2UpOwotfQotCiAvKiogRGV0ZXJtaW5lIGlmIGZ1bGx0 ZXh0IGluZGV4ZXMgZXhpc3QgaW4gYSBnaXZlbiB0YWJsZS4KIEBwYXJhbSB0YWJsZV9zaGFyZQlN eVNRTCB0YWJsZQogQHJldHVybgkJCXdoZXRoZXIgZnVsbHRleHQgaW5kZXhlcyBleGlzdCBvbiB0 aGUgdGFibGUgKi8KQEAgLTI5NzAsOCArMzEyOSw5IEBAIGVycl9leGl0OgogCiAJREJVR19BU1NF UlQodXNlcl90aGQgPT0gcHJlYnVpbHQtPnRyeC0+bXlzcWxfdGhkKTsKIAlEQlVHX1JFVFVSTihw cmVwYXJlX2lucGxhY2VfYWx0ZXJfdGFibGVfZGljdCgKLQkJCSAgICBoYV9hbHRlcl9pbmZvLCBh bHRlcmVkX3RhYmxlLCBwcmVidWlsdC0+dGFibGUsCi0JCQkgICAgcHJlYnVpbHQtPnRyeCwgdGFi bGVfc2hhcmUtPnRhYmxlX25hbWUuc3RyLAorCQkJICAgIGhhX2FsdGVyX2luZm8sIGFsdGVyZWRf dGFibGUsIHRhYmxlLAorCQkJICAgIHByZWJ1aWx0LT50YWJsZSwgcHJlYnVpbHQtPnRyeCwKKwkJ CSAgICB0YWJsZV9zaGFyZS0+dGFibGVfbmFtZS5zdHIsCiAJCQkgICAgaGVhcCwgZHJvcF9pbmRl eCwgbl9kcm9wX2luZGV4LAogCQkJICAgIGRyb3BfZmssIG5fZHJvcF9maywgYWRkX2ZrLCBuX2Fk ZF9maywKIAkJCSAgICBudW1fZnRzX2luZGV4LAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9kYjBlcnIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2RiMGVyci5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMDkxNTI2LXhi dG1qbmF3MjBleGVienEKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RiMGVyci5oCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjAxMTEzNDIwLW1leG81YmxjZHk4dm56 OGcKQEAgLTkzLDggKzkzLDggQEAgZW51bSBkYmVycl90IHsKIAkJCQkJd29yayB3aXRoIGUuZy4s IEZUIGluZGV4ZXMgY3JlYXRlZCBieQogCQkJCQlhIGxhdGVyIHZlcnNpb24gb2YgdGhlIGVuZ2lu ZS4gKi8KIAotCURCX1BSSU1BUllfS0VZX0lTX05VTEwsCQkvKiE8IGEgY29sdW1uIGluIHRoZSBQ UklNQVJZIEtFWQotCQkJCQl3YXMgZm91bmQgdG8gYmUgTlVMTCAqLworCURCX0lOVkFMSURfTlVM TCwJCS8qITwgYSBOT1QgTlVMTCBjb2x1bW4gd2FzIGZvdW5kIHRvCisJCQkJCWJlIE5VTEwgZHVy aW5nIHRhYmxlIHJlYnVpbGQgKi8KIAogCURCX1NUQVRTX0RPX05PVF9FWElTVCwJCS8qITwgYW4g b3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgdGhlCiAJCQkJCXBlcnNpc3RlbnQgc3RvcmFnZSwgdXNl ZCBmb3IgcmVjb3JkaW5nCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MGxvZy5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwMTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisr KyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMjA2MDExMTM0MjAtbWV4bzVibGNkeTh2bno4ZwpAQCAtODYwLDggKzg2MCw3 IEBAIHJvd19sb2dfdGFibGVfZ2V0X3BrKAogCQkJZmllbGQgPSByZWNfZ2V0X250aF9maWVsZChy ZWMsIG9mZnNldHMsIGksICZsZW4pOwogCiAJCQlpZiAobGVuID09IFVOSVZfU1FMX05VTEwpIHsK LQkJCQluZXdfaW5kZXgtPm9ubGluZV9sb2ctPmVycm9yCi0JCQkJCT0gREJfUFJJTUFSWV9LRVlf SVNfTlVMTDsKKwkJCQluZXdfaW5kZXgtPm9ubGluZV9sb2ctPmVycm9yID0gREJfSU5WQUxJRF9O VUxMOwogCQkJCXR1cGxlID0gTlVMTDsKIAkJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJCX0KQEAgLTEw MDIsMjkgKzEwMDEsMzEgQEAgcm93X2xvZ190YWJsZV9pc19yb2xsYmFjaygKIAogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENvbnZl cnRzIGEgbG9nIHJlY29yZCB0byBhIHRhYmxlIHJvdy4KLUByZXR1cm4gY29udmVydGVkIHJvdyAq LworQHJldHVybiBjb252ZXJ0ZWQgcm93LCBvciBOVUxMIGlmIHRoZSBjb252ZXJzaW9uIGZhaWxz ICovCiBzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSkK IGNvbnN0IGR0dXBsZV90Kgogcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMoCiAvKj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAljb25zdCBtcmVjX3QqCQltcmVjLAkJLyoh PCBpbjogbWVyZ2UgcmVjb3JkICovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJCS8qITwg aW46IGluZGV4IG9mIG1yZWMgKi8KIAljb25zdCB1bGludCoJCW9mZnNldHMsCS8qITwgaW46IG9m ZnNldHMgb2YgbXJlYyAqLwogCW1lbV9oZWFwX3QqCQloZWFwLAkJLyohPCBpbi9vdXQ6IG1lbW9y eSBoZWFwICovCiAJZGljdF90YWJsZV90KgkJbmV3X3RhYmxlLAkvKiE8IGluL291dDogdGFibGUK IAkJCQkJCWJlaW5nIHJlYnVpbHQgKi8KIAljb25zdCBzdHJ1Y3QgVEFCTEUqCWFsdGVyZWRfdGFi bGUsCS8qITwgaW46IG5ldyBNeVNRTAogCQkJCQkJdGFibGUgZGVmaW5pdGlvbiAqLwotCWNvbnN0 IHJvd19tZXJnZV9kdXBfdCoJZHVwKQkJLyohPCBpbjogb2xkIGluZGV4IGFuZCB0YWJsZSAqLwor CWRiZXJyX3QqCQllcnJvcikJCS8qITwgb3V0OiBEQl9TVUNDRVNTIG9yCisJCQkJCQlyZWFzb24g b2YgZmFpbHVyZSAqLwogewogCWR0dXBsZV90Kglyb3c7CiAKIAkvKiBUaGlzIGlzIGJhc2VkIG9u IHJvd19idWlsZCgpLiAqLwotCXJvdyA9IGR0dXBsZV9jcmVhdGUoaGVhcCwgZGljdF90YWJsZV9n ZXRfbl9jb2xzKGR1cC0+aW5kZXgtPnRhYmxlKSk7Ci0JZGljdF90YWJsZV9jb3B5X3R5cGVzKHJv dywgZHVwLT5pbmRleC0+dGFibGUpOworCXJvdyA9IGR0dXBsZV9jcmVhdGUoaGVhcCwgZGljdF90 YWJsZV9nZXRfbl9jb2xzKGluZGV4LT50YWJsZSkpOworCWRpY3RfdGFibGVfY29weV90eXBlcyhy b3csIGluZGV4LT50YWJsZSk7CiAKIAlmb3IgKHVsaW50IGkgPSAwOyBpIDwgcmVjX29mZnNfbl9m aWVsZHMob2Zmc2V0cyk7IGkrKykgewogCQljb25zdCBkaWN0X2ZpZWxkX3QqCWluZF9maWVsZAot CQkJPSBkaWN0X2luZGV4X2dldF9udGhfZmllbGQoZHVwLT5pbmRleCwgaSk7CisJCQk9IGRpY3Rf aW5kZXhfZ2V0X250aF9maWVsZChpbmRleCwgaSk7CiAJCWNvbnN0IGRpY3RfY29sX3QqCWNvbAog CQkJPSBkaWN0X2ZpZWxkX2dldF9jb2woaW5kX2ZpZWxkKTsKIAkJdWxpbnQJCQljb2xfbm8KQEAg LTEwMzcsNyArMTAzOCw3IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfY29udmVydF9tcmVjKAogCQlp ZiAocmVjX29mZnNfbnRoX2V4dGVybihvZmZzZXRzLCBpKSkgewogCQkJZGF0YSA9IGJ0cl9yZWNf Y29weV9leHRlcm5hbGx5X3N0b3JlZF9maWVsZCgKIAkJCQltcmVjLCBvZmZzZXRzLAotCQkJCWRp Y3RfdGFibGVfemlwX3NpemUoZHVwLT5pbmRleC0+dGFibGUpLAorCQkJCWRpY3RfdGFibGVfemlw X3NpemUoaW5kZXgtPnRhYmxlKSwKIAkJCQlpLCAmbGVuLCBoZWFwKTsKIAkJCXV0X2EoZGF0YSk7 CiAJCQlkZmllbGRfc2V0X2RhdGEoZGZpZWxkLCBkYXRhLCBsZW4pOwpAQCAtMTA2OSw4ICsxMDcw LDggQEAgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMoCiAKIAkJaWYgKChuZXdfY29s LT5wcnR5cGUgJiBEQVRBX05PVF9OVUxMKQogCQkgICAgJiYgZGZpZWxkX2lzX251bGwoZGZpZWxk KSkgewotCQkJLyogV2UgZ290IGEgTlVMTCB2YWx1ZSBpbiBhIE5PVCBOVUxMIGZpZWxkLiAqLwot CQkJdXRfYWQoMCk7LyogVE9ETzogQUxURVJfQ09MVU1OX05PVF9OVUxMQUJMRSAqLworCQkJLyog V2UgZ290IGEgTlVMTCB2YWx1ZSBmb3IgYSBOT1QgTlVMTCBjb2x1bW4uICovCisJCQkqZXJyb3Ig PSBEQl9JTlZBTElEX05VTEw7CiAJCQlyZXR1cm4oTlVMTCk7CiAJCX0KIApAQCAtMTA4NCw2ICsx MDg1LDcgQEAgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMoCiAJLyogVE9ETzogY29u dmVydCByb3cgdG8gbmV3X3RhYmxlLT5jb2xzLCBpbiBjYXNlIGNvbHVtbnMgYXJlCiAJYWRkZWQg b3IgZHJvcHBlZCBvciByZW9yZGVyZWQgKi8KIAorCSplcnJvciA9IERCX1NVQ0NFU1M7CiAJcmV0 dXJuKHJvdyk7CiB9CiAKQEAgLTExNzYsMTAgKzExNzgsMTggQEAgcm93X2xvZ190YWJsZV9hcHBs eV9pbnNlcnQoCiAJcm93X21lcmdlX2R1cF90KglkdXApCQkvKiE8IGluL291dDogZm9yIHJlcG9y dGluZwogCQkJCQkJZHVwbGljYXRlIGtleSBlcnJvcnMgKi8KIHsKKwlkYmVycl90CQllcnJvcjsK IAljb25zdCBkdHVwbGVfdCoJcm93CT0gcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21yZWMo Ci0JCW1yZWMsIG9mZnNldHMsIGhlYXAsIG5ld190YWJsZSwgYWx0ZXJlZF90YWJsZSwgZHVwKTsK LQlkYmVycl90CQllcnJvcgk9IHJvd19sb2dfdGFibGVfYXBwbHlfaW5zZXJ0X2xvdygKLQkJdGhy LCByb3csIG9mZnNldHNfaGVhcCwgaGVhcCwgbmV3X3RhYmxlLCBhbHRlcmVkX3RhYmxlLCBkdXAp OworCQltcmVjLCBkdXAtPmluZGV4LCBvZmZzZXRzLCBoZWFwLCBuZXdfdGFibGUsIGFsdGVyZWRf dGFibGUsCisJCSZlcnJvcik7CisKKwl1dF9hZCghcm93ID09IChlcnJvciAhPSBEQl9TVUNDRVNT KSk7CisKKwlpZiAocm93KSB7CisJCWVycm9yID0gcm93X2xvZ190YWJsZV9hcHBseV9pbnNlcnRf bG93KAorCQkJdGhyLCByb3csIG9mZnNldHNfaGVhcCwgaGVhcCwKKwkJCW5ld190YWJsZSwgYWx0 ZXJlZF90YWJsZSwgZHVwKTsKKwl9CiAKIAlpZiAoZXJyb3IgIT0gREJfU1VDQ0VTUykgewogCQkv KiBSZXBvcnQgdGhlIGVycm9uZW91cyByb3cgdXNpbmcgdGhlIG9sZApAQCAtMTQxNSw3ICsxNDI1 LDE0IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfdXBkYXRlKAogCSAgICAgICsgKGR1cC0+aW5kZXgt Pm9ubGluZV9sb2ctPnNhbWVfcGsgPyAwIDogMikpOwogCiAJcm93ID0gcm93X2xvZ190YWJsZV9h cHBseV9jb252ZXJ0X21yZWMoCi0JCW1yZWMsIG9mZnNldHMsIGhlYXAsIG5ld190YWJsZSwgYWx0 ZXJlZF90YWJsZSwgZHVwKTsKKwkJbXJlYywgZHVwLT5pbmRleCwgb2Zmc2V0cywgaGVhcCwKKwkJ bmV3X3RhYmxlLCBhbHRlcmVkX3RhYmxlLCAmZXJyb3IpOworCisJdXRfYWQoIXJvdyA9PSAoZXJy b3IgIT0gREJfU1VDQ0VTUykpOworCisJaWYgKCFyb3cpIHsKKwkJZ290byBlcnJfZXhpdDsKKwl9 CiAKIAltdHJfc3RhcnQoJm10cik7CiAJYnRyX3BjdXJfb3BlbihpbmRleCwgb2xkX3BrLCBQQUdF X0NVUl9MRSwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbWVy Z2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jYwlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwMTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEyMDYwMTExMzQyMC1tZXhvNWJsY2R5OHZuejhnCkBAIC0xNTQ3LDcgKzE1NDcs NyBAQCByb3dfbWVyZ2VfcmVhZF9jbHVzdGVyZWRfaW5kZXgoCiAJCQl1dF9hZCghKGZpZWxkX3R5 cGUtPnBydHlwZSAmIERBVEFfTk9UX05VTEwpKTsKIAogCQkJaWYgKGRmaWVsZF9pc19udWxsKGZp ZWxkKSkgewotCQkJCWVyciA9IERCX1BSSU1BUllfS0VZX0lTX05VTEw7CisJCQkJZXJyID0gREJf SU5WQUxJRF9OVUxMOwogCQkJCXRyeC0+ZXJyb3Jfa2V5X251bSA9IDA7CiAJCQkJZ290byBmdW5j X2V4aXQ7CiAJCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS91dC91dDB1 dC5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS91dC91dDB1dC5jYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEyMDYwMTA5MTUyNi14YnRtam5hdzIwZXhlYnpxCisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvdXQvdXQwdXQuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MjA2MDExMTM0MjAtbWV4bzVibGNkeTh2bno4ZwpAQCAtNzYzLDggKzc2Myw4IEBAIHV0X3N0cmVy cigKIAkJcmV0dXJuKCJUb28gbWFueSBjb25jdXJyZW50IHRyYW5zYWN0aW9ucyIpOwogCWNhc2Ug REJfVU5TVVBQT1JURUQ6CiAJCXJldHVybigiVW5zdXBwb3J0ZWQiKTsKLQljYXNlIERCX1BSSU1B UllfS0VZX0lTX05VTEw6Ci0JCXJldHVybigiUHJpbWFyeSBrZXkgaXMgTlVMTCIpOworCWNhc2Ug REJfSU5WQUxJRF9OVUxMOgorCQlyZXR1cm4oIk5VTEwgdmFsdWUgZW5jb3VudGVyZWQgaW4gTk9U IE5VTEwgY29sdW1uIik7CiAJY2FzZSBEQl9TVEFUU19ET19OT1RfRVhJU1Q6CiAJCXJldHVybigi UGVyc2lzdGVudCBzdGF0aXN0aWNzIGRvIG5vdCBleGlzdCIpOwogCWNhc2UgREJfRkFJTDoKCk5v IGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku