From: marko.makela Date: June 6 2012 5:24pm Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3946 to 3950) WL#6255 List-Archive: http://lists.mysql.com/commits/144115 Message-Id: <20120606172454.20357.54209.3950@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5NTAgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0wNgogICAgICBXTCM2MjU1IHJiOjExMDUgUHJv YmxlbSA2OgogICAgICAKICAgICAgU2tpcCBvbmxpbmUgcmVidWlsZCBsb2cgYXBwbHkgb24gZnVs bHRleHQgaW5kZXhlcy4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MGxvZy5jYwogMzk0OSBNYXJrbyBNw6RrZWzDpAkyMDEyLTA2LTA2CiAgICAgIFdMIzYyNTUg RlRTX0RPQ19JRCBzYWZldHkgY2hhbmdlcy4KICAgICAgCiAgICAgIGhhX2lubm9iYXNlOjpjaGVj a19pZl9zdXBwb3J0ZWRfaW5wbGFjZV9hbHRlcigpOiBEbyBub3Qgc3VwcG9ydCBpbnBsYWNlCiAg ICAgIERETCBvcGVyYXRpb25zIHRoYXQgaW52b2x2ZSBkcm9wcGluZyBvciByZW5hbWluZyBGVFNf RE9DX0lEIG9yIGRyb3BwaW5nCiAgICAgIEZUU19ET0NfSURfSU5ERVggd2hlbiBGVUxMVEVYVCBp bmRleGVzIGFyZSBzdXBwb3NlZCB0byBzdXJ2aXZlIHRoZSBvcGVyYXRpb24uCgogICAgbW9kaWZp ZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWFsdGVyLnJlc3VsdAog ICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1hbHRlci50ZXN0CiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAzOTQ4IE1hcmtvIE3DpGtl bMOkCTIwMTItMDYtMDYKICAgICAgV0wjNTUzNCBleHRlbnNpb246IEFkZCBGSUVMRF9JU19EUk9Q UEVEIGZvciBpbmRpY2F0aW5nIERST1AgQ09MVU1OLgogICAgICAKICAgICAgZmlsbF9hbHRlcl9p bnBsYWNlX2luZm8oKTogSW5pdGlhbGl6ZSBGSUVMRF9JU19EUk9QUEVEIGluIHRoZSBzYW1lCiAg ICAgIGxvb3AgYXMgRklFTERfSVNfUkVOQU1FRC4KICAgICAgCiAgICAgIEFwcHJvdmVkIGJ5IEpv biBPbGF2IEhhdWdsaWQgb24gSU0uCgogICAgbW9kaWZpZWQ6CiAgICAgIGluY2x1ZGUvbXlzcWxf Y29tLmgKICAgICAgc3FsL3NxbF90YWJsZS5jYwogMzk0NyBNYXJrbyBNw6RrZWzDpAkyMDEyLTA2 LTA2CiAgICAgIFdMIzU1MjYgYnVnIGZpeGVzLgogICAgICAKICAgICAgcHJlcGFyZV9pbnBsYWNl X2FsdGVyX3RhYmxlX2RpY3QoKSwKICAgICAgaGFfaW5ub2Jhc2U6OnByZXBhcmVfaW5wbGFjZV9h bHRlcl90YWJsZSgpOiBEbyBub3QgaW52b2tlIGZ0c19jcmVhdGUoKQogICAgICB1bnRpbCBpdCBp cyByZWFsbHkgbmVlZGVkLgogICAgICAKICAgICAgcm9sbGJhY2tfaW5wbGFjZV9hbHRlcl90YWJs ZSgpOiBJZiBhIGZ1bGwtdGV4dCBpbmRleCBkb2VzIG5vdCBzdXJ2aXZlIHRoZQogICAgICByb2xs YmFjaywgaW52b2tlIGZ0c19mcmVlKCkuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAzOTQ2IE1hcmtvIE3DpGtlbMOkCTIwMTIt MDYtMDYKICAgICAgV0wjNjI1NSBjbGVhbnVwIGFuZCBmaXggZm9yIEFERCBDT0xVTU4gYiwgQURE IFBSSU1BUlkgS0VZIChhLCBjKQogICAgICAKICAgICAgcm93X2xvZ190OiBBZGQgYWRkX2NvbHMs IGNvbF9tYXAuCiAgICAgIAogICAgICByb3dfbG9nX2FsbG9jYXRlKCk6IEFkZCB0aGUgcGFyYW1l dGVycyBhZGRfY29scywgY29sX21hcC4KICAgICAgCiAgICAgIHJvd19sb2dfdGFibGVfYXBwbHko KSwgcm93X2xvZ190YWJsZV9hcHBseV9vcHMoKTogUmVtb3ZlIHRoZQogICAgICBwYXJhbWV0ZXJz IGFkZF9jb2xzLCBjb2xfbWFwLgogICAgICAKICAgICAgcm93X2xvZ190YWJsZV9hcHBseV9jb252 ZXJ0X21yZWMoKSwgcm93X2xvZ190YWJsZV9hcHBseV9pbnNlcnQoKSwKICAgICAgcm93X2xvZ190 YWJsZV9hcHBseV91cGRhdGUoKTogUmVwbGFjZSB0aGUgcGFyYW1ldGVycyBhZGRfY29scywKICAg ICAgY29sX21hcCwgbmV3X3RhYmxlIHdpdGggcm93X2xvZ190IGxvZy4KICAgICAgCiAgICAgIHJv d19sb2dfdGFibGVfYXBwbHlfb3AoKTogUmVtb3ZlIHRoZSBwYXJhbWV0ZXJzIG5ld190YWJsZSwg YWRkX2NvbHMsCiAgICAgIGNvbF9tYXAuCiAgICAgIAogICAgICByb3dfbG9nX3RhYmxlX2dldF9w aygpOiBNYXAgYWRkZWQgYW5kIHJlb3JkZXJlZCBjb2x1bW5zLgogICAgICAKICAgICAgaGFfaW5u b2Jhc2U6OmNoZWNrX2lmX3N1cHBvcnRlZF9pbnBsYWNlX2FsdGVyKCk6IEluaXRpYWxpemUga2V5 X3BhcnQtPmZpZWxkCiAgICAgIHRvIHRhYmxlLT5maWVsZFtdLCBvciB0byBhbHRlcmVkX3RhYmxl LT5maWVsZFtdIGZvciBBREQgQ09MVU1OLgoKICAgIG1vZGlmaWVkOgogICAgICBteXNxbC10ZXN0 L3N1aXRlL2lubm9kYi9yL2lubm9kYi10YWJsZS1vbmxpbmUucmVzdWx0CiAgICAgIG15c3FsLXRl c3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLXRhYmxlLW9ubGluZS50ZXN0CiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9yb3cwbG9nLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwo9 PT0gbW9kaWZpZWQgZmlsZSAnaW5jbHVkZS9teXNxbF9jb20uaCcKLS0tIGEvaW5jbHVkZS9teXNx bF9jb20uaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTIxMzkyMS13MXVw bTZxd3d1ZDEzcnNjCisrKyBiL2luY2x1ZGUvbXlzcWxfY29tLmgJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMjA2MDYxNjM5MjItbzg0Mm4wazlxNGgxam1yMgpAQCAtMTIzLDYgKzEy Myw3IEBAIGVudW0gZW51bV9zZXJ2ZXJfY29tbWFuZAogI2RlZmluZSBGSUVMRF9GTEFHU19TVE9S QUdFX01FRElBX01BU0sgKDMgPDwgRklFTERfRkxBR1NfU1RPUkFHRV9NRURJQSkKICNkZWZpbmUg RklFTERfRkxBR1NfQ09MVU1OX0ZPUk1BVCAyNCAgICAvKiBGaWVsZCBjb2x1bW4gZm9ybWF0LCBi aXQgMjQtMjUgKi8KICNkZWZpbmUgRklFTERfRkxBR1NfQ09MVU1OX0ZPUk1BVF9NQVNLICgzIDw8 IEZJRUxEX0ZMQUdTX0NPTFVNTl9GT1JNQVQpCisjZGVmaW5lIEZJRUxEX0lTX0RST1BQRUQgKDE8 PCAyNikgICAgICAgLyogSW50ZXJuOiBGaWVsZCBpcyBiZWluZyBkcm9wcGVkICovCiAKICNkZWZp bmUgUkVGUkVTSF9HUkFOVAkJMQkvKiBSZWZyZXNoIGdyYW50IHRhYmxlcyAqLwogI2RlZmluZSBS RUZSRVNIX0xPRwkJMgkvKiBTdGFydCBvbiBuZXcgbG9nIGZpbGUgKi8KCj09PSBtb2RpZmllZCBm aWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1hbHRlci5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWFsdGVyLnJlc3VsdAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTIxMzkyMS13MXVwbTZxd3d1ZDEzcnNjCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWFsdGVyLnJlc3VsdAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNjE2MzkyMi1vODQybjBrOXE0aDFqbXIyCkBAIC00 NTAsMTUgKzQ1MCw0NCBAQCBBTFRFUiBUQUJMRSB0MW8gQ0hBTkdFIGMxIERCX1RSWF9JRCBJTlQ7 CiBFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGNvbHVtbiBuYW1lICdEQl9UUlhfSUQnCiBBTFRFUiBU QUJMRSB0MW8gQ0hBTkdFIGMxIGRiX3JvbGxfcHRyIElOVDsKIEVSUk9SIDQyMDAwOiBJbmNvcnJl Y3QgY29sdW1uIG5hbWUgJ0RCX1JPTExfUFRSJworQUxURVIgVEFCTEUgdDFvIEFERCBDT0xVTU4g REJfVFJYX0lEIElOVDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgY29sdW1uIG5hbWUgJ0RCX1RS WF9JRCcKK0FMVEVSIFRBQkxFIHQxbyBBREQgQ09MVU1OIGRiX3JvbGxfcHRyIElOVDsKK0VSUk9S IDQyMDAwOiBJbmNvcnJlY3QgY29sdW1uIG5hbWUgJ2RiX3JvbGxfcHRyJworQUxURVIgVEFCTEUg dDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdCksIEFERCBDT0xVTU4gRlRTX0RPQ19JRCBCSUdJTlQ7 CitFUlJPUiBIWTAwMDogQ29sdW1uICdGVFNfRE9DX0lEJyBpcyBvZiB3cm9uZyB0eXBlIGZvciBh biBJbm5vREIgRlVMTFRFWFQgaW5kZXgKK0FMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5E RVgoY3QpLCBBREQgQ09MVU1OIEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEOworRVJST1IgSFkw MDA6IENvbHVtbiAnRlRTX0RPQ19JRCcgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZV TExURVhUIGluZGV4CitBTFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwKK0FE RCBDT0xVTU4gRlRTX0RPQ19JRCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEw7CitBTFRFUiBUQUJM RSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwgQUREIENPTFVNTiBGVFNfRE9DX0lEIElOVDsK K0VSUk9SIDQyUzIxOiBEdXBsaWNhdGUgY29sdW1uIG5hbWUgJ0ZUU19ET0NfSUQnCitBTFRFUiBU QUJMRSB0MW8gRFJPUCBDT0xVTU4gRlRTX0RPQ19JRCwgQUxHT1JJVEhNPUlOUExBQ0U7CitFUlJP UiA0MjAwMDogVGhpcyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQgJ0FMVEVS IFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lELCBBTEdPUklUSE09SU5QTEFDRScKK0FM VEVSIFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lELCBEUk9QIElOREVYIGN0LCBBTEdP UklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLCBB REQgQ09MVU1OIGN1IFRFWFQ7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI0CUlubm9EQiByZWJ1aWxk aW5nIHRhYmxlIHRvIGFkZCBjb2x1bW4gRlRTX0RPQ19JRAorQUxURVIgVEFCTEUgdDFvIEFERCBG VUxMVEVYVCBJTkRFWChjdSksIEFERCBDT0xVTU4gRlRTX0RPQ19JRCBCSUdJTlQ7CitFUlJPUiBI WTAwMDogQ29sdW1uICdGVFNfRE9DX0lEJyBpcyBvZiB3cm9uZyB0eXBlIGZvciBhbiBJbm5vREIg RlVMTFRFWFQgaW5kZXgKK0FMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3UpLCBB REQgQ09MVU1OIEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEOworRVJST1IgSFkwMDA6IENvbHVt biAnRlRTX0RPQ19JRCcgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZVTExURVhUIGlu ZGV4CitBTFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN1KSwKK0FERCBDT0xVTU4g RlRTX0RPQ19JRCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEw7CitFUlJPUiBIWTAwMDogSW5ub0RC IHByZXNlbnRseSBzdXBwb3J0cyBvbmUgRlVMTFRFWFQgaW5kZXggY3JlYXRpb24gYXQgYSB0aW1l CitBTFRFUiBUQUJMRSB0MW8gQUREIENPTFVNTiBGVFNfRE9DX0lEIEJJR0lOVCBVTlNJR05FRCBO T1QgTlVMTDsKK0FMVEVSIFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lELCBBTEdPUklU SE09SU5QTEFDRTsKK0VSUk9SIDQyMDAwOiBUaGlzIHZlcnNpb24gb2YgTXlTUUwgZG9lc24ndCB5 ZXQgc3VwcG9ydCAnQUxURVIgVEFCTEUgdDFvIERST1AgQ09MVU1OIEZUU19ET0NfSUQsIEFMR09S SVRITT1JTlBMQUNFJworQUxURVIgVEFCTEUgdDFvIERST1AgQ09MVU1OIEZUU19ET0NfSUQ7CiBB TFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwgQ0hBTkdFIGMxIEZUU19ET0Nf SUQgSU5ULAogQUxHT1JJVEhNPUNPUFk7CiBFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGNvbHVtbiBu YW1lICdGVFNfRE9DX0lEJwogQUxURVIgVEFCTEUgdDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdCks IENIQU5HRSBjMSBGVFNfRE9DX0lEIElOVCwKIEFMR09SSVRITT1JTlBMQUNFOwotRVJST1IgSFkw MDA6IENvbHVtbiAnRlRTX0RPQ19JRCcgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZV TExURVhUIGluZGV4CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGNvbHVtbiBuYW1lICdGVFNfRE9D X0lEJwogQUxURVIgVEFCTEUgdDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdCksIENIQU5HRSBjMSBG VFNfRG9jX0lEIElOVCwKIEFMR09SSVRITT1JTlBMQUNFOwotRVJST1IgNDIwMDA6IEluY29ycmVj dCBjb2x1bW4gbmFtZSAnRlRTX0RvY19JRCcKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgY29sdW1u IG5hbWUgJ0ZUU19ET0NfSUQnCiBBTFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0 KSwKIENIQU5HRSBjMSBGVFNfRE9DX0lEIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTCwKIEFMR09S SVRITT1JTlBMQUNFOwpAQCAtNDY3LDggKzQ5Niw2IEBAIENIQU5HRSBjMSBGVFNfRE9DX0lEIEJJ R0lOVCBVTlNJR05FRCBOT1QKIEFMR09SSVRITT1JTlBMQUNFJwogQ1JFQVRFIFRBQkxFIHQxbiBM SUtFIHQxbzsKIEFMVEVSIFRBQkxFIHQxbiBBREQgRlVMTFRFWFQgSU5ERVgoY3QpOwotV2Fybmlu Z3M6Ci1XYXJuaW5nCTEyNAlJbm5vREIgcmVidWlsZGluZyB0YWJsZSB0byBhZGQgY29sdW1uIEZU U19ET0NfSUQKIEFMVEVSIFRBQkxFIHQxbiBDSEFOR0UgYzEgRnRzX0RPQ19JRCBJTlQsIEFMR09S SVRITT1JTlBMQUNFOwogRVJST1IgNDIwMDA6IEluY29ycmVjdCBjb2x1bW4gbmFtZSAnRlRTX0RP Q19JRCcKIEFMVEVSIFRBQkxFIHQxbiBDSEFOR0UgYzEgRnRzX0RPQ19JRCBJTlQsIEFMR09SSVRI TT1DT1BZOwpAQCAtNDg1LDggKzUxMiwxMCBAQCB0MW4JQ1JFQVRFIFRBQkxFIGB0MW5gICgKICAg YGMyYCBpbnQoMTEpIE5PVCBOVUxMIERFRkFVTFQgJzAnLAogICBgY3RgIGludCgxMSkgREVGQVVM VCBOVUxMLAogICBgYzFgIHRleHQsCisgIGBjdWAgdGV4dCwKICAgUFJJTUFSWSBLRVkgKGBjMmAp LAotICBGVUxMVEVYVCBLRVkgYGN0YCAoYGMxYCkKKyAgRlVMTFRFWFQgS0VZIGBjdGAgKGBjMWAp LAorICBGVUxMVEVYVCBLRVkgYGN0XzJgIChgYzFgKQogKSBFTkdJTkU9SW5ub0RCIERFRkFVTFQg Q0hBUlNFVD1sYXRpbjEKIEFMVEVSIFRBQkxFIHQxbiBDSEFOR0UgYzIgYzEgSU5ULCBDSEFOR0Ug Y3QgYzIgSU5ULCBDSEFOR0UgYzEgY3QgVEVYVCwKIEFMR09SSVRITT1DT1BZOwpAQCAtNDk2LDgg KzUyNSwxMCBAQCB0MW4JQ1JFQVRFIFRBQkxFIGB0MW5gICgKICAgYGMxYCBpbnQoMTEpIE5PVCBO VUxMIERFRkFVTFQgJzAnLAogICBgYzJgIGludCgxMSkgREVGQVVMVCBOVUxMLAogICBgY3RgIHRl eHQsCisgIGBjdWAgdGV4dCwKICAgUFJJTUFSWSBLRVkgKGBjMWApLAotICBGVUxMVEVYVCBLRVkg YGN0YCAoYGN0YCkKKyAgRlVMTFRFWFQgS0VZIGBjdGAgKGBjdGApLAorICBGVUxMVEVYVCBLRVkg YGN0XzJgIChgY3RgKQogKSBFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD1sYXRpbjEKIEFM VEVSIFRBQkxFIHQxbiBBREQgSU5ERVgoYzIpLCBDSEFOR0UgYzIgYzQgSU5ULCBBTEdPUklUSE09 SU5QTEFDRTsKIEVSUk9SIDQyMDAwOiBLZXkgY29sdW1uICdjMicgZG9lc24ndCBleGlzdCBpbiB0 YWJsZQpAQCAtNTEwLDkgKzU0MSwxMSBAQCB0MW4JQ1JFQVRFIFRBQkxFIGB0MW5gICgKICAgYGMx YCBpbnQoMTEpIE5PVCBOVUxMIERFRkFVTFQgJzAnLAogICBgYzRgIGludCgxMSkgREVGQVVMVCBO VUxMLAogICBgY3RgIHRleHQsCisgIGBjdWAgdGV4dCwKICAgUFJJTUFSWSBLRVkgKGBjMWApLAog ICBLRVkgYGM0YCAoYGM0YCksCi0gIEZVTExURVhUIEtFWSBgY3RgIChgY3RgKQorICBGVUxMVEVY VCBLRVkgYGN0YCAoYGN0YCksCisgIEZVTExURVhUIEtFWSBgY3RfMmAgKGBjdGApCiApIEVOR0lO RT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPWxhdGluMQogQUxURVIgVEFCTEUgdDFuIERST1AgSU5E RVggYzQ7CiBBTFRFUiBUQUJMRSB0MW4gQ0hBTkdFIGM0IGMxIElOVCwgQUREIElOREVYKGMxKSwg QUxHT1JJVEhNPUlOUExBQ0U7CkBAIC01MjQsMTcgKzU1NywyMSBAQCB0MW4JQ1JFQVRFIFRBQkxF IGB0MW5gICgKICAgYGMxYCBpbnQoMTEpIE5PVCBOVUxMIERFRkFVTFQgJzAnLAogICBgYzExYCBp bnQoMTEpIERFRkFVTFQgTlVMTCwKICAgYGN0YCB0ZXh0LAorICBgY3VgIHRleHQsCiAgIFBSSU1B UlkgS0VZIChgYzFgKSwKICAgS0VZIGBjMTFgIChgYzExYCksCi0gIEZVTExURVhUIEtFWSBgY3Rg IChgY3RgKQorICBGVUxMVEVYVCBLRVkgYGN0YCAoYGN0YCksCisgIEZVTExURVhUIEtFWSBgY3Rf MmAgKGBjdGApCiApIEVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPWxhdGluMQogRFJPUCBU QUJMRSB0MW47Ci1BTFRFUiBUQUJMRSB0MW8gTU9ESUZZIGMxIEJJR0lOVCBVTlNJR05FRCBOT1Qg TlVMTDsKLUFMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLAotQ0hBTkdFIGMx IEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMLAorQUxURVIgVEFCTEUgdDFvIE1P RElGWSBjMSBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEwsIERST1AgSU5ERVggY3Q7CitBTFRFUiBU QUJMRSB0MW8gQ0hBTkdFIGMxIEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMLAog QUxHT1JJVEhNPUlOUExBQ0U7Ci1BTFRFUiBUQUJMRSB0MW8gQ0hBTkdFIEZUU19ET0NfSUQgZm9v X2lkIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTDsKLUVSUk9SIEhZMDAwOiBDb2x1bW4gJ2Zvb19p ZCcgaXMgb2Ygd3JvbmcgdHlwZSBmb3IgYW4gSW5ub0RCIEZVTExURVhUIGluZGV4CitBTFRFUiBU QUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwgQUxHT1JJVEhNPUlOUExBQ0U7CitBTFRF UiBUQUJMRSB0MW8gQ0hBTkdFIEZUU19ET0NfSUQgZm9vX2lkIEJJR0lOVCBVTlNJR05FRCBOT1Qg TlVMTCwKK0FMR09SSVRITT1JTlBMQUNFOworRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBvZiBN eVNRTCBkb2Vzbid0IHlldCBzdXBwb3J0ICdBTFRFUiBUQUJMRSB0MW8gQ0hBTkdFIEZUU19ET0Nf SUQgZm9vX2lkIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTCwKK0FMR09SSVRITT1JTlBMQUNFJwog U0VMRUNUIHNjLnBvcyBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5pbm5vZGJfc3lzX2NvbHVtbnMg c2MKIElOTkVSIEpPSU4gaW5mb3JtYXRpb25fc2NoZW1hLmlubm9kYl9zeXNfdGFibGVzIHN0CiBP TiBzYy5UQUJMRV9JRD1zdC5UQUJMRV9JRApAQCAtNTQ3LDYgKzU4NCw3IEBAIHQxbwlDUkVBVEUg VEFCTEUgYHQxb2AgKAogICBgRlRTX0RPQ19JRGAgYmlnaW50KDIwKSB1bnNpZ25lZCBOT1QgTlVM TCwKICAgYGMyYCBpbnQoMTEpIERFRkFVTFQgTlVMTCwKICAgYGN0YCB0ZXh0LAorICBgY3VgIHRl eHQsCiAgIFBSSU1BUlkgS0VZIChgRlRTX0RPQ19JRGApLAogICBGVUxMVEVYVCBLRVkgYGN0YCAo YGN0YCkKICkgRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xCkBAIC01NTgsNiAr NTk2LDcgQEAgdDFvCUNSRUFURSBUQUJMRSBgdDFvYCAoCiAgIGBmb29faWRgIGJpZ2ludCgyMCkg dW5zaWduZWQgTk9UIE5VTEwsCiAgIGBjMmAgaW50KDExKSBERUZBVUxUIE5VTEwsCiAgIGBjdGAg dGV4dCwKKyAgYGN1YCB0ZXh0LAogICBQUklNQVJZIEtFWSAoYGZvb19pZGApCiApIEVOR0lORT1J bm5vREIgREVGQVVMVCBDSEFSU0VUPWxhdGluMQogRFJPUCBUQUJMRSB0MWMsIHQxcCwgc3lzX3Rh Ymxlcywgc3lzX2luZGV4ZXMsIHN5c19mb3JlaWduOwpAQCAtNTc0LDYgKzYxMyw3IEBAIE5BTUUJ UE9TCU1UWVBFCVBSVFlQRQlMRU4KIGZvb19pZAkwCTYJMTgwMAk4CiBjMgkxCTYJMTAyNwk0CiBj dAkyCTUJNTI0NTQwCTEwCitjdQkzCTUJNTI0NTQwCTEwCiBTRUxFQ1Qgc2kuTkFNRSxpLlBPUyxp Lk5BTUUgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuSU5OT0RCX1NZU19GSUVMRFMgaQogSU5ORVIg Sk9JTiBzeXNfaW5kZXhlcyBzaSBPTiBpLklOREVYX0lEPXNpLklOREVYX0lEOwogTkFNRQlQT1MJ TkFNRQpAQCAtNTkxLDggKzYzMSwxMCBAQCBBREQgRlVMTFRFWFQgSU5ERVgoY3QpOwogRVJST1Ig SFkwMDA6IEluZGV4ICdGVFNfRE9DX0lEX0lOREVYJyBpcyBvZiB3cm9uZyB0eXBlIGZvciBhbiBJ bm5vREIgRlVMTFRFWFQgaW5kZXgKIEFMVEVSIFRBQkxFIHQxbyBDSEFOR0UgZm9vX2lkIEZUU19E T0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMOwogQ1JFQVRFIEZVTExURVhUIElOREVYIGN0 IE9OIHQxbyAoY3QpOwotQUxURVIgVEFCTEUgdDFvIENIQU5HRSBGVFNfRE9DX0lEIGZvb19pZCBC SUdJTlQgVU5TSUdORUQgTk9UIE5VTEw7Ci1FUlJPUiBIWTAwMDogQ29sdW1uICdmb29faWQnIGlz IG9mIHdyb25nIHR5cGUgZm9yIGFuIElubm9EQiBGVUxMVEVYVCBpbmRleAorQUxURVIgVEFCTEUg dDFvIENIQU5HRSBGVFNfRE9DX0lEIGZvb19pZCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEwsCitB TEdPUklUSE09SU5QTEFDRTsKK0VSUk9SIDQyMDAwOiBUaGlzIHZlcnNpb24gb2YgTXlTUUwgZG9l c24ndCB5ZXQgc3VwcG9ydCAnQUxURVIgVEFCTEUgdDFvIENIQU5HRSBGVFNfRE9DX0lEIGZvb19p ZCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEwsCitBTEdPUklUSE09SU5QTEFDRScKIERST1AgVEFC TEUgc3lzX2luZGV4ZXM7CiBDUkVBVEUgVEFCTEUgc3lzX2luZGV4ZXMgU0VMRUNUIGkuKiBGUk9N IElORk9STUFUSU9OX1NDSEVNQS5JTk5PREJfU1lTX0lOREVYRVMgaQogSU5ORVIgSk9JTiBzeXNf dGFibGVzIHN0IE9OIGkuVEFCTEVfSUQ9c3QuVEFCTEVfSUQ7CkBAIC02MDMsNiArNjQ1LDcgQEAg TkFNRQlQT1MJTVRZUEUJUFJUWVBFCUxFTgogRlRTX0RPQ19JRAkwCTYJMTgwMAk4CiBjMgkxCTYJ MTAyNwk0CiBjdAkyCTUJNTI0NTQwCTEwCitjdQkzCTUJNTI0NTQwCTEwCiBTRUxFQ1Qgc2kuTkFN RSxpLlBPUyxpLk5BTUUgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuSU5OT0RCX1NZU19GSUVMRFMg aQogSU5ORVIgSk9JTiBzeXNfaW5kZXhlcyBzaSBPTiBpLklOREVYX0lEPXNpLklOREVYX0lEOwog TkFNRQlQT1MJTkFNRQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2Ri L3QvaW5ub2RiLWFsdGVyLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5u b2RiLWFsdGVyLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUyMTM5 MjEtdzF1cG02cXd3dWQxM3JzYworKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9k Yi1hbHRlci50ZXN0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjA2MTYzOTIy LW84NDJuMGs5cTRoMWptcjIKQEAgLTIwMyw2ICsyMDMsNTAgQEAgQUxURVIgVEFCTEUgdDFvIENI QU5HRSBjMSBkQl9yb3dfSWQgSU5ULAogQUxURVIgVEFCTEUgdDFvIENIQU5HRSBjMSBEQl9UUlhf SUQgSU5UOwogLS1lcnJvciBFUl9XUk9OR19DT0xVTU5fTkFNRQogQUxURVIgVEFCTEUgdDFvIENI QU5HRSBjMSBkYl9yb2xsX3B0ciBJTlQ7CistLWVycm9yIEVSX1dST05HX0NPTFVNTl9OQU1FCitB TFRFUiBUQUJMRSB0MW8gQUREIENPTFVNTiBEQl9UUlhfSUQgSU5UOworLS1lcnJvciBFUl9XUk9O R19DT0xVTU5fTkFNRQorQUxURVIgVEFCTEUgdDFvIEFERCBDT0xVTU4gZGJfcm9sbF9wdHIgSU5U OworCistLWVycm9yIEVSX0lOTk9EQl9GVF9XUk9OR19ET0NJRF9DT0xVTU4KK0FMVEVSIFRBQkxF IHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLCBBREQgQ09MVU1OIEZUU19ET0NfSUQgQklHSU5U OworLS1lcnJvciBFUl9JTk5PREJfRlRfV1JPTkdfRE9DSURfQ09MVU1OCitBTFRFUiBUQUJMRSB0 MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwgQUREIENPTFVNTiBGVFNfRE9DX0lEIEJJR0lOVCBV TlNJR05FRDsKKworQUxURVIgVEFCTEUgdDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdCksCitBREQg Q09MVU1OIEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMOworCistLWVycm9yIEVS X0RVUF9GSUVMRE5BTUUKK0FMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLCBB REQgQ09MVU1OIEZUU19ET0NfSUQgSU5UOworCistLWVycm9yIEVSX05PVF9TVVBQT1JURURfWUVU CitBTFRFUiBUQUJMRSB0MW8gRFJPUCBDT0xVTU4gRlRTX0RPQ19JRCwgQUxHT1JJVEhNPUlOUExB Q0U7CisKK0FMVEVSIFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lELCBEUk9QIElOREVY IGN0LCBBTEdPUklUSE09SU5QTEFDRTsKKworIyBUaGlzIGNyZWF0ZXMgYSBoaWRkZW4gRlRTX0RP Q19JRCBjb2x1bW4uCitBTFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwgQURE IENPTFVNTiBjdSBURVhUOworCistLWVycm9yIEVSX0lOTk9EQl9GVF9XUk9OR19ET0NJRF9DT0xV TU4KK0FMVEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3UpLCBBREQgQ09MVU1OIEZU U19ET0NfSUQgQklHSU5UOworLS1lcnJvciBFUl9JTk5PREJfRlRfV1JPTkdfRE9DSURfQ09MVU1O CitBTFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN1KSwgQUREIENPTFVNTiBGVFNf RE9DX0lEIEJJR0lOVCBVTlNJR05FRDsKKworIyBUaGlzIHdvdWxkIGRyb3AgdGhlIGhpZGRlbiBG VFNfRE9DX0lEIGNvbHVtbiBhbmQgY3JlYXRlCisjIGEgZnVsbHRleHQgaW5kZXggb24gY3QgYW5k IGFub3RoZXIgZnVsbHRleHQgaW5kZXggb24gY3UuCistLWVycm9yIEVSX0lOTk9EQl9GVF9MSU1J VAorQUxURVIgVEFCTEUgdDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdSksCitBREQgQ09MVU1OIEZU U19ET0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMOworCisjIFJlcGxhY2UgdGhlIGhpZGRl biBGVFNfRE9DX0lEIGNvbHVtbiB3aXRoIGEgdXNlci12aXNpYmxlIG9uZS4KKyMgVGhpcyB3b3Jr cyBpZiB0aGVyZSBpcyBhdCBtb3N0IG9uZSBmdWxsdGV4dCBpbmRleC4KK0FMVEVSIFRBQkxFIHQx byBBREQgQ09MVU1OIEZUU19ET0NfSUQgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMOworCisjIFJl cGxhY2UgdGhlIHVzZXItdmlzaWJsZSBGVFNfRE9DX0lEIGNvbHVtbiB3aXRoIGEgaGlkZGVuIG9u ZS4KKyMgV2UgZG8gbm90IHN1cHBvcnQgdGhpcyBpbi1wbGFjZS4KKy0tZXJyb3IgRVJfTk9UX1NV UFBPUlRFRF9ZRVQKK0FMVEVSIFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lELCBBTEdP UklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHQxbyBEUk9QIENPTFVNTiBGVFNfRE9DX0lEOwog CiAjIEZUU19ET0NfSUQgaXMgdGhlIGludGVybmFsIHJvdyBpZGVudGlmaWVyIGZvciBmdWxsLXRl eHQgc2VhcmNoLgogIyBJdCBzaG91bGQgYmUgb2YgdHlwZSBCSUdJTlQgVU5TSUdORUQgTk9UIE5V TEwuCkBAIC0yMTAsNyArMjU0LDcgQEAgQUxURVIgVEFCTEUgdDFvIENIQU5HRSBjMSBkYl9yb2xs X3B0ciBJTgogQUxURVIgVEFCTEUgdDFvIEFERCBGVUxMVEVYVCBJTkRFWChjdCksIENIQU5HRSBj MSBGVFNfRE9DX0lEIElOVCwKIEFMR09SSVRITT1DT1BZOwogCi0tLWVycm9yIEVSX0lOTk9EQl9G VF9XUk9OR19ET0NJRF9DT0xVTU4KKy0tZXJyb3IgRVJfV1JPTkdfQ09MVU1OX05BTUUKIEFMVEVS IFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLCBDSEFOR0UgYzEgRlRTX0RPQ19JRCBJ TlQsCiBBTEdPUklUSE09SU5QTEFDRTsKIC0tZXJyb3IgRVJfV1JPTkdfQ09MVU1OX05BTUUKQEAg LTI1NCwxNCArMjk4LDE2IEBAIEFMVEVSIFRBQkxFIHQxbiBDSEFOR0UgYzQgYzExIElOVCwgQURE IEkKIFNIT1cgQ1JFQVRFIFRBQkxFIHQxbjsKIERST1AgVEFCTEUgdDFuOwogCi1BTFRFUiBUQUJM RSB0MW8gTU9ESUZZIGMxIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHQx byBNT0RJRlkgYzEgQklHSU5UIFVOU0lHTkVEIE5PVCBOVUxMLCBEUk9QIElOREVYIGN0OwogCi1B TFRFUiBUQUJMRSB0MW8gQUREIEZVTExURVhUIElOREVYKGN0KSwKLUNIQU5HRSBjMSBGVFNfRE9D X0lEIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTCwKK0FMVEVSIFRBQkxFIHQxbyBDSEFOR0UgYzEg RlRTX0RPQ19JRCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEwsCiBBTEdPUklUSE09SU5QTEFDRTsK IAotLS1lcnJvciBFUl9JTk5PREJfRlRfV1JPTkdfRE9DSURfQ09MVU1OCi1BTFRFUiBUQUJMRSB0 MW8gQ0hBTkdFIEZUU19ET0NfSUQgZm9vX2lkIEJJR0lOVCBVTlNJR05FRCBOT1QgTlVMTDsKK0FM VEVSIFRBQkxFIHQxbyBBREQgRlVMTFRFWFQgSU5ERVgoY3QpLCBBTEdPUklUSE09SU5QTEFDRTsK KworLS1lcnJvciBFUl9OT1RfU1VQUE9SVEVEX1lFVAorQUxURVIgVEFCTEUgdDFvIENIQU5HRSBG VFNfRE9DX0lEIGZvb19pZCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEwsCitBTEdPUklUSE09SU5Q TEFDRTsKIAogIyBUaGlzIHNob3VsZCBub3Qgc2hvdyBkdXBsaWNhdGVzLgogU0VMRUNUIHNjLnBv cyBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5pbm5vZGJfc3lzX2NvbHVtbnMgc2MKQEAgLTMwNyw4 ICszNTMsOSBAQCBBREQgRlVMTFRFWFQgSU5ERVgoY3QpOwogQUxURVIgVEFCTEUgdDFvIENIQU5H RSBmb29faWQgRlRTX0RPQ19JRCBCSUdJTlQgVU5TSUdORUQgTk9UIE5VTEw7CiBDUkVBVEUgRlVM TFRFWFQgSU5ERVggY3QgT04gdDFvIChjdCk7CiAKLS0tZXJyb3IgRVJfSU5OT0RCX0ZUX1dST05H X0RPQ0lEX0NPTFVNTgotQUxURVIgVEFCTEUgdDFvIENIQU5HRSBGVFNfRE9DX0lEIGZvb19pZCBC SUdJTlQgVU5TSUdORUQgTk9UIE5VTEw7CistLWVycm9yIEVSX05PVF9TVVBQT1JURURfWUVUCitB TFRFUiBUQUJMRSB0MW8gQ0hBTkdFIEZUU19ET0NfSUQgZm9vX2lkIEJJR0lOVCBVTlNJR05FRCBO T1QgTlVMTCwKK0FMR09SSVRITT1JTlBMQUNFOwogCiBEUk9QIFRBQkxFIHN5c19pbmRleGVzOwog Q1JFQVRFIFRBQkxFIHN5c19pbmRleGVzIFNFTEVDVCBpLiogRlJPTSBJTkZPUk1BVElPTl9TQ0hF TUEuSU5OT0RCX1NZU19JTkRFWEVTIGkKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3RhYmxl LmNjJwotLS0gYS9zcWwvc3FsX3RhYmxlLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTIwNjA1MjEzOTIxLXcxdXBtNnF3d3VkMTNyc2MKKysrIGIvc3FsL3NxbF90YWJsZS5jYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNjE2MzkyMi1vODQybjBrOXE0aDFq bXIyCkBAIC01MzgwLDcgKzUzODAsNyBAQCBzdGF0aWMgYm9vbCBmaWxsX2FsdGVyX2lucGxhY2Vf aW5mbyhUSEQKICAgZm9yIChmX3B0cj0gdGFibGUtPmZpZWxkOyAoZmllbGQ9ICpmX3B0cik7IGZf cHRyKyspCiAgIHsKICAgICAvKiBDbGVhciBtYXJrZXIgZm9yIHJlbmFtZWQgZmllbGQgd2hpY2gg d2UgYXJlIGdvaW5nIHRvIHNldCBsYXRlci4gKi8KLSAgICBmaWVsZC0+ZmxhZ3MmPSB+RklFTERf SVNfUkVOQU1FRDsKKyAgICBmaWVsZC0+ZmxhZ3MmPSB+KEZJRUxEX0lTX1JFTkFNRUQgfCBGSUVM RF9JU19EUk9QUEVEKTsKIAogICAgIC8qIFVzZSB0cmFuc2Zvcm1lZCBpbmZvIHRvIGV2YWx1YXRl IGZsYWdzIGZvciBzdG9yYWdlIGVuZ2luZS4gKi8KICAgICB1aW50IG5ld19maWVsZF9pbmRleD0g MDsKQEAgLTU0NzgsNiArNTQ3OCw3IEBAIHN0YXRpYyBib29sIGZpbGxfYWx0ZXJfaW5wbGFjZV9p bmZvKFRIRAogICAgICAgICBDb3JyZXNwb25kaW5nIHN0b3JhZ2UgZW5naW5lIGZsYWcgc2hvdWxk IGJlIGFscmVhZHkgc2V0LgogICAgICAgKi8KICAgICAgIERCVUdfQVNTRVJUKGhhX2FsdGVyX2lu Zm8tPmhhbmRsZXJfZmxhZ3MgJiBBbHRlcl9pbnBsYWNlX2luZm86OkRST1BfQ09MVU1OKTsKKyAg ICAgIGZpZWxkLT5mbGFnc3w9IEZJRUxEX0lTX0RST1BQRUQ7CiAgICAgfQogICB9CiAKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYycK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDUyMTM5MjEtdzF1cG02cXd3dWQxM3JzYworKysg Yi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNjE2MzkyMi1vODQybjBrOXE0aDFqbXIyCkBAIC0xNTks NiArMTU5LDI0IEBAIG15X2Vycm9yX2lubm9kYigKIAl9CiB9CiAKKy8qKiBEZXRlcm1pbmUgaWYg ZnVsbHRleHQgaW5kZXhlcyBleGlzdCBpbiBhIGdpdmVuIHRhYmxlLgorQHBhcmFtIHRhYmxlX3No YXJlCU15U1FMIHRhYmxlCitAcmV0dXJuCQkJd2hldGhlciBmdWxsdGV4dCBpbmRleGVzIGV4aXN0 IG9uIHRoZSB0YWJsZSAqLworc3RhdGljCitib29sCitpbm5vYmFzZV9mdWxsdGV4dF9leGlzdCgK Ky8qPT09PT09PT09PT09PT09PT09PT0qLworCWNvbnN0IFRBQkxFX1NIQVJFKgl0YWJsZV9zaGFy ZSkKK3sKKwlmb3IgKHVpbnQgaSA9IDA7IGkgPCB0YWJsZV9zaGFyZS0+a2V5czsgaSsrKSB7CisJ CWlmICh0YWJsZV9zaGFyZS0+a2V5X2luZm9baV0uZmxhZ3MgJiBIQV9GVUxMVEVYVCkgeworCQkJ cmV0dXJuKHRydWUpOworCQl9CisJfQorCisJcmV0dXJuKGZhbHNlKTsKK30KKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCiBEZXRlcm1pbmUgaWYgQUxURVIgVEFCTEUgbmVlZHMgdG8gcmVidWlsZCB0aGUgdGFi bGUuCiBAcGFyYW0gaGFfYWx0ZXJfaW5mbwkJdGhlIERETCBvcGVyYXRpb24KQEAgLTI3NSwxMSAr MjkzLDYzIEBAIGhhX2lubm9iYXNlOjpjaGVja19pZl9zdXBwb3J0ZWRfaW5wbGFjZV8KIAogCQkJ a2V5X3BhcnQtPmZpZWxkID0gbmV3X2ZpZWxkLT5maWVsZDsKIAotCQkJaWYgKCFuZXdfZmllbGQt PmZpZWxkKSB7Ci0JCQkJREJVR19BU1NFUlQoaGFfYWx0ZXJfaW5mby0+aGFuZGxlcl9mbGFncwot CQkJCQkgICAgJiBBbHRlcl9pbnBsYWNlX2luZm86OkFERF9DT0xVTU4pOwotCQkJCWtleV9wYXJ0 LT5maWVsZCA9IGFsdGVyZWRfdGFibGUtPmZpZWxkWwotCQkJCQlrZXlfcGFydC0+ZmllbGRucl07 CisJCQlpZiAobmV3X2ZpZWxkLT5maWVsZCkgeworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQkv KiBUaGlzIGlzIGFuIGFkZGVkIGNvbHVtbi4gKi8KKwkJCURCVUdfQVNTRVJUKGhhX2FsdGVyX2lu Zm8tPmhhbmRsZXJfZmxhZ3MKKwkJCQkgICAgJiBBbHRlcl9pbnBsYWNlX2luZm86OkFERF9DT0xV TU4pOworCQkJa2V5X3BhcnQtPmZpZWxkID0gYWx0ZXJlZF90YWJsZS0+ZmllbGRbCisJCQkJa2V5 X3BhcnQtPmZpZWxkbnJdOworCisJCQkvKiBXZSBjYW5ub3QgcmVwbGFjZSBhIGhpZGRlbiBGVFNf RE9DX0lECisJCQl3aXRoIGEgdXNlci12aXNpYmxlIEZUU19ET0NfSUQuICovCisJCQlpZiAocHJl YnVpbHQtPnRhYmxlLT5mdHMKKwkJCSAgICAmJiBpbm5vYmFzZV9mdWxsdGV4dF9leGlzdChhbHRl cmVkX3RhYmxlLT5zKQorCQkJICAgICYmICFteV9zdHJjYXNlY21wKAorCQkJCSAgICBzeXN0ZW1f Y2hhcnNldF9pbmZvLAorCQkJCSAgICBrZXlfcGFydC0+ZmllbGQtPmZpZWxkX25hbWUsCisJCQkJ ICAgIEZUU19ET0NfSURfQ09MX05BTUUpKSB7CisJCQkJREJVR19SRVRVUk4oSEFfQUxURVJfSU5Q TEFDRV9OT1RfU1VQUE9SVEVEKTsKKwkJCX0KKwkJfQorCX0KKworCURCVUdfQVNTRVJUKCFwcmVi dWlsdC0+dGFibGUtPmZ0cyB8fCBwcmVidWlsdC0+dGFibGUtPmZ0cy0+ZG9jX2NvbAorCQkgICAg PD0gdGFibGUtPnMtPmZpZWxkcyk7CisJREJVR19BU1NFUlQoIXByZWJ1aWx0LT50YWJsZS0+ZnRz IHx8IHByZWJ1aWx0LT50YWJsZS0+ZnRzLT5kb2NfY29sCisJCSAgICA8IGRpY3RfdGFibGVfZ2V0 X25fdXNlcl9jb2xzKHByZWJ1aWx0LT50YWJsZSkpOworCisJaWYgKHByZWJ1aWx0LT50YWJsZS0+ ZnRzCisJICAgICYmIGlubm9iYXNlX2Z1bGx0ZXh0X2V4aXN0KGFsdGVyZWRfdGFibGUtPnMpKSB7 CisJCS8qIEZVTExURVhUIGluZGV4ZXMgYXJlIHN1cHBvc2VkIHRvIHJlbWFpbi4gKi8KKwkJLyog RGlzYWxsb3cgRFJPUCBJTkRFWCBGVFNfRE9DX0lEX0lOREVYICovCisKKwkJZm9yICh1aW50IGkg PSAwOyBpIDwgaGFfYWx0ZXJfaW5mby0+aW5kZXhfZHJvcF9jb3VudDsgaSsrKSB7CisJCQlpZiAo IW15X3N0cmNhc2VjbXAoCisJCQkJICAgIHN5c3RlbV9jaGFyc2V0X2luZm8sCisJCQkJICAgIGhh X2FsdGVyX2luZm8tPmluZGV4X2Ryb3BfYnVmZmVyW2ldLT5uYW1lLAorCQkJCSAgICBGVFNfRE9D X0lEX0lOREVYX05BTUUpKSB7CisJCQkJREJVR19SRVRVUk4oSEFfQUxURVJfSU5QTEFDRV9OT1Rf U1VQUE9SVEVEKTsKKwkJCX0KKwkJfQorCisJCS8qIElubm9EQiBjYW4gaGF2ZSBhIGhpZGRlbiBG VFNfRE9DX0lEX0lOREVYIG9uIGEKKwkJdmlzaWJsZSBGVFNfRE9DX0lEIGNvbHVtbiBhcyB3ZWxs LiBQcmV2ZW50IGRyb3BwaW5nIG9yCisJCXJlbmFtaW5nIHRoZSBGVFNfRE9DX0lELiAqLworCisJ CWZvciAoRmllbGQqKiBmcCA9IHRhYmxlLT5maWVsZDsgKmZwOyBmcCsrKSB7CisJCQlpZiAoISgo KmZwKS0+ZmxhZ3MKKwkJCSAgICAgICYgKEZJRUxEX0lTX1JFTkFNRUQgfCBGSUVMRF9JU19EUk9Q UEVEKSkpIHsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFteV9zdHJjYXNlY21wKAor CQkJCSAgICBzeXN0ZW1fY2hhcnNldF9pbmZvLAorCQkJCSAgICAoKmZwKS0+ZmllbGRfbmFtZSwK KwkJCQkgICAgRlRTX0RPQ19JRF9DT0xfTkFNRSkpIHsKKwkJCQlEQlVHX1JFVFVSTihIQV9BTFRF Ul9JTlBMQUNFX05PVF9TVVBQT1JURUQpOwogCQkJfQogCQl9CiAJfQpAQCAtMjUyNyw2ICsyNTk3 LDEyIEBAIGNvbF9mYWlsOgogCQlEQlVHX0FTU0VSVCghaW5ub2Jhc2VfbmVlZF9yZWJ1aWxkKGhh X2FsdGVyX2luZm8pKTsKIAkJY29sX21hcCA9IE5VTEw7CiAJCWFkZF9jb2xzID0gTlVMTDsKKwor CQlpZiAoIWluZGV4ZWRfdGFibGUtPmZ0cworCQkgICAgJiYgaW5ub2Jhc2VfZnVsbHRleHRfZXhp c3QoYWx0ZXJlZF90YWJsZS0+cykpIHsKKwkJCWluZGV4ZWRfdGFibGUtPmZ0cyA9IGZ0c19jcmVh dGUoaW5kZXhlZF90YWJsZSk7CisJCQlpbmRleGVkX3RhYmxlLT5mdHMtPmRvY19jb2wgPSBmdHNf ZG9jX2lkX2NvbDsKKwkJfQogCX0KIAogCS8qIEFzc2lnbiB0YWJsZV9pZCwgc28gdGhhdCBubyB0 YWJsZSBpZCBvZgpAQCAtMjc4MSwyNCArMjg1Nyw2IEBAIGVycl9leGl0OgogCURCVUdfUkVUVVJO KHRydWUpOwogfQogCi0vKiogRGV0ZXJtaW5lIGlmIGZ1bGx0ZXh0IGluZGV4ZXMgZXhpc3QgaW4g YSBnaXZlbiB0YWJsZS4KLUBwYXJhbSB0YWJsZV9zaGFyZQlNeVNRTCB0YWJsZQotQHJldHVybgkJ CXdoZXRoZXIgZnVsbHRleHQgaW5kZXhlcyBleGlzdCBvbiB0aGUgdGFibGUgKi8KLXN0YXRpYwot Ym9vbAotaW5ub2Jhc2VfZnVsbHRleHRfZXhpc3QoCi0vKj09PT09PT09PT09PT09PT09PT09Ki8K LQljb25zdCBUQUJMRV9TSEFSRSoJdGFibGVfc2hhcmUpCi17Ci0JZm9yICh1aW50IGkgPSAwOyBp IDwgdGFibGVfc2hhcmUtPmtleXM7IGkrKykgewotCQlpZiAodGFibGVfc2hhcmUtPmtleV9pbmZv W2ldLmZsYWdzICYgSEFfRlVMTFRFWFQpIHsKLQkJCXJldHVybih0cnVlKTsKLQkJfQotCX0KLQot CXJldHVybihmYWxzZSk7Ci19Ci0KIC8qKiBBbGxvd3MgSW5ub0RCIHRvIHVwZGF0ZSBpbnRlcm5h bCBzdHJ1Y3R1cmVzIHdpdGggY29uY3VycmVudAogd3JpdGVzIGJsb2NrZWQuIEludm9rZWQgYmVm b3JlIGlucGxhY2VfYWx0ZXJfdGFibGUoKS4KIApAQCAtMzMwMCw5ICszMzU4LDYgQEAgZXJyX2V4 aXQ6CiAJCQkJRlRTX0RPQ19JRF9DT0xfTkFNRSk7CiAJCX0gZWxzZSBpZiAoZnRzX2RvY19jb2xf bm8gPT0gVUxJTlRfVU5ERUZJTkVEKSB7CiAJCQlnb3RvIGVycl9leGl0OwotCQl9IGVsc2UgaWYg KCFwcmVidWlsdC0+dGFibGUtPmZ0cykgewotCQkJcHJlYnVpbHQtPnRhYmxlLT5mdHMgPSBmdHNf Y3JlYXRlKHByZWJ1aWx0LT50YWJsZSk7Ci0JCQlwcmVidWlsdC0+dGFibGUtPmZ0cy0+ZG9jX2Nv bCA9IGZ0c19kb2NfY29sX25vOwogCQl9CiAKIAkJc3dpdGNoIChpbm5vYmFzZV9mdHNfY2hlY2tf ZG9jX2lkX2luZGV4KApAQCAtMzMxMyw5ICszMzY4LDYgQEAgZXJyX2V4aXQ6CiAJCWNhc2UgRlRT X0lOQ09SUkVDVF9ET0NfSURfSU5ERVg6CiAJCQlteV9lcnJvcihFUl9JTk5PREJfRlRfV1JPTkdf RE9DSURfSU5ERVgsIE1ZRigwKSwKIAkJCQkgRlRTX0RPQ19JRF9JTkRFWF9OQU1FKTsKLQkJCWlm IChwcmVidWlsdC0+dGFibGUtPmZ0cykgewotCQkJCWZ0c19mcmVlKHByZWJ1aWx0LT50YWJsZSk7 Ci0JCQl9CiAJCQlnb3RvIGVycl9leGl0OwogCQljYXNlIEZUU19FWElTVF9ET0NfSURfSU5ERVg6 CiAJCQlEQlVHX0FTU0VSVChkb2NfY29sX25vID09IGZ0c19kb2NfY29sX25vCkBAIC0zNTQ4LDYg KzM2MDAsMTEgQEAgcm9sbGJhY2tfaW5wbGFjZV9hbHRlcl90YWJsZSgKIAkJdHJ4X3N0YXJ0X2Zv cl9kZGwoY3R4LT50cngsIFRSWF9ESUNUX09QX0lOREVYKTsKIAogCQlyb3dfbWVyZ2VfZHJvcF9p bmRleGVzKGN0eC0+dHJ4LCBwcmVidWlsdC0+dGFibGUsIEZBTFNFKTsKKworCQlpZiAocHJlYnVp bHQtPnRhYmxlLT5mdHMKKwkJICAgICYmICFpbm5vYmFzZV9mdWxsdGV4dF9leGlzdCh0YWJsZV9z aGFyZSkpIHsKKwkJCWZ0c19mcmVlKHByZWJ1aWx0LT50YWJsZSk7CisJCX0KIAl9CiAKIAl0cnhf Y29tbWl0X2Zvcl9teXNxbChjdHgtPnRyeCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vYmFzZS9yb3cvcm93MGxvZy5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxv Zy5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYwNTIxMzkyMS13MXVwbTZx d3d1ZDEzcnNjCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2MDYxNjM5MjItbzg0Mm4wazlxNGgxam1yMgpAQCAt MTE4Myw2ICsxMTgzLDEwIEBAIHJvd19sb2dfdGFibGVfYXBwbHlfaW5zZXJ0X2xvdygKIAkJCWJy ZWFrOwogCQl9CiAKKwkJaWYgKGluZGV4LT50eXBlICYgRElDVF9GVFMpIHsKKwkJCWNvbnRpbnVl OworCQl9CisKIAkJZW50cnkgPSByb3dfYnVpbGRfaW5kZXhfZW50cnkocm93LCBOVUxMLCBpbmRl eCwgaGVhcCk7CiAJCWVycm9yID0gcm93X2luc19zZWNfaW5kZXhfZW50cnlfbG93KAogCQkJZmxh Z3MsIEJUUl9NT0RJRllfVFJFRSwKQEAgLTEyNjcsNiArMTI3MSwxMCBAQCByb3dfbG9nX3RhYmxl X2FwcGx5X2RlbGV0ZV9sb3coCiAJfQogCiAJd2hpbGUgKChpbmRleCA9IGRpY3RfdGFibGVfZ2V0 X25leHRfaW5kZXgoaW5kZXgpKSAhPSBOVUxMKSB7CisJCWlmIChpbmRleC0+dHlwZSAmIERJQ1Rf RlRTKSB7CisJCQljb250aW51ZTsKKwkJfQorCiAJCWNvbnN0IGR0dXBsZV90KgllbnRyeSA9IHJv d19idWlsZF9pbmRleF9lbnRyeSgKIAkJCXJvdywgZXh0LCBpbmRleCwgaGVhcCk7CiAJCW10cl9z dGFydChtdHIpOwpAQCAtMTYxNiw2ICsxNjI0LDEwIEBAIGRlbGV0ZV9pbnNlcnQ6CiAJCQlicmVh azsKIAkJfQogCisJCWlmIChpbmRleC0+dHlwZSAmIERJQ1RfRlRTKSB7CisJCQljb250aW51ZTsK KwkJfQorCiAJCWlmICghcm93X3VwZF9jaGFuZ2VzX29yZF9maWVsZF9iaW5hcnkoCiAJCQkgICAg aW5kZXgsIHVwZGF0ZSwgdGhyLCByb3csIE5VTEwpKSB7CiAJCQljb250aW51ZTsKCk5vIGJ1bmRs ZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku