From: Jon Olav Hauglid Date: March 8 2011 9:22am Subject: bzr push into mysql-trunk branch (jon.hauglid:3731 to 3732) List-Archive: http://lists.mysql.com/commits/132577 Message-Id: <201103080922.p27MT3b3014753@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM3MzIgSm9uIE9sYXYgSGF1Z2xpZAkyMDExLTAzLTA4IFttZXJnZV0KICAgICAgTWVyZ2UgZnJv bSBteXNxbC01LjUgdG8gbXlzcWwtdHJ1bmsKICAgICAgVGV4dCBjb25mbGljdCBpbiBjbGllbnQv bXlzcWxjaGVjay5jCiAgICAgIFRleHQgY29uZmxpY3QgaW4gc3FsL3NoYXJlL2Vycm1zZy11dGY4 LnR4dAogICAgICBUZXh0IGNvbmZsaWN0IGluIHNxbC9zcWxfbGV4LmgKCiAgICBhZGRlZDoKICAg ICAgbXlzcWwtdGVzdC9zdGRfZGF0YS9idWc0NzIwNS5mcm0KICAgIG1vZGlmaWVkOgogICAgICBj bGllbnQvbXlzcWxjaGVjay5jCiAgICAgIG15c3FsLXRlc3Qvci9teXNxbGNoZWNrLnJlc3VsdAog ICAgICBteXNxbC10ZXN0L3QvbXlzcWxjaGVjay50ZXN0CiAgICAgIHNxbC9oYW5kbGVyLmNjCiAg ICAgIHNxbC9oYW5kbGVyLmgKICAgICAgc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAogICAgICBz cWwvc3FsX2FkbWluLmNjCiAgICAgIHNxbC9zcWxfbGV4LmgKICAgICAgc3FsL3NxbF95YWNjLnl5 CiAgICAgIHN0b3JhZ2UvYXJjaGl2ZS9oYV9hcmNoaXZlLmgKICAgICAgc3RvcmFnZS9jc3YvaGFf dGluYS5oCiAgICAgIHN0b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oCiAgICAgIHN0b3Jh Z2UvbXlpc2FtL2hhX215aXNhbS5jYwogMzczMSBKb24gT2xhdiBIYXVnbGlkCTIwMTEtMDMtMDcg W21lcmdlXQogICAgICBNZXJnZSBmcm9tIG15c3FsLTUuNSB0byBteXNxbC10cnVuawogICAgICBO byBjb25mbGljdHMKCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9yL2lubm9kYl9teXNx bF9zeW5jLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3QvaW5ub2RiX215c3FsX3N5bmMudGVzdAog ICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCj09PSBtb2RpZmllZCBm aWxlICdjbGllbnQvbXlzcWxjaGVjay5jJwotLS0gYS9jbGllbnQvbXlzcWxjaGVjay5jCTIwMTEt MDEtMTYgMDQ6MDI6MjkgKzAwMDAKKysrIGIvY2xpZW50L215c3FsY2hlY2suYwkyMDExLTAzLTA4 IDA5OjIxOjM5ICswMDAwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBjaGFyICpvcHRfcGFzc3dv cmQgPSAwLCAqY3VycmVudF8KIAkgICAgKmRlZmF1bHRfY2hhcnNldD0gMCwgKmN1cnJlbnRfaG9z dD0gMDsKIHN0YXRpYyBjaGFyICpvcHRfcGx1Z2luX2Rpcj0gMCwgKm9wdF9kZWZhdWx0X2F1dGg9 IDA7CiBzdGF0aWMgaW50IGZpcnN0X2Vycm9yID0gMDsKLURZTkFNSUNfQVJSQVkgdGFibGVzNHJl cGFpcjsKK0RZTkFNSUNfQVJSQVkgdGFibGVzNHJlcGFpciwgdGFibGVzNHJlYnVpbGQ7CiAjaWZk ZWYgSEFWRV9TTUVNCiBzdGF0aWMgY2hhciAqc2hhcmVkX21lbW9yeV9iYXNlX25hbWU9MDsKICNl bmRpZgpAQCAtNjMwLDYgKzYzMCwyNyBAQCBzdGF0aWMgaW50IGZpeF9kYXRhYmFzZV9zdG9yYWdl X25hbWUoY29uCiAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGludCByZWJ1aWxkX3RhYmxlKGNo YXIgKm5hbWUpCit7CisgIGNoYXIgKnF1ZXJ5LCAqcHRyOworICBpbnQgcmM9IDA7CisgIHF1ZXJ5 PSAoY2hhciopbXlfbWFsbG9jKHNpemVvZihjaGFyKSAqICgxMiArIGZpeGVkX25hbWVfbGVuZ3Ro KG5hbWUpICsgNiArIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBNWUYoTVlfV01FKSk7 CisgIGlmICghcXVlcnkpCisgICAgcmV0dXJuIDE7CisgIHB0cj0gc3RybW92KHF1ZXJ5LCAiQUxU RVIgVEFCTEUgIik7CisgIHB0cj0gZml4X3RhYmxlX25hbWUocHRyLCBuYW1lKTsKKyAgcHRyPSBz dHJ4bW92KHB0ciwgIiBGT1JDRSIsIE51bGxTKTsKKyAgaWYgKG15c3FsX3JlYWxfcXVlcnkoc29j aywgcXVlcnksICh1aW50KShwdHIgLSBxdWVyeSkpKQorICB7CisgICAgZnByaW50ZihzdGRlcnIs ICJGYWlsZWQgdG8gJXNcbiIsIHF1ZXJ5KTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiAl c1xuIiwgbXlzcWxfZXJyb3Ioc29jaykpOworICAgIHJjPSAxOworICB9CisgIG15X2ZyZWUocXVl cnkpOworICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbnQgcHJvY2Vzc19vbmVfZGIoY2hhciAq ZGF0YWJhc2UpCiB7CiAgIGlmICh3aGF0X3RvX2RvID09IERPX1VQR1JBREUpCkBAIC03NDMsNyAr NzY0LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfcmVzdWx0KCkKICAgTVlTUUxfUk9XIHJvdzsKICAg Y2hhciBwcmV2W05BTUVfTEVOKjIrMl07CiAgIHVpbnQgaTsKLSAgbXlfYm9vbCBmb3VuZF9lcnJv cj0wOworICBteV9ib29sIGZvdW5kX2Vycm9yPTAsIHRhYmxlX3JlYnVpbGQ9MDsKIAogICByZXMg PSBteXNxbF91c2VfcmVzdWx0KHNvY2spOwogCkBAIC03NjIsOCArNzgzLDE0IEBAIHN0YXRpYyB2 b2lkIHByaW50X3Jlc3VsdCgpCiAgICAgICAqLwogICAgICAgaWYgKGZvdW5kX2Vycm9yICYmIG9w dF9hdXRvX3JlcGFpciAmJiB3aGF0X3RvX2RvICE9IERPX1JFUEFJUiAmJgogCSAgc3RyY21wKHJv d1szXSwiT0siKSkKLQlpbnNlcnRfZHluYW1pYygmdGFibGVzNHJlcGFpciwgcHJldik7CisgICAg ICB7CisgICAgICAgIGlmICh0YWJsZV9yZWJ1aWxkKQorICAgICAgICAgIGluc2VydF9keW5hbWlj KCZ0YWJsZXM0cmVidWlsZCwgcHJldik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBpbnNlcnRf ZHluYW1pYygmdGFibGVzNHJlcGFpciwgcHJldik7CisgICAgICB9CiAgICAgICBmb3VuZF9lcnJv cj0wOworICAgICAgdGFibGVfcmVidWlsZD0wOwogICAgICAgaWYgKG9wdF9zaWxlbnQpCiAJY29u dGludWU7CiAgICAgfQpAQCAtNzczLDcgKzgwMCwxMSBAQCBzdGF0aWMgdm9pZCBwcmludF9yZXN1 bHQoKQogICAgIHsKICAgICAgIHByaW50ZigiJXNcbiUtOXM6ICVzIiwgcm93WzBdLCByb3dbMl0s IHJvd1szXSk7CiAgICAgICBpZiAoc3RyY21wKHJvd1syXSwibm90ZSIpKQorICAgICAgewogCWZv dW5kX2Vycm9yPTE7CisgICAgICAgIGlmIChvcHRfYXV0b19yZXBhaXIgJiYgc3Ryc3RyKHJvd1sz XSwgIkFMVEVSIFRBQkxFIikgIT0gTlVMTCkKKyAgICAgICAgICB0YWJsZV9yZWJ1aWxkPTE7Cisg ICAgICB9CiAgICAgfQogICAgIGVsc2UKICAgICAgIHByaW50ZigiJS05czogJXMiLCByb3dbMl0s IHJvd1szXSk7CkBAIC03ODIsNyArODEzLDEyIEBAIHN0YXRpYyB2b2lkIHByaW50X3Jlc3VsdCgp CiAgIH0KICAgLyogYWRkIHRoZSBsYXN0IHRhYmxlIHRvIGJlIHJlcGFpcmVkIHRvIHRoZSBsaXN0 ICovCiAgIGlmIChmb3VuZF9lcnJvciAmJiBvcHRfYXV0b19yZXBhaXIgJiYgd2hhdF90b19kbyAh PSBET19SRVBBSVIpCi0gICAgaW5zZXJ0X2R5bmFtaWMoJnRhYmxlczRyZXBhaXIsIHByZXYpOwor ICB7CisgICAgaWYgKHRhYmxlX3JlYnVpbGQpCisgICAgICBpbnNlcnRfZHluYW1pYygmdGFibGVz NHJlYnVpbGQsIHByZXYpOworICAgIGVsc2UKKyAgICAgIGluc2VydF9keW5hbWljKCZ0YWJsZXM0 cmVwYWlyLCBwcmV2KTsKKyAgfQogICBteXNxbF9mcmVlX3Jlc3VsdChyZXMpOwogfQogCkBAIC04 ODIsNyArOTE4LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICB9CiAKICAg aWYgKG9wdF9hdXRvX3JlcGFpciAmJgotICAgICAgbXlfaW5pdF9keW5hbWljX2FycmF5KCZ0YWJs ZXM0cmVwYWlyLCBzaXplb2YoY2hhcikqKE5BTUVfTEVOKjIrMiksMTYsNjQpKQorICAgICAgKG15 X2luaXRfZHluYW1pY19hcnJheSgmdGFibGVzNHJlcGFpciwgc2l6ZW9mKGNoYXIpKihOQU1FX0xF TioyKzIpLDE2LDY0KSB8fAorICAgICAgIG15X2luaXRfZHluYW1pY19hcnJheSgmdGFibGVzNHJl YnVpbGQsIHNpemVvZihjaGFyKSooTkFNRV9MRU4qMisyKSwxNiw2NCkpKQogICB7CiAgICAgZmly c3RfZXJyb3IgPSAxOwogICAgIGdvdG8gZW5kOwpAQCAtOTAwLDcgKzkzNyw3IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKICAgewogICAgIHVpbnQgaTsKIAotICAgIGlmICghb3B0 X3NpbGVudCAmJiB0YWJsZXM0cmVwYWlyLmVsZW1lbnRzKQorICAgIGlmICghb3B0X3NpbGVudCAm JiAodGFibGVzNHJlcGFpci5lbGVtZW50cyB8fCB0YWJsZXM0cmVidWlsZC5lbGVtZW50cykpCiAg ICAgICBwdXRzKCJcblJlcGFpcmluZyB0YWJsZXMiKTsKICAgICB3aGF0X3RvX2RvID0gRE9fUkVQ QUlSOwogICAgIGZvciAoaSA9IDA7IGkgPCB0YWJsZXM0cmVwYWlyLmVsZW1lbnRzIDsgaSsrKQpA QCAtOTA4LDExICs5NDUsMTYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAg ICAgY2hhciAqbmFtZT0gKGNoYXIqKSBkeW5hbWljX2FycmF5X3B0cigmdGFibGVzNHJlcGFpciwg aSk7CiAgICAgICBoYW5kbGVfcmVxdWVzdF9mb3JfdGFibGVzKG5hbWUsIGZpeGVkX25hbWVfbGVu Z3RoKG5hbWUpKTsKICAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IHRhYmxlczRyZWJ1aWxkLmVs ZW1lbnRzIDsgaSsrKQorICAgICAgcmVidWlsZF90YWJsZSgoY2hhciopIGR5bmFtaWNfYXJyYXlf cHRyKCZ0YWJsZXM0cmVidWlsZCwgaSkpOwogICB9CiAgZW5kOgogICBkYkRpc2Nvbm5lY3QoY3Vy cmVudF9ob3N0KTsKICAgaWYgKG9wdF9hdXRvX3JlcGFpcikKKyAgewogICAgIGRlbGV0ZV9keW5h bWljKCZ0YWJsZXM0cmVwYWlyKTsKKyAgICBkZWxldGVfZHluYW1pYygmdGFibGVzNHJlYnVpbGQp OworICB9CiAgIG15X2ZyZWUob3B0X3Bhc3N3b3JkKTsKICNpZmRlZiBIQVZFX1NNRU0KICAgbXlf ZnJlZShzaGFyZWRfbWVtb3J5X2Jhc2VfbmFtZSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC9yL215c3FsY2hlY2sucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvbXlzcWxjaGVjay5y ZXN1bHQJMjAxMC0xMi0xNyAxMToyODo1OSArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvbXlzcWxj aGVjay5yZXN1bHQJMjAxMS0wMy0wOCAwOToyMTozOSArMDAwMApAQCAtMTE3LDcgKzExNyw3IEBA IG15c3FsLnRpbWVfem9uZV9uYW1lCiBteXNxbC50aW1lX3pvbmVfdHJhbnNpdGlvbiAgICAgICAg ICAgICAgICAgICAgICAgICBUYWJsZSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUKIG15c3FsLnRpbWVf em9uZV90cmFuc2l0aW9uX3R5cGUgICAgICAgICAgICAgICAgICAgIFRhYmxlIGlzIGFscmVhZHkg dXAgdG8gZGF0ZQogbXlzcWwudXNlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGFibGUgaXMgYWxyZWFkeSB1cCB0byBkYXRlCi1jcmVhdGUgdGFibGUgdDEgKGEgaW50 KTsKK2NyZWF0ZSB0YWJsZSB0MSAoYSBpbnQpIGVuZ2luZT1teWlzYW07CiBjcmVhdGUgdmlldyB2 MSBhcyBzZWxlY3QgKiBmcm9tIHQxOwogdGVzdC50MSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT0sKIHRlc3QudDEgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlIGlzIGFscmVhZHkgdXAgdG8gZGF0ZQpAQCAtMTI1LDE0ICsx MjUsMTQgQEAgdGVzdC50MQogdGVzdC50MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgaXMgYWxyZWFkeSB1cCB0byBkYXRlCiBkcm9wIHZpZXcgdjE7CiBk cm9wIHRhYmxlIHQxOwotY3JlYXRlIHRhYmxlIGB0YGAxYChhIGludCk7Ci1jcmVhdGUgdGFibGUg YHQgMWAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGB0YGAxYChhIGludCkgZW5naW5lPW15aXNhbTsK K2NyZWF0ZSB0YWJsZSBgdCAxYChhIGludCkgZW5naW5lPW15aXNhbTsKIHRlc3QudCAxICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9LCiB0ZXN0LnRgMSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPSwogZHJvcCB0YWJsZSBgdGBgMWAs IGB0IDFgOwogY3JlYXRlIGRhdGFiYXNlIGRfYnVnMjUzNDc7CiB1c2UgZF9idWcyNTM0NzsKLWNy ZWF0ZSB0YWJsZSB0X2J1ZzI1MzQ3IChhIGludCk7CitjcmVhdGUgdGFibGUgdF9idWcyNTM0NyAo YSBpbnQpIGVuZ2luZT1teWlzYW07CiBjcmVhdGUgdmlldyB2X2J1ZzI1MzQ3IGFzIHNlbGVjdCAq IGZyb20gdF9idWcyNTM0NzsKIGluc2VydCBpbnRvIHRfYnVnMjUzNDcgdmFsdWVzICgxKSwoMiks KDMpOwogZmx1c2ggdGFibGVzOwpAQCAtMTcyLDE1ICsxNzIsMTUgQEAgVGFibGUJT3AJTXNnX3R5 cGUJTXNnX3RleHQKIHRlc3QudjEJY2hlY2sJc3RhdHVzCU9LCiBpbmZvcm1hdGlvbl9zY2hlbWEu cm91dGluZXMJY2hlY2sJbm90ZQlUaGUgc3RvcmFnZSBlbmdpbmUgZm9yIHRoZSB0YWJsZSBkb2Vz bid0IHN1cHBvcnQgY2hlY2sKIGRyb3AgdmlldyB2MTsKLUNSRUFURSBUQUJMRSB0MShhIElOVCk7 Ci1DUkVBVEUgVEFCTEUgdDIoYSBJTlQpOworQ1JFQVRFIFRBQkxFIHQxKGEgSU5UKSBlbmdpbmU9 bXlpc2FtOworQ1JFQVRFIFRBQkxFIHQyKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogdGVzdC50MQog RXJyb3IgICAgOiBJbmNvcnJlY3QgaW5mb3JtYXRpb24gaW4gZmlsZTogJy4vdGVzdC90MS5mcm0n CiBlcnJvciAgICA6IENvcnJ1cHQKIHRlc3QudDIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9LCiBEUk9QIFRBQkxFIHQxLCB0MjsKIEVuZCBvZiA1LjAgdGVzdHMK LWNyZWF0ZSB0YWJsZSB0MShhIGludCk7CitjcmVhdGUgdGFibGUgdDEoYSBpbnQpIGVuZ2luZT1t eWlzYW07CiBjcmVhdGUgdmlldyB2MSBhcyBzZWxlY3QgKiBmcm9tIHQxOwogc2hvdyB0YWJsZXM7 CiBUYWJsZXNfaW5fdGVzdApAQCAtMjAwLDcgKzIwMCw3IEBAIHYtMQogZHJvcCB2aWV3IHYxLCBg di0xYDsKIGRyb3AgdGFibGUgdDE7CiBTRVQgTkFNRVMgdXRmODsKLUNSRUFURSBUQUJMRSBgI215 c3FsNTAjQGAgKGEgSU5UKTsKK0NSRUFURSBUQUJMRSBgI215c3FsNTAjQGAgKGEgSU5UKSBlbmdp bmU9bXlpc2FtOwogU0hPVyBUQUJMRVM7CiBUYWJsZXNfaW5fdGVzdAogI215c3FsNTAjQApAQCAt MjExLDcgKzIxMSw3IEBAIFNIT1cgVEFCTEVTOwogVGFibGVzX2luX3Rlc3QKIEAKIERST1AgVEFC TEUgYEBgOwotQ1JFQVRFIFRBQkxFIGDRj2AgKGEgSU5UKTsKK0NSRUFURSBUQUJMRSBg0Y9gIChh IElOVCkgZW5naW5lPW15aXNhbTsKIFNFVCBOQU1FUyBERUZBVUxUOwogbXlzcWxjaGVjayAtLWRl ZmF1bHQtY2hhcmFjdGVyLXNldD0ibGF0aW4xIiAtLWRhdGFiYXNlcyB0ZXN0CiB0ZXN0Lj8KQEAg LTIyNCw4ICsyMjQsOCBAQCBEUk9QIFRBQkxFIGDRj2A7CiBTRVQgTkFNRVMgREVGQVVMVDsKIENS RUFURSBEQVRBQkFTRSBgI215c3FsNTAjYUBiYDsKIFVTRSBgI215c3FsNTAjYUBiYDsKLUNSRUFU RSBUQUJMRSBgI215c3FsNTAjY0BkYCAoYSBJTlQpOwotQ1JFQVRFIFRBQkxFIHQxIChhIElOVCk7 CitDUkVBVEUgVEFCTEUgYCNteXNxbDUwI2NAZGAgKGEgSU5UKSBlbmdpbmU9bXlpc2FtOworQ1JF QVRFIFRBQkxFIHQxIChhIElOVCkgZW5naW5lPW15aXNhbTsKIFNFTEVDVCAqIEZST00gSU5GT1JN QVRJT05fU0NIRU1BLlRSSUdHRVJTCiBXSEVSRSBUUklHR0VSX1NDSEVNQT0iI215c3FsNTAjYUBi IiBPUkRFUiBCWSB0cmlnZ2VyX25hbWU7CiBUUklHR0VSX0NBVEFMT0cJVFJJR0dFUl9TQ0hFTUEJ VFJJR0dFUl9OQU1FCUVWRU5UX01BTklQVUxBVElPTglFVkVOVF9PQkpFQ1RfQ0FUQUxPRwlFVkVO VF9PQkpFQ1RfU0NIRU1BCUVWRU5UX09CSkVDVF9UQUJMRQlBQ1RJT05fT1JERVIJQUNUSU9OX0NP TkRJVElPTglBQ1RJT05fU1RBVEVNRU5UCUFDVElPTl9PUklFTlRBVElPTglBQ1RJT05fVElNSU5H CUFDVElPTl9SRUZFUkVOQ0VfT0xEX1RBQkxFCUFDVElPTl9SRUZFUkVOQ0VfTkVXX1RBQkxFCUFD VElPTl9SRUZFUkVOQ0VfT0xEX1JPVwlBQ1RJT05fUkVGRVJFTkNFX05FV19ST1cJQ1JFQVRFRAlT UUxfTU9ERQlERUZJTkVSCUNIQVJBQ1RFUl9TRVRfQ0xJRU5UCUNPTExBVElPTl9DT05ORUNUSU9O CURBVEFCQVNFX0NPTExBVElPTgpAQCAtMjU0LDEyICsyNTQsMTIgQEAgVVNFIHRlc3Q7CiAjIEJ1 ZyAjMzE4MjE6IC0tYWxsLWluLTEgYW5kIC0tZml4LXRhYmxlLW5hbWVzIGRvbid0IHdvcmsgdG9n ZXRoZXIKICMKIGRyb3AgdGFibGUgaWYgZXhpc3RzIGAjbXlzcWw1MCN0MS0xYDsKLWNyZWF0ZSB0 YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEt MWAgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogc2hvdyB0YWJsZXMgbGlrZSAndDEtMSc7CiBUYWJs ZXNfaW5fdGVzdCAodDEtMSkKIHQxLTEKIGRyb3AgdGFibGUgYHQxLTFgOwotY3JlYXRlIHRhYmxl IGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAo YSBpbnQpIGVuZ2luZT1teWlzYW07CiBzaG93IHRhYmxlcyBsaWtlICd0MS0xJzsKIFRhYmxlc19p bl90ZXN0ICh0MS0xKQogdDEtMQpAQCAtMjY4LDMgKzI2OCw2NyBAQCBFbmQgb2YgNS4xIHRlc3Rz CiAjCiAjIEJ1ZyAjMzUyNjk6IG15c3FsY2hlY2sgYmVoYXZlcyBkaWZmZXJlbnQgZGVwZW5kaW5n IG9uIG9yZGVyIG9mIHBhcmFtZXRlcnMKICMKKyMKKyMgQnVnIzExNzU1NDMxIDQ3MjA1OiBNQVAg J1JFUEFJUiBUQUJMRScgVE8gUkVDUkVBVEUgK0FOQUxZWkUgRk9SCisjICAgICAgICAgICAgICBF TkdJTkVTIE5PVCBTVVBQT1JUSU5HIE5BVElWRQorIworRFJPUCBUQUJMRSBJRiBFWElTVFMgYnVn NDcyMDU7CisjCisjIFRlc3QgMTogQ2hlY2sgdGhhdCBBTFRFUiBUQUJMRSAuLi4gcmVidWlsZHMg dGhlIHRhYmxlCitDUkVBVEUgVEFCTEUgYnVnNDcyMDUoYSBWQVJDSEFSKDIwKSBQUklNQVJZIEtF WSkKK0RFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9nZW5lcmFsX2NpIGVu Z2luZT1pbm5vZGI7CitJTlNFUlQgSU5UTyBidWc0NzIwNSBWQUxVRVMgKCJmb29iYXIiKTsKK0ZM VVNIIFRBQkxFIGJ1ZzQ3MjA1OworIyBSZXBsYWNlIHRoZSBGUk0gd2l0aCBhIDUuMCBGUk0gdGhh dCB3aWxsIHJlcXVpcmUgdXBncmFkZQorIyBTaG91bGQgaW5kaWNhdGUgdGhhdCBBTFRFUiBUQUJM RSAuLi4gRk9SQ0UgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsK K1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3MjA1CWNoZWNrCWVycm9yCVRh YmxlIHJlYnVpbGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYGJ1ZzQ3MjA1YCBG T1JDRSIgb3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQorIyBBTFRFUiBUQUJMRSAuLi4gRk9SQ0Ug c2hvdWxkIHJlYnVpbGQgdGhlIHRhYmxlCisjIGFuZCB0aGVyZWZvcmUgb3V0cHV0ICJhZmZlY3Rl ZCByb3dzOiAxIgorQUxURVIgVEFCTEUgYnVnNDcyMDUgRk9SQ0U7CithZmZlY3RlZCByb3dzOiAx CitpbmZvOiBSZWNvcmRzOiAxICBEdXBsaWNhdGVzOiAwICBXYXJuaW5nczogMAorIyBUYWJsZSBz aG91bGQgbm93IGJlIG9rCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxl CU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3MjA1CWNoZWNrCXN0YXR1cwlPSworRFJP UCBUQUJMRSBidWc0NzIwNTsKKyMKKyMgVGVzdCAyOiBJbm5vREIgLSBSRVBBSVIgbm90IHN1cHBv cnRlZAorQ1JFQVRFIFRBQkxFIGJ1ZzQ3MjA1KGEgVkFSQ0hBUigyMCkgUFJJTUFSWSBLRVkpCitE RUZBVUxUIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBlbmdpbmU9 aW5ub2RiOworRkxVU0ggVEFCTEUgYnVnNDcyMDU7CisjIFJlcGxhY2UgdGhlIEZSTSB3aXRoIGEg NS4wIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRlCisjIFNob3VsZCBpbmRpY2F0ZSB0aGF0 IEFMVEVSIFRBQkxFIC4uIEZPUkNFIGlzIG5lZWRlZAorQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9S IFVQR1JBREU7CitUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc0NzIwNQljaGVj awllcnJvcglUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIGBi dWc0NzIwNWAgRk9SQ0UiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEKKyMgUnVubmluZyBteXNx bGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCit0ZXN0LmJ1ZzQ3MjA1CitlcnJvciAgICA6IFRh YmxlIHJlYnVpbGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYGJ1ZzQ3MjA1YCBG T1JDRSIgb3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQorCitSZXBhaXJpbmcgdGFibGVzCisjIFRh YmxlIHNob3VsZCBub3cgYmUgb2sKK0NIRUNLIFRBQkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOwor VGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3QuYnVnNDcyMDUJY2hlY2sJc3RhdHVzCU9L CitEUk9QIFRBQkxFIGJ1ZzQ3MjA1OworIworIyBUZXN0IDM6IE15SVNBTSAtIFJFUEFJUiBzdXBw b3J0ZWQKKyMgVXNlIGFuIG9sZCBGUk0gdGhhdCB3aWxsIHJlcXVpcmUgdXBncmFkZQorIyBTaG91 bGQgaW5kaWNhdGUgdGhhdCBSRVBBSVIgVEFCTEUgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0 NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3 MjA1CWNoZWNrCWVycm9yCVRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkbyAiUkVQQUlS IFRBQkxFIGBidWc0NzIwNWAiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEKKyMgUnVubmluZyBt eXNxbGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCit0ZXN0LmJ1ZzQ3MjA1CitlcnJvciAgICA6 IFRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBkbyAiUkVQQUlSIFRBQkxFIGBidWc0NzIw NWAiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEKKworUmVwYWlyaW5nIHRhYmxlcwordGVzdC5i dWc0NzIwNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0sKKyMgVGFibGUg c2hvdWxkIG5vdyBiZSBvaworQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CitUYWJs ZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc0NzIwNQljaGVjawlzdGF0dXMJT0sKK0RS T1AgVEFCTEUgYnVnNDcyMDU7Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdGRfZGF0YS9i dWc0NzIwNS5mcm0nCkJpbmFyeSBmaWxlcyBhL215c3FsLXRlc3Qvc3RkX2RhdGEvYnVnNDcyMDUu ZnJtCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAgYW5kIGIvbXlzcWwtdGVzdC9zdGRfZGF0YS9i dWc0NzIwNS5mcm0JMjAxMS0wMy0wOCAwODo0MTo1NyArMDAwMCBkaWZmZXIKCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L3QvbXlzcWxjaGVjay50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3Qv bXlzcWxjaGVjay50ZXN0CTIwMTAtMTAtMjUgMTM6NDk6NTUgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC90L215c3FsY2hlY2sudGVzdAkyMDExLTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC0yLDYgKzIs OCBAQAogIyBFbWJlZGRlZCBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0IGV4dGVybmFsIGNsaWVudHMK IC0tc291cmNlIGluY2x1ZGUvbm90X2VtYmVkZGVkLmluYwogCistLXNvdXJjZSBpbmNsdWRlL2hh dmVfaW5ub2RiLmluYworCiAjIGNoZWNrIHRoYXQgQ1NWIGVuZ2luZSB3YXMgY29tcGlsZWQgaW4s IGFzIHRoZSByZXN1bHQgb2YgdGhlIHRlc3QKICMgZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2Yg dGhlIGxvZyB0YWJsZXMgKHdoaWNoIGFyZSBDU1YtYmFzZWQpLgogLS1zb3VyY2UgaW5jbHVkZS9o YXZlX2Nzdi5pbmMKQEAgLTM0LDcgKzM2LDcgQEAgZHJvcCBkYXRhYmFzZSBpZiBleGlzdHMgY2xp ZW50X3Rlc3RfZGI7CiAjCiAjIEJ1ZyAjMTY1MDI6IG15c3FsY2hlY2sgdHJpZXMgdG8gY2hlY2sg dmlld3MKICMKLWNyZWF0ZSB0YWJsZSB0MSAoYSBpbnQpOworY3JlYXRlIHRhYmxlIHQxIChhIGlu dCkgZW5naW5lPW15aXNhbTsKIGNyZWF0ZSB2aWV3IHYxIGFzIHNlbGVjdCAqIGZyb20gdDE7CiAt LXJlcGxhY2VfcmVzdWx0ICdUYWJsZSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUnIE9LCiAtLWV4ZWMg JE1ZU1FMX0NIRUNLIC0tYW5hbHl6ZSAtLWRhdGFiYXNlcyB0ZXN0CkBAIC00OCw4ICs1MCw4IEBA IGRyb3AgdGFibGUgdDE7CiAjCiAjIEJ1ZyAjMzA2NTQ6IG15c3FsY2hlY2sgZmFpbHMgZHVyaW5n IHVwZ3JhZGUgb2YgdGFibGVzIHdob3NlIG5hbWVzIGluY2x1ZGUgYmFja3RpY2tzCiAjCi1jcmVh dGUgdGFibGUgYHRgYDFgKGEgaW50KTsKLWNyZWF0ZSB0YWJsZSBgdCAxYChhIGludCk7CitjcmVh dGUgdGFibGUgYHRgYDFgKGEgaW50KSBlbmdpbmU9bXlpc2FtOworY3JlYXRlIHRhYmxlIGB0IDFg KGEgaW50KSBlbmdpbmU9bXlpc2FtOwogLS1yZXBsYWNlX3Jlc3VsdCAnVGFibGUgaXMgYWxyZWFk eSB1cCB0byBkYXRlJyBPSwogLS1leGVjICRNWVNRTF9DSEVDSyAtLWRhdGFiYXNlcyB0ZXN0CiBk cm9wIHRhYmxlIGB0YGAxYCwgYHQgMWA7CkBAIC01OSw3ICs2MSw3IEBAIGRyb3AgdGFibGUgYHRg YDFgLCBgdCAxYDsKICMKIGNyZWF0ZSBkYXRhYmFzZSBkX2J1ZzI1MzQ3OwogdXNlIGRfYnVnMjUz NDc7Ci1jcmVhdGUgdGFibGUgdF9idWcyNTM0NyAoYSBpbnQpOworY3JlYXRlIHRhYmxlIHRfYnVn MjUzNDcgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogY3JlYXRlIHZpZXcgdl9idWcyNTM0NyBhcyBz ZWxlY3QgKiBmcm9tIHRfYnVnMjUzNDc7CiBpbnNlcnQgaW50byB0X2J1ZzI1MzQ3IHZhbHVlcyAo MSksKDIpLCgzKTsKIGZsdXNoIHRhYmxlczsKQEAgLTkxLDggKzkzLDggQEAgZHJvcCB2aWV3IHYx OwogIyBCdWcjMzc1Mjc6IG15c3FsY2hlY2sgZmFpbHMgdG8gcmVwb3J0IGVudGlyZSBkYXRhYmFz ZSAKICMgd2hlbiBmcm0gZmlsZSBjb3JydXB0aW9uCiAjCi1DUkVBVEUgVEFCTEUgdDEoYSBJTlQp OwotQ1JFQVRFIFRBQkxFIHQyKGEgSU5UKTsKK0NSRUFURSBUQUJMRSB0MShhIElOVCkgZW5naW5l PW15aXNhbTsKK0NSRUFURSBUQUJMRSB0MihhIElOVCkgZW5naW5lPW15aXNhbTsKICMgYmFja3Vw IHRoZW4gbnVsbCB0MS5mcm0KIC0tY29weV9maWxlICRNWVNRTERfREFUQURJUi90ZXN0L3QxLmZy bSAkTVlTUUxEX0RBVEFESVIvdGVzdC90MS5mcm0uYmFrCiAtLXJlbW92ZV9maWxlICRNWVNRTERf REFUQURJUi90ZXN0L3QxLmZybQpAQCAtMTEyLDcgKzExNCw3IEBAIERST1AgVEFCTEUgdDEsIHQy OwogIwogIyBCdWcgIzMwNjc5OiA1LjEgbmFtZSBlbmNvZGluZyBub3QgcGVyZm9ybWVkIGZvciB2 aWV3cyBkdXJpbmcgdXBncmFkZQogIwotY3JlYXRlIHRhYmxlIHQxKGEgaW50KTsKK2NyZWF0ZSB0 YWJsZSB0MShhIGludCkgZW5naW5lPW15aXNhbTsKIGNyZWF0ZSB2aWV3IHYxIGFzIHNlbGVjdCAq IGZyb20gdDE7CiBzaG93IHRhYmxlczsKIGxldCAkTVlTUUxEX0RBVEFESVI9IGBzZWxlY3QgQEBk YXRhZGlyYDsKQEAgLTEzMSw3ICsxMzMsNyBAQCBkcm9wIHRhYmxlIHQxOwogIyAgICAgICAgICAg ICB0cmlnZ2VycwogIwogU0VUIE5BTUVTIHV0Zjg7Ci1DUkVBVEUgVEFCTEUgYCNteXNxbDUwI0Bg IChhIElOVCk7CitDUkVBVEUgVEFCTEUgYCNteXNxbDUwI0BgIChhIElOVCkgZW5naW5lPW15aXNh bTsKIFNIT1cgVEFCTEVTOwogU0VUIE5BTUVTIERFRkFVTFQ7CiAtLWVjaG8gbXlzcWxjaGVjayAt LWZpeC10YWJsZS1uYW1lcyAtLWRhdGFiYXNlcyB0ZXN0CkBAIC0xNDAsNyArMTQyLDcgQEAgU0VU IE5BTUVTIHV0Zjg7CiBTSE9XIFRBQkxFUzsKIERST1AgVEFCTEUgYEBgOwogCi1DUkVBVEUgVEFC TEUgYNGPYCAoYSBJTlQpOworQ1JFQVRFIFRBQkxFIGDRj2AgKGEgSU5UKSBlbmdpbmU9bXlpc2Ft OwogU0VUIE5BTUVTIERFRkFVTFQ7CiAtLWVjaG8gbXlzcWxjaGVjayAtLWRlZmF1bHQtY2hhcmFj dGVyLXNldD0ibGF0aW4xIiAtLWRhdGFiYXNlcyB0ZXN0CiAjIEVycm9yIHJldHVybmVkIGRlcGVu ZHMgb24gcGxhdGZvcm0sIHJlcGxhY2UgaXQgd2l0aCAiVGFibGUgZG9lc24ndCBleGlzdCIKQEAg LTE1NCw4ICsxNTYsOCBAQCBTRVQgTkFNRVMgREVGQVVMVDsKIAogQ1JFQVRFIERBVEFCQVNFIGAj bXlzcWw1MCNhQGJgOwogVVNFIGAjbXlzcWw1MCNhQGJgOwotQ1JFQVRFIFRBQkxFIGAjbXlzcWw1 MCNjQGRgIChhIElOVCk7Ci1DUkVBVEUgVEFCTEUgdDEgKGEgSU5UKTsKK0NSRUFURSBUQUJMRSBg I215c3FsNTAjY0BkYCAoYSBJTlQpIGVuZ2luZT1teWlzYW07CitDUkVBVEUgVEFCTEUgdDEgKGEg SU5UKSBlbmdpbmU9bXlpc2FtOwogCiAjIENyZWF0ZSA1LjAgbGlrZSB0cmlnZ2VycwogbGV0ICRN WVNRTFRFU1RfVkFSRElSPSBgc2VsZWN0IEBAZGF0YWRpcmA7CkBAIC0yMDcsMTIgKzIwOSwxMiBA QCBVU0UgdGVzdDsKIGRyb3AgdGFibGUgaWYgZXhpc3RzIGAjbXlzcWw1MCN0MS0xYDsKIC0tZW5h YmxlX3dhcm5pbmdzCiAKLWNyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KTsKK2Ny ZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogLS1leGVj ICRNWVNRTF9DSEVDSyAtLWFsbC1pbi0xIC0tZml4LXRhYmxlLW5hbWVzIC0tZGF0YWJhc2VzIHRl c3QKIHNob3cgdGFibGVzIGxpa2UgJ3QxLTEnOwogZHJvcCB0YWJsZSBgdDEtMWA7CiAKLWNyZWF0 ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSBgI215c3FsNTAj dDEtMWAgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogLS1leGVjICRNWVNRTF9DSEVDSyAtLWFsbC1p bi0xIC0tZml4LXRhYmxlLW5hbWVzIHRlc3QgIiNteXNxbDUwI3QxLTEiCiBzaG93IHRhYmxlcyBs aWtlICd0MS0xJzsKIGRyb3AgdGFibGUgYHQxLTFgOwpAQCAtMjM0LDMgKzIzNiw4MyBAQCBkcm9w IHRhYmxlIGB0MS0xYDsKIC0tZXJyb3IgMQogLS1leGVjICRNWVNRTF9DSEVDSyAtYW9jIHRlc3Qg IiNteXNxbDUwI3QxLTEiCiAKKworLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMTc1NTQzMSA0NzIw NTogTUFQICdSRVBBSVIgVEFCTEUnIFRPIFJFQ1JFQVRFICtBTkFMWVpFIEZPUgorLS1lY2hvICMg ICAgICAgICAgICAgIEVOR0lORVMgTk9UIFNVUFBPUlRJTkcgTkFUSVZFCistLWVjaG8gIworCist LWRpc2FibGVfd2FybmluZ3MKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGJ1ZzQ3MjA1OworLS1lbmFi bGVfd2FybmluZ3MKKworLS1lY2hvICMKKy0tZWNobyAjIFRlc3QgMTogQ2hlY2sgdGhhdCBBTFRF UiBUQUJMRSAuLi4gcmVidWlsZHMgdGhlIHRhYmxlCisKK0NSRUFURSBUQUJMRSBidWc0NzIwNShh IFZBUkNIQVIoMjApIFBSSU1BUlkgS0VZKQorICBERUZBVUxUIENIQVJBQ1RFUiBTRVQgdXRmOCBD T0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBlbmdpbmU9aW5ub2RiOworCitJTlNFUlQgSU5UTyBidWc0 NzIwNSBWQUxVRVMgKCJmb29iYXIiKTsKK0ZMVVNIIFRBQkxFIGJ1ZzQ3MjA1OworCistLWVjaG8g IyBSZXBsYWNlIHRoZSBGUk0gd2l0aCBhIDUuMCBGUk0gdGhhdCB3aWxsIHJlcXVpcmUgdXBncmFk ZQorbGV0ICRNWVNRTERfREFUQURJUj0gYHNlbGVjdCBAQGRhdGFkaXJgOworLS1yZW1vdmVfZmls ZSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5mcm0KKy0tY29weV9maWxlIHN0ZF9kYXRh L2J1ZzQ3MjA1LmZybSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5mcm0KKworLS1lY2hv ICMgU2hvdWxkIGluZGljYXRlIHRoYXQgQUxURVIgVEFCTEUgLi4uIEZPUkNFIGlzIG5lZWRlZAor Q0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CisKKy0tZWNobyAjIEFMVEVSIFRBQkxF IC4uLiBGT1JDRSBzaG91bGQgcmVidWlsZCB0aGUgdGFibGUKKy0tZWNobyAjIGFuZCB0aGVyZWZv cmUgb3V0cHV0ICJhZmZlY3RlZCByb3dzOiAxIgorLS1lbmFibGVfaW5mbworQUxURVIgVEFCTEUg YnVnNDcyMDUgRk9SQ0U7CistLWRpc2FibGVfaW5mbworCistLWVjaG8gIyBUYWJsZSBzaG91bGQg bm93IGJlIG9rCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKKworRFJPUCBUQUJM RSBidWc0NzIwNTsKKworLS1lY2hvICMKKy0tZWNobyAjIFRlc3QgMjogSW5ub0RCIC0gUkVQQUlS IG5vdCBzdXBwb3J0ZWQKKworQ1JFQVRFIFRBQkxFIGJ1ZzQ3MjA1KGEgVkFSQ0hBUigyMCkgUFJJ TUFSWSBLRVkpCisgIERFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9nZW5l cmFsX2NpIGVuZ2luZT1pbm5vZGI7CisKK0ZMVVNIIFRBQkxFIGJ1ZzQ3MjA1OworCistLWVjaG8g IyBSZXBsYWNlIHRoZSBGUk0gd2l0aCBhIDUuMCBGUk0gdGhhdCB3aWxsIHJlcXVpcmUgdXBncmFk ZQorbGV0ICRNWVNRTERfREFUQURJUj0gYHNlbGVjdCBAQGRhdGFkaXJgOworLS1yZW1vdmVfZmls ZSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5mcm0KKy0tY29weV9maWxlIHN0ZF9kYXRh L2J1ZzQ3MjA1LmZybSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5mcm0KKworLS1lY2hv ICMgU2hvdWxkIGluZGljYXRlIHRoYXQgQUxURVIgVEFCTEUgLi4gRk9SQ0UgaXMgbmVlZGVkCitD SEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKKworLS1lY2hvICMgUnVubmluZyBteXNx bGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCistLWV4ZWMgJE1ZU1FMX0NIRUNLIC0tY2hlY2st dXBncmFkZSAtLWF1dG8tcmVwYWlyIHRlc3QKKworLS1lY2hvICMgVGFibGUgc2hvdWxkIG5vdyBi ZSBvaworQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CisKK0RST1AgVEFCTEUgYnVn NDcyMDU7CisKKy0tZWNobyAjCistLWVjaG8gIyBUZXN0IDM6IE15SVNBTSAtIFJFUEFJUiBzdXBw b3J0ZWQKKworLS1lY2hvICMgVXNlIGFuIG9sZCBGUk0gdGhhdCB3aWxsIHJlcXVpcmUgdXBncmFk ZQorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnMzYwNTUuZnJtICRNWVNRTERfREFUQURJUi90ZXN0 L2J1ZzQ3MjA1LmZybQorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnMzYwNTUuTVlEICRNWVNRTERf REFUQURJUi90ZXN0L2J1ZzQ3MjA1Lk1ZRAorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnMzYwNTUu TVlJICRNWVNRTERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1Lk1ZSQorCistLWVjaG8gIyBTaG91bGQg aW5kaWNhdGUgdGhhdCBSRVBBSVIgVEFCTEUgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIw NSBGT1IgVVBHUkFERTsKKworLS1lY2hvICMgUnVubmluZyBteXNxbGNoZWNrIHRvIGNoZWNrIGFu ZCB1cGdyYWRlCistLWV4ZWMgJE1ZU1FMX0NIRUNLIC0tY2hlY2stdXBncmFkZSAtLWF1dG8tcmVw YWlyIHRlc3QKKworLS1lY2hvICMgVGFibGUgc2hvdWxkIG5vdyBiZSBvaworQ0hFQ0sgVEFCTEUg YnVnNDcyMDUgRk9SIFVQR1JBREU7CisKK0RST1AgVEFCTEUgYnVnNDcyMDU7Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3FsL2hhbmRsZXIuY2MnCi0tLSBhL3NxbC9oYW5kbGVyLmNjCTIwMTEtMDMtMDEg MTQ6NDc6MDEgKzAwMDAKKysrIGIvc3FsL2hhbmRsZXIuY2MJMjAxMS0wMy0wOCAwOToyMTozOSAr MDAwMApAQCAtMzQzMSw5ICszNDMxLDEzIEBAIGludCBoYW5kbGVyOjpoYV9yZXBhaXIoVEhEKiB0 aGQsIEhBX0NIRUMKICAgaW50IHJlc3VsdDsKICAgbWFya190cnhfcmVhZF93cml0ZSgpOwogCi0g IGlmICgocmVzdWx0PSByZXBhaXIodGhkLCBjaGVja19vcHQpKSkKLSAgICByZXR1cm4gcmVzdWx0 OwotICByZXR1cm4gdXBkYXRlX2ZybV92ZXJzaW9uKHRhYmxlKTsKKyAgcmVzdWx0PSByZXBhaXIo dGhkLCBjaGVja19vcHQpOworICBEQlVHX0FTU0VSVChyZXN1bHQgPT0gSEFfQURNSU5fTk9UX0lN UExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGhhX3RhYmxlX2ZsYWdzKCkgJiBIQV9DQU5fUkVQ QUlSKTsKKworICBpZiAocmVzdWx0ID09IEhBX0FETUlOX09LKQorICAgIHJlc3VsdD0gdXBkYXRl X2ZybV92ZXJzaW9uKHRhYmxlKTsKKyAgcmV0dXJuIHJlc3VsdDsKIH0KIAogCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3FsL2hhbmRsZXIuaCcKLS0tIGEvc3FsL2hhbmRsZXIuaAkyMDExLTAyLTAyIDIy OjAyOjI5ICswMDAwCisrKyBiL3NxbC9oYW5kbGVyLmgJMjAxMS0wMy0wOCAwOToyMTozOSArMDAw MApAQCAtMTUzLDYgKzE1MywxMiBAQAogICAgIG9yZGVyZWQuCiAqLwogI2RlZmluZSBIQV9EVVBM SUNBVEVfS0VZX05PVF9JTl9PUkRFUiAgICAoTEwoMSkgPDwgMzYpCisvKgorICBFbmdpbmUgc3Vw cG9ydHMgUkVQQUlSIFRBQkxFLiBVc2VkIGJ5IENIRUNLIFRBQkxFIEZPUiBVUEdSQURFIGlmIGFu CisgIGluY29tcGF0aWJsZSB0YWJsZSBpcyBkZXRlY3RlZC4gSWYgdGhpcyBmbGFnIGlzIHNldCwg Q0hFQ0sgVEFCTEUgRk9SIFVQR1JBREUKKyAgd2lsbCByZXBvcnQgRVJfVEFCTEVfTkVFRFNfVVBH UkFERSwgb3RoZXJ3aXNlIEVSX1RBQkxFX05FRURfUkVCVUlMRC4KKyovCisjZGVmaW5lIEhBX0NB Tl9SRVBBSVIgICAgICAgICAgICAgICAgICAgIChMTCgxKSA8PCAzNykKIAogLyoKICAgU2V0IG9m IGFsbCBiaW5sb2cgZmxhZ3MuIEN1cnJlbnRseSBvbmx5IGNvbnRhaW4gdGhlIGNhcGFiaWxpdGll cwpAQCAtMjMzNyw3ICsyMzQzLDEwIEBAIHByaXZhdGU6CiAgICAgIHVwb24gdGhlIHRhYmxlLgog ICAqLwogICB2aXJ0dWFsIGludCByZXBhaXIoVEhEKiB0aGQsIEhBX0NIRUNLX09QVCogY2hlY2tf b3B0KQotICB7IHJldHVybiBIQV9BRE1JTl9OT1RfSU1QTEVNRU5URUQ7IH0KKyAgeworICAgIERC VUdfQVNTRVJUKCEoaGFfdGFibGVfZmxhZ3MoKSAmIEhBX0NBTl9SRVBBSVIpKTsKKyAgICByZXR1 cm4gSEFfQURNSU5fTk9UX0lNUExFTUVOVEVEOworICB9CiAgIHZpcnR1YWwgdm9pZCBzdGFydF9i dWxrX2luc2VydChoYV9yb3dzIHJvd3MpIHt9CiAgIHZpcnR1YWwgaW50IGVuZF9idWxrX2luc2Vy dCgpIHsgcmV0dXJuIDA7IH0KIHByb3RlY3RlZDoKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hh cmUvZXJybXNnLXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CTIwMTEt MDItMjEgMTU6NTU6NTggKzAwMDAKKysrIGIvc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAkyMDEx LTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC02NDg3LDMgKzY0ODcsOCBAQCBFUl9OT19TVUNIX1BB UlRJVElPTgogICBzbG8gIlBhcnRpdGlvbiAnJS0uNjRzJyBkb2Vzbid0IGV4aXN0IgogICBzcGEg IlBhcnRpY2lvbiAnJS0uNjRzJyBubyBleGlzdGUiCiAgIHN3ZSAiRGV0IGZpbm5zIGluZ2VuIHBh cnRpdGlvbiBzb20gaGV0ZXIgJyUtLjY0cyciCisKKyMgV2hlbiB0cmFuc2xhdGluZyB0aGlzIGVy cm9yIG1lc3NhZ2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgIkFMVEVSIFRBQkxFIiBpbiB0aGUKKyMg bWVzc2FnZSBhcyBteXNxbGNoZWNrIHBhcnNlcyB0aGUgZXJyb3IgbWVzc2FnZSBsb29raW5nIGZv ciBBTFRFUiBUQUJMRS4KK0VSX1RBQkxFX05FRURTX1JFQlVJTEQKKyAgICAgICAgZW5nICJUYWJs ZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8gXCJBTFRFUiBUQUJMRSBgJS0uMzJzYCBGT1JD RVwiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEiCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3Nx bF9hZG1pbi5jYycKLS0tIGEvc3FsL3NxbF9hZG1pbi5jYwkyMDExLTAxLTEwIDEzOjI2OjEzICsw MDAwCisrKyBiL3NxbC9zcWxfYWRtaW4uY2MJMjAxMS0wMy0wOCAwOToyMTozOSArMDAwMApAQCAt Nzc3LDggKzc3NywxMiBAQCBzZW5kX3Jlc3VsdF9tZXNzYWdlOgogICAgICAgc2l6ZV90IGxlbmd0 aDsKIAogICAgICAgcHJvdG9jb2wtPnN0b3JlKFNUUklOR19XSVRIX0xFTigiZXJyb3IiKSwgc3lz dGVtX2NoYXJzZXRfaW5mbyk7Ci0gICAgICBsZW5ndGg9bXlfc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSwgRVIoRVJfVEFCTEVfTkVFRFNfVVBHUkFERSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGUtPnRhYmxlX25hbWUpOworICAgICAgaWYgKHRhYmxlLT50YWJsZS0+ZmlsZS0+aGFf dGFibGVfZmxhZ3MoKSAmIEhBX0NBTl9SRVBBSVIpCisgICAgICAgIGxlbmd0aD0gbXlfc25wcmlu dGYoYnVmLCBzaXplb2YoYnVmKSwgRVIoRVJfVEFCTEVfTkVFRFNfVVBHUkFERSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGFibGUtPnRhYmxlX25hbWUpOworICAgICAgZWxzZQorICAg ICAgICBsZW5ndGg9IG15X3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIEVSKEVSX1RBQkxFX05F RURTX1JFQlVJTEQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLT50YWJsZV9u YW1lKTsKICAgICAgIHByb3RvY29sLT5zdG9yZShidWYsIGxlbmd0aCwgc3lzdGVtX2NoYXJzZXRf aW5mbyk7CiAgICAgICBmYXRhbF9lcnJvcj0xOwogICAgICAgYnJlYWs7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL3NxbF9sZXguaCcKLS0tIGEvc3FsL3NxbF9sZXguaAkyMDExLTAzLTAxIDE0OjQ3 OjAxICswMDAwCisrKyBiL3NxbC9zcWxfbGV4LmgJMjAxMS0wMy0wOCAwOToyMTozOSArMDAwMApA QCAtODg5LDIxICs4ODksMjAgQEAgaW5saW5lIGJvb2wgc3Rfc2VsZWN0X2xleF91bml0Ojppc191 bmlvbgogI2RlZmluZSBBTFRFUl9DSEFOR0VfQ09MVU1OX0RFRkFVTFQgKDFMIDw8IDgpCiAjZGVm aW5lIEFMVEVSX0tFWVNfT05PRkYgICAgICAgICgxTCA8PCA5KQogI2RlZmluZSBBTFRFUl9DT05W RVJUICAgICAgICAgICAoMUwgPDwgMTApCi0jZGVmaW5lIEFMVEVSX0ZPUkNFCQkoMUwgPDwgMTEp Ci0jZGVmaW5lIEFMVEVSX1JFQ1JFQVRFICAgICAgICAgICgxTCA8PCAxMikKLSNkZWZpbmUgQUxU RVJfQUREX1BBUlRJVElPTiAgICAgKDFMIDw8IDEzKQotI2RlZmluZSBBTFRFUl9EUk9QX1BBUlRJ VElPTiAgICAoMUwgPDwgMTQpCi0jZGVmaW5lIEFMVEVSX0NPQUxFU0NFX1BBUlRJVElPTiAoMUwg PDwgMTUpCi0jZGVmaW5lIEFMVEVSX1JFT1JHQU5JWkVfUEFSVElUSU9OICgxTCA8PCAxNikgCi0j ZGVmaW5lIEFMVEVSX1BBUlRJVElPTiAgICAgICAgICAoMUwgPDwgMTcpCi0jZGVmaW5lIEFMVEVS X0FETUlOX1BBUlRJVElPTiAgICAoMUwgPDwgMTgpCi0jZGVmaW5lIEFMVEVSX1RBQkxFX1JFT1JH ICAgICAgICAoMUwgPDwgMTkpCi0jZGVmaW5lIEFMVEVSX1JFQlVJTERfUEFSVElUSU9OICAoMUwg PDwgMjApCi0jZGVmaW5lIEFMVEVSX0FMTF9QQVJUSVRJT04gICAgICAoMUwgPDwgMjEpCi0jZGVm aW5lIEFMVEVSX1JFTU9WRV9QQVJUSVRJT05JTkcgKDFMIDw8IDIyKQotI2RlZmluZSBBTFRFUl9G T1JFSUdOX0tFWSAgICAgICAgKDFMIDw8IDIzKQotI2RlZmluZSBBTFRFUl9FWENIQU5HRV9QQVJU SVRJT04gKDFMIDw8IDI0KQotI2RlZmluZSBBTFRFUl9UUlVOQ0FURV9QQVJUSVRJT04gKDFMIDw8 IDI1KQorI2RlZmluZSBBTFRFUl9SRUNSRUFURSAgICAgICAgICAoMUwgPDwgMTEpCisjZGVmaW5l IEFMVEVSX0FERF9QQVJUSVRJT04gICAgICgxTCA8PCAxMikKKyNkZWZpbmUgQUxURVJfRFJPUF9Q QVJUSVRJT04gICAgKDFMIDw8IDEzKQorI2RlZmluZSBBTFRFUl9DT0FMRVNDRV9QQVJUSVRJT04g KDFMIDw8IDE0KQorI2RlZmluZSBBTFRFUl9SRU9SR0FOSVpFX1BBUlRJVElPTiAoMUwgPDwgMTUp IAorI2RlZmluZSBBTFRFUl9QQVJUSVRJT04gICAgICAgICAgKDFMIDw8IDE2KQorI2RlZmluZSBB TFRFUl9BRE1JTl9QQVJUSVRJT04gICAgKDFMIDw8IDE3KQorI2RlZmluZSBBTFRFUl9UQUJMRV9S RU9SRyAgICAgICAgKDFMIDw8IDE4KQorI2RlZmluZSBBTFRFUl9SRUJVSUxEX1BBUlRJVElPTiAg KDFMIDw8IDE5KQorI2RlZmluZSBBTFRFUl9BTExfUEFSVElUSU9OICAgICAgKDFMIDw8IDIwKQor I2RlZmluZSBBTFRFUl9SRU1PVkVfUEFSVElUSU9OSU5HICgxTCA8PCAyMSkKKyNkZWZpbmUgQUxU RVJfRk9SRUlHTl9LRVkgICAgICAgICgxTCA8PCAyMikKKyNkZWZpbmUgQUxURVJfRVhDSEFOR0Vf UEFSVElUSU9OICgxTCA8PCAyMykKKyNkZWZpbmUgQUxURVJfVFJVTkNBVEVfUEFSVElUSU9OICgx TCA8PCAyNCkKIAogZW51bSBlbnVtX2FsdGVyX3RhYmxlX2NoYW5nZV9sZXZlbAogewoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NxbC9zcWxfeWFjYy55eScKLS0tIGEvc3FsL3NxbF95YWNjLnl5CTIwMTEt MDItMjEgMTE6MzQ6MTQgKzAwMDAKKysrIGIvc3FsL3NxbF95YWNjLnl5CTIwMTEtMDMtMDggMDk6 MjE6MzkgKzAwMDAKQEAgLTY4NjEsNyArNjg2MSw3IEBAIGFsdGVyX2xpc3RfaXRlbToKICAgICAg ICAgICB9CiAgICAgICAgIHwgRk9SQ0VfU1lNCiAgICAgICAgICAgewotICAgICAgICAgICAgTGV4 LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfRk9SQ0U7CisgICAgICAgICAgICBMZXgtPmFsdGVy X2luZm8uZmxhZ3N8PSBBTFRFUl9SRUNSRUFURTsKICAgICAgICAgICB9CiAgICAgICAgIHwgYWx0 ZXJfb3JkZXJfY2xhdXNlCiAgICAgICAgICAgewoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv YXJjaGl2ZS9oYV9hcmNoaXZlLmgnCi0tLSBhL3N0b3JhZ2UvYXJjaGl2ZS9oYV9hcmNoaXZlLmgJ MjAxMC0xMC0wNyAxMjo0NzoxNSArMDAwMAorKysgYi9zdG9yYWdlL2FyY2hpdmUvaGFfYXJjaGl2 ZS5oCTIwMTEtMDMtMDggMDk6MjE6MzkgKzAwMDAKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgog ICAgIHJldHVybiAoSEFfTk9fVFJBTlNBQ1RJT05TIHwgSEFfUkVDX05PVF9JTl9TRVEgfCBIQV9D QU5fQklUX0ZJRUxEIHwKICAgICAgICAgICAgIEhBX0JJTkxPR19ST1dfQ0FQQUJMRSB8IEhBX0JJ TkxPR19TVE1UX0NBUEFCTEUgfAogICAgICAgICAgICAgSEFfU1RBVFNfUkVDT1JEU19JU19FWEFD VCB8Ci0gICAgICAgICAgICBIQV9IQVNfUkVDT1JEUyB8CisgICAgICAgICAgICBIQV9IQVNfUkVD T1JEUyB8IEhBX0NBTl9SRVBBSVIgfAogICAgICAgICAgICAgSEFfRklMRV9CQVNFRCB8IEhBX0NB Tl9JTlNFUlRfREVMQVlFRCB8IEhBX0NBTl9HRU9NRVRSWSk7CiAgIH0KICAgdWxvbmcgaW5kZXhf ZmxhZ3ModWludCBpZHgsIHVpbnQgcGFydCwgYm9vbCBhbGxfcGFydHMpIGNvbnN0Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9jc3YvaGFfdGluYS5oJwotLS0gYS9zdG9yYWdlL2Nzdi9oYV90 aW5hLmgJMjAxMC0wNy0wOCAyMToyMDowOCArMDAwMAorKysgYi9zdG9yYWdlL2Nzdi9oYV90aW5h LmgJMjAxMS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtMTA2LDcgKzEwNiw4IEBAIHB1YmxpYzoK ICAgdWxvbmdsb25nIHRhYmxlX2ZsYWdzKCkgY29uc3QKICAgewogICAgIHJldHVybiAoSEFfTk9f VFJBTlNBQ1RJT05TIHwgSEFfUkVDX05PVF9JTl9TRVEgfCBIQV9OT19BVVRPX0lOQ1JFTUVOVCB8 Ci0gICAgICAgICAgICBIQV9CSU5MT0dfUk9XX0NBUEFCTEUgfCBIQV9CSU5MT0dfU1RNVF9DQVBB QkxFKTsKKyAgICAgICAgICAgIEhBX0JJTkxPR19ST1dfQ0FQQUJMRSB8IEhBX0JJTkxPR19TVE1U X0NBUEFCTEUgfAorICAgICAgICAgICAgSEFfQ0FOX1JFUEFJUik7CiAgIH0KICAgdWxvbmcgaW5k ZXhfZmxhZ3ModWludCBpZHgsIHVpbnQgcGFydCwgYm9vbCBhbGxfcGFydHMpIGNvbnN0CiAgIHsK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZlZGVyYXRlZC9oYV9mZWRlcmF0ZWQuaCcKLS0t IGEvc3RvcmFnZS9mZWRlcmF0ZWQvaGFfZmVkZXJhdGVkLmgJMjAxMC0xMC0wNiAxNDozNDoyOCAr MDAwMAorKysgYi9zdG9yYWdlL2ZlZGVyYXRlZC9oYV9mZWRlcmF0ZWQuaAkyMDExLTAzLTA4IDA4 OjQxOjU3ICswMDAwCkBAIC0xNDksNyArMTQ5LDggQEAgcHVibGljOgogICAgICAgICAgICAgSEFf QklOTE9HX1JPV19DQVBBQkxFIHwgSEFfQklOTE9HX1NUTVRfQ0FQQUJMRSB8CiAgICAgICAgICAg ICBIQV9OT19QUkVGSVhfQ0hBUl9LRVlTIHwgSEFfUFJJTUFSWV9LRVlfUkVRVUlSRURfRk9SX0RF TEVURSB8CiAgICAgICAgICAgICBIQV9OT19UUkFOU0FDVElPTlMgLyogdW50aWwgZml4ZWQgYnkg V0wjMjk1MiAqLyB8Ci0gICAgICAgICAgICBIQV9QQVJUSUFMX0NPTFVNTl9SRUFEIHwgSEFfTlVM TF9JTl9LRVkpOworICAgICAgICAgICAgSEFfUEFSVElBTF9DT0xVTU5fUkVBRCB8IEhBX05VTExf SU5fS0VZIHwKKyAgICAgICAgICAgIEhBX0NBTl9SRVBBSVIpOwogICB9CiAgIC8qCiAgICAgVGhp cyBpcyBhIGJpdG1hcCBvZiBmbGFncyB0aGF0IHNheXMgaG93IHRoZSBzdG9yYWdlIGVuZ2luZQoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvbXlpc2FtL2hhX215aXNhbS5jYycKLS0tIGEvc3Rv cmFnZS9teWlzYW0vaGFfbXlpc2FtLmNjCTIwMTEtMDEtMTMgMDc6MzM6MDMgKzAwMDAKKysrIGIv c3RvcmFnZS9teWlzYW0vaGFfbXlpc2FtLmNjCTIwMTEtMDMtMDggMDk6MjE6MzkgKzAwMDAKQEAg LTYzOSw3ICs2MzksNyBAQCBoYV9teWlzYW06OmhhX215aXNhbShoYW5kbGVydG9uICpodG9uLCBU CiAgICAgICAgICAgICAgICAgICBIQV9EVVBMSUNBVEVfUE9TIHwgSEFfQ0FOX0lOREVYX0JMT0JT IHwgSEFfQVVUT19QQVJUX0tFWSB8CiAgICAgICAgICAgICAgICAgICBIQV9GSUxFX0JBU0VEIHwg SEFfQ0FOX0dFT01FVFJZIHwgSEFfTk9fVFJBTlNBQ1RJT05TIHwKICAgICAgICAgICAgICAgICAg IEhBX0NBTl9JTlNFUlRfREVMQVlFRCB8IEhBX0NBTl9CSVRfRklFTEQgfCBIQV9DQU5fUlRSRUVL RVlTIHwKLSAgICAgICAgICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwgSEFfU1RBVFNfUkVDT1JE U19JU19FWEFDVCksCisgICAgICAgICAgICAgICAgICBIQV9IQVNfUkVDT1JEUyB8IEhBX1NUQVRT X1JFQ09SRFNfSVNfRVhBQ1QgfCBIQV9DQU5fUkVQQUlSKSwKICAgIGNhbl9lbmFibGVfaW5kZXhl cygxKQoge30KIAoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=