Re: No curses detected
Luis Pascual Forner <[email protected]> Wed, 22 Mar 2023 11:30:52 +0100
| Newsgroups | gmane.comp.lang.4gl.aubit.general |
|---|---|
| Organization | IVAL informática <http://www.ival.com> |
| Message-ID | <[email protected]> |
VGhpcyBpcyB0aGUgcGllY2Ugb2YgY29uZmlnLmxvZyByZWZlcnJpbmcgdG8gY3Vyc2VzIChpdCdz IGEgYml0IGxvbmcpOgoKY29uZmlndXJlOjMwNTYzOiByZXN1bHQ6IBtbMW1DaGVja2luZyBmb3Ig Y3Vyc2VzIGxpYnJhcmllczobW20KY29uZmlndXJlOjMwNjEwOiBjaGVja2luZyBmb3IgbWFpbiBp biAtbG5jdXJzZXMKY29uZmlndXJlOjMwNjMwOiBnY2MgLW8gY29uZnRlc3QgIC1nIC1PMiAgLUwv bGliICAtTC91c3IvbG9jYWwvbGliIAotTC91c3IvbGliIGNvbmZ0ZXN0LmMgLWxuY3Vyc2VzICAg PiY1Ci91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4veDg2XzY0 LXN1c2UtbGludXgvYmluL2xkOiAKc2tpcHBpbmcgaW5jb21wYXRpYmxlIC9saWIvbGlibmN1cnNl cy5zby42IHdoZW4gc2VhcmNoaW5nIGZvciAKL2xpYi9saWJuY3Vyc2VzLnNvLjYKL3Vzci9saWI2 NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9i aW4vbGQ6IApjYW5ub3QgZmluZCAvbGliL2xpYm5jdXJzZXMuc28uNjogZmlsZSBpbiB3cm9uZyBm b3JtYXQKL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZf NjQtc3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBpbmNvbXBhdGlibGUgL2xpYi9saWJuY3Vy c2VzLnNvLjYgd2hlbiBzZWFyY2hpbmcgZm9yIAovbGliL2xpYm5jdXJzZXMuc28uNgovdXNyL2xp YjY0L2djYy94ODZfNjQtc3VzZS1saW51eC83Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4 L2Jpbi9sZDogCnNraXBwaW5nIGluY29tcGF0aWJsZSAvdXNyL2xpYi9saWJ0aW5mby5zbyB3aGVu IHNlYXJjaGluZyBmb3IgLWx0aW5mbwovdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51eC83 Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCnNraXBwaW5nIGluY29tcGF0 aWJsZSAvdXNyL2xpYi9saWJ0aW5mby5hIHdoZW4gc2VhcmNoaW5nIGZvciAtbHRpbmZvCi91c3Iv bGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4veDg2XzY0LXN1c2UtbGlu dXgvYmluL2xkOiAKc2tpcHBpbmcgaW5jb21wYXRpYmxlIC9saWIvbGliZ2NjX3Muc28uMSB3aGVu IHNlYXJjaGluZyBmb3IgbGliZ2NjX3Muc28uMQpjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjMwNjMwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJB dWJpdDRnbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIiRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJBdWJpdDRnbCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3Jn ZS5uZXQiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0 Z2wiCnwgI2RlZmluZSBWRVJTSU9OICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwg I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZp bmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19USU1FX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExG Q05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQg MQp8ICNkZWZpbmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTRVhJVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFW RV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5l IFlZVEVYVF9QT0lOVEVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFW RV9JS1NFTUVMIDAKfCAjZGVmaW5lIEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0gg MQp8ICNkZWZpbmUgSEFWRV9MSUJQQ1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVm aW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwg I2RlZmluZSBIQVZFX1BERiAwCnwgI2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5l IEhBVkVfTElCU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBI QVZFX1NBUE9EQkMgMAp8ICNkZWZpbmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9E QkMgMQp8ICNkZWZpbmUgSEFWRV9TUUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAj ZGVmaW5lIEhBVkVfT0RCQ0lOU1RfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVm aW5lIEhBVkVfUEdPREJDIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUg SEFWRV9HVEtfVkVSU0lPTiAwCnwgI2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQ Q0dFTiAxCnwgI2RlZmluZSBIQVZFX1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 CnwKfCBpbnQKfCBtYWluICh2b2lkKQp8IHsKfCByZXR1cm4gbWFpbiAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjMwNjQwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMDY1MTog Y2hlY2tpbmcgZm9yIHdpbm5zdHIgaW4gLWxuY3Vyc2VzCmNvbmZpZ3VyZTozMDY3NDogZ2NjIC1v IGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwvdXNyL2xvY2FsL2xpYiAKLUwvdXNyL2xpYiBj b25mdGVzdC5jIC1sbmN1cnNlcyAgID4mNQovdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51 eC83Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCnNraXBwaW5nIGluY29t cGF0aWJsZSAvbGliL2xpYm5jdXJzZXMuc28uNiB3aGVuIHNlYXJjaGluZyBmb3IgCi9saWIvbGli bmN1cnNlcy5zby42Ci91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4v Li4veDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKY2Fubm90IGZpbmQgL2xpYi9saWJuY3Vyc2Vz LnNvLjY6IGZpbGUgaW4gd3JvbmcgZm9ybWF0Ci91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxp bnV4LzcvLi4vLi4vLi4vLi4veDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tpcHBpbmcgaW5j b21wYXRpYmxlIC9saWIvbGlibmN1cnNlcy5zby42IHdoZW4gc2VhcmNoaW5nIGZvciAKL2xpYi9s aWJuY3Vyc2VzLnNvLjYKL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8u Li8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBpbmNvbXBhdGlibGUgL3Vz ci9saWIvbGlidGluZm8uc28gd2hlbiBzZWFyY2hpbmcgZm9yIC1sdGluZm8KL3Vzci9saWI2NC9n Y2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4v bGQ6IApza2lwcGluZyBpbmNvbXBhdGlibGUgL3Vzci9saWIvbGlidGluZm8uYSB3aGVuIHNlYXJj aGluZyBmb3IgLWx0aW5mbwovdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51eC83Ly4uLy4u Ly4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCnNraXBwaW5nIGluY29tcGF0aWJsZSAv bGliL2xpYmdjY19zLnNvLjEgd2hlbiBzZWFyY2hpbmcgZm9yIGxpYmdjY19zLnNvLjEKY29sbGVj dDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTozMDY3NDogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkQVVCSVRfVkVSU0lPTi4kQVVC SVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiQXViaXQ0Z2wgJEFVQklUX1ZFUlNJ T04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImF1Yml0NGdsLWRp c2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAj ZGVmaW5lIFBBQ0tBR0UgIkF1Yml0NGdsIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS42LjEiCnwgI2Rl ZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8i CnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUg SEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU0VYSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9O RVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVU SU5FVF9UQ1BfSCAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCnwgI2RlZmluZSBIQVZFX1NF TkRNQUlMIDEKfCAjZGVmaW5lIEhBVkVfSUtTRU1FTCAwCnwgI2RlZmluZSBIQVZFX0xJQkdNUCAx CnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVfTElCUENSRSAxCnwgI2RlZmlu ZSBIQVZFX1BDUkVfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJ QlogMQp8ICNkZWZpbmUgSEFWRV9aTElCX0ggMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVm aW5lIEhBVkVfWkxJQl9ERUYgMQp8ICNkZWZpbmUgSEFWRV9QREYgMAp8ICNkZWZpbmUgSEFWRV9M SUJSRUFETElORSAxCnwgI2RlZmluZSBIQVZFX0xJQlNRTElURTMgMQp8ICNkZWZpbmUgSEFWRV9T UUxJVEUzX0ggMQp8ICNkZWZpbmUgSEFWRV9TQVBPREJDIDAKfCAjZGVmaW5lIEhBVkVfSU9EQkMg MAp8ICNkZWZpbmUgSEFWRV9MSUJPREJDIDEKfCAjZGVmaW5lIEhBVkVfU1FMX0ggMQp8ICNkZWZp bmUgSEFWRV9TUUxFWFRfSCAxCnwgI2RlZmluZSBIQVZFX09EQkNJTlNUX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklYT0RCQyAxCnwgI2RlZmluZSBIQVZFX1BHT0RCQyAwCnwgI2RlZmluZSBIQVZFX0dU S19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9H VEsgMAp8ICNkZWZpbmUgSEFWRV9SUENHRU4gMQp8ICNkZWZpbmUgSEFWRV9SUENMSUIgMAp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0 IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgY2hhciB3aW5uc3Ry ICgpOwp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8IHJldHVybiB3aW5uc3RyICgpOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzA2ODQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjMw Njk0OiBjaGVja2luZyBmb3Igd2lubnN0ciBpbiAtbGN1cnNlcwpjb25maWd1cmU6MzA3MTc6IGdj YyAtbyBjb25mdGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2NhbC9saWIgCi1ML3Vzci9s aWIgY29uZnRlc3QuYyAtbGN1cnNlcyAgID4mNQovdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1s aW51eC83Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCmNhbm5vdCBmaW5k IC1sY3Vyc2VzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci91c3IvbGliNjQvZ2NjL3g4Nl82 NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4veDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tp cHBpbmcgaW5jb21wYXRpYmxlIC9saWIvbGliZ2NjX3Muc28uMSB3aGVuIHNlYXJjaGluZyBmb3Ig bGliZ2NjX3Muc28uMQpjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMK Y29uZmlndXJlOjMwNzE3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJpdDRnbCIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IiRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJB dWJpdDRnbCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBW RVJTSU9OICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8 ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmlu ZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFW RV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTRVhJVFNf SCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9f SCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0gg MQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVS IDEKfCAjZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9JS1NFTUVMIDAKfCAj ZGVmaW5lIEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFW RV9MSUJQQ1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElCU1NM IDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfSCAxCnwgI2RlZmlu ZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2RlZmluZSBIQVZFX1BE RiAwCnwgI2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhBVkVfTElCU1FMSVRF MyAxCnwgI2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZFX1NBUE9EQkMgMAp8 ICNkZWZpbmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMgMQp8ICNkZWZpbmUg SEFWRV9TUUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVmaW5lIEhBVkVfT0RC Q0lOU1RfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5lIEhBVkVfUEdPREJD IDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lP TiAwCnwgI2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dFTiAxCnwgI2RlZmlu ZSBIQVZFX1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8CnwgLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KfCBjaGFyIHdpbm5zdHIgKCk7CnwgaW50CnwgbWFpbiAodm9pZCkKfCB7CnwgcmV0dXJu IHdpbm5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMDcyNzogcmVz dWx0OiBubwpjb25maWd1cmU6MzA3NDU6IHJlc3VsdDogeWVzIC0gZm91bmQKY29uZmlndXJlOjMw NzQ3OiBjaGVja2luZyBGb3IgYW55IGxpYm5jdXJzZXMgbGlicmFyeSBvbiB0aGUgc3lzdGVtCmNv bmZpZ3VyZTozMDc1NzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBtdmFkZF93Y2hu c3RyCmNvbmZpZ3VyZTozMDc4NzogZ2NjIC1vIGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwv dXNyL2xvY2FsL2xpYiAKLUwvdXNyL2xpYiBjb25mdGVzdC5jICA+JjUKL3Vzci9saWI2NC9nY2Mv eDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4vbGQ6 IApza2lwcGluZyBpbmNvbXBhdGlibGUgL2xpYi9saWJnY2Nfcy5zby4xIHdoZW4gc2VhcmNoaW5n IGZvciBsaWJnY2Nfcy5zby4xCi91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4v Li4vLi4vLi4veDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tpcHBpbmcgaW5jb21wYXRpYmxl IC9saWIvbGliZ2NjX3Muc28uMSB3aGVuIHNlYXJjaGluZyBmb3IgbGliZ2NjX3Muc28uMQovdXNy L2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51eC83Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxp bnV4L2Jpbi9sZDogCi90bXAvY2NIYldHYjgubzogaW4gZnVuY3Rpb24gYG1haW4nOgovb3B0L2F1 Yml0NGdsc3JjL2NvbmZ0ZXN0LmM6NzA6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG12YWRkX3dj aG5zdHInCmNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6MzA3ODc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkF1Yml0NGdsIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJhdWJpdDRnbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJEFVQklU X1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkF1Yml0NGds ICRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJhdWJpdDRnbC1kaXNjdXNzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJBdWJpdDRnbCIKfCAjZGVmaW5lIFZFUlNJT04g IjEuNi4xIgp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09C SkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5U IDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNFWElUU19IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAj ZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2Rl ZmluZSBIQVZFX05FVElORVRfVENQX0ggMQp8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQp8ICNk ZWZpbmUgSEFWRV9TRU5ETUFJTCAxCnwgI2RlZmluZSBIQVZFX0lLU0VNRUwgMAp8ICNkZWZpbmUg SEFWRV9MSUJHTVAgMQp8ICNkZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlBD UkUgMQp8ICNkZWZpbmUgSEFWRV9QQ1JFX0ggMQp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNk ZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVfWkxJQl9IIDEKfCAjZGVmaW5lIEhBVkVf WkxJQiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfREVGIDEKfCAjZGVmaW5lIEhBVkVfUERGIDAKfCAj ZGVmaW5lIEhBVkVfTElCUkVBRExJTkUgMQp8ICNkZWZpbmUgSEFWRV9MSUJTUUxJVEUzIDEKfCAj ZGVmaW5lIEhBVkVfU1FMSVRFM19IIDEKfCAjZGVmaW5lIEhBVkVfU0FQT0RCQyAwCnwgI2RlZmlu ZSBIQVZFX0lPREJDIDAKfCAjZGVmaW5lIEhBVkVfTElCT0RCQyAxCnwgI2RlZmluZSBIQVZFX1NR TF9IIDEKfCAjZGVmaW5lIEhBVkVfU1FMRVhUX0ggMQp8ICNkZWZpbmUgSEFWRV9PREJDSU5TVF9I IDEKfCAjZGVmaW5lIEhBVkVfVU5JWE9EQkMgMQp8ICNkZWZpbmUgSEFWRV9QR09EQkMgMAp8ICNk ZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAwCnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAj ZGVmaW5lIEhBVkVfR1RLIDAKfCAjZGVmaW5lIEhBVkVfUlBDR0VOIDEKfCAjZGVmaW5lIEhBVkVf UlBDTElCIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwKfCAvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8 IGNoYXIgbXZhZGRfd2NobnN0ciAoKTsKfCBpbnQKfCBtYWluICh2b2lkKQp8IHsKfCByZXR1cm4g bXZhZGRfd2NobnN0ciAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMwNzg3 OiBnY2MgLW8gY29uZnRlc3QgIC1nIC1PMiAgLUwvbGliICAtTC91c3IvbG9jYWwvbGliIAotTC91 c3IvbGliIGNvbmZ0ZXN0LmMgLWwvbGliL2xpYm5jdXJzZXMuc28uNSBvdGhlci1saWJzICAgPiY1 CmdjYzogZXJyb3I6IG90aGVyLWxpYnM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmln dXJlOjMwNzg3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJpdDRnbCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRBVUJJ VF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJBdWJpdDRn bCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBWRVJTSU9O ICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9P QkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9VX0lO VCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTRVhJVFNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwg I2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNk ZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKfCAj ZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9JS1NFTUVMIDAKfCAjZGVmaW5l IEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9MSUJQ Q1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAj ZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2RlZmluZSBIQVZFX1BERiAwCnwg I2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhBVkVfTElCU1FMSVRFMyAxCnwg I2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZFX1NBUE9EQkMgMAp8ICNkZWZp bmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMgMQp8ICNkZWZpbmUgSEFWRV9T UUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVmaW5lIEhBVkVfT0RCQ0lOU1Rf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5lIEhBVkVfUEdPREJDIDAKfCAj ZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAwCnwg I2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dFTiAxCnwgI2RlZmluZSBIQVZF X1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8CnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCBjaGFyIG12YWRkX3djaG5zdHIgKCk7CnwgaW50CnwgbWFpbiAodm9pZCkKfCB7CnwgcmV0dXJu IG12YWRkX3djaG5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMDc4 NzogZ2NjIC1vIGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwvdXNyL2xvY2FsL2xpYiAKLUwv dXNyL2xpYiBjb25mdGVzdC5jIC1sL2xpYi9saWJuY3Vyc2VzLnNvLjUuOSBvdGhlci1saWJzICAg PiY1CmdjYzogZXJyb3I6IG90aGVyLWxpYnM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29u ZmlndXJlOjMwNzg3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJpdDRnbCIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRB VUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJBdWJp dDRnbCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBWRVJT SU9OICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBM VF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9V X0lOVCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTRVhJVFNfSCAx CnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAx CnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8 ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEK fCAjZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9JS1NFTUVMIDAKfCAjZGVm aW5lIEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9M SUJQQ1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEK fCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2RlZmluZSBIQVZFX1BERiAw CnwgI2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhBVkVfTElCU1FMSVRFMyAx CnwgI2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZFX1NBUE9EQkMgMAp8ICNk ZWZpbmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMgMQp8ICNkZWZpbmUgSEFW RV9TUUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVmaW5lIEhBVkVfT0RCQ0lO U1RfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5lIEhBVkVfUEdPREJDIDAK fCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAw CnwgI2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dFTiAxCnwgI2RlZmluZSBI QVZFX1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8CnwgLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KfCBjaGFyIG12YWRkX3djaG5zdHIgKCk7CnwgaW50CnwgbWFpbiAodm9pZCkKfCB7CnwgcmV0 dXJuIG12YWRkX3djaG5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToz MDc4NzogZ2NjIC1vIGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwvdXNyL2xvY2FsL2xpYiAK LUwvdXNyL2xpYiBjb25mdGVzdC5jIC1sL2xpYi9saWJuY3Vyc2VzLnNvLjYgb3RoZXItbGlicyAg ID4mNQpnY2M6IGVycm9yOiBvdGhlci1saWJzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNv bmZpZ3VyZTozMDc4NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiQXViaXQ0Z2wiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIk QVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiQXVi aXQ0Z2wgJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImF1Yml0NGdsLWRpc2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Igp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIkF1Yml0NGdsIgp8ICNkZWZpbmUgVkVS U0lPTiAiMS42LjEiCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUg TFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVf VV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU0VYSVRTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0gg MQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEK fCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAx CnwgI2RlZmluZSBIQVZFX1NFTkRNQUlMIDEKfCAjZGVmaW5lIEhBVkVfSUtTRU1FTCAwCnwgI2Rl ZmluZSBIQVZFX0xJQkdNUCAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVf TElCUENSRSAxCnwgI2RlZmluZSBIQVZFX1BDUkVfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAx CnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9aTElCX0ggMQp8ICNkZWZpbmUg SEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfWkxJQl9ERUYgMQp8ICNkZWZpbmUgSEFWRV9QREYg MAp8ICNkZWZpbmUgSEFWRV9MSUJSRUFETElORSAxCnwgI2RlZmluZSBIQVZFX0xJQlNRTElURTMg MQp8ICNkZWZpbmUgSEFWRV9TUUxJVEUzX0ggMQp8ICNkZWZpbmUgSEFWRV9TQVBPREJDIDAKfCAj ZGVmaW5lIEhBVkVfSU9EQkMgMAp8ICNkZWZpbmUgSEFWRV9MSUJPREJDIDEKfCAjZGVmaW5lIEhB VkVfU1FMX0ggMQp8ICNkZWZpbmUgSEFWRV9TUUxFWFRfSCAxCnwgI2RlZmluZSBIQVZFX09EQkNJ TlNUX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklYT0RCQyAxCnwgI2RlZmluZSBIQVZFX1BHT0RCQyAw CnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04g MAp8ICNkZWZpbmUgSEFWRV9HVEsgMAp8ICNkZWZpbmUgSEFWRV9SUENHRU4gMQp8ICNkZWZpbmUg SEFWRV9SUENMSUIgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfAp8IC8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCnwgY2hhciBtdmFkZF93Y2huc3RyICgpOwp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8IHJl dHVybiBtdmFkZF93Y2huc3RyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 MzA3ODc6IGdjYyAtbyBjb25mdGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2NhbC9saWIg Ci1ML3Vzci9saWIgY29uZnRlc3QuYyAtbC9saWIvbGlibmN1cnNlcy5zby42LjEgb3RoZXItbGli cyAgID4mNQpnY2M6IGVycm9yOiBvdGhlci1saWJzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CmNvbmZpZ3VyZTozMDc4NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiQXViaXQ0Z2wiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi QXViaXQ0Z2wgJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImF1Yml0NGdsLWRpc2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Igp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIkF1Yml0NGdsIgp8ICNkZWZpbmUg VkVSU0lPTiAiMS42LjEiCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19I IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEK fCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZp bmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhB VkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU0VYSVRT X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlP X0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9I IDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRF UiAxCnwgI2RlZmluZSBIQVZFX1NFTkRNQUlMIDEKfCAjZGVmaW5lIEhBVkVfSUtTRU1FTCAwCnwg I2RlZmluZSBIQVZFX0xJQkdNUCAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhB VkVfTElCUENSRSAxCnwgI2RlZmluZSBIQVZFX1BDUkVfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlNT TCAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9aTElCX0ggMQp8ICNkZWZp bmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfWkxJQl9ERUYgMQp8ICNkZWZpbmUgSEFWRV9Q REYgMAp8ICNkZWZpbmUgSEFWRV9MSUJSRUFETElORSAxCnwgI2RlZmluZSBIQVZFX0xJQlNRTElU RTMgMQp8ICNkZWZpbmUgSEFWRV9TUUxJVEUzX0ggMQp8ICNkZWZpbmUgSEFWRV9TQVBPREJDIDAK fCAjZGVmaW5lIEhBVkVfSU9EQkMgMAp8ICNkZWZpbmUgSEFWRV9MSUJPREJDIDEKfCAjZGVmaW5l IEhBVkVfU1FMX0ggMQp8ICNkZWZpbmUgSEFWRV9TUUxFWFRfSCAxCnwgI2RlZmluZSBIQVZFX09E QkNJTlNUX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklYT0RCQyAxCnwgI2RlZmluZSBIQVZFX1BHT0RC QyAwCnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJ T04gMAp8ICNkZWZpbmUgSEFWRV9HVEsgMAp8ICNkZWZpbmUgSEFWRV9SUENHRU4gMQp8ICNkZWZp bmUgSEFWRV9SUENMSUIgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfAp8IC8qIE92ZXJyaWRl IGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAg IGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBs eS4gICovCnwgY2hhciBtdmFkZF93Y2huc3RyICgpOwp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8 IHJldHVybiBtdmFkZF93Y2huc3RyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MzA3ODc6IGdjYyAtbyBjb25mdGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2NhbC9s aWIgCi1ML3Vzci9saWIgY29uZnRlc3QuYyAtbC9saWI2NC9saWJuY3Vyc2VzLnNvLjUgb3RoZXIt bGlicyAgID4mNQpnY2M6IGVycm9yOiBvdGhlci1saWJzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CmNvbmZpZ3VyZTozMDc4NzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiQXViaXQ0Z2wiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiQXViaXQ0Z2wgJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImF1Yml0NGdsLWRpc2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Igp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIkF1Yml0NGdsIgp8ICNkZWZp bmUgVkVSU0lPTiAiMS42LjEiCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBF U19IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9I IDEKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNk ZWZpbmUgTFRfT0JKRElSICIubGlicy8iCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5l IEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU0VY SVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9J Tl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCnwgI2RlZmluZSBZWVRFWFRfUE9J TlRFUiAxCnwgI2RlZmluZSBIQVZFX1NFTkRNQUlMIDEKfCAjZGVmaW5lIEhBVkVfSUtTRU1FTCAw CnwgI2RlZmluZSBIQVZFX0xJQkdNUCAxCnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5l IEhBVkVfTElCUENSRSAxCnwgI2RlZmluZSBIQVZFX1BDUkVfSCAxCnwgI2RlZmluZSBIQVZFX0xJ QlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgSEFWRV9aTElCX0ggMQp8ICNk ZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVmaW5lIEhBVkVfWkxJQl9ERUYgMQp8ICNkZWZpbmUgSEFW RV9QREYgMAp8ICNkZWZpbmUgSEFWRV9MSUJSRUFETElORSAxCnwgI2RlZmluZSBIQVZFX0xJQlNR TElURTMgMQp8ICNkZWZpbmUgSEFWRV9TUUxJVEUzX0ggMQp8ICNkZWZpbmUgSEFWRV9TQVBPREJD IDAKfCAjZGVmaW5lIEhBVkVfSU9EQkMgMAp8ICNkZWZpbmUgSEFWRV9MSUJPREJDIDEKfCAjZGVm aW5lIEhBVkVfU1FMX0ggMQp8ICNkZWZpbmUgSEFWRV9TUUxFWFRfSCAxCnwgI2RlZmluZSBIQVZF X09EQkNJTlNUX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklYT0RCQyAxCnwgI2RlZmluZSBIQVZFX1BH T0RCQyAwCnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZF UlNJT04gMAp8ICNkZWZpbmUgSEFWRV9HVEsgMAp8ICNkZWZpbmUgSEFWRV9SUENHRU4gMQp8ICNk ZWZpbmUgSEFWRV9SUENMSUIgMAp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfAp8IC8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8 ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCnwgY2hhciBtdmFkZF93Y2huc3RyICgpOwp8IGludAp8IG1haW4gKHZvaWQpCnwg ewp8IHJldHVybiBtdmFkZF93Y2huc3RyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MzA3ODc6IGdjYyAtbyBjb25mdGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2Nh bC9saWIgCi1ML3Vzci9saWIgY29uZnRlc3QuYyAtbC9saWI2NC9saWJuY3Vyc2VzLnNvLjUuOSBv dGhlci1saWJzICAgPiY1CmdjYzogZXJyb3I6IG90aGVyLWxpYnM6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKY29uZmlndXJlOjMwNzg3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJpdDRn bCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIiRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJBdWJpdDRnbCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQi CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wiCnwg I2RlZmluZSBWRVJTSU9OICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmlu ZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFW RV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAx CnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNk ZWZpbmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTRVhJVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZF X1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJ TkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZVEVY VF9QT0lOVEVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9JS1NF TUVMIDAKfCAjZGVmaW5lIEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSUJQQ1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5lIEhB VkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfSCAx CnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2RlZmlu ZSBIQVZFX1BERiAwCnwgI2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhBVkVf TElCU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZFX1NB UE9EQkMgMAp8ICNkZWZpbmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMgMQp8 ICNkZWZpbmUgSEFWRV9TUUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVmaW5l IEhBVkVfT0RCQ0lOU1RfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5lIEhB VkVfUEdPREJDIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9H VEtfVkVSU0lPTiAwCnwgI2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dFTiAx CnwgI2RlZmluZSBIQVZFX1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8CnwgLyog T3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwg ICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEg R0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0 aWxsIGFwcGx5LiAgKi8KfCBjaGFyIG12YWRkX3djaG5zdHIgKCk7CnwgaW50CnwgbWFpbiAodm9p ZCkKfCB7CnwgcmV0dXJuIG12YWRkX3djaG5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9 CmNvbmZpZ3VyZTozMDc4NzogZ2NjIC1vIGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwvdXNy L2xvY2FsL2xpYiAKLUwvdXNyL2xpYiBjb25mdGVzdC5jIC1sL2xpYjY0L2xpYm5jdXJzZXMuc28u NiBvdGhlci1saWJzICAgPiY1CmdjYzogZXJyb3I6IG90aGVyLWxpYnM6IE5vIHN1Y2ggZmlsZSBv ciBkaXJlY3RvcnkKY29uZmlndXJlOjMwNzg3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJp dDRnbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIiRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJBdWJpdDRnbCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wi CnwgI2RlZmluZSBWRVJTSU9OICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FX0ggMQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05f SCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8 ICNkZWZpbmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTRVhJVFNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBI QVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9O RVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZ VEVYVF9QT0lOVEVSIDEKfCAjZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9J S1NFTUVMIDAKfCAjZGVmaW5lIEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSUJQQ1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5l IEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJf SCAxCnwgI2RlZmluZSBIQVZFX1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2Rl ZmluZSBIQVZFX1BERiAwCnwgI2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhB VkVfTElCU1FMSVRFMyAxCnwgI2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZF X1NBUE9EQkMgMAp8ICNkZWZpbmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMg MQp8ICNkZWZpbmUgSEFWRV9TUUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVm aW5lIEhBVkVfT0RCQ0lOU1RfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5l IEhBVkVfUEdPREJDIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFW RV9HVEtfVkVSU0lPTiAwCnwgI2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dF TiAxCnwgI2RlZmluZSBIQVZFX1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8Cnwg LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk IHN0aWxsIGFwcGx5LiAgKi8KfCBjaGFyIG12YWRkX3djaG5zdHIgKCk7CnwgaW50CnwgbWFpbiAo dm9pZCkKfCB7CnwgcmV0dXJuIG12YWRkX3djaG5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZTozMDc4NzogZ2NjIC1vIGNvbmZ0ZXN0ICAtZyAtTzIgIC1ML2xpYiAgLUwv dXNyL2xvY2FsL2xpYiAKLUwvdXNyL2xpYiBjb25mdGVzdC5jIC1sL2xpYjY0L2xpYm5jdXJzZXMu c28uNi4xIG90aGVyLWxpYnMgICA+JjUKZ2NjOiBlcnJvcjogb3RoZXItbGliczogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzA3ODc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJhdWJpdDRnbCIKfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkF1Yml0NGdsICRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJhdWJpdDRnbC1kaXNjdXNzQGxpc3RzLnNvdXJjZWZv cmdlLm5ldCIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJBdWJp dDRnbCIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4xIgp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEK fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUg SEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhB VkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9E TEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgSEFWRV9VX0lO VCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNFWElUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVm aW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmluZSBI QVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQp8ICNkZWZp bmUgWVlURVhUX1BPSU5URVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETUFJTCAxCnwgI2RlZmluZSBI QVZFX0lLU0VNRUwgMAp8ICNkZWZpbmUgSEFWRV9MSUJHTVAgMQp8ICNkZWZpbmUgSEFWRV9HTVBf SCAxCnwgI2RlZmluZSBIQVZFX0xJQlBDUkUgMQp8ICNkZWZpbmUgSEFWRV9QQ1JFX0ggMQp8ICNk ZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhBVkVf WkxJQl9IIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfREVGIDEK fCAjZGVmaW5lIEhBVkVfUERGIDAKfCAjZGVmaW5lIEhBVkVfTElCUkVBRExJTkUgMQp8ICNkZWZp bmUgSEFWRV9MSUJTUUxJVEUzIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFM19IIDEKfCAjZGVmaW5l IEhBVkVfU0FQT0RCQyAwCnwgI2RlZmluZSBIQVZFX0lPREJDIDAKfCAjZGVmaW5lIEhBVkVfTElC T0RCQyAxCnwgI2RlZmluZSBIQVZFX1NRTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1FMRVhUX0ggMQp8 ICNkZWZpbmUgSEFWRV9PREJDSU5TVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JWE9EQkMgMQp8ICNk ZWZpbmUgSEFWRV9QR09EQkMgMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAwCnwgI2RlZmlu ZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLIDAKfCAjZGVmaW5lIEhBVkVf UlBDR0VOIDEKfCAjZGVmaW5lIEhBVkVfUlBDTElCIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLwp8IGNoYXIgbXZhZGRfd2NobnN0ciAoKTsKfCBpbnQKfCBt YWluICh2b2lkKQp8IHsKfCByZXR1cm4gbXZhZGRfd2NobnN0ciAoKTsKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjMwNzg3OiBnY2MgLW8gY29uZnRlc3QgIC1nIC1PMiAgLUwvbGli ICAtTC91c3IvbG9jYWwvbGliIAotTC91c3IvbGliIGNvbmZ0ZXN0LmMgLWwvdXNyL2xpYi9saWJu Y3Vyc2VzLnNvIG90aGVyLWxpYnMgICA+JjUKZ2NjOiBlcnJvcjogb3RoZXItbGliczogTm8gc3Vj aCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzA3ODc6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJhdWJpdDRnbCIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxEIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkF1Yml0NGdsICRBVUJJVF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJhdWJpdDRnbC1kaXNjdXNzQGxpc3RzLnNvdXJj ZWZvcmdlLm5ldCIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJB dWJpdDRnbCIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4xIgp8ICNkZWZpbmUgSEFWRV9TVERJT19I IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp bmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW RV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgSEFWRV9V X0lOVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVfRVJSX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNFWElUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAxCnwgI2RlZmlu ZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQp8ICNk ZWZpbmUgWVlURVhUX1BPSU5URVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETUFJTCAxCnwgI2RlZmlu ZSBIQVZFX0lLU0VNRUwgMAp8ICNkZWZpbmUgSEFWRV9MSUJHTVAgMQp8ICNkZWZpbmUgSEFWRV9H TVBfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlBDUkUgMQp8ICNkZWZpbmUgSEFWRV9QQ1JFX0ggMQp8 ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIEhB VkVfWkxJQl9IIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfREVG IDEKfCAjZGVmaW5lIEhBVkVfUERGIDAKfCAjZGVmaW5lIEhBVkVfTElCUkVBRExJTkUgMQp8ICNk ZWZpbmUgSEFWRV9MSUJTUUxJVEUzIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFM19IIDEKfCAjZGVm aW5lIEhBVkVfU0FQT0RCQyAwCnwgI2RlZmluZSBIQVZFX0lPREJDIDAKfCAjZGVmaW5lIEhBVkVf TElCT0RCQyAxCnwgI2RlZmluZSBIQVZFX1NRTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1FMRVhUX0gg MQp8ICNkZWZpbmUgSEFWRV9PREJDSU5TVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JWE9EQkMgMQp8 ICNkZWZpbmUgSEFWRV9QR09EQkMgMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAwCnwgI2Rl ZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLIDAKfCAjZGVmaW5lIEhB VkVfUlBDR0VOIDEKfCAjZGVmaW5lIEhBVkVfUlBDTElCIDAKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8IGNoYXIgbXZhZGRfd2NobnN0ciAoKTsKfCBpbnQK fCBtYWluICh2b2lkKQp8IHsKfCByZXR1cm4gbXZhZGRfd2NobnN0ciAoKTsKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjMwNzg3OiBnY2MgLW8gY29uZnRlc3QgIC1nIC1PMiAgLUwv bGliICAtTC91c3IvbG9jYWwvbGliIAotTC91c3IvbGliIGNvbmZ0ZXN0LmMgLWwvdXNyL2xpYi9u Y3Vyc2VzNS9saWJuY3Vyc2VzLnNvIG90aGVyLWxpYnMgICA+JjUKZ2NjOiBlcnJvcjogb3RoZXIt bGliczogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzA3ODc6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJhdWJp dDRnbCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJEFVQklUX1ZFUlNJT04uJEFVQklUX0JV SUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkF1Yml0NGdsICRBVUJJVF9WRVJTSU9OLiRB VUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJhdWJpdDRnbC1kaXNjdXNz QGxpc3RzLnNvdXJjZWZvcmdlLm5ldCIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu ZSBQQUNLQUdFICJBdWJpdDRnbCIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4xIgp8ICNkZWZpbmUg SEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8 ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNk ZWZpbmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVf RVJSX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNFWElUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NP Q0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJf SCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRf VENQX0ggMQp8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETUFJ TCAxCnwgI2RlZmluZSBIQVZFX0lLU0VNRUwgMAp8ICNkZWZpbmUgSEFWRV9MSUJHTVAgMQp8ICNk ZWZpbmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlBDUkUgMQp8ICNkZWZpbmUgSEFW RV9QQ1JFX0ggMQp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEK fCAjZGVmaW5lIEhBVkVfWkxJQl9IIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBI QVZFX1pMSUJfREVGIDEKfCAjZGVmaW5lIEhBVkVfUERGIDAKfCAjZGVmaW5lIEhBVkVfTElCUkVB RExJTkUgMQp8ICNkZWZpbmUgSEFWRV9MSUJTUUxJVEUzIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRF M19IIDEKfCAjZGVmaW5lIEhBVkVfU0FQT0RCQyAwCnwgI2RlZmluZSBIQVZFX0lPREJDIDAKfCAj ZGVmaW5lIEhBVkVfTElCT0RCQyAxCnwgI2RlZmluZSBIQVZFX1NRTF9IIDEKfCAjZGVmaW5lIEhB VkVfU1FMRVhUX0ggMQp8ICNkZWZpbmUgSEFWRV9PREJDSU5TVF9IIDEKfCAjZGVmaW5lIEhBVkVf VU5JWE9EQkMgMQp8ICNkZWZpbmUgSEFWRV9QR09EQkMgMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVS U0lPTiAwCnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLIDAK fCAjZGVmaW5lIEhBVkVfUlBDR0VOIDEKfCAjZGVmaW5lIEhBVkVfUlBDTElCIDAKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlw ZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8IGNoYXIgbXZhZGRfd2NobnN0 ciAoKTsKfCBpbnQKfCBtYWluICh2b2lkKQp8IHsKfCByZXR1cm4gbXZhZGRfd2NobnN0ciAoKTsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjMwNzg3OiBnY2MgLW8gY29uZnRlc3Qg IC1nIC1PMiAgLUwvbGliICAtTC91c3IvbG9jYWwvbGliIAotTC91c3IvbGliIGNvbmZ0ZXN0LmMg LWwvdXNyL2xpYjY0L2xpYm5jdXJzZXMuc28gb3RoZXItbGlicyAgID4mNQpnY2M6IGVycm9yOiBv dGhlci1saWJzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTozMDc4NzogJD8g PSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkQVVCSVRfVkVSU0lPTi4kQVVC SVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiQXViaXQ0Z2wgJEFVQklUX1ZFUlNJ T04uJEFVQklUX0JVSUxEIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImF1Yml0NGdsLWRp c2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAj ZGVmaW5lIFBBQ0tBR0UgIkF1Yml0NGdsIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS42LjEiCnwgI2Rl ZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIFNURENfSEVBREVS UyAxCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGlicy8i CnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUg SEFWRV9FUlJfSCAxCnwgI2RlZmluZSBIQVZFX1NZU0VYSVRTX0ggMQp8ICNkZWZpbmUgSEFWRV9T WVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9O RVREQl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfTkVU SU5FVF9UQ1BfSCAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCnwgI2RlZmluZSBIQVZFX1NF TkRNQUlMIDEKfCAjZGVmaW5lIEhBVkVfSUtTRU1FTCAwCnwgI2RlZmluZSBIQVZFX0xJQkdNUCAx CnwgI2RlZmluZSBIQVZFX0dNUF9IIDEKfCAjZGVmaW5lIEhBVkVfTElCUENSRSAxCnwgI2RlZmlu ZSBIQVZFX1BDUkVfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJ QlogMQp8ICNkZWZpbmUgSEFWRV9aTElCX0ggMQp8ICNkZWZpbmUgSEFWRV9aTElCIDEKfCAjZGVm aW5lIEhBVkVfWkxJQl9ERUYgMQp8ICNkZWZpbmUgSEFWRV9QREYgMAp8ICNkZWZpbmUgSEFWRV9M SUJSRUFETElORSAxCnwgI2RlZmluZSBIQVZFX0xJQlNRTElURTMgMQp8ICNkZWZpbmUgSEFWRV9T UUxJVEUzX0ggMQp8ICNkZWZpbmUgSEFWRV9TQVBPREJDIDAKfCAjZGVmaW5lIEhBVkVfSU9EQkMg MAp8ICNkZWZpbmUgSEFWRV9MSUJPREJDIDEKfCAjZGVmaW5lIEhBVkVfU1FMX0ggMQp8ICNkZWZp bmUgSEFWRV9TUUxFWFRfSCAxCnwgI2RlZmluZSBIQVZFX09EQkNJTlNUX0ggMQp8ICNkZWZpbmUg SEFWRV9VTklYT0RCQyAxCnwgI2RlZmluZSBIQVZFX1BHT0RCQyAwCnwgI2RlZmluZSBIQVZFX0dU S19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9H VEsgMAp8ICNkZWZpbmUgSEFWRV9SUENHRU4gMQp8ICNkZWZpbmUgSEFWRV9SUENMSUIgMAp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0 IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgY2hhciBtdmFkZF93 Y2huc3RyICgpOwp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8IHJldHVybiBtdmFkZF93Y2huc3Ry ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MzA3ODc6IGdjYyAtbyBjb25m dGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2NhbC9saWIgCi1ML3Vzci9saWIgY29uZnRl c3QuYyAtbC91c3IvbGliNjQvbmN1cnNlczUvbGlibmN1cnNlcy5zbyBvdGhlci1saWJzICAgPiY1 CmdjYzogZXJyb3I6IG90aGVyLWxpYnM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmln dXJlOjMwNzg3OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJBdWJpdDRnbCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiYXViaXQ0Z2wiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRBVUJJ VF9WRVJTSU9OLiRBVUJJVF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJBdWJpdDRn bCAkQVVCSVRfVkVSU0lPTi4kQVVCSVRfQlVJTEQiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYXViaXQ0Z2wtZGlzY3Vzc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiCnwgI2RlZmluZSBQQUNL QUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAiQXViaXQ0Z2wiCnwgI2RlZmluZSBWRVJTSU9O ICIxLjYuMSIKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9I IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9P QkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIEhBVkVfVV9JTlQgMQp8ICNkZWZpbmUgSEFWRV9VX0lO VCAxCnwgI2RlZmluZSBIQVZFX0VSUl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTRVhJVFNfSCAxCnwg I2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwg I2RlZmluZSBIQVZFX05FVERCX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNk ZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKfCAj ZGVmaW5lIEhBVkVfU0VORE1BSUwgMQp8ICNkZWZpbmUgSEFWRV9JS1NFTUVMIDAKfCAjZGVmaW5l IEhBVkVfTElCR01QIDEKfCAjZGVmaW5lIEhBVkVfR01QX0ggMQp8ICNkZWZpbmUgSEFWRV9MSUJQ Q1JFIDEKfCAjZGVmaW5lIEhBVkVfUENSRV9IIDEKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAj ZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBIQVZFX1pMSUJfSCAxCnwgI2RlZmluZSBIQVZF X1pMSUIgMQp8ICNkZWZpbmUgSEFWRV9aTElCX0RFRiAxCnwgI2RlZmluZSBIQVZFX1BERiAwCnwg I2RlZmluZSBIQVZFX0xJQlJFQURMSU5FIDEKfCAjZGVmaW5lIEhBVkVfTElCU1FMSVRFMyAxCnwg I2RlZmluZSBIQVZFX1NRTElURTNfSCAxCnwgI2RlZmluZSBIQVZFX1NBUE9EQkMgMAp8ICNkZWZp bmUgSEFWRV9JT0RCQyAwCnwgI2RlZmluZSBIQVZFX0xJQk9EQkMgMQp8ICNkZWZpbmUgSEFWRV9T UUxfSCAxCnwgI2RlZmluZSBIQVZFX1NRTEVYVF9IIDEKfCAjZGVmaW5lIEhBVkVfT0RCQ0lOU1Rf SCAxCnwgI2RlZmluZSBIQVZFX1VOSVhPREJDIDEKfCAjZGVmaW5lIEhBVkVfUEdPREJDIDAKfCAj ZGVmaW5lIEhBVkVfR1RLX1ZFUlNJT04gMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lPTiAwCnwg I2RlZmluZSBIQVZFX0dUSyAwCnwgI2RlZmluZSBIQVZFX1JQQ0dFTiAxCnwgI2RlZmluZSBIQVZF X1JQQ0xJQiAwCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8CnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCBjaGFyIG12YWRkX3djaG5zdHIgKCk7CnwgaW50CnwgbWFpbiAodm9pZCkKfCB7CnwgcmV0dXJu IG12YWRkX3djaG5zdHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozMDgw NzogcmVzdWx0OiBubwpjb25maWd1cmU6MzA4MzY6IHJlc3VsdDogRm91bmQgbm90aGluZyB3aXRo IEFDIFNFQVJDSCBMSUJTIGluIAovbGliL2xpYm5jdXJzZXMuc28uNQovbGliL2xpYm5jdXJzZXMu c28uNS45Ci9saWIvbGlibmN1cnNlcy5zby42Ci9saWIvbGlibmN1cnNlcy5zby42LjEKL2xpYjY0 L2xpYm5jdXJzZXMuc28uNQovbGliNjQvbGlibmN1cnNlcy5zby41LjkKL2xpYjY0L2xpYm5jdXJz ZXMuc28uNgovbGliNjQvbGlibmN1cnNlcy5zby42LjEKL3Vzci9saWIvbGlibmN1cnNlcy5zbwov dXNyL2xpYi9uY3Vyc2VzNS9saWJuY3Vyc2VzLnNvCi91c3IvbGliNjQvbGlibmN1cnNlcy5zbwov dXNyL2xpYjY0L25jdXJzZXM1L2xpYm5jdXJzZXMuc28KY29uZmlndXJlOjMxMDc3OiBjaGVja2lu ZyBmb3IgY3Vyc2VzLmgKY29uZmlndXJlOjMxMDc3OiBnY2MgLWMgIC1nIC1PMiAgY29uZnRlc3Qu YyA+JjUKY29uZmlndXJlOjMxMDc3OiAkPyA9IDAKY29uZmlndXJlOjMxMDc3OiByZXN1bHQ6IHll cwpjb25maWd1cmU6MzEwODM6IGNoZWNraW5nIGZvciBuY3Vyc2VzLmgKY29uZmlndXJlOjMxMDgz OiBnY2MgLWMgIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjMxMDgzOiAkPyA9IDAK Y29uZmlndXJlOjMxMDgzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEwODk6IGNoZWNraW5nIGZv ciBuY3Vyc2VzL25jdXJzZXMuaApjb25maWd1cmU6MzEwODk6IGdjYyAtYyAgLWcgLU8yICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6MzEwODk6ICQ/ID0gMApjb25maWd1cmU6MzEwODk6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozMTA5NTogY2hlY2tpbmcgZm9yIGN1cnNlcy9jdXJzZXMuaApjb25m aWd1cmU6MzEwOTU6IGdjYyAtYyAgLWcgLU8yICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjkz OjEwOiBmYXRhbCBlcnJvcjogY3Vyc2VzL2N1cnNlcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgI2luY2x1ZGUgPGN1cnNlcy9jdXJzZXMuaD4KICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MzEwOTU6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkF1Yml0NGdsIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJhdWJpdDRn bCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJEFVQklUX1ZFUlNJT04uJEFVQklUX0JVSUxE Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkF1Yml0NGdsICRBVUJJVF9WRVJTSU9OLiRBVUJJ VF9CVUlMRCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJhdWJpdDRnbC1kaXNjdXNzQGxp c3RzLnNvdXJjZWZvcmdlLm5ldCIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQ QUNLQUdFICJBdWJpdDRnbCIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4xIgp8ICNkZWZpbmUgSEFW RV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNk ZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZp bmUgSEFWRV9VX0lOVCAxCnwgI2RlZmluZSBIQVZFX1VfSU5UIDEKfCAjZGVmaW5lIEhBVkVfRVJS X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNFWElUU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tF VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfTkVUREJfSCAx CnwgI2RlZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX05FVElORVRfVENQ X0ggMQp8ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQp8ICNkZWZpbmUgSEFWRV9TRU5ETUFJTCAx CnwgI2RlZmluZSBIQVZFX0lLU0VNRUwgMAp8ICNkZWZpbmUgSEFWRV9MSUJHTVAgMQp8ICNkZWZp bmUgSEFWRV9HTVBfSCAxCnwgI2RlZmluZSBIQVZFX0xJQlBDUkUgMQp8ICNkZWZpbmUgSEFWRV9Q Q1JFX0ggMQp8ICNkZWZpbmUgSEFWRV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQl9IIDEKfCAjZGVmaW5lIEhBVkVfWkxJQiAxCnwgI2RlZmluZSBIQVZF X1pMSUJfREVGIDEKfCAjZGVmaW5lIEhBVkVfUERGIDAKfCAjZGVmaW5lIEhBVkVfTElCUkVBRExJ TkUgMQp8ICNkZWZpbmUgSEFWRV9MSUJTUUxJVEUzIDEKfCAjZGVmaW5lIEhBVkVfU1FMSVRFM19I IDEKfCAjZGVmaW5lIEhBVkVfU0FQT0RCQyAwCnwgI2RlZmluZSBIQVZFX0lPREJDIDAKfCAjZGVm aW5lIEhBVkVfTElCT0RCQyAxCnwgI2RlZmluZSBIQVZFX1NRTF9IIDEKfCAjZGVmaW5lIEhBVkVf U1FMRVhUX0ggMQp8ICNkZWZpbmUgSEFWRV9PREJDSU5TVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J WE9EQkMgMQp8ICNkZWZpbmUgSEFWRV9QR09EQkMgMAp8ICNkZWZpbmUgSEFWRV9HVEtfVkVSU0lP TiAwCnwgI2RlZmluZSBIQVZFX0dUS19WRVJTSU9OIDAKfCAjZGVmaW5lIEhBVkVfR1RLIDAKfCAj ZGVmaW5lIEhBVkVfUlBDR0VOIDEKfCAjZGVmaW5lIEhBVkVfUlBDTElCIDAKfCAjZGVmaW5lIEhB VkVfQ1VSU0VTX0ggMQp8ICNkZWZpbmUgSEFWRV9OQ1VSU0VTX0ggMQp8ICNkZWZpbmUgSEFWRV9O Q1VSU0VTX05DVVJTRVNfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRkZWYuaD4KfCAjaWZkZWYgSEFWRV9TVERJT19ICnwgIyBpbmNsdWRlIDxzdGRpby5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURExJQl9ICnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNl bmRpZgp8ICNpbmNsdWRlIDxjdXJzZXMvY3Vyc2VzLmg+CmNvbmZpZ3VyZTozMTA5NTogcmVzdWx0 OiBubwpjb25maWd1cmU6MzExMzY6IGNoZWNraW5nIGZvciBtYWluIGluIC1sZm9ybQpjb25maWd1 cmU6MzExNTY6IGdjYyAtbyBjb25mdGVzdCAgLWcgLU8yICAtTC9saWIgIC1ML3Vzci9sb2NhbC9s aWIgCi1ML3Vzci9saWIgY29uZnRlc3QuYyAtbGZvcm0gICA+JjUKL3Vzci9saWI2NC9nY2MveDg2 XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4vbGQ6IApz a2lwcGluZyBpbmNvbXBhdGlibGUgL3Vzci9saWIvbGliZm9ybS5zbyB3aGVuIHNlYXJjaGluZyBm b3IgLWxmb3JtCi91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4v eDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tpcHBpbmcgaW5jb21wYXRpYmxlIC91c3IvbGli L2xpYmZvcm0uYSB3aGVuIHNlYXJjaGluZyBmb3IgLWxmb3JtCi91c3IvbGliNjQvZ2NjL3g4Nl82 NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4veDg2XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tp cHBpbmcgaW5jb21wYXRpYmxlIC9saWIvbGliZ2NjX3Muc28uMSB3aGVuIHNlYXJjaGluZyBmb3Ig bGliZ2NjX3Muc28uMQovdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51eC83Ly4uLy4uLy4u Ly4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCnNraXBwaW5nIGluY29tcGF0aWJsZSAvbGli L2xpYmdjY19zLnNvLjEgd2hlbiBzZWFyY2hpbmcgZm9yIGxpYmdjY19zLnNvLjEKY29uZmlndXJl OjMxMTU2OiAkPyA9IDAKY29uZmlndXJlOjMxMTY2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzEx Nzc6IGNoZWNraW5nIGZvciBtYWluIGluIC1scGFuZWwKY29uZmlndXJlOjMxMTk3OiBnY2MgLW8g Y29uZnRlc3QgIC1nIC1PMiAgLUwvbGliICAtTC91c3IvbG9jYWwvbGliIAotTC91c3IvbGliIGNv bmZ0ZXN0LmMgLWxwYW5lbCAgLWxmb3JtICA+JjUKL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2Ut bGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBp bmNvbXBhdGlibGUgL3Vzci9saWIvbGlicGFuZWwuc28gd2hlbiBzZWFyY2hpbmcgZm9yIC1scGFu ZWwKL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQt c3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBpbmNvbXBhdGlibGUgL3Vzci9saWIvbGlicGFu ZWwuYSB3aGVuIHNlYXJjaGluZyBmb3IgLWxwYW5lbAovdXNyL2xpYjY0L2djYy94ODZfNjQtc3Vz ZS1saW51eC83Ly4uLy4uLy4uLy4uL3g4Nl82NC1zdXNlLWxpbnV4L2Jpbi9sZDogCnNraXBwaW5n IGluY29tcGF0aWJsZSAvdXNyL2xpYi9saWJmb3JtLnNvIHdoZW4gc2VhcmNoaW5nIGZvciAtbGZv cm0KL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQt c3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBpbmNvbXBhdGlibGUgL3Vzci9saWIvbGliZm9y bS5hIHdoZW4gc2VhcmNoaW5nIGZvciAtbGZvcm0KL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2Ut bGludXgvNy8uLi8uLi8uLi8uLi94ODZfNjQtc3VzZS1saW51eC9iaW4vbGQ6IApza2lwcGluZyBp bmNvbXBhdGlibGUgL2xpYi9saWJnY2Nfcy5zby4xIHdoZW4gc2VhcmNoaW5nIGZvciBsaWJnY2Nf cy5zby4xCi91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzcvLi4vLi4vLi4vLi4veDg2 XzY0LXN1c2UtbGludXgvYmluL2xkOiAKc2tpcHBpbmcgaW5jb21wYXRpYmxlIC9saWIvbGliZ2Nj X3Muc28uMSB3aGVuIHNlYXJjaGluZyBmb3IgbGliZ2NjX3Muc28uMQpjb25maWd1cmU6MzExOTc6 ICQ/ID0gMApjb25maWd1cmU6MzEyMDc6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozMTI0MDogcmVz dWx0Ogpjb25maWd1cmU6MzEyNDI6IHJlc3VsdDogG1sxbUNoZWNraW5nIGZvciBQRGN1cnNlcy9Y Y3Vyc2VzOhtbbQoKCkVsIDIyLzMvMjMgYSBsYXMgMTE6MjEsIE1pa2UgQXVidXJ5IGVzY3JpYmnD szoKPiBDYW4geW91IHNlbmQgdGhlIHJlbGV2YW50IHBvcnRpb24gb2YgdGhlIGNvbmZpZy5sb2cg Pwo+IAo+IElmIGl0cyBub3QgZmluZGluZyB0aGUgbmN1cnNlcyBkZXZlbCBsaWJyYXJ5IC0gaXQg bWlnaHQgYmUgdGhhdCBpdCBqdXN0IAo+IG5lZWRzIGEgbnVkZ2UgYXMgdG8gd2hlcmUgaXQgaXMg bG9jYXRlZC4uCj4gCj4gT24gV2VkLCAyMiBNYXIgMjAyMyBhdCAxMDoxOCwgTHVpcyBQYXNjdWFs IEZvcm5lciA8bHBhc2N1YWxAaXZhbC5jb20gCj4gPG1haWx0bzpscGFzY3VhbEBpdmFsLmNvbT4+ IHdyb3RlOgo+IAo+ICAgICBEZWFyIEF1Yml0NEdMIHRlYW0sCj4gCj4gICAgIEkgaGF2ZSBjb21w aWxlZCBhdWJpdDRnbCBvbiBvcGVuU1VTRSBMZWFwIDE1LjQuIFRoZSBjb21waWxhdGlvbiB3YXMK PiAgICAgc3VjY2Vzc2Z1bCwgYnV0IHRoZSBjdXJzZXMgbGlicmFyaWVzIGFyZSBub3QgZGV0ZWN0 ZWQsIGV2ZW4gdGhvdWdoIEkKPiAgICAgaGF2ZSBhbGwgdGhlIGRpc3RyaWJ1dGlvbidzIG5jdXJz ZXMgcGFja2FnZXMgaW5zdGFsbGVkOiBsaWJuY3Vyc2VzNSwKPiAgICAgbGlibmN1cnNlczUtMzJi aXQsIGxpYm5jdXJzZXM2LCBsaWJuY3Vyc2VzNi0zMmJpdCwgbmN1cnNlcy1kZXZlbCwKPiAgICAg bmN1cnNlczUtZGV2ZWwgYW5kIG5jdXJzZXM1LWRldmVsLTMyYml0Lgo+IAo+ICAgICBUaGUgb3V0 cHV0IG9mIGNvbmZpZ3VyZSBpczoKPiAKPiAgICAgQ2hlY2tpbmcgZm9yIGN1cnNlcyBsaWJyYXJp ZXM6Cj4gICAgIGNoZWNraW5nIGZvciBtYWluIGluIC1sbmN1cnNlcy4uLiBubwo+ICAgICBjaGVj a2luZyBmb3Igd2lubnN0ciBpbiAtbG5jdXJzZXMuLi4gbm8KPiAgICAgY2hlY2tpbmcgZm9yIHdp bm5zdHIgaW4gLWxjdXJzZXMuLi4gbm8KPiAgICAgeWVzIC0gZm91bmQKPiAgICAgY2hlY2tpbmcg Rm9yIGFueSBsaWJuY3Vyc2VzIGxpYnJhcnkgb24gdGhlIHN5c3RlbS4uLiBjaGVja2luZyBmb3IK PiAgICAgbGlicmFyeSBjb250YWluaW5nIG12YWRkX3djaG5zdHIuLi4gbm8KPiAgICAgRGlkIG5v dCBmaW5kIGl0Cj4gICAgIEZvdW5kIG5vdGhpbmcgd2l0aCBBQyBTRUFSQ0ggTElCUyBpbiAvbGli L2xpYm5jdXJzZXMuc28uNQo+ICAgICAvbGliL2xpYm5jdXJzZXMuc28uNS45Cj4gICAgIC9saWIv bGlibmN1cnNlcy5zby42Cj4gICAgIC9saWIvbGlibmN1cnNlcy5zby42LjEKPiAgICAgL2xpYjY0 L2xpYm5jdXJzZXMuc28uNQo+ICAgICAvbGliNjQvbGlibmN1cnNlcy5zby41LjkKPiAgICAgL2xp YjY0L2xpYm5jdXJzZXMuc28uNgo+ICAgICAvbGliNjQvbGlibmN1cnNlcy5zby42LjEKPiAgICAg L3Vzci9saWIvbGlibmN1cnNlcy5zbwo+ICAgICAvdXNyL2xpYi9uY3Vyc2VzNS9saWJuY3Vyc2Vz LnNvCj4gICAgIC91c3IvbGliNjQvbGlibmN1cnNlcy5zbwo+ICAgICAvdXNyL2xpYjY0L25jdXJz ZXM1L2xpYm5jdXJzZXMuc28KPiAgICAgY2hlY2tpbmcgZm9yIGN1cnNlcy5oLi4uIHllcwo+ICAg ICBjaGVja2luZyBmb3IgbmN1cnNlcy5oLi4uIHllcwo+ICAgICBjaGVja2luZyBmb3IgbmN1cnNl cy9uY3Vyc2VzLmguLi4geWVzCj4gICAgIGNoZWNraW5nIGZvciBjdXJzZXMvY3Vyc2VzLmguLi4g bm8KPiAgICAgY2hlY2tpbmcgZm9yIG1haW4gaW4gLWxmb3JtLi4uIHllcwo+ICAgICBjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbHBhbmVsLi4uIHllcwo+IAo+ICAgICBXaGF0IEkgY2FuIGRvPwo+IAo+ ICAgICBUaGFua3MgaW4gYWR2YW5jZQo+IAo+IAo+ICAgICBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+ICAgICBBdWJpdDRnbC1kaXNjdXNzIG1haWxpbmcg bGlzdAo+ICAgICBBdWJpdDRnbC1kaXNjdXNzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+ICAgICA8 bWFpbHRvOkF1Yml0NGdsLWRpc2N1c3NAbGlzdHMuc291cmNlZm9yZ2UubmV0Pgo+ICAgICBodHRw czovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9hdWJpdDRnbC1kaXNjdXNz Cj4gICAgIDxodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9hdWJp dDRnbC1kaXNjdXNzPgo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkF1Yml0NGdsLWRpc2N1c3MgbWFpbGluZyBsaXN0CkF1Yml0NGdsLWRpc2N1c3NA bGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3Rz L2xpc3RpbmZvL2F1Yml0NGdsLWRpc2N1c3MK